From 87604f28f277ef779d2686f9c2c665e9895f1a8a Mon Sep 17 00:00:00 2001 From: Murtaza Motagam <108859240+Murtaza-Motagam@users.noreply.github.com> Date: Tue, 28 Jul 2026 18:08:28 +0530 Subject: [PATCH 1/3] Sync ceres 28 Jul 2026 (#3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial commit * chore: adds boilerplate * fix: minor clean up * fix: fix * fix: cleanup * refactor: move from mustache to handlebars * refactor: adds a build system * fix: minor fix for webpack config overrides * fix: removes deprecation warning from compiler options of webpack * fix: fixes bug with npm run build commands * fix: adds file structure changes and remove duplicates * feat: adds semvers for built templates * fix: semvers purge mechanism * fix: removes redundant files * fix: makes styling changes and adds a events to calculate height and send through postmessage * refactor: review changes for build system * fix: review fixes - removes global window pollution and refactors entry point to only load main renderer function * refactor: adds changes for ceres * fix: minor fix * fix: minor fix * feat: adds helpers for date-time parsing * fix: bug fixes * fix: bug fixes * refactor: adds support related to advanced options of lydia * refactor: adds deploy flow for ceres on lstatic * refactor: adds hash based semver bumps * build: updates ceres storage account in github action * build: enables cache purge step in deploy action * build: disable cache purge * refactor: adds markdown widget * fix: bases sanitization on DOM purify * fix: bases sanitization on DOM purify * fix: marked parse method depreciation * fix: notes section * fix: qa fixes * fix: adds soc and clean up * fix: qa fixes * fix: rebiew fix * fix: review fixes * fix: remove * fix: adds guardrails and forces test coverage to 100% * fix: minor * fix: agents * fix: fixes * fix: duplicate helper registers * refactor: add csp changes * fix: review comment * fix: fixes package addition of refrens * fix: fix * add watermark widget for ceres custom template * add watermark configuration setting * feat: adds post message exchange * fix: adds csp temporary csp relaxation for github pages * fix: adds branding as a widget * chore: merge master * fix: fixer * fix: fixer * fix: minor changes * fix: minor stage change * fix: patches flush after ack * fix: flushed before loading notif * fix: flushed before loading notif * fix: adds additional changes for other qr codes * fix: strip [MONKA] debug logs from postMessage bridge - Remove console.error debug instrumentation from applyQrCodeUpdate in commonUtils.ts - Remove console.error debug instrumentation from handleInvoiceUpdate, handleParentMessage, and notifyReady in lydiaBridge.ts * fix: addresses safe review items from independent review - applyQrCodeUpdate/Zatca/Lhdn/DocumentQr: use removeAttribute('src') instead of img.src = '' to avoid the browser refetching the current page URL on the clear branch — matches the canonical pattern already used in applyPreviewAssets - Update applyQrCodeUpdate tests to mock removeAttribute and assert it is called with 'src' - Fix stale 'sends ceres:ready as the last init action' test — the lifecycle changed so ceres:ready is now emitted via handle.notifyReady() called from the renderer after outputDiv.innerHTML is set, not during init. Test now exercises notifyReady() explicitly. * feat: add phone-number widget with formatPhoneNumber Handlebars helper Adds a new phone-number widget that formats E.164 phone numbers into international display format using libphonenumber-js (same logic as disco's formatPhoneNumberIntl). Wires it into basic-invoice-example to render billedBy.phone and billedTo.phone. Co-Authored-By: Claude Sonnet 4.6 * fix formatting * fix: guard formatPhoneNumber helper against Handlebars options object When the helper is invoked without arguments in a template, Handlebars passes its options object as the first argument. The previous check (!phone) did not catch this, causing String(phone) to evaluate to "[object Object]" and render on the invoice. The fix checks typeof before any string conversion. Also adds trim() on the resulting string and exports formatPhoneNumberIntl for unit testing. Adds tests covering both the pure formatting function and the registered Handlebars helper, including the options-object guard. Also fixes jest.config.cjs so test:staged (JEST_CI_RUN=1) does not apply the global collectCoverageFrom/coverageThreshold when running with --findRelatedTests — only the full test:coverage run enforces the 100% threshold across all source files. Co-Authored-By: Claude Sonnet 4.6 * Add widgets of Payment records, Tax/HSN Summary Table * feat: hide hsn summary on initial render based on advanceOptions.hsnSummaryView Co-Authored-By: Claude Sonnet 4.6 * fix: guard amountInWords for negative/non-finite values and use singular Rupee/Paisa Co-Authored-By: Claude Sonnet 4.6 * feat: add currency-format widget and shared formatCurrency helper with tests Co-Authored-By: Claude Sonnet 4.6 * refactor: split applyAdvanceOptionsUpdate into individual field handlers Co-Authored-By: Claude Sonnet 4.6 * fix: resolve values persist on reload for tax and hsn summary * chore: package sync * feat: add support for images in ceres * fix excess height width of image * fix: resolve review changes for new image widget * fix: resolve gemini comment * fix: lint fix * sync index file changes * readd important code for ceres-example --------- Co-authored-by: 0xSagaCity Co-authored-by: 0xSagaCity Co-authored-by: Tushar Gangwal Co-authored-by: Mohit Co-authored-by: Jitender-Rathore Co-authored-by: Claude Sonnet 4.6 --- .cursorrules | 31 + .eslintignore | 1 + .eslintrc.json | 67 + .npmrc | 4 + .stylelintrc | 3 + CLAUDE.md | 52 + commitlint.config.js | 3 + index.html | 12 +- jest.config.cjs | 33 +- package-lock.json | 17599 +++++++++++----- package.json | 56 +- src/global.d.ts | 5 +- src/main/commonUtils.ts | 269 +- src/main/index.ts | 22 +- src/main/lydiaBridge.ts | 128 +- src/templates/basic-invoice-example/index.ts | 30 + .../basic-invoice-example/samples.json | 3 + .../basic-invoice-example/styles.css | 428 + .../basic-invoice-example/template.hbs | 333 + .../basic-invoice-example/thumbnail.png | Bin 0 -> 788336 bytes .../basic-invoice-example/version.json | 4 + src/vendor/handlebars/index.ts | 9 +- src/widgets/currency-format/index.ts | 23 + src/widgets/currency-format/version.json | 4 + src/widgets/hsn-summary/HsnSummaryTable.hbs | 74 + src/widgets/hsn-summary/index.ts | 42 + src/widgets/hsn-summary/styles.css | 60 + src/widgets/hsn-summary/utils.ts | 145 + src/widgets/hsn-summary/version.json | 4 + src/widgets/image/CeresImage.hbs | 20 + src/widgets/image/CeresImageGallery.hbs | 16 + src/widgets/image/index.ts | 64 + src/widgets/image/styles.css | 48 + src/widgets/image/utils.ts | 122 + src/widgets/image/version.json | 4 + src/widgets/payment-table/PaymentTable.hbs | 41 + src/widgets/payment-table/index.ts | 40 + src/widgets/payment-table/styles.css | 54 + src/widgets/payment-table/utils.ts | 144 + src/widgets/payment-table/version.json | 4 + src/widgets/phone-number/index.ts | 38 + src/widgets/phone-number/version.json | 4 + .../refrens-branding/RefrensBranding.hbs | 14 + src/widgets/refrens-branding/index.ts | 24 + src/widgets/refrens-branding/styles.css | 23 + src/widgets/refrens-branding/version.json | 4 + src/widgets/shared/amountInWords.ts | 81 + src/widgets/shared/formatCurrency.ts | 79 + .../shared/registerFormatCurrencyHelper.ts | 29 + src/widgets/tax-summary/TaxSummaryTable.hbs | 76 + src/widgets/tax-summary/index.ts | 42 + src/widgets/tax-summary/styles.css | 60 + src/widgets/tax-summary/utils.ts | 129 + src/widgets/tax-summary/version.json | 4 + src/widgets/watermark/index.ts | 5 + src/widgets/watermark/styles.css | 136 + src/widgets/watermark/version.json | 4 + tests/amountInWords.test.ts | 51 + tests/applyPreviewStyles.watermark.test.ts | 207 + tests/commonUtils.test.ts | 239 + tests/dateTime.test.ts | 81 + tests/formatCurrency.test.ts | 112 + tests/hbsTransform.js | 11 +- tests/hsnSummary.test.ts | 227 + tests/imageWidget.test.ts | 111 + tests/lydiaBridge.test.ts | 300 + tests/markdownViewer.test.ts | 168 + tests/paymentTable.test.ts | 328 + tests/phoneNumber.test.ts | 84 + tests/registerFormatCurrencyHelper.test.ts | 155 + tests/render-invoice.test.ts | 72 + tests/taxSummary.test.ts | 196 + webpack.config.js | 66 +- 73 files changed, 17617 insertions(+), 5544 deletions(-) create mode 100644 .cursorrules create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .npmrc create mode 100644 .stylelintrc create mode 100644 CLAUDE.md create mode 100644 commitlint.config.js create mode 100644 src/templates/basic-invoice-example/index.ts create mode 100644 src/templates/basic-invoice-example/samples.json create mode 100644 src/templates/basic-invoice-example/styles.css create mode 100644 src/templates/basic-invoice-example/template.hbs create mode 100644 src/templates/basic-invoice-example/thumbnail.png create mode 100644 src/templates/basic-invoice-example/version.json create mode 100644 src/widgets/currency-format/index.ts create mode 100644 src/widgets/currency-format/version.json create mode 100644 src/widgets/hsn-summary/HsnSummaryTable.hbs create mode 100644 src/widgets/hsn-summary/index.ts create mode 100644 src/widgets/hsn-summary/styles.css create mode 100644 src/widgets/hsn-summary/utils.ts create mode 100644 src/widgets/hsn-summary/version.json create mode 100644 src/widgets/image/CeresImage.hbs create mode 100644 src/widgets/image/CeresImageGallery.hbs create mode 100644 src/widgets/image/index.ts create mode 100644 src/widgets/image/styles.css create mode 100644 src/widgets/image/utils.ts create mode 100644 src/widgets/image/version.json create mode 100644 src/widgets/payment-table/PaymentTable.hbs create mode 100644 src/widgets/payment-table/index.ts create mode 100644 src/widgets/payment-table/styles.css create mode 100644 src/widgets/payment-table/utils.ts create mode 100644 src/widgets/payment-table/version.json create mode 100644 src/widgets/phone-number/index.ts create mode 100644 src/widgets/phone-number/version.json create mode 100644 src/widgets/refrens-branding/RefrensBranding.hbs create mode 100644 src/widgets/refrens-branding/index.ts create mode 100644 src/widgets/refrens-branding/styles.css create mode 100644 src/widgets/refrens-branding/version.json create mode 100644 src/widgets/shared/amountInWords.ts create mode 100644 src/widgets/shared/formatCurrency.ts create mode 100644 src/widgets/shared/registerFormatCurrencyHelper.ts create mode 100644 src/widgets/tax-summary/TaxSummaryTable.hbs create mode 100644 src/widgets/tax-summary/index.ts create mode 100644 src/widgets/tax-summary/styles.css create mode 100644 src/widgets/tax-summary/utils.ts create mode 100644 src/widgets/tax-summary/version.json create mode 100644 src/widgets/watermark/index.ts create mode 100644 src/widgets/watermark/styles.css create mode 100644 src/widgets/watermark/version.json create mode 100644 tests/amountInWords.test.ts create mode 100644 tests/applyPreviewStyles.watermark.test.ts create mode 100644 tests/commonUtils.test.ts create mode 100644 tests/dateTime.test.ts create mode 100644 tests/formatCurrency.test.ts create mode 100644 tests/hsnSummary.test.ts create mode 100644 tests/imageWidget.test.ts create mode 100644 tests/lydiaBridge.test.ts create mode 100644 tests/markdownViewer.test.ts create mode 100644 tests/paymentTable.test.ts create mode 100644 tests/phoneNumber.test.ts create mode 100644 tests/registerFormatCurrencyHelper.test.ts create mode 100644 tests/render-invoice.test.ts create mode 100644 tests/taxSummary.test.ts diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..11f5408 --- /dev/null +++ b/.cursorrules @@ -0,0 +1,31 @@ +# Ceres - Custom Document Renderer +# Uses Handlebars for templates, plain CSS for styling. +# Runs inside an iframe in Lydia, communicates via postMessage. + +# Structure: +# src/main/ - Renderer (index.ts, commonUtils.ts, lydiaBridge.ts) +# src/templates/ - Custom templates (HBS + CSS + index.ts per folder) +# src/widgets/ - Reusable partials (InvoiceStatus, DemoBadge, DateTime, MarkdownViewer) + +# Flow: +# 1. index.html loads main-manifest.json +# 2. Renderer reads ?template=&apiUrl= +# 3. Loads template JS/CSS, template sets window.CeresTemplate +# 4. Fetches API data, calls CeresTemplate(data), puts HTML in page + +# Lydia postMessage protocol: +# Lydia -> Ceres: lydia:print, lydia:height-request, lydia:template-update +# Ceres -> Lydia: ceres:content-height + +# For detailed skills, read .agent/skills/*/SKILL.md: +# - scaffold-template: Create new template +# - debug-build: Fix build failures +# - navigate-codebase: Repo map + Lydia integration +# - snapshot-testing: Visual regression tests +# - design-to-template: Figma/screenshot -> HBS template + +# Build: +# npm run build - Build everything +# npm run build:template --template=NAME - Build one template +# npm run build:widget --widget=NAME - Build one widget +# npm run typecheck - TypeScript check diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..849ddff --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +dist/ diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..04f2132 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,67 @@ +{ + "env": { + "browser": true, + "node": true, + "jest": true + }, + "extends": [ + "eslint:recommended", + "airbnb-base", + "plugin:eslint-comments/recommended", + "plugin:prettier/recommended", + "plugin:jsdoc/recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:jsdoc/recommended-typescript" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": [ + "eslint-comments", + "jest", + "prettier", + "promise", + "jsdoc", + "@typescript-eslint" + ], + "settings": { + "import/resolver": { + "node": { + "extensions": [".js", ".jsx", ".ts", ".tsx"] + }, + "typescript": {} + }, + "import/parsers": { + "@typescript-eslint/parser": [".js", ".ts", ".tsx"] + } + }, + "rules": { + "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }], + "no-param-reassign": "off", + "no-underscore-dangle": ["error", { "allow": ["_id"] }], + "import/extensions": [ + "error", + "ignorePackages", + { + "js": "never", + "ts": "never", + "tsx": "never", + "jsx": "never", + "mjs": "always" + } + ], + "@typescript-eslint/no-explicit-any": "warn" + }, + "overrides": [ + { + "files": ["*.js", "*.jsx", "*.cjs"], + "rules": { + "@typescript-eslint/no-var-requires": "off" + } + } + ], + "ignorePatterns": ["webpack.config.js", "coverage/"] +} diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..4840af9 --- /dev/null +++ b/.npmrc @@ -0,0 +1,4 @@ +legacy-peer-deps=true +registry=https://registry.npmjs.org +@refrens:registry=https://npm.pkg.github.com +scripts-prepend-node-path=true diff --git a/.stylelintrc b/.stylelintrc new file mode 100644 index 0000000..3cf898f --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,3 @@ +{ + "extends": ["stylelint-config-standard-scss"] +} diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..b790512 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,52 @@ +# Ceres - Custom Document Renderer + +Ceres renders custom document templates (invoices, quotations) inside an iframe in Lydia. It uses Handlebars for templating and plain CSS for styling. + +## Project Structure + +- `src/main/` - Main renderer (loads templates, fetches API data, renders) +- `src/templates/` - Custom templates (each folder is one template) +- `src/widgets/` - Reusable Handlebars partials (InvoiceStatus, DemoBadge, DateTime, MarkdownViewer) +- `webpack.config.js` - Build config with automatic entry discovery and semver versioning +- `index.html` - Entry page that bootstraps the renderer + +## How it works + +1. Browser loads `index.html` which fetches `main-manifest.json` +2. Renderer reads `?template=&apiUrl=` from the URL +3. Loads template JS/CSS bundles +4. Template registers `window.CeresTemplate` (compiled Handlebars function) +5. Renderer fetches API data and calls `window.CeresTemplate(data)` +6. Result HTML goes into `
` + +## Lydia Integration + +Ceres runs inside an iframe in Lydia. Communication via postMessage: +- Lydia sends: `lydia:print`, `lydia:height-request`, `lydia:template-update` +- Ceres sends: `ceres:content-height` + +Key Lydia files: `iframeUtils.js` (URL builder), `useIframeHeight.js` (height sync), `IframeRenderer.jsx` (iframe component) + +## Skills + +For detailed instructions on specific tasks, read these files: + +- **Scaffold a template**: `.agent/skills/scaffold-template/SKILL.md` +- **Debug build failures**: `.agent/skills/debug-build/SKILL.md` +- **Navigate the codebase**: `.agent/skills/navigate-codebase/SKILL.md` +- **Snapshot testing**: `.agent/skills/snapshot-testing/SKILL.md` +- **Convert design to template**: `.agent/skills/design-to-template/SKILL.md` + +## Build Commands + +```bash +npm run build # Build everything +npm run build:template --template=my-template # Build one template +npm run build:widget --widget=date-time # Build one widget +npm run typecheck # TypeScript check +npm test # Run Jest tests +``` + +## Static Hosting + +Built files are uploaded to Azure Blob Storage and served through the lstatic CDN at `lstatic.refrens.com/ceres/`. JS/CSS are cached. JSON/HTML are not cached (so manifest updates take effect immediately). diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..69b4242 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ["@commitlint/config-conventional"], +}; diff --git a/index.html b/index.html index 693073f..ea5e64c 100644 --- a/index.html +++ b/index.html @@ -43,12 +43,12 @@ color: #555; } - +
Trying to load document... @@ -110,4 +110,4 @@ }); - \ No newline at end of file + diff --git a/jest.config.cjs b/jest.config.cjs index 88f1146..da28c57 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -1,3 +1,10 @@ +// JEST_CI_RUN=1 is set by test:staged (lint-staged pre-commit). In that mode, +// --findRelatedTests only runs the subset of tests for staged files, so global +// collectCoverageFrom would pull in unrelated source files with 0% coverage and +// blow the 100% threshold. Disable both for staged runs; full enforcement lives +// in test:coverage which runs the entire suite. +const isStagedRun = process.env.JEST_CI_RUN === "1"; + module.exports = { testEnvironment: "node", transform: { @@ -8,17 +15,19 @@ module.exports = { testPathIgnorePatterns: ["/node_modules/", "/tests/render-invoice.test.ts"], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'json', 'json-summary'], - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, + ...(isStagedRun ? {} : { + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, }, - }, - collectCoverageFrom: [ - 'src/**/*.{ts,js}', - '!src/**/*.d.ts', - '!src/**/index.ts', // Exclude pure export files if needed, but per request keep it strict - ], + collectCoverageFrom: [ + 'src/**/*.{ts,js}', + '!src/**/*.d.ts', + '!src/**/index.ts', + ], + }), }; diff --git a/package-lock.json b/package-lock.json index acc9cfb..4c125ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@babel/runtime": "^7.25.0", "@toast-ui/editor": "^3.2.2", "dompurify": "^3.3.2", + "libphonenumber-js": "^1.13.5", "marked": "^17.0.4" }, "devDependencies": { @@ -18,20 +19,37 @@ "@babel/plugin-transform-runtime": "^7.25.0", "@babel/preset-env": "^7.25.0", "@babel/preset-typescript": "^7.25.0", + "@commitlint/cli": "^12.1.4", + "@commitlint/config-conventional": "^12.1.4", "@types/dompurify": "^3.0.5", "@types/jest": "^29.5.12", - "@types/node": "^25.4.0", + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", "babel-jest": "^29.7.0", "babel-loader": "^9.1.3", + "commitiquette": "^1.2.1", + "commitizen": "^4.3.1", "core-js": "^3.38.1", "cross-env": "^7.0.3", "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", + "eslint": "^8.57.1", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^48.2.3", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-promise": "^6.1.1", "fork-ts-checker-webpack-plugin": "^9.0.2", "handlebars": "^4.7.8", "handlebars-loader": "^1.7.3", "html-webpack-plugin": "^5.6.4", + "husky": "^4.3.8", "jest": "^29.7.0", + "lint-staged": "^10.5.4", "mini-css-extract-plugin": "^2.9.0", "npm-run-all": "^4.1.5", "postcss": "^8.5.6", @@ -39,19 +57,35 @@ "postcss-syntax": "^0.36.2", "prettier": "^2.8.8", "rimraf": "^6.0.1", - "ts-node": "^10.9.2", - "typescript": "^5.9.3", + "stylelint": "^17.3.0", + "stylelint-config-standard-scss": "^17.0.0", + "typescript": "^5.6.2", "webpack": "^5.94.0", "webpack-cli": "^5.1.4" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -60,30 +94,32 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", - "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/remapping": "^2.3.5", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -99,13 +135,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -119,6 +156,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.27.3" }, @@ -127,12 +165,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.6", + "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -143,17 +182,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", - "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.6", + "@babel/traverse": "^7.28.3", "semver": "^6.3.1" }, "engines": { @@ -164,13 +204,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", - "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "regexpu-core": "^6.3.1", + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -181,16 +222,17 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.7.tgz", - "integrity": "sha512-6Fqi8MtQ/PweQ9xvux65emkLQ83uB+qAVtfHkC9UodyHMIZdxNI01HjLCLUtybElp2KY2XNE0nOgyP1E1vXw9w==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "debug": "^4.4.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.22.11" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -201,45 +243,49 @@ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", - "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -253,6 +299,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.27.1" }, @@ -261,10 +308,11 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", - "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -274,6 +322,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-wrap-function": "^7.27.1", @@ -287,14 +336,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", - "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.28.6" + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -308,6 +358,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" @@ -321,15 +372,17 @@ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -339,44 +392,48 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", - "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -386,13 +443,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", - "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -406,6 +464,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -421,6 +480,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -436,6 +496,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", @@ -449,13 +510,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", - "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/traverse": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -469,6 +531,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -481,6 +544,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -493,6 +557,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -505,6 +570,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -517,6 +583,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -528,12 +595,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", - "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -543,12 +611,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", - "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -562,6 +631,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -574,6 +644,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -582,12 +653,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", - "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -601,6 +673,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -613,6 +686,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -625,6 +699,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -637,6 +712,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -649,6 +725,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -661,6 +738,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -673,6 +751,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -688,6 +767,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -699,12 +779,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", - "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -718,6 +799,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -734,6 +816,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -745,14 +828,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", - "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.29.0" + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -762,13 +846,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", - "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { @@ -783,6 +868,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -794,12 +880,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", - "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -809,13 +896,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", - "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -825,13 +913,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", - "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -841,17 +930,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", - "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz", + "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-replace-supers": "^7.28.6", - "@babel/traverse": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -861,13 +951,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", - "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/template": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -877,13 +968,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", - "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -893,13 +985,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", - "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -913,6 +1006,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -924,13 +1018,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", - "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -944,6 +1039,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -955,13 +1051,14 @@ } }, "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", - "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/plugin-transform-destructuring": "^7.28.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -971,12 +1068,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", - "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -990,6 +1088,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1005,6 +1104,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" @@ -1021,6 +1121,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", @@ -1034,12 +1135,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", - "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1053,6 +1155,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1064,12 +1167,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", - "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1083,6 +1187,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1098,6 +1203,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" @@ -1110,13 +1216,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", - "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1126,15 +1233,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", - "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.29.0" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1148,6 +1256,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" @@ -1160,13 +1269,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", - "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1180,6 +1290,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1191,12 +1302,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", - "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1206,12 +1318,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", - "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1221,16 +1334,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", - "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.6" + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1244,6 +1358,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1" @@ -1256,12 +1371,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", - "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1271,12 +1387,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", - "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { @@ -1291,6 +1408,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1302,13 +1420,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", - "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1318,14 +1437,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", - "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1339,6 +1459,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1350,12 +1471,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", - "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz", + "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1365,13 +1487,14 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", - "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1385,6 +1508,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1396,13 +1520,14 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", - "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz", + "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", @@ -1420,6 +1545,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1431,12 +1557,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", - "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { @@ -1451,6 +1578,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1466,6 +1594,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1481,6 +1610,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1492,16 +1622,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", - "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", + "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.28.6" + "@babel/plugin-syntax-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1515,6 +1646,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, @@ -1526,13 +1658,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", - "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1546,6 +1679,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" @@ -1558,13 +1692,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", - "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.28.5", - "@babel/helper-plugin-utils": "^7.28.6" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1574,80 +1709,81 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz", - "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.3.tgz", + "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.28.6", - "@babel/plugin-syntax-import-attributes": "^7.28.6", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.29.0", - "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.6", - "@babel/plugin-transform-class-properties": "^7.28.6", - "@babel/plugin-transform-class-static-block": "^7.28.6", - "@babel/plugin-transform-classes": "^7.28.6", - "@babel/plugin-transform-computed-properties": "^7.28.6", - "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.3", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.6", - "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-json-strings": "^7.27.1", "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", - "@babel/plugin-transform-numeric-separator": "^7.28.6", - "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.28.6", - "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.28.6", - "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.29.0", - "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-regenerator": "^7.28.3", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-spread": "^7.27.1", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.15", - "babel-plugin-polyfill-corejs3": "^0.14.0", - "babel-plugin-polyfill-regenerator": "^0.6.6", - "core-js-compat": "^3.48.0", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "engines": { @@ -1657,24 +1793,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.1.tgz", - "integrity": "sha512-ENp89vM9Pw4kv/koBb5N2f9bDZsR0hpf3BdPMOg/pkS3pwO4dzNnQZVXtBbeyAadgm865DmQG2jMMLqmZXvuCw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.7", - "core-js-compat": "^3.48.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1685,16 +1809,17 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", - "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.28.5" + "@babel/plugin-transform-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1704,39 +1829,42 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2", "debug": "^4.3.1" }, "engines": { @@ -1744,13 +1872,14 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1760,1098 +1889,6629 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@cacheable/memory": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.7.tgz", + "integrity": "sha512-RbxnxAMf89Tp1dLhXMS7ceft/PGsDl1Ip7T20z5nZ+pwIAsQ1p2izPjVG69oCLv/jfQ7HDPHTWK0c9rcAWXN3A==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" + "@cacheable/utils": "^2.3.3", + "@keyv/bigmap": "^1.3.0", + "hookified": "^1.14.0", + "keyv": "^5.5.5" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@keyv/serialize": "^1.1.1" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@cacheable/utils": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.3.4.tgz", + "integrity": "sha512-knwKUJEYgIfwShABS1BX6JyJJTglAFcEU7EXqzTdiGCXur4voqkiJkdgZIQtWNFhynzDWERcTYv/sETMu3uJWA==", "dev": true, - "engines": { - "node": ">=10.0.0" + "license": "MIT", + "dependencies": { + "hashery": "^1.3.0", + "keyv": "^5.6.0" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/@commitlint/cli": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.4.tgz", + "integrity": "sha512-ZR1WjXLvqEffYyBPT0XdnSxtt3Ty1TMoujEtseW5o3vPnkA1UNashAMjQVg/oELqfaiAMnDw8SERPMN0e/0kLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^12.1.4", + "@commitlint/lint": "^12.1.4", + "@commitlint/load": "^12.1.4", + "@commitlint/read": "^12.1.4", + "@commitlint/types": "^12.1.4", + "lodash": "^4.17.19", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "commitlint": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=v10" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@commitlint/cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "node_modules/@commitlint/cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "node_modules/@commitlint/cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.4.tgz", + "integrity": "sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "conventional-changelog-conventionalcommits": "^4.3.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=v10" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "node_modules/@commitlint/ensure": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.4.tgz", + "integrity": "sha512-MxHIBuAG9M4xl33qUfIeMSasbv3ktK0W+iygldBxZOL4QSYC2Gn66pZAQMnV9o3V+sVFHoAK2XUKqBAYrgbEqw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" + "@commitlint/types": "^12.1.4", + "lodash": "^4.17.19" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "node_modules/@commitlint/execute-rule": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.4.tgz", + "integrity": "sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v10" + } + }, + "node_modules/@commitlint/format": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.4.tgz", + "integrity": "sha512-h28ucMaoRjVvvgS6Bdf85fa/+ZZ/iu1aeWGCpURnQV7/rrVjkhNSjZwGlCOUd5kDV1EnZ5XdI7L18SUpRjs26g==", "dev": true, + "license": "MIT", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "@commitlint/types": "^12.1.4", + "chalk": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "node_modules/@commitlint/is-ignored": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.4.tgz", + "integrity": "sha512-uTu2jQU2SKvtIRVLOzMQo3KxDtO+iJ1p0olmncwrqy4AfPLgwoyCP2CiULq5M7xpR3+dE3hBlZXbZTQbD7ycIw==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "@commitlint/types": "^12.1.4", + "semver": "7.3.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "yallist": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "node_modules/@commitlint/is-ignored/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, + "license": "ISC", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@jest/pattern": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", - "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "node_modules/@commitlint/is-ignored/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, - "dependencies": { - "@types/node": "*", - "jest-regex-util": "30.0.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } + "license": "ISC" }, - "node_modules/@jest/pattern/node_modules/jest-regex-util": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", - "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "node_modules/@commitlint/lint": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.4.tgz", + "integrity": "sha512-1kZ8YDp4to47oIPFELUFGLiLumtPNKJigPFDuHt2+f3Q3IKdQ0uk53n3CPl4uoyso/Og/EZvb1mXjFR/Yce4cA==", "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^12.1.4", + "@commitlint/parse": "^12.1.4", + "@commitlint/rules": "^12.1.4", + "@commitlint/types": "^12.1.4" + }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=v10" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "node_modules/@commitlint/load": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.4.tgz", + "integrity": "sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==", "dev": true, + "license": "MIT", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", + "@commitlint/execute-rule": "^12.1.4", + "@commitlint/resolve-extends": "^12.1.4", + "@commitlint/types": "^12.1.4", "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" + "cosmiconfig": "^7.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=v10" } }, - "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "node_modules/@commitlint/load/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { "node": ">=10" } }, - "node_modules/@jest/reporters/node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/@commitlint/message": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.4.tgz", + "integrity": "sha512-6QhalEKsKQ/Y16/cTk5NH4iByz26fqws2ub+AinHPtM7Io0jy4e3rym9iE+TkEqiqWZlUigZnTwbPvRJeSUBaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v10" + } + }, + "node_modules/@commitlint/parse": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.4.tgz", + "integrity": "sha512-yqKSAsK2V4X/HaLb/yYdrzs6oD/G48Ilt0EJ2Mp6RJeWYxG14w/Out6JrneWnr/cpzemyN5hExOg6+TB19H/Lw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "@commitlint/types": "^12.1.4", + "conventional-changelog-angular": "^5.0.11", + "conventional-commits-parser": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/reporters/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/@commitlint/read": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.4.tgz", + "integrity": "sha512-TnPQSJgD8Aod5Xeo9W4SaYKRZmIahukjcCWJ2s5zb3ZYSmj6C85YD9cR5vlRyrZjj78ItLUV/X4FMWWVIS38Jg==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^12.1.4", + "@commitlint/types": "^12.1.4", + "fs-extra": "^9.0.0", + "git-raw-commits": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=v10" } }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/@commitlint/read/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@commitlint/resolve-extends": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.4.tgz", + "integrity": "sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==", "dev": true, + "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "node_modules/@commitlint/rules": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.4.tgz", + "integrity": "sha512-W8m6ZSjg7RuIsIfzQiFHa48X5mcPXeKT9yjBxVmjHvYfS2FDBf1VxCQ7vO0JTVIdV4ohjZ0eKg/wxxUuZHJAZg==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "@commitlint/ensure": "^12.1.4", + "@commitlint/message": "^12.1.4", + "@commitlint/to-lines": "^12.1.4", + "@commitlint/types": "^12.1.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "node_modules/@commitlint/to-lines": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.4.tgz", + "integrity": "sha512-TParumvbi8bdx3EdLXz2MaX+e15ZgoCqNUgqHsRLwyqLUTRbqCVkzrfadG1UcMQk8/d5aMbb327ZKG3Q4BRorw==", "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "node_modules/@commitlint/top-level": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.4.tgz", + "integrity": "sha512-d4lTJrOT/dXlpY+NIt4CUl77ciEzYeNVc0VFgUQ6VA+b1rqYD2/VWFjBlWVOrklxtSDeKyuEhs36RGrppEFAvg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" + "find-up": "^5.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=v10" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@commitlint/top-level/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "node_modules/@commitlint/top-level/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "node_modules/@commitlint/types": { + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.4.tgz", + "integrity": "sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=v10" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@csstools/css-calc": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", + "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.27.tgz", + "integrity": "sha512-sxP33Jwg1bviSUXAV43cVYdmjt2TLnLXNqCWl9xmxHawWVjGz/kEbdkr7F9pxJNBN2Mh+dq0crgItbW6tQvyow==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0" }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.10", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", - "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@csstools/media-query-list-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-5.0.0.tgz", + "integrity": "sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==", "dev": true, - "dependencies": { - "type-detect": "4.0.8" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@csstools/selector-resolve-nested": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz", + "integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==", "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.1.1" } }, - "node_modules/@toast-ui/editor": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@toast-ui/editor/-/editor-3.2.2.tgz", - "integrity": "sha512-ASX7LFjN2ZYQJrwmkUajPs7DRr9FsM1+RQ82CfTO0Y5ZXorBk1VZS4C2Dpxinx9kl55V4F8/A2h2QF4QMDtRbA==", - "dependencies": { - "dompurify": "^2.3.3", - "prosemirror-commands": "^1.1.9", - "prosemirror-history": "^1.1.3", - "prosemirror-inputrules": "^1.1.3", - "prosemirror-keymap": "^1.1.4", - "prosemirror-model": "^1.14.1", - "prosemirror-state": "^1.3.4", - "prosemirror-view": "^1.18.7" + "node_modules/@csstools/selector-specificity": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-6.0.0.tgz", + "integrity": "sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.1.1" } }, - "node_modules/@toast-ui/editor/node_modules/dompurify": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.9.tgz", - "integrity": "sha512-i6mvVmWN4xo9LrhCOZrDgSs9noW6nOahbrmzjRbPF36YPyj5Ue5lgok0MHDWkG7xzpWFO2OYttXdzM7rJxHvNA==" - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", - "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/@emnapi/core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" } }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "@babel/types": "^7.0.0" + "tslib": "^2.4.0" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "tslib": "^2.4.0" } }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "node_modules/@es-joy/jsdoccomment": { + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.46.0.tgz", + "integrity": "sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.28.2" + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~4.0.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/@types/dompurify": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.2.0.tgz", - "integrity": "sha512-Fgg31wv9QbLDA0SpTOXO3MaxySc4DKGLi8sna4/Utjo4r3ZRPdCt4UQee8BWr+Q5z21yifghREPJGYaEOEIACg==", - "deprecated": "This is a stub types definition. dompurify provides its own type definitions, so you do not need this installed.", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, + "license": "MIT", "dependencies": { - "dompurify": "*" + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "*" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" + "license": "MIT" + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@types/jest": { - "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "25.4.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.4.0.tgz", - "integrity": "sha512-9wLpoeWuBlcbBpOY3XmzSTG3oscB6xjBEEtn+pYXTfhyXhIxC5FsBer2KTopBlvKEiW9l13po9fq+SJY/5lkhw==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "undici-types": "~7.18.0" + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@types/stack-utils": { + "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "optional": true - }, - "node_modules/@types/yargs": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", - "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } + "license": "BSD-3-Clause" }, - "node_modules/@types/yargs-parser": { + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.2.tgz", + "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@toast-ui/editor": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@toast-ui/editor/-/editor-3.2.2.tgz", + "integrity": "sha512-ASX7LFjN2ZYQJrwmkUajPs7DRr9FsM1+RQ82CfTO0Y5ZXorBk1VZS4C2Dpxinx9kl55V4F8/A2h2QF4QMDtRbA==", + "license": "MIT", + "dependencies": { + "dompurify": "^2.3.3", + "prosemirror-commands": "^1.1.9", + "prosemirror-history": "^1.1.3", + "prosemirror-inputrules": "^1.1.3", + "prosemirror-keymap": "^1.1.4", + "prosemirror-model": "^1.14.1", + "prosemirror-state": "^1.3.4", + "prosemirror-view": "^1.18.7" + } + }, + "node_modules/@toast-ui/editor/node_modules/dompurify": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.9.tgz", + "integrity": "sha512-i6mvVmWN4xo9LrhCOZrDgSs9noW6nOahbrmzjRbPF36YPyj5Ue5lgok0MHDWkG7xzpWFO2OYttXdzM7rJxHvNA==", + "license": "(MPL-2.0 OR Apache-2.0)" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/dompurify": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", + "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/trusted-types": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", + "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.10.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", + "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001737", + "electron-to-chromium": "^1.5.211", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.2.tgz", + "integrity": "sha512-w+ZuRNmex9c1TR9RcsxbfTKCjSL0rh1WA5SABbrWprIHeNBdmyQLSYonlDy9gpD+63XT8DgZ/wNh1Smvc9WnJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "^2.0.7", + "@cacheable/utils": "^2.3.3", + "hookified": "^1.15.0", + "keyv": "^5.5.5", + "qified": "^0.6.0" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001737", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz", + "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/commitiquette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/commitiquette/-/commitiquette-1.2.1.tgz", + "integrity": "sha512-/rgn9sjboZa99/EFk3N29vnGkHoPmEfy/SyAlRgapbwbl5Eiht3xGk6+aThih8EhAKYTV2DyOoTiXE9ivOkTwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "change-case": "^4.1.2", + "conventional-commit-types": "^3.0.0", + "tslib": "^2.1.0", + "word-wrap": "^1.2.3" + }, + "peerDependencies": { + "@commitlint/cli": ">=12.0.1", + "commitizen": ">=4.2.4" + } + }, + "node_modules/commitizen": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.1.tgz", + "integrity": "sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.1.0", + "find-node-modules": "^2.1.2", + "find-root": "1.1.0", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", + "is-utf8": "^0.2.1", + "lodash": "4.17.21", + "minimist": "1.2.7", + "strip-bom": "4.0.0", + "strip-json-comments": "3.1.1" + }, + "bin": { + "commitizen": "bin/commitizen", + "cz": "bin/git-cz", + "git-cz": "bin/git-cz" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commitizen/node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commitizen/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/commitizen/node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true, + "license": "MIT" + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-commits-parser/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/conventional-commits-parser/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-commits-parser/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser/node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/conventional-commits-parser/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-commits-parser/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-commits-parser/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz", + "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.45.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.1.tgz", + "integrity": "sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-functions-list": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", + "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.2.tgz", + "integrity": "sha512-nBRWZtI77PBZQgcXMNqiIXVshiQOVLGSf2qX/WZfG8IQfMbeHUMXaBWQmiiSTmPJUflQxHjZjzAmuyO7tpL2Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "cssnano": "^7.0.4", + "jest-worker": "^29.7.0", + "postcss": "^8.4.40", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.1.tgz", + "integrity": "sha512-fm4D8ti0dQmFPeF8DXSAA//btEmqCOgAc/9Oa3C1LW94h5usNrJEfrON7b4FkPZgnDEn6OUs5NdxiJZmAtGOpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^7.0.9", + "lilconfig": "^3.1.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-preset-default": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.9.tgz", + "integrity": "sha512-tCD6AAFgYBOVpMBX41KjbvRh9c2uUjLXRyV7KHSIrwHiq5Z9o0TFfUCoM3TwVrRsRteN3sVXGNvjVNxYzkpTsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.1", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.4", + "postcss-convert-values": "^7.0.7", + "postcss-discard-comments": "^7.0.4", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.6", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.1", + "postcss-minify-params": "^7.0.4", + "postcss-minify-selectors": "^7.0.5", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.4", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.4", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.1.0", + "postcss-unique-selectors": "^7.0.4" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@commitlint/load": ">6.1.1" + } + }, + "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/cz-conventional-changelog/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cz-conventional-changelog/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.2.tgz", + "integrity": "sha512-6obghkliLdmKa56xdbLOpUZ43pAR6xFy1uOrxBaIDjT+yaRuuybLjGS9eVBoSR/UPU5fq3OXClEHLJNGvbxKpQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.211", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.211.tgz", + "integrity": "sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", + "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "48.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.11.0.tgz", + "integrity": "sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "~0.46.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.3.5", + "escape-string-regexp": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.6.0", + "parse-imports": "^2.1.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", + "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier/node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/eslint-plugin-prettier/node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", + "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/@ungap/structured-clone": { + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" } }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true, + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, + "license": "ISC", "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" + "reusify": "^1.0.4" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "bser": "2.1.1" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { - "@xtuc/long": "4.2.2" + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "node_modules/find-node-modules": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", + "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" + "findup-sync": "^4.0.0", + "merge": "^2.1.1" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", "dev": true, + "license": "MIT", + "dependencies": { + "semver-regex": "^3.1.2" + }, "engines": { - "node": ">=14.15.0" + "node": ">=10" }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "engines": { - "node": ">=14.15.0" + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "engines": { - "node": ">=14.15.0" + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "bin": { + "rimraf": "bin.js" }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { - "node": ">=10.13.0" + "node": ">=14" }, - "peerDependencies": { - "acorn": "^8.14.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==", "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^8.11.0" + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^4.0.1", + "cosmiconfig": "^8.2.0", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=14.21.3" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" } }, - "node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "^8.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">= 10.13.0" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "peerDependencies": { - "ajv": "^8.8.2" + "engines": { + "node": ">=10" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -2860,743 +8520,775 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true, + "license": "ISC" }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, + "license": "MIT", "dependencies": { - "possible-typed-array-names": "^1.0.0" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-loader": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "node_modules/get-tsconfig": { + "version": "4.13.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", + "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", "dev": true, + "license": "MIT", "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" + "resolve-pkg-maps": "^1.0.0" }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "node_modules/git-raw-commits/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "lru-cache": "^6.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.16.tgz", - "integrity": "sha512-xaVwwSfebXf0ooE11BJovZYKhFjIvQo7TsyVpETuIeH2JHv0k/T6Y5j22pPTvqYqmpkxdlPAJlyJ0tfOJAoMxw==", + "node_modules/git-raw-commits/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-define-polyfill-provider": "^0.6.7", - "semver": "^6.3.1" + "yallist": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=10" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "node_modules/git-raw-commits/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.7.tgz", - "integrity": "sha512-OTYbUlSwXhNgr4g6efMZgsO8//jA61P7ZbRX3iTT53VON8l+WQS8IAUEVo4a4cWknrg2W8Cj4gQhRYNCJ8GkAA==", + "node_modules/git-raw-commits/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.7" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=10" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", - "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "node_modules/git-raw-commits/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0 || ^8.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "node_modules/git-raw-commits/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", - "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", + "node_modules/git-raw-commits/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "node_modules/git-raw-commits/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, - "engines": { - "node": "*" - } + "license": "ISC" }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "node_modules/git-raw-commits/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "node_modules/git-raw-commits/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/git-raw-commits/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "node_modules/git-raw-commits/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" - }, + "license": "ISC", "bin": { - "browserslist": "cli.js" + "semver": "bin/semver.js" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=10" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/git-raw-commits/node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "dependencies": { - "node-int64": "^0.4.0" + "readable-stream": "^3.0.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "node_modules/git-raw-commits/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/git-raw-commits/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, + "license": "ISC" + }, + "node_modules/git-raw-commits/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=6" + "node": ">=10.13.0" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", "dev": true, + "license": "MIT", "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001778", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001778.tgz", - "integrity": "sha512-PN7uxFL+ExFJO61aVmP1aIEG4i9whQd4eoSCebav62UwDyp5OHh06zN4jqKSMePVgxHifCw1QJxdRkA1Pisekg==", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 0.4" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, "engines": { - "node": ">=6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "dev": true + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", "dependencies": { - "source-map": "~0.6.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">= 10.0" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/handlebars-loader": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/handlebars-loader/-/handlebars-loader-1.7.3.tgz", + "integrity": "sha512-dDb+8D51vE3OTSE2wuGPWRAegtsEuw8Mk8hCjtRu/pNcBfN5q+M8ZG3kVJxBuOeBrVElpFStipGmaxSBTRR1mQ==", "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "async": "^3.2.2", + "fastparse": "^1.0.0", + "loader-utils": "1.4.x", + "object-assign": "^4.1.0" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "handlebars": ">= 1.3.0 < 5" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "license": "MIT", "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", - "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", - "dev": true + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "es-define-property": "^1.0.0" }, - "engines": { - "node": ">=7.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { - "node": ">= 12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/core-js": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", - "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "hasInstallScript": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/core-js-compat": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz", - "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.28.1" + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "node_modules/hashery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.4.0.tgz", + "integrity": "sha512-Wn2i1In6XFxl8Az55kkgnFRiAlIAushzh26PTjL2AKtQcEfXrcLa7Hn5QOWGZEf3LU057P9TwwZjFyxfS1VuvQ==", "dev": true, + "license": "MIT", "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "hookified": "^1.14.0" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=20" } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "function-bind": "^1.1.2" }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "bin": { - "js-yaml": "bin/js-yaml.js" + "he": "bin/he" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "node_modules/hookified": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", + "dev": true, + "license": "MIT" }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.1" + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" }, "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" + "html-minifier-terser": "cli.js" }, "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" + "node": ">=12" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">= 12" } }, - "node_modules/css-declaration-sorter": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz", - "integrity": "sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==", + "node_modules/html-tags": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", + "integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=20.10" }, - "peerDependencies": { - "postcss": "^8.0.9" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/css-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz", - "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==", + "node_modules/html-webpack-plugin": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz", + "integrity": "sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==", "dev": true, + "license": "MIT", "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.40", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.6.3" + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" }, "engines": { - "node": ">= 18.12.0" + "node": ">=10.13.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/html-webpack-plugin" }, "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "webpack": "^5.27.0" + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" }, "peerDependenciesMeta": { "@rspack/core": { @@ -3607,608 +9299,552 @@ } } }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.4.tgz", - "integrity": "sha512-2iACis+P8qdLj1tHcShtztkGhCNIRUajJj7iX0IM9a5FA0wXGwjV8Nf6+HsBjBfb4LO8TTAVoetBbM54V6f3+Q==", + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "cssnano": "^7.0.4", - "jest-worker": "^30.0.5", - "postcss": "^8.4.40", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" - }, - "engines": { - "node": ">= 18.12.0" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" }, "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/css-tree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", - "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "node_modules/htmlparser2/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "dependencies": { - "mdn-data": "2.27.1", - "source-map-js": "^1.2.1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "node_modules/htmlparser2/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "engines": { - "node": ">= 6" - }, "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, + "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": ">=10.17.0" } }, - "node_modules/cssnano": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.3.tgz", - "integrity": "sha512-mLFHQAzyapMVFLiJIn7Ef4C2UCEvtlTlbyILR6B5ZsUAV3D/Pa761R5uC1YPhyBkRd3eqaDm2ncaNrD7R4mTRg==", + "node_modules/husky": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", + "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", "dev": true, + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "cssnano-preset-default": "^7.0.11", - "lilconfig": "^3.1.3" + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^7.0.0", + "find-versions": "^4.0.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "bin": { + "husky-run": "bin/run.js", + "husky-upgrade": "lib/upgrader/bin.js" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": ">=10" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.32" - } - }, - "node_modules/cssnano-preset-default": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.11.tgz", - "integrity": "sha512-waWlAMuCakP7//UCY+JPrQS1z0OSLeOXk2sKWJximKWGupVxre50bzPlvpbUwZIDylhf/ptf0Pk+Yf7C+hoa3g==", - "dev": true, - "dependencies": { - "browserslist": "^4.28.1", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^5.0.1", - "postcss-calc": "^10.1.1", - "postcss-colormin": "^7.0.6", - "postcss-convert-values": "^7.0.9", - "postcss-discard-comments": "^7.0.6", - "postcss-discard-duplicates": "^7.0.2", - "postcss-discard-empty": "^7.0.1", - "postcss-discard-overridden": "^7.0.1", - "postcss-merge-longhand": "^7.0.5", - "postcss-merge-rules": "^7.0.8", - "postcss-minify-font-values": "^7.0.1", - "postcss-minify-gradients": "^7.0.1", - "postcss-minify-params": "^7.0.6", - "postcss-minify-selectors": "^7.0.6", - "postcss-normalize-charset": "^7.0.1", - "postcss-normalize-display-values": "^7.0.1", - "postcss-normalize-positions": "^7.0.1", - "postcss-normalize-repeat-style": "^7.0.1", - "postcss-normalize-string": "^7.0.1", - "postcss-normalize-timing-functions": "^7.0.1", - "postcss-normalize-unicode": "^7.0.6", - "postcss-normalize-url": "^7.0.1", - "postcss-normalize-whitespace": "^7.0.1", - "postcss-ordered-values": "^7.0.2", - "postcss-reduce-initial": "^7.0.6", - "postcss-reduce-transforms": "^7.0.1", - "postcss-svgo": "^7.1.1", - "postcss-unique-selectors": "^7.0.5" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" - } - }, - "node_modules/cssnano-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", - "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", - "dev": true, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "url": "https://opencollective.com/husky" } }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "node_modules/husky/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } + "license": "MIT" }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "node_modules/husky/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "node_modules/husky/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "node_modules/husky/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" + "p-locate": "^5.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/inspect-js" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "node_modules/husky/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/husky/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "find-up": "^5.0.0" }, "engines": { - "node": ">=6.0" + "node": ">=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "engines": { + "node": ">=0.10.0" } }, - "node_modules/dedent": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", - "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/diff": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", "dev": true, - "engines": { - "node": ">=0.3.1" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.8.19" } }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "dependencies": { - "utila": "~0.4" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] + "license": "ISC" }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "license": "MIT", "dependencies": { - "domelementtype": "^2.2.0" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": ">=12.0.0" } }, - "node_modules/dompurify": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", - "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "engines": { + "node": ">= 0.4" } }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "license": "MIT", + "engines": { + "node": ">=10.13.0" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.307", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", - "integrity": "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==", - "dev": true + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, "engines": { - "node": ">= 4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/enhanced-resolve": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", - "integrity": "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==", + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" } }, - "node_modules/envinfo": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", - "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, + "license": "ISC", "bin": { - "envinfo": "dist/cli.js" + "semver": "bin/semver.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -4217,66 +9853,99 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", - "dev": true + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/es-object-atoms": { + "node_modules/is-finalizationregistry": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-set-tostringtag": { + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -4285,256 +9954,286 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.12.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.2.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { - "node": ">=0.8.x" + "node": ">=0.10.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "call-bound": "^1.0.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ] + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, "engines": { - "node": ">= 4.9.1" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { - "bser": "2.1.1" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, + "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "text-extensions": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" + "which-typed-array": "^1.1.16" }, "engines": { - "node": ">=14.16" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true, - "bin": { - "flat": "cli.js" - } + "license": "MIT" }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, - "dependencies": { - "is-callable": "^1.2.7" - }, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4542,3798 +10241,4364 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz", - "integrity": "sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.16.7", - "chalk": "^4.1.2", - "chokidar": "^4.0.1", - "cosmiconfig": "^8.2.0", - "deepmerge": "^4.2.2", - "fs-extra": "^10.0.0", - "memfs": "^3.4.1", - "minimatch": "^3.0.4", - "node-abort-controller": "^3.0.1", - "schema-utils": "^3.1.1", - "semver": "^7.3.5", - "tapable": "^2.2.1" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=14.21.3" + "node": ">= 0.4" }, - "peerDependencies": { - "typescript": ">3.6.0", - "webpack": "^5.11.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "engines": { + "node": ">=10" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { "node": ">=10" } }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/fs-monkey": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", - "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", - "dev": true + "node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/handlebars-loader": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/handlebars-loader/-/handlebars-loader-1.7.3.tgz", - "integrity": "sha512-dDb+8D51vE3OTSE2wuGPWRAegtsEuw8Mk8hCjtRu/pNcBfN5q+M8ZG3kVJxBuOeBrVElpFStipGmaxSBTRR1mQ==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { - "async": "^3.2.2", - "fastparse": "^1.0.0", - "loader-utils": "1.4.x", - "object-assign": "^4.1.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, - "peerDependencies": { - "handlebars": ">= 1.3.0 < 5" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/html-webpack-plugin": { - "version": "5.6.6", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz", - "integrity": "sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } + "license": "MIT" }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "engines": { - "node": ">=10.17.0" + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=12.0.0" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, + "license": "MIT", "bin": { - "import-local-fixture": "fixtures/cli.js" + "json5": "lib/cli.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=8" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, - "engines": { - "node": ">=0.8.19" - } + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" + "json-buffer": "3.0.1" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "node_modules/known-css-properties": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true, + "license": "MIT" }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "node_modules/libphonenumber-js": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.13.7.tgz", + "integrity": "sha512-rvr3HIMdOgzhz1RFGjftji+wjoAFlzhqCNqJOU/MKTZQ8d9NZxAR/tI+0weDicyoucqVR0U1GCniqHJ0f8aM2A==", + "license": "MIT" + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/antonk52" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "MIT" + }, + "node_modules/lint-staged": { + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", + "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "cli-truncate": "^2.1.0", + "commander": "^6.2.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.2.0", + "dedent": "^0.7.0", + "enquirer": "^2.3.6", + "execa": "^4.1.0", + "listr2": "^3.2.2", + "log-symbols": "^4.0.0", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "string-argv": "0.3.1", + "stringify-object": "^3.3.0" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/lint-staged" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/lint-staged/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "node_modules/lint-staged/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "node_modules/lint-staged/node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "node_modules/lint-staged/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" + "pump": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/lint-staged/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=8.12.0" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, "engines": { - "node": ">=6" + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } } }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=6.11.5" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4.0.0" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "node_modules/longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", "dev": true, - "dependencies": { - "which-typed-array": "^1.1.16" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-weakmap": { + "node_modules/lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "tslib": "^2.0.3" } }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { - "call-bound": "^1.0.3" + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "node_modules/marked": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.4.tgz", + "integrity": "sha512-NOmVMM+KAokHMvjWmC5N/ZOvgmSWuqJB8FoYI019j4ogb/PeRMKoKIjReZ2w3376kkA8dSJIP8uD993Kxc0iRQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/mathml-tag-names": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz", + "integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", "dev": true, + "license": "CC0-1.0" + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "license": "Unlicense", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "fs-monkey": "^1.0.4" }, "engines": { - "node": ">=8" + "node": ">= 4.0.0" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">= 0.10.0" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">= 0.6" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "mime-db": "1.52.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.6" } }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=4" } }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "node_modules/mini-css-extract-plugin": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 12.13.0" }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "*" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, + "license": "ISC", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "funding": { + "url": "https://opencollective.com/napi-postinstall" } }, - "node_modules/jest-haste-map/node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-haste-map/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "engines": { + "node": ">= 4" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "color-convert": "^1.9.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "color-name": "1.1.3" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "node": ">=4" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/npm-run-all/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "license": "ISC" }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/npm-run-all/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "node_modules/npm-run-all/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "pify": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-runner/node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/npm-run-all/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "has-flag": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "which": "bin/which" } }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "path-key": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "boolbase": "^1.0.0" }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-worker": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", - "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*", - "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.3.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.1.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker/node_modules/@jest/schemas": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", - "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, + "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.34.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-worker/node_modules/@jest/types": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", - "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/pattern": "30.0.1", - "@jest/schemas": "30.0.5", - "@types/istanbul-lib-coverage": "^2.0.6", - "@types/istanbul-reports": "^3.0.4", - "@types/node": "*", - "@types/yargs": "^17.0.33", - "chalk": "^4.1.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker/node_modules/@sinclair/typebox": { - "version": "0.34.48", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz", - "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==", - "dev": true - }, - "node_modules/jest-worker/node_modules/ci-info": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", - "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/jest-worker/node_modules/jest-util": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", - "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "30.3.0", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "license": "ISC", + "dependencies": { + "wrappy": "1" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, + "license": "MIT", "bin": { - "js-yaml": "bin/js-yaml.js" + "opencollective-postinstall": "index.js" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "bin": { - "json5": "lib/cli.js" + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" + "node": ">=10" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "license": "MIT" + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/leven": { + "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": ">=14" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/antonk52" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/load-json-file/node_modules/parse-json": { + "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "license": "BlueOak-1.0.0" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "callsites": "^3.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=6" } }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/parse-imports": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", "dev": true, + "license": "Apache-2.0 AND MIT", "dependencies": { - "minimist": "^1.2.0" + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">= 18" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, "dependencies": { + "no-case": "^3.0.4", "tslib": "^2.0.3" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^3.0.2" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/make-dir": { + "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "semver": "^7.5.3" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=10" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", "dev": true, - "bin": { - "semver": "bin/semver.js" - }, + "license": "ISC", "engines": { - "node": ">=10" + "node": "20 || >=22" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "dependencies": { - "tmpl": "1.0.5" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/marked": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.4.tgz", - "integrity": "sha512-NOmVMM+KAokHMvjWmC5N/ZOvgmSWuqJB8FoYI019j4ogb/PeRMKoKIjReZ2w3376kkA8dSJIP8uD993Kxc0iRQ==", - "bin": { - "marked": "bin/marked.js" - }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 20" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, "engines": { - "node": ">= 0.4" + "node": ">=0.10" } }, - "node_modules/mdn-data": { - "version": "2.27.1", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", - "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", - "dev": true - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "dependencies": { - "fs-monkey": "^1.0.4" - }, + "license": "MIT", "engines": { - "node": ">= 4.0.0" + "node": ">=4" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.10.0" + "node": ">= 6" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "find-up": "^6.3.0" }, "engines": { - "node": ">=8.6" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mini-css-extract-plugin": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.1.tgz", - "integrity": "sha512-k7G3Y5QOegl380tXmZ68foBRRjE9Ljavx835ObdvmZjQ639izvZD8CS7BkWw1qKPPzHsGL/JDhl0uyU1zc2rJw==", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" + "p-limit": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT", "engines": { - "node": "*" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" + "license": "MIT", + "dependencies": { + "semver-compare": "^1.0.0" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], - "bin": { - "nanoid": "bin/nanoid.cjs" + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^10 || ^12 || >=14" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "node_modules/postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", "dev": true, + "license": "MIT", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" } }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", - "dev": true - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "node_modules/postcss-colormin": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.4.tgz", + "integrity": "sha512-ziQuVzQZBROpKpfeDwmrG+Vvlr0YWmY/ZAk99XD+mGEBuEojoFekL41NCsdhyNUtZI7DPOoIWIR7vQQK9xwluw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.1", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } }, - "node_modules/node-releases": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", - "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", - "dev": true + "node_modules/postcss-convert-values": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.7.tgz", + "integrity": "sha512-HR9DZLN04Xbe6xugRH6lS4ZQH2zm/bFh/ZyRkpedZozhvh+awAfbA0P36InO4fZfDhvYfNJeNvlTf1sjwGbw/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/postcss-discard-comments": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.4.tgz", + "integrity": "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==", "dev": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/postcss-discard-overridden": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true, + "license": "MIT" + }, + "node_modules/postcss-merge-longhand": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.5" }, "engines": { - "node": ">= 4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/postcss-merge-rules": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.6.tgz", + "integrity": "sha512-2jIPT4Tzs8K87tvgCpSukRQ2jjd+hH6Bb8rEEOUDmmhOeTcqDg5fEFK8uKIu+Pvc3//sm3Uu6FRqfyv7YF7+BQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "browserslist": "^4.25.1", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.0" }, "engines": { - "node": ">=4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/postcss-minify-font-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/postcss-minify-gradients": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", + "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "colord": "^2.9.3", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "node_modules/postcss-minify-params": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.4.tgz", + "integrity": "sha512-3OqqUddfH8c2e7M35W6zIwv7jssM/3miF9cbCSb1iJiWvtguQjlxZGIHK9JRmc8XAKmE2PFGtHSM7g/VcW97sw==", "dev": true, + "license": "MIT", "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "browserslist": "^4.25.1", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=4.8" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/postcss-minify-selectors": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", + "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.0" + }, "engines": { - "node": ">=0.8.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, + "license": "ISC", "engines": { - "node": ">=4" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, "engines": { - "node": ">=4" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { - "shebang-regex": "^1.0.0" + "icss-utils": "^5.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "node_modules/postcss-normalize-charset": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/postcss-normalize-display-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "bin": { - "which": "bin/which" + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/postcss-normalize-positions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=8" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", "dev": true, + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0" + "postcss-value-parser": "^4.2.0" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "node_modules/postcss-normalize-string": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">= 0.4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">= 0.4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "node_modules/postcss-normalize-unicode": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.4.tgz", + "integrity": "sha512-LvIURTi1sQoZqj8mEIE8R15yvM+OhbR1avynMtI9bUzj5gGKR/gfZFd8O7VMj0QgJaIFzxDwxGl/ASMYAkqO8g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" + "browserslist": "^4.25.1", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/postcss-normalize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", "dev": true, + "license": "MIT", "dependencies": { - "wrappy": "1" + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=6" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/orderedmap": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", - "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==" - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "node_modules/postcss-ordered-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", "dev": true, + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/postcss-reduce-initial": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.4.tgz", + "integrity": "sha512-rdIC9IlMBn7zJo6puim58Xd++0HdbvHeHaPgXsimMfG1ijC5A9ULvNLSE0rUKVJOvNMcwewW4Ga21ngyJjY/+Q==", "dev": true, + "license": "MIT", "dependencies": { - "yocto-queue": "^0.1.0" + "browserslist": "^4.25.1", + "caniuse-api": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^18.12.0 || ^20.9.0 || >=22.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/postcss-reduce-transforms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=8" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, + "license": "MIT", "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/postcss-styled-syntax": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/postcss-styled-syntax/-/postcss-styled-syntax-0.7.1.tgz", + "integrity": "sha512-V5Iy8JztqXOKnTojdytF8IJ3zDXyVR927XftBPinJa3TnKdChGvGzUNEYlNuDtR+iqpuFkwJMgZdaJarYfGFCg==", "dev": true, + "license": "MIT", "dependencies": { - "callsites": "^3.0.0" + "typescript": "^5.7.3" + }, + "engines": { + "node": ">=14.17" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "postcss": "^8.5.1" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/postcss-svgo": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.0.tgz", + "integrity": "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "postcss-value-parser": "^4.2.0", + "svgo": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^18.12.0 || ^20.9.0 || >= 18" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "node_modules/postcss-syntax": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", + "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "license": "MIT", + "peerDependencies": { + "postcss": ">=5.0.0" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/postcss-unique-selectors": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", + "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, "engines": { - "node": ">=8" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", - "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, "engines": { - "node": "20 || >=22" + "node": ">=6.0.0" } }, - "node_modules/path-type": { + "node_modules/pretty-error": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" } }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": ">=0.10" + "node": ">= 6" } }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" + "node_modules/prosemirror-commands": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.10.2" } }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, - "engines": { - "node": ">= 6" + "node_modules/prosemirror-history": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", + "license": "MIT", + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" } }, - "node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dev": true, + "node_modules/prosemirror-inputrules": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", + "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", + "license": "MIT", "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, + "node_modules/prosemirror-keymap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", + "license": "MIT", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, + "node_modules/prosemirror-model": { + "version": "1.25.4", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", + "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", + "license": "MIT", "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.11.0.tgz", + "integrity": "sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.41.6", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.6.tgz", + "integrity": "sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==", + "license": "MIT", + "dependencies": { + "prosemirror-model": "^1.20.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, + "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" }, - "node_modules/pkg-dir/node_modules/yocto-queue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", - "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", "dev": true, + "license": "MIT", "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "node_modules/qified": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.6.0.tgz", + "integrity": "sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==", "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.14.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=20" } }, - "node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" + "type": "patreon", + "url": "https://www.patreon.com/feross" }, { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "consulting", + "url": "https://feross.org/support" } ], - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=8" } }, - "node_modules/postcss-calc": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", - "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^18.12 || ^20.9 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.38" + "safe-buffer": "^5.1.0" } }, - "node_modules/postcss-colormin": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.6.tgz", - "integrity": "sha512-oXM2mdx6IBTRm39797QguYzVEWzbdlFiMNfq88fCCN1Wepw3CYmJ/1/Ifa/KjWo+j5ZURDl2NTldLJIw51IeNQ==", + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">= 6" } }, - "node_modules/postcss-convert-values": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.9.tgz", - "integrity": "sha512-l6uATQATZaCa0bckHV+r6dLXfWtUBKXxO3jK+AtxxJJtgMPD+VhhPCCx51I4/5w8U5uHV67g3w7PXj+V3wlMlg==", + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, - "dependencies": { - "browserslist": "^4.28.1", - "postcss-value-parser": "^4.2.0" - }, + "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": ">= 14.18.0" }, - "peerDependencies": { - "postcss": "^8.4.32" + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/postcss-discard-comments": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.6.tgz", - "integrity": "sha512-Sq+Fzj1Eg5/CPf1ERb0wS1Im5cvE2gDXCE+si4HCn1sf+jpQZxDI4DXEp8t77B/ImzDceWE2ebJQFXdqZ6GRJw==", + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.1.1" + "resolve": "^1.20.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">= 10.13.0" } }, - "node_modules/postcss-discard-duplicates": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", - "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" }, - "peerDependencies": { - "postcss": "^8.4.32" + "engines": { + "node": ">=8" } }, - "node_modules/postcss-discard-empty": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", - "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.4.32" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-discard-overridden": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", - "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" - } + "license": "MIT" }, - "node_modules/postcss-merge-longhand": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", - "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^7.0.5" + "regenerate": "^1.4.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=4" } }, - "node_modules/postcss-merge-rules": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.8.tgz", - "integrity": "sha512-BOR1iAM8jnr7zoQSlpeBmCsWV5Uudi/+5j7k05D0O/WP3+OFMPD86c1j/20xiuRtyt45bhxw/7hnhZNhW2mNFA==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.28.1", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^5.0.1", - "postcss-selector-parser": "^7.1.1" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.4.32" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-minify-font-values": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", - "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" }, - "peerDependencies": { - "postcss": "^8.4.32" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/postcss-minify-gradients": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", - "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^5.0.1", - "postcss-value-parser": "^4.2.0" + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=6" } }, - "node_modules/postcss-minify-params": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.6.tgz", - "integrity": "sha512-YOn02gC68JijlaXVuKvFSCvQOhTpblkcfDre2hb/Aaa58r2BIaK4AtE/cyZf2wV7YKAG+UlP9DT+By0ry1E4VQ==", + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true, - "dependencies": { - "browserslist": "^4.28.1", - "cssnano-utils": "^5.0.1", - "postcss-value-parser": "^4.2.0" - }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">= 0.10" } }, - "node_modules/postcss-minify-selectors": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.6.tgz", - "integrity": "sha512-lIbC0jy3AAwDxEgciZlBullDiMBeBCT+fz5G8RcA9MWqh/hfUkpOI3vNDUNEZHgokaoiv0juB9Y8fGcON7rU/A==", + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, "dependencies": { - "cssesc": "^3.0.0", - "postcss-selector-parser": "^7.1.1" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "dependencies": { - "postcss-selector-parser": "^7.0.0" + "domelementtype": "^2.2.0" }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">= 4" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/postcss-normalize-charset": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", - "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/postcss-normalize-display-values": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", - "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, + "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=0.10.0" } }, - "node_modules/postcss-normalize-positions": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", - "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, + "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=0.10.0" } }, - "node_modules/postcss-normalize-repeat-style": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", - "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.4.32" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-normalize-string": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", - "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" + "resolve-from": "^5.0.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=8" } }, - "node_modules/postcss-normalize-timing-functions": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", - "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=0.10.0" } }, - "node_modules/postcss-normalize-unicode": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.6.tgz", - "integrity": "sha512-z6bwTV84YW6ZvvNoaNLuzRW4/uWxDKYI1iIDrzk6D2YTL7hICApy+Q1LP6vBEsljX8FM7YSuV9qI79XESd4ddQ==", + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "dependencies": { - "browserslist": "^4.28.1", - "postcss-value-parser": "^4.2.0" - }, + "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=8" } }, - "node_modules/postcss-normalize-url": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", - "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", "dev": true, + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" + "global-dirs": "^0.1.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=8" } }, - "node_modules/postcss-normalize-whitespace": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", - "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=10" } }, - "node_modules/postcss-ordered-values": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", - "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { - "cssnano-utils": "^5.0.1", - "postcss-value-parser": "^4.2.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=8" } }, - "node_modules/postcss-reduce-initial": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.6.tgz", - "integrity": "sha512-G6ZyK68AmrPdMB6wyeA37ejnnRG2S8xinJrZJnOv+IaRKf6koPAVbQsiC7MfkmXaGmF1UO+QCijb27wfpxuRNg==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, - "dependencies": { - "browserslist": "^4.28.1", - "caniuse-api": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/postcss-reduce-transforms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", - "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, + "license": "ISC", "dependencies": { - "postcss-value-parser": "^4.2.0" + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "20 || >=22" }, - "peerDependencies": { - "postcss": "^8.4.32" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", "dev": true, + "license": "ISC", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=4" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/postcss-styled-syntax": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/postcss-styled-syntax/-/postcss-styled-syntax-0.7.1.tgz", - "integrity": "sha512-V5Iy8JztqXOKnTojdytF8IJ3zDXyVR927XftBPinJa3TnKdChGvGzUNEYlNuDtR+iqpuFkwJMgZdaJarYfGFCg==", + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", "dev": true, + "license": "ISC", "dependencies": { - "typescript": "^5.7.3" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=14.17" + "node": "20 || >=22" }, - "peerDependencies": { - "postcss": "^8.5.1" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/postcss-svgo": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.1.tgz", - "integrity": "sha512-zU9H9oEDrUFKa0JB7w+IYL7Qs9ey1mZyjhbf0KLxwJDdDRtoPvCmaEfknzqfHj44QS9VD6c5sJnBAVYTLRg/Sg==", + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "license": "MIT" + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": ">=0.12.0" } }, - "node_modules/postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "peerDependencies": { - "postcss": ">=5.0.0" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "node_modules/postcss-unique-selectors": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.5.tgz", - "integrity": "sha512-3QoYmEt4qg/rUWDn6Tc8+ZVPmbp4G1hXDtCNWDx0st8SjtCbRcxRXDDM1QrEiXGG3A45zscSJFb4QH90LViyxg==", + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "postcss-selector-parser": "^7.1.1" - }, - "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "tslib": "^2.1.0" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" }, "engines": { - "node": ">=10.13.0" + "node": ">=0.4" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "es-errors": "^1.3.0", + "isarray": "^2.0.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prosemirror-commands": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", - "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.10.2" - } + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" }, - "node_modules/prosemirror-history": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", - "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", - "dependencies": { - "prosemirror-state": "^1.2.2", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.31.0", - "rope-sequence": "^1.3.0" - } + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC" }, - "node_modules/prosemirror-inputrules": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", - "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "license": "MIT", "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/prosemirror-keymap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", - "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", - "dependencies": { - "prosemirror-state": "^1.0.0", - "w3c-keyname": "^2.2.0" + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/prosemirror-model": { - "version": "1.25.4", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", - "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", - "dependencies": { - "orderedmap": "^2.0.0" + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver-regex": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", + "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prosemirror-state": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", - "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "license": "MIT", "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.27.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" } }, - "node_modules/prosemirror-transform": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.11.0.tgz", - "integrity": "sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "prosemirror-model": "^1.21.0" + "randombytes": "^2.1.0" } }, - "node_modules/prosemirror-view": { - "version": "1.41.6", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.6.tgz", - "integrity": "sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", "dependencies": { - "prosemirror-model": "^1.20.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "^5.1.0" + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/read-pkg/node_modules/path-type": { + "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">= 0.4" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { - "resolve": "^1.20.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" + "object-inspect": "^1.13.3" }, "engines": { "node": ">= 0.4" @@ -8342,36 +14607,37 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", - "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", "dependencies": { - "regenerate": "^1.4.2" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -8380,255 +14646,283 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpu-core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", - "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.2", - "regjsgen": "^0.8.0", - "regjsparser": "^0.13.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.2.1" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true + "node_modules/slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", + "dev": true, + "license": "ISC" }, - "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "license": "MIT", "dependencies": { - "jsesc": "~3.1.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=8" } }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, + "license": "MIT", "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, "engines": { "node": ">=10" } }, - "node_modules/rimraf": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", - "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.1" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" }, "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "node_modules/rimraf/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.6.19" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", - "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.2" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rope-sequence": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", - "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==" - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=0.4" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8637,15 +14931,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8654,484 +14949,604 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sax": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", - "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", - "dev": true, - "engines": { - "node": ">=11.0.0" - } - }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=4" } }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/stringify-object/node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "randombytes": "^2.1.0" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" + "min-indent": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" } }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/stylehacks": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.6.tgz", + "integrity": "sha512-iitguKivmsueOmTO0wmxURXBP8uqOO+zikLGZ7Mm9e/94R4w5T999Js2taS/KBOnQ/wdC3jN3vNSrkGDrlnqQg==", "dev": true, + "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "browserslist": "^4.25.1", + "postcss-selector-parser": "^7.1.0" }, "engines": { - "node": ">=8" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/stylelint": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.3.0.tgz", + "integrity": "sha512-1POV91lcEMhj6SLVaOeA0KlS9yattS+qq+cyWqP/nYzWco7K5jznpGH1ExngvPlTM9QF1Kjd2bmuzJu9TH2OcA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^3.1.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-syntax-patches-for-csstree": "^1.0.26", + "@csstools/css-tokenizer": "^4.0.0", + "@csstools/media-query-list-parser": "^5.0.0", + "@csstools/selector-resolve-nested": "^4.0.0", + "@csstools/selector-specificity": "^6.0.0", + "balanced-match": "^3.0.1", + "colord": "^2.9.3", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.1.0", + "debug": "^4.4.3", + "fast-glob": "^3.3.3", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^11.1.2", + "global-modules": "^2.0.0", + "globby": "^16.1.0", + "globjoin": "^0.1.4", + "html-tags": "^5.1.0", + "ignore": "^7.0.5", + "import-meta-resolve": "^4.2.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.37.0", + "mathml-tag-names": "^4.0.0", + "meow": "^14.0.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.5.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.1.1", + "postcss-value-parser": "^4.2.0", + "string-width": "^8.1.1", + "supports-hyperlinks": "^4.4.0", + "svg-tags": "^1.0.0", + "table": "^6.9.0", + "write-file-atomic": "^7.0.0" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, "engines": { - "node": ">=8" + "node": ">=20.19.0" } }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "node_modules/stylelint-config-recommended": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz", + "integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "stylelint": "^17.0.0" } }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "node_modules/stylelint-config-recommended-scss": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-17.0.0.tgz", + "integrity": "sha512-VkVD9r7jfUT/dq3mA3/I1WXXk2U71rO5wvU2yIil9PW5o1g3UM7Xc82vHmuVJHV7Y8ok5K137fmW5u3HbhtTOA==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" + "postcss-scss": "^4.0.9", + "stylelint-config-recommended": "^18.0.0", + "stylelint-scss": "^7.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=20" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^17.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "node_modules/stylelint-config-standard": { + "version": "40.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-40.0.0.tgz", + "integrity": "sha512-EznGJxOUhtWck2r6dJpbgAdPATIzvpLdK9+i5qPd4Lx70es66TkBPljSg4wN3Qnc6c4h2n+WbUrUynQ3fanjHw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "stylelint-config-recommended": "^18.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "stylelint": "^17.0.0" } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/stylelint-config-standard-scss": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-17.0.0.tgz", + "integrity": "sha512-uLJS6xgOCBw5EMsDW7Ukji8l28qRoMnkRch15s0qwZpskXvWt9oPzMmcYM307m9GN4MxuWLsQh4I6hU9yI53cQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" + "stylelint-config-recommended-scss": "^17.0.0", + "stylelint-config-standard": "^40.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=20" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^17.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/stylelint-scss": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-7.0.0.tgz", + "integrity": "sha512-H88kCC+6Vtzj76NsC8rv6x/LW8slBzIbyeSjsKVlS+4qaEJoDrcJR4L+8JdrR2ORdTscrBzYWiiT2jq6leYR1Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" + "css-tree": "^3.0.1", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.37.0", + "mdn-data": "^2.25.0", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-selector-parser": "^7.1.1", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">= 0.4" + "node": ">=20.19.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "stylelint": "^16.8.2 || ^17.0.0" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "node_modules/stylelint-scss/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "node_modules/stylelint-scss/node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true, + "license": "CC0-1.0" }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/stylelint/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/stylelint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, + "license": "Python-2.0" + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-3.0.1.tgz", + "integrity": "sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 16" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz", + "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", "dev": true, + "license": "MIT", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "flat-cache": "^6.1.20" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/stylelint/node_modules/flat-cache": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.20.tgz", + "integrity": "sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ==", "dev": true, + "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "cacheable": "^2.3.2", + "flatted": "^3.3.3", + "hookified": "^1.15.0" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", - "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "node_modules/stylelint/node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", "dependencies": { - "escape-string-regexp": "^2.0.0" + "global-prefix": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "node_modules/stylelint/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "node_modules/stylelint/node_modules/globby": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz", + "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==", "dev": true, + "license": "MIT", "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" }, "engines": { - "node": ">=10" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/stylelint/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 4" } }, - "node_modules/string.prototype.padend": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", - "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "node_modules/stylelint/node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "node_modules/stylelint/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" + "argparse": "^2.0.1" }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-14.0.0.tgz", + "integrity": "sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=20" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, + "license": "ISC", "engines": { - "node": ">= 0.4" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/stylelint/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/stylelint/node_modules/string-width": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.1.tgz", + "integrity": "sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/stylelint/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/stylelint/node_modules/unicorn-magic": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/stylelint/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "which": "bin/which" } }, - "node_modules/stylehacks": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.8.tgz", - "integrity": "sha512-I3f053GBLIiS5Fg6OMFhq/c+yW+5Hc2+1fgq7gElDMMSqwlRb3tBf2ef6ucLStYRpId4q//bQO1FjcyNyy4yDQ==", + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.0.tgz", + "integrity": "sha512-YnlPC6JqnZl6aO4uRc+dx5PHguiR9S6WeoLtpxNT9wIG+BDya7ZNE1q7KOjVgaA73hKhKLpVPgJ5QA9THQ5BRg==", "dev": true, + "license": "ISC", "dependencies": { - "browserslist": "^4.28.1", - "postcss-selector-parser": "^7.1.1" + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" - }, - "peerDependencies": { - "postcss": "^8.4.32" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/supports-color": { @@ -9139,6 +15554,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9146,11 +15562,55 @@ "node": ">=8" } }, + "node_modules/supports-hyperlinks": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.4.0.tgz", + "integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^5.0.1", + "supports-color": "^10.2.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", + "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9158,11 +15618,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, "node_modules/svgo": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", - "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", + "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", @@ -9170,7 +15637,7 @@ "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", - "sax": "^1.5.0" + "sax": "^1.4.1" }, "bin": { "svgo": "bin/svgo.js" @@ -9183,91 +15650,64 @@ "url": "https://opencollective.com/svgo" } }, - "node_modules/svgo/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "node_modules/synckit": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.3.tgz", + "integrity": "sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==", "dev": true, + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "engines": { + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "url": "https://opencollective.com/unts" } }, - "node_modules/svgo/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "domelementtype": "^2.3.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": ">=10.0.0" } }, - "node_modules/svgo/node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "engines": { - "node": ">=0.12" + "node": ">=10" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -9277,13 +15717,14 @@ } }, "node_modules/terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", + "acorn": "^8.14.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -9295,14 +15736,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", - "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -9332,6 +15775,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -9346,6 +15790,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9360,13 +15805,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/terser/node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -9377,6 +15824,7 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -9386,17 +15834,96 @@ "node": ">=8" } }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -9404,47 +15931,63 @@ "node": ">=8.0" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/tslib": { @@ -9453,11 +15996,48 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9467,6 +16047,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -9479,6 +16060,7 @@ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -9493,6 +16075,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -9512,6 +16095,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -9533,6 +16117,7 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -9549,10 +16134,11 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9566,6 +16152,7 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -9579,6 +16166,7 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -9593,16 +16181,18 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - "dev": true + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9612,6 +16202,7 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -9621,19 +16212,21 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", - "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", - "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9643,14 +16236,50 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -9666,6 +16295,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -9677,11 +16307,32 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -9690,7 +16341,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/utila": { "version": "0.4.0", @@ -9698,17 +16350,12 @@ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -9723,30 +16370,45 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, + "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, "node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -9755,11 +16417,22 @@ "node": ">=10.13.0" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/webpack": { - "version": "5.105.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz", - "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", + "version": "5.101.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", + "integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==", "dev": true, + "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -9767,25 +16440,25 @@ "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.16.0", + "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", - "browserslist": "^4.28.1", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.20.0", - "es-module-lexer": "^2.0.0", + "enhanced-resolve": "^5.17.3", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.3.1", + "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.17", - "watchpack": "^2.5.1", - "webpack-sources": "^3.3.4" + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -9808,6 +16481,7 @@ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", @@ -9853,6 +16527,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } @@ -9862,6 +16537,7 @@ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -9872,10 +16548,11 @@ } }, "node_modules/webpack-sources": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", - "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -9885,6 +16562,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9900,6 +16578,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -9919,6 +16598,7 @@ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -9946,6 +16626,7 @@ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -9959,11 +16640,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/which-typed-array": { "version": "1.1.20", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -9984,19 +16676,32 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -10013,13 +16718,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -10033,6 +16740,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -10041,13 +16749,25 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -10066,24 +16786,17 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 812cef2..6a63e9a 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,16 @@ "build:widget": "cross-env BUILD_WIDGETS_ONLY=1 WIDGET=$npm_config_widget webpack --config webpack.config.js", "build:vendor": "cross-env BUILD_VENDOR_ONLY=1 webpack --config webpack.config.js", "test": "jest", - "test:staged": "cross-env JEST_CI_RUN=1 jest --bail --ci --silent --coverage --passWithNoTests --forceExit --findRelatedTests" + "lint:js": "eslint \"**/*.{js,ts}\" --quiet", + "lint:js:fix": "eslint \"**/*.{js,ts}\" --fix --quiet", + "lint:css": "stylelint \"**/*.{css,scss}\" --quiet", + "lint:css:fix": "stylelint \"**/*.{css,scss}\" --fix --quiet", + "lint": "run-s lint:js lint:css", + "lint:fix": "run-s lint:js:fix lint:css:fix", + "test:coverage": "jest --coverage --silent --verbose --collectCoverageFrom='src/**/*.{ts,js}'", + "test:coverage:view": "npx http-server -c-1 -o coverage/lcov-report", + "test:staged": "cross-env JEST_CI_RUN=1 jest --bail --ci --silent --passWithNoTests --forceExit --findRelatedTests", + "commit": "git-cz" }, "browserslist": [ "ie 11", @@ -30,20 +39,37 @@ "@babel/plugin-transform-runtime": "^7.25.0", "@babel/preset-env": "^7.25.0", "@babel/preset-typescript": "^7.25.0", + "@commitlint/cli": "^12.1.4", + "@commitlint/config-conventional": "^12.1.4", + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", "@types/dompurify": "^3.0.5", "@types/jest": "^29.5.12", - "@types/node": "^25.4.0", "babel-jest": "^29.7.0", "babel-loader": "^9.1.3", + "commitiquette": "^1.2.1", + "commitizen": "^4.3.1", "core-js": "^3.38.1", "cross-env": "^7.0.3", "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", + "eslint": "^8.57.1", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^48.2.3", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-promise": "^6.1.1", "fork-ts-checker-webpack-plugin": "^9.0.2", "handlebars": "^4.7.8", "handlebars-loader": "^1.7.3", "html-webpack-plugin": "^5.6.4", + "husky": "^4.3.8", "jest": "^29.7.0", + "lint-staged": "^10.5.4", "mini-css-extract-plugin": "^2.9.0", "npm-run-all": "^4.1.5", "postcss": "^8.5.6", @@ -51,8 +77,9 @@ "postcss-syntax": "^0.36.2", "prettier": "^2.8.8", "rimraf": "^6.0.1", - "ts-node": "^10.9.2", - "typescript": "^5.9.3", + "stylelint": "^17.3.0", + "stylelint-config-standard-scss": "^17.0.0", + "typescript": "^5.6.2", "webpack": "^5.94.0", "webpack-cli": "^5.1.4" }, @@ -60,6 +87,27 @@ "@babel/runtime": "^7.25.0", "@toast-ui/editor": "^3.2.2", "dompurify": "^3.3.2", + "libphonenumber-js": "^1.13.5", "marked": "^17.0.4" + }, + "config": { + "commitizen": { + "path": "commitiquette" + } + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged", + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } + }, + "lint-staged": { + "**/*.{js,ts}": [ + "eslint --fix --quiet", + "npm run test:staged" + ], + "**/*.{css,scss}": [ + "stylelint --fix --quiet" + ] } } diff --git a/src/global.d.ts b/src/global.d.ts index d9f0167..71e9002 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -1,11 +1,10 @@ - declare global { interface Window { Handlebars?: any; CeresTemplate?: (data: any) => string; // Currently loaded template function - CeresTemplateDataMapper?: (payload: Record) => Record; + CeresTemplateDataMapper?: (data: any) => any; CeresWidgets?: any; } } -export { }; +export {}; diff --git a/src/main/commonUtils.ts b/src/main/commonUtils.ts index 0b9de9a..e76f1ed 100644 --- a/src/main/commonUtils.ts +++ b/src/main/commonUtils.ts @@ -302,11 +302,11 @@ export const sanitizePreviewOptions = ( | "primaryBackground" | "secondaryBackground" > = [ - "primaryColor", - "secondaryColor", - "primaryBackground", - "secondaryBackground", - ]; + "primaryColor", + "secondaryColor", + "primaryBackground", + "secondaryBackground", + ]; const sanitizedEntries = colorKeys .map((key) => { @@ -434,6 +434,77 @@ export const applyPreviewStyles = (options: PlainObject | null | undefined) => { } } } + + // --- Watermark --- + const watermark = isPlainObject(options.watermark) + ? (options.watermark as PlainObject) + : null; + + if (watermark) { + // Use Boolean() directly — no undefined fallback needed since isEnabled is + // always present in the real data shape, and an absent/falsy value should + // be treated as disabled (avoids an untested dead branch). + const isEnabled = Boolean(watermark.isEnabled); + + const outputEl = + typeof document !== "undefined" + ? document.getElementById("documentOutput") + : null; + + if (!isEnabled) { + // Clear all watermark state when disabled + root.style.removeProperty("--watermark-logo"); + root.style.removeProperty("--watermark-opacity"); + root.style.removeProperty("--watermark-rotate"); + root.style.removeProperty("--watermark-scale"); + root.style.removeProperty("--watermark-repeated-pattern"); + root.style.removeProperty("--watermark-z-index"); + // Clear text attr on both elements (screen + print targets) + outputEl?.removeAttribute("data-watermark-text"); + document.body?.removeAttribute("data-watermark-text"); + return; + // NOTE: this `return` exits applyPreviewStyles entirely. Colors and fonts + // are processed before this block so they are not affected. + } + + const logo = toNonEmptyString(watermark.logo); + const customText = toNonEmptyString(watermark.customText); + + if (logo) { + // Image watermark: set logo URL, raise z-index so image overlays content, clear stale text. + root.style.setProperty("--watermark-logo", `url(${toAssetUrl(logo)})`); + root.style.setProperty("--watermark-z-index", "5"); + outputEl?.removeAttribute("data-watermark-text"); + document.body?.removeAttribute("data-watermark-text"); + } else if (customText) { + // Text watermark: clear logo var and z-index override; set data attribute on both elements. + // outputEl (#documentOutput) drives the screen ::before pseudo-element. + // document.body drives the print ::before pseudo-element (position:fixed). + root.style.removeProperty("--watermark-logo"); + root.style.removeProperty("--watermark-z-index"); + outputEl?.setAttribute("data-watermark-text", customText); + document.body?.setAttribute("data-watermark-text", customText); + } + + // Numeric properties — use setProperty directly, NOT setVar, because setVar + // guards with `if (!value)` which treats "0" as falsy and would silently skip + // opacity:0, rotation:0 etc. + const opacity = + typeof watermark.opacity === "number" ? watermark.opacity / 100 : 0.1; + root.style.setProperty("--watermark-opacity", String(opacity)); + + const rotation = + typeof watermark.rotation === "number" ? watermark.rotation : 0; + root.style.setProperty("--watermark-rotate", `${rotation}deg`); + + const scale = typeof watermark.scale === "number" ? watermark.scale : 1; + root.style.setProperty("--watermark-scale", String(scale)); + + const repeatedPattern = watermark.repeatedPatterns + ? "repeat-y" + : "no-repeat"; + root.style.setProperty("--watermark-repeated-pattern", repeatedPattern); + } }; export const applyPreviewAssets = ( @@ -511,6 +582,178 @@ export const applyPreviewAssets = ( return didUpdate; }; +/** + * DOM targeting convention for Lydia-pushed field updates. + * + * Templates must mark updatable elements with data attributes: + * - img[data-ceres-field="qrCode"] → QR code image + * - [data-ceres-field="irn"] → IRN text node + * - [data-ceres-field-container="qrCode"] → wrapper toggled with is-empty class + * + * Element targeting uses data-ceres-field attributes (similar to data-ceres-height in applyPreviewAssets). + * Container targeting uses data-ceres-field-container attributes (not class selectors — intentionally explicit). + * Adding support for a new field: add data-ceres-field="" to the template element, + * then register a handler in lydiaBridge.ts using registerInvoiceFieldHandler. + */ + +/** + * Updates the QR code image in the rendered template. + * Targets img[data-ceres-field="qrCode"] — templates must use this attribute. + * Toggles is-empty on the nearest [data-ceres-field-container="qrCode"] when value is absent. + * + * @param value - QR code data URL, or null/undefined to hide + */ +export const applyQrCodeUpdate = (value: unknown): void => { + const qrImg = document.querySelector( + 'img[data-ceres-field="qrCode"]' + ); + if (!qrImg) return; + + const container = qrImg.closest( + '[data-ceres-field-container="qrCode"]' + ); + + if (typeof value === "string" && value.length > 0) { + qrImg.src = value; + container?.classList.remove("is-empty"); + } else { + // removeAttribute (not src = "") so the browser doesn't refetch the current + // page URL — matches the pattern in applyPreviewAssets. + qrImg.removeAttribute("src"); + container?.classList.add("is-empty"); + } +}; + +/** + * Updates the ZATCA QR code image in the rendered template. + * Targets img[data-ceres-field="zatcaQrCode"] — templates must use this attribute. + * Toggles is-empty on the nearest [data-ceres-field-container="zatcaQrCode"] when value is absent. + */ +export const applyZatcaQrCodeUpdate = (value: unknown): void => { + const qrImg = document.querySelector( + 'img[data-ceres-field="zatcaQrCode"]' + ); + if (!qrImg) return; + + const container = qrImg.closest( + '[data-ceres-field-container="zatcaQrCode"]' + ); + + if (typeof value === "string" && value.length > 0) { + qrImg.src = value; + container?.classList.remove("is-empty"); + } else { + // removeAttribute (not src = "") so the browser doesn't refetch the current + // page URL — matches the pattern in applyPreviewAssets. + qrImg.removeAttribute("src"); + container?.classList.add("is-empty"); + } +}; + +/** + * Updates the LHDN QR code image in the rendered template. + * Targets img[data-ceres-field="lhdnQrCode"] — templates must use this attribute. + * Toggles is-empty on the nearest [data-ceres-field-container="lhdnQrCode"] when value is absent. + */ +export const applyLhdnQrCodeUpdate = (value: unknown): void => { + const qrImg = document.querySelector( + 'img[data-ceres-field="lhdnQrCode"]' + ); + if (!qrImg) return; + + const container = qrImg.closest( + '[data-ceres-field-container="lhdnQrCode"]' + ); + + if (typeof value === "string" && value.length > 0) { + qrImg.src = value; + container?.classList.remove("is-empty"); + } else { + // removeAttribute (not src = "") so the browser doesn't refetch the current + // page URL — matches the pattern in applyPreviewAssets. + qrImg.removeAttribute("src"); + container?.classList.add("is-empty"); + } +}; + +/** + * Updates the document QR code image in the rendered template. + * Targets img[data-ceres-field="documentQr"] — templates must use this attribute. + * Toggles is-empty on the nearest [data-ceres-field-container="documentQr"] when value is absent. + */ +export const applyDocumentQrUpdate = (value: unknown): void => { + const qrImg = document.querySelector( + 'img[data-ceres-field="documentQr"]' + ); + if (!qrImg) return; + + const container = qrImg.closest( + '[data-ceres-field-container="documentQr"]' + ); + + if (typeof value === "string" && value.length > 0) { + qrImg.src = value; + container?.classList.remove("is-empty"); + } else { + // removeAttribute (not src = "") so the browser doesn't refetch the current + // page URL — matches the pattern in applyPreviewAssets. + qrImg.removeAttribute("src"); + container?.classList.add("is-empty"); + } +}; + +/** + * Updates the IRN text node in the rendered template. + * Targets [data-ceres-field="irn"] — templates must use this attribute. + * + * @param value - IRN string, or null/undefined to clear + */ +export const applyIrnUpdate = (value: unknown): void => { + const irnEl = document.querySelector('[data-ceres-field="irn"]'); + if (!irnEl) return; + + irnEl.textContent = typeof value === "string" ? value : ""; +}; + +const applyShowPaymentsTableUpdate = (value: unknown): void => { + if (typeof value !== "boolean") return; + const container = document.querySelector( + "[data-ceres-payment-table]" + ); + if (container) { + container.style.display = value ? "" : "none"; + } +}; + +const applyTaxSummaryViewUpdate = (value: unknown): void => { + if (typeof value !== "string") return; + const show = value === "TABLE" || value === "BOTH"; + const container = document.querySelector( + "[data-ceres-tax-summary]" + ); + if (container) { + container.style.display = show ? "" : "none"; + } +}; + +const applyShowHsnSummaryUpdate = (value: unknown): void => { + if (typeof value !== "boolean") return; + const container = document.querySelector( + "[data-ceres-hsn-summary]" + ); + if (container) { + container.style.display = value ? "" : "none"; + } +}; + +export const applyAdvanceOptionsUpdate = (value: unknown): void => { + if (!isPlainObject(value)) return; + const opts = value as Record; + applyShowPaymentsTableUpdate(opts.showPaymentsTable); + applyTaxSummaryViewUpdate(opts.taxSummaryView); + applyShowHsnSummaryUpdate(opts.showHsnSummary); +}; + export const extractTemplateStyleOptions = ( payload: unknown ): PlainObject | null => { @@ -531,11 +774,11 @@ export const extractTemplateStyleOptions = ( | "primaryBackground" | "secondaryBackground" > = [ - "primaryColor", - "secondaryColor", - "primaryBackground", - "secondaryBackground", - ]; + "primaryColor", + "secondaryColor", + "primaryBackground", + "secondaryBackground", + ]; const templateColorSource = isPlainObject(template.templateColor) ? (template.templateColor as PlainObject) @@ -577,6 +820,12 @@ export const extractTemplateStyleOptions = ( result.template = templateFonts; } + // Extract watermark — must be before the null-return guard so a payload + // with only watermark (no colors/fonts) still returns a non-null result. + if (isPlainObject(template.watermark)) { + result.watermark = template.watermark; + } + return Object.keys(result).length > 0 ? result : null; }; diff --git a/src/main/index.ts b/src/main/index.ts index 079b4e9..005d22f 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -60,7 +60,7 @@ const renderDocument = async () => { const encodedApiUrl = getQueryParam("apiUrl"); if (!encodedApiUrl) { throw new Error( - "Missing required parameter: ?apiUrl=" + "Missing required parameter: ?apiUrl=", ); } @@ -74,13 +74,13 @@ const renderDocument = async () => { const { assets } = templateManifest; if (!assets || !assets.js) { throw new Error( - "Template manifest does not contain required 'assets.js' field" + "Template manifest does not contain required 'assets.js' field", ); } const manifestBaseUrl = templateManifestUrl.substring( 0, - templateManifestUrl.lastIndexOf("/") + templateManifestUrl.lastIndexOf("/"), ); const jsUrl = `${manifestBaseUrl}/${assets.js}`; const cssUrl = assets.css ? `${manifestBaseUrl}/${assets.css}` : null; @@ -113,14 +113,14 @@ const renderDocument = async () => { } const template = (window as any).CeresTemplate; - const mapper = (window as any).CeresTemplateDataMapper; if (typeof template !== "function") { throw new Error( - "Template bundle did not export window.CeresTemplate. The template bundle may have failed to load or initialize properly." + "Template bundle did not export window.CeresTemplate. The template bundle may have failed to load or initialize properly.", ); } + const mapper = (window as any).CeresTemplateDataMapper; const mappedPayload = typeof mapper === "function" ? mapper(payload) : payload; @@ -132,10 +132,16 @@ const renderDocument = async () => { }); } + // Store before rendering so formatCurrency helper can read currency/locale from it + (window as any).ceresInvoiceData = mappedPayload; const html = template(mappedPayload); + if (outputDiv) { outputDiv.innerHTML = html; outputDiv.classList.remove("loading-message"); + // DOM elements (data-ceres-field targets) now exist — safe to tell Lydia we're ready. + // Lydia will flush its queue (e.g. qrCode/irn updates) in response to ceres:ready. + lydiaBridge?.notifyReady(); } const fontsReady = @@ -172,8 +178,6 @@ const renderDocument = async () => { } }; -if (shouldRender) { - renderDocument(); -} +renderDocument(); -export { }; +export {}; diff --git a/src/main/lydiaBridge.ts b/src/main/lydiaBridge.ts index 449235e..3756fb8 100644 --- a/src/main/lydiaBridge.ts +++ b/src/main/lydiaBridge.ts @@ -20,8 +20,14 @@ */ import { + applyAdvanceOptionsUpdate, applyPreviewAssets, applyPreviewStyles, + applyQrCodeUpdate, + applyIrnUpdate, + applyZatcaQrCodeUpdate, + applyLhdnQrCodeUpdate, + applyDocumentQrUpdate, extractTemplateStyleOptions, getQueryParam, isPlainObject, @@ -50,6 +56,11 @@ export interface LydiaBridgeOptions { export interface LydiaBridgeHandle { reportContentHeight: (reason?: string) => void; triggerPrint: (reason?: string) => void; + registerInvoiceFieldHandler: ( + field: string, + handler: (value: unknown) => void + ) => void; + notifyReady: () => void; destroy: () => void; } @@ -84,8 +95,33 @@ export function initLydiaBridge( let heightReportTimer: number | null = null; let pendingReportReason: string | null = null; + // Handshake state + let isLydiaReady = false; + const pendingCeresQueue: Array<() => void> = []; + + // Field handler registry — maps invoiceResponse field keys to DOM update functions. + // Registered before ceres:ready is sent; dispatched when lydia:invoice-update arrives. + const invoiceFieldHandlers = new Map void>(); + const cleanupFns: CleanupFn[] = []; + // Note: handler receives `unknown` (not a generic keyed type) because Map + // cannot express per-key type safety without complex mapped types. Handlers guard internally. + const registerInvoiceFieldHandler = ( + field: K, + handler: (value: unknown) => void + ): void => { + invoiceFieldHandlers.set(field, handler); + }; + + const handleInvoiceUpdate = (fields: Record): void => { + // Unrecognised keys are silently ignored — forward compatible. + Object.entries(fields).forEach(([key, value]) => { + const handler = invoiceFieldHandlers.get(key); + if (handler) handler(value); + }); + }; + // Logging (only when debug flag is enabled) const debugLog = (...args: unknown[]) => { if (!shouldDebug) { @@ -110,17 +146,25 @@ export function initLydiaBridge( ); }; - // Sends the measured height to Lydia so it can resize the iframe to fit. - // Skips duplicate reports on resize to avoid unnecessary chatter. - const postHeightToParent = (fullHeight: number, reason = "resize") => { - if (window.parent == null || window.parent === window) { - return; - } + // Sends a message to the parent window. Includes all necessary guards. + const sendToParent = (payload: object) => { + if (window.parent == null || window.parent === window) return; + if (typeof window.parent.postMessage !== "function") return; + window.parent.postMessage(payload, "*"); + }; - if (typeof window.parent.postMessage !== "function") { - return; + // Sends immediately if handshake is complete, otherwise queues for later. + const sendOrQueue = (fn: () => void) => { + if (isLydiaReady) { + fn(); + } else { + pendingCeresQueue.push(fn); } + }; + // Sends the measured height to Lydia so it can resize the iframe to fit. + // Skips duplicate reports on resize to avoid unnecessary chatter. + const postHeightToParent = (fullHeight: number, reason = "resize") => { if (!Number.isFinite(fullHeight)) { return; } @@ -141,7 +185,7 @@ export function initLydiaBridge( timestamp: Date.now(), }; - window.parent.postMessage(payload, "*"); + sendOrQueue(() => sendToParent(payload)); debugLog("postHeightToParent", payload); }; @@ -161,7 +205,7 @@ export function initLydiaBridge( force || lastReportedHeight == null || Math.abs(nextReportedHeight - lastReportedHeight) > - HEIGHT_CHANGE_THRESHOLD; + HEIGHT_CHANGE_THRESHOLD; if (!shouldPost) { return; @@ -340,6 +384,30 @@ export function initLydiaBridge( return (data as { action?: string }).action === "lydia:height-request"; }; + const isLydiaAckMessage = ( + data: unknown + ): data is { source: "lydia"; type: "lydia:ack"; version: number } => { + if (!isPlainObject(data)) return false; + return data.source === "lydia" && data.type === "lydia:ack"; + }; + + const isInvoiceUpdateMessage = ( + data: unknown + ): data is { + source: "lydia"; + type: "lydia:invoice-update"; + fields: Record; + reason?: string; + } => { + if (!isPlainObject(data)) return false; + return ( + data.source === "lydia" && + data.type === "lydia:invoice-update" && + typeof data.fields === "object" && + data.fields !== null + ); + }; + const isTemplateUpdateMessage = ( data: unknown ): data is { @@ -357,11 +425,24 @@ export function initLydiaBridge( // Listens for print commands from Lydia. When the user hits print in the parent app, // Lydia sends { action: 'lydia:print' } so Ceres can prepare the layout first. const handleParentMessage = (event: MessageEvent) => { + const { data } = event; + if (event.source !== window.parent) { return; } - const { data } = event; + if (isLydiaAckMessage(data)) { + isLydiaReady = true; + const queued = pendingCeresQueue.splice(0); + queued.forEach((fn) => fn()); + return; + } + + if (isInvoiceUpdateMessage(data)) { + handleInvoiceUpdate(data.fields); + return; + } + if (isTemplateUpdateMessage(data)) { const styleOptions = extractTemplateStyleOptions({ template: data.template, @@ -518,9 +599,34 @@ export function initLydiaBridge( resetSizing("destroy"); }; + // Register known invoice field handlers. + registerInvoiceFieldHandler("qrCode", applyQrCodeUpdate); + registerInvoiceFieldHandler("irn", applyIrnUpdate); + registerInvoiceFieldHandler("zatcaQrCode", applyZatcaQrCodeUpdate); + registerInvoiceFieldHandler("lhdnQrCode", applyLhdnQrCodeUpdate); + registerInvoiceFieldHandler("documentQr", applyDocumentQrUpdate); + registerInvoiceFieldHandler("advanceOptions", (value: unknown) => { + applyAdvanceOptionsUpdate(value as unknown); + reportContentHeight("advance-options-update"); + }); + + // Called by the renderer after the template HTML is injected into the DOM. + // Sending ceres:ready at that point ensures Lydia's queued invoice-update messages + // (e.g. qrCode, irn) arrive when the target DOM elements already exist. + // Must NOT be called before outputDiv.innerHTML is set — handlers look up DOM elements + // at call time and will silently fail if the elements aren't there yet. + let hasNotifiedReady = false; + const notifyReady = () => { + if (hasNotifiedReady) return; + hasNotifiedReady = true; + sendToParent({ source: "ceres", type: "ceres:ready", version: 1 }); + }; + return { reportContentHeight, triggerPrint, + registerInvoiceFieldHandler, + notifyReady, destroy, }; } diff --git a/src/templates/basic-invoice-example/index.ts b/src/templates/basic-invoice-example/index.ts new file mode 100644 index 0000000..9ea982f --- /dev/null +++ b/src/templates/basic-invoice-example/index.ts @@ -0,0 +1,30 @@ +import template from "./template.hbs"; +import "./styles.css"; +// Register widgets (ensures InvoiceStatus partial is available and its CSS extracted) +import "../../widgets/invoice-status"; +import "../../widgets/demo-badge"; +import "../../widgets/date-time"; +import "../../widgets/markdown-viewer"; +import "../../widgets/watermark"; +import "../../widgets/refrens-branding"; +import "../../widgets/phone-number"; +import "../../widgets/tax-summary"; +import "../../widgets/hsn-summary"; +import "../../widgets/payment-table"; +import "../../widgets/currency-format"; +import "../../widgets/image"; + +// Template-level Handlebars utility helpers +const hb = (window as any).Handlebars; +if (hb) { + // eq: strict equality — lets templates check boolean false or specific strings + hb.registerHelper("eq", (a: any, b: any) => a === b); + // taxTableVisible: true when taxSummaryView is TABLE or BOTH + hb.registerHelper( + "taxTableVisible", + (view: any) => view === "TABLE" || view === "BOTH" + ); +} + +// Export template to global for main renderer to consume +window.CeresTemplate = template; diff --git a/src/templates/basic-invoice-example/samples.json b/src/templates/basic-invoice-example/samples.json new file mode 100644 index 0000000..5c0b246 --- /dev/null +++ b/src/templates/basic-invoice-example/samples.json @@ -0,0 +1,3 @@ +{ + "example": "aHR0cHM6Ly9hcGkucmVmcmVucy5jb20vaW52b2ljZXMvNjg4OWU1MmU3MGI1MjQwMDE5NzRkZDJkP19hdD0zcXdtVlp4OEZVV3hnMzdCNG0mY29weSZwb3B1bGF0ZUJ1c2luZXNzPXRydWU=" +} diff --git a/src/templates/basic-invoice-example/styles.css b/src/templates/basic-invoice-example/styles.css new file mode 100644 index 0000000..0a11ca0 --- /dev/null +++ b/src/templates/basic-invoice-example/styles.css @@ -0,0 +1,428 @@ +/* --- Modern Edge Template Styles --- */ +@import "https://fonts.googleapis.com/css2?family=Funnel+Display:wght@300..800&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Noto+Sans+Arabic:wght@100..900&display=swap"; + +@media print { + .notes-modern-block, + .terms-modern-block { + break-inside: avoid; + } +} + +:root { + --title-font: "Funnel Display", sans-serif; + --subtitle-font: "Funnel Display", sans-serif; + --primary-color: #3f51b5; + --secondary-color: #673ab7; + --primary-background: #f8fafd; + --secondary-background: #fff; +} + +body { + font-family: var(--subtitle-font); + + .invoice-modern-shell { + max-width: 1000px; + margin: 0 auto; + display: flex; + flex-direction: column; + gap: 16px; + } + + .invoice-letterhead, + .invoice-letterhead-footer { + display: block; + width: 100%; + } + + .invoice-letterhead img, + .invoice-letterhead-footer img { + width: 100%; + height: auto; + display: block; + } + + margin: 0; + color: #333; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + width: 100%; +} + +.invoice-modern-shell { + max-width: 1000px; + margin: 0 auto; + display: flex; + flex-direction: column; + gap: 16px; +} + +.invoice-letterhead, +.invoice-letterhead-footer { + width: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.invoice-letterhead.is-empty, +.invoice-letterhead-footer.is-empty { + position: absolute; + width: 0; + height: 0; + margin: 0; + padding: 0; + border: 0; + overflow: hidden; + pointer-events: none; +} + +.irn-value { + word-break: break-all; + font-size: 0.75em; +} + +.irn-qr-container { + margin-top: 6px; +} + +.irn-qr-container.is-empty { + display: none; +} + +.irn-qr-image { + height: 80px; + width: 80px; + display: block; +} + +.regional-qr-section { + display: flex; + gap: 12px; + margin-top: 16px; + flex-wrap: wrap; +} + +.regional-qr-container { + display: inline-block; +} + +.regional-qr-container.is-empty { + display: none; +} + +.regional-qr-image { + height: 96px; + width: 96px; + display: block; +} + +.invoice-letterhead img, +.invoice-letterhead-footer img { + display: block; + width: 100%; + height: auto; +} + +@media print { + body { + margin: 0; + padding: 0; + background-color: none; + } + + /* .invoice-letterhead, .invoice-letterhead-footer { display: none !important; } */ +} + +.invoice-modern-container { + padding-inline: 32px; + border-radius: 12px; +} + +/* Header & Main Info Section */ +.invoice-header-modern { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 30px; + padding-bottom: 25px; + border-bottom: 2px solid #e0e0e0; +} + +.invoice-header-modern .logo-section h1 { + color: var(--primary-color); + font-family: var(--title-font); + font-size: 42px; + margin: 0; + font-weight: 800; + letter-spacing: -1px; +} + +.invoice-header-modern .logo-section p { + font-size: 16px; + color: #666; + margin-top: 5px; +} + +/* Consolidated Info Block */ +.info-block-modern { + background-color: var(--secondary-background); + border: 1px solid #e0e6ed; + border-radius: 8px; + padding: 30px; + margin-bottom: 40px; + display: grid; + grid-template-columns: 1fr 1fr 1fr; + + /* Three columns for invoice details, billed by, billed to */ + gap: 30px; + box-shadow: 0 4px 15px rgb(0 0 0 / 5%); +} + +.info-section { + padding: 0; +} + +.info-section h3 { + color: var(--primary-color); + font-family: var(--title-font); + font-size: 18px; + margin-top: 0; + margin-bottom: 15px; + border-bottom: 2px solid #c5cae9; + padding-bottom: 8px; +} + +.info-section p { + margin: 5px 0; + color: #555; + font-size: 14px; +} + +.info-section strong { + color: #333; + font-weight: 600; +} + +.info-section .meta-label { + display: inline-block; + min-width: 90px; + color: #777; +} + +.info-section .vat-number-label { + font-weight: bold; + color: #444; +} + +/* Line Items Table */ +.item-table-modern { + width: 100%; + border-collapse: separate; + border-spacing: 0; + margin-bottom: 40px; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 4px 15px rgb(0 0 0 / 7%); +} + +.item-table-modern th, +.item-table-modern td { + padding: 15px 20px; + text-align: left; + font-size: 14px; +} + +.item-table-modern thead th { + background-color: var(--primary-color); + color: #fff; + font-weight: 600; + text-transform: uppercase; +} + +.item-table-modern tbody td { + border-bottom: 1px solid #eef2f5; + background-color: var(--secondary-background); + vertical-align: top; +} + +.item-table-modern tbody tr:last-child td { + border-bottom: none; +} + +.item-table-modern .description-col { + width: 35%; +} + +.item-table-modern .text-right { + text-align: right; +} + +.item-table-modern .item-name { + font-weight: 600; + color: var(--primary-color); +} + +.item-table-modern .item-desc { + font-size: 12px; + color: #777; + display: block; + margin-top: 3px; +} + +/* Creative Totals Section - Full Width */ +.totals-full-width-section { + background: linear-gradient(to right, + var(--primary-color), + var(--secondary-color)); + + /* Gradient background */ + + color: #fff; + padding: 40px 50px; + border-radius: 12px; + margin-top: 50px; + + /* Space from line items */ + box-shadow: 0 8px 25px rgb(0 0 0 / 20%); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; +} + +.totals-full-width-section .total-line { + display: flex; + justify-content: space-between; + width: 60%; + + /* Control internal width of total lines */ + margin-bottom: 15px; + font-size: 18px; + font-weight: 400; +} + +.totals-full-width-section .total-line.grand { + font-size: 32px; + font-weight: 700; + margin-top: 25px; + padding-top: 20px; + border-top: 2px solid rgb(255 255 255 / 30%); + width: 80%; + + /* Grand total spans wider */ + display: flex; + + /* Ensure it's centered if content is shorter */ + justify-content: center; + gap: 20px; + align-items: baseline; +} + +.totals-full-width-section .total-line .label { + flex-grow: 1; + text-align: left; + color: rgb(255 255 255 / 80%); +} + +.totals-full-width-section .total-line .value { + text-align: right; + flex-grow: 1; + font-weight: 600; +} + +.totals-full-width-section .total-line.grand .label { + text-align: right; + + /* Adjust for centering grand total */ + flex-grow: 0; + margin-right: 15px; +} + +.totals-full-width-section .total-line.grand .value { + text-align: left; + flex-grow: 0; + color: #ffd700; + + /* Gold for grand total */ +} + +.totals-full-width-section .total-in-words { + margin-top: 25px; + font-size: 16px; + font-style: italic; + color: rgb(255 255 255 / 90%); + line-height: 1.5; + width: 80%; +} + +.totals-full-width-section .total-in-words span:first-child { + font-weight: 600; + margin-right: 10px; +} + +/* Notes & Terms */ +.notes-terms-modern-section { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 30px; + margin-top: 50px; + padding-top: 30px; + border-top: 1px dashed #e0e0e0; +} + +.notes-modern-block, +.terms-modern-block { + background-color: var(--secondary-background); + padding: 25px; + border-radius: 8px; + border: 1px solid #eee; + box-shadow: 0 2px 10px rgb(0 0 0 / 3%); +} + +.notes-modern-block h3, +.terms-modern-block h3 { + color: var(--primary-color); + font-family: var(--title-font); + font-size: 18px; + margin-top: 0; + margin-bottom: 15px; + border-bottom: 1px solid #e0e0e0; + padding-bottom: 10px; +} + +.notes-modern-block p, +.terms-modern-block li { + color: #666; + font-size: 13px; + line-height: 1.6; +} + +.terms-modern-block ul { + list-style-type: "✔ "; + + /* Custom checkmark bullet */ + padding-left: 20px; + margin: 0; +} + +/* Footer */ +.invoice-footer-modern { + text-align: center; + padding-top: 30px; + margin-top: 40px; + border-top: 2px solid #e0e0e0; + color: #888; + font-size: 12px; +} + +.invoice-footer-modern p { + margin: 0; +} + +@media print { + .invoice-modern-container { + box-shadow: none; + max-width: 100%; + } +} \ No newline at end of file diff --git a/src/templates/basic-invoice-example/template.hbs b/src/templates/basic-invoice-example/template.hbs new file mode 100644 index 0000000..e4762c3 --- /dev/null +++ b/src/templates/basic-invoice-example/template.hbs @@ -0,0 +1,333 @@ +
+
+ {{#if letterHead}} + Letterhead + {{else}} + Letterhead + {{/if}} +
+ +
+
+
+

{{ invoiceTitle }}

+

For Professional Services

+
{{> DemoBadge }}
+
+
+ +
+
+

Invoice Details

+

+ {{customLabels.invoiceNumber}} + {{invoiceNumber}} +

+

+ {{customLabels.invoiceDate}}: + {{formateShortDateWithOffset invoiceDate ownerOffset}} +

+

+ {{customLabels.dueDate}}: + {{formateShortDateWithOffset dueDate ownerOffset}} +

+ {{#if irn}} + {{#if irn.Irn}} +

+ IRN: + {{irn.Irn}} +

+ {{/if}} + {{#if irn.AckDt}} +

+ IRN Ack Date: + {{formatDateInTimeZone irn.AckDt "UTC" "SECONDARY_SHORT_DATE_FORMAT"}} +

+ {{/if}} + {{#if irn.CancelDate}} +

+ IRN Cancelled On: + {{formateShortDateWithOffset irn.CancelDate ownerOffset}} +

+ {{/if}} + {{#if irn.EwbDt}} +

+ E-Way Bill Date: + {{formatDateInTimeZone irn.EwbDt "UTC" "SECONDARY_SHORT_DATE_FORMAT"}} +

+ {{/if}} + {{#if irn.EwbValidTill}} +

+ E-Way Valid Till: + {{formatDateInTimeZone irn.EwbValidTill "UTC" "SECONDARY_SHORT_DATE_FORMAT"}} +

+ {{/if}} + {{#if irn.ewayCancelDate}} +

+ E-Way Cancelled On: + {{formatDateInTimeZone irn.ewayCancelDate "UTC" "SECONDARY_SHORT_DATE_FORMAT"}} +

+ {{/if}} + {{/if}} + {{!-- QR code: always present in DOM; src populated via postMessage after e-invoice generation --}} +
+ E-Invoice QR Code +
+ {{!-- Status tag using the minimal InvoiceStatus widget --}} +

+ Status: + {{> InvoiceStatus }} +

+ {{#if purchaseOrderNumber}} +

+ {{customLabels.purchaseOrderNumber}}: + {{purchaseOrderNumber}} +

+ {{/if}} +
+ +
+

{{customLabels.billedBy}}

+

{{billedBy.name}}

+

+ {{billedBy.street}}
{{billedBy.city}}, {{billedBy.state}} + {{billedBy.pincode}}
{{billedBy.country}} +

+ {{#if billedBy.vatNumber}} +

+ {{billedBy.vatLabel}}: + {{billedBy.vatNumber}} +

+ {{/if}} + {{#if billedBy.phone}} +

Phone: {{formatPhoneNumber billedBy.phone}}

+ {{/if}} +
+ +
+

{{customLabels.billedTo}}

+

{{billedTo.name}}

+

+ {{billedTo.street}}
{{billedTo.city}}, {{billedTo.state}} + {{billedTo.pincode}}
{{billedTo.country}} +

+ {{#if billedTo.gstin}} +

GSTIN: {{billedTo.gstin}}

+ {{/if}} + {{#if billedTo.phone}} +

Phone: {{formatPhoneNumber billedTo.phone}}

+ {{/if}} +
+ + {{#if transportDetails}} +
+

Transport

+ {{#if transportDetails.transport}} +

+ Mode: + {{transportDetails.transport}} +

+ {{/if}} + {{#if transportDetails.transportMode}} +

+ Transport Mode: + {{transportDetails.transportMode}} +

+ {{/if}} + {{#if transportDetails.challanNumber}} +

+ Challan No.: + {{transportDetails.challanNumber}} +

+ {{/if}} + {{#if transportDetails.challanDate}} +

+ Challan Date: + {{formateDateWithOffset transportDetails.challanDate ownerOffset}} +

+ {{/if}} + {{#if transportDetails.extraInformation}} +

+ Notes: + {{transportDetails.extraInformation}} +

+ {{/if}} +
+ {{/if}} +
+ + + + + + + + + + + + + + + {{#each items}} + + + + + + + + + + {{/each}} + +
Service DescriptionQTYRateVAT RateAmountVATTotal
+ {{name}} + {{#if sku}} (SKU: {{sku}}){{/if}} + {{#if description}} +
+
+ {{> MarkdownViewer (prepareMarkdownViewerData description) }} +
+ {{/if}} + {{#if images}} + {{> CeresImageGallery (prepareImageGallery images variant="thumbnail" alt=name) }} + {{/if}} + {{#if originalImages}} + {{> CeresImageGallery (prepareImageGallery originalImages variant="original" alt=name) }} + {{/if}} +
{{quantity}}{{formatCurrency rate}}{{gstRate}}%{{formatCurrency amount}}{{formatCurrency igst}}{{formatCurrency total}}
+ +
+
+ {{customLabels.subTotal}}: + {{formatCurrency totals.subTotal}} +
+ {{#if totals.discount}} +
+ Discount: + - {{formatCurrency totals.discount}} +
+ {{/if}} + {{#if totals.igst}} +
+ IGST: + {{formatCurrency totals.igst}} +
+ {{/if}} + {{#if totals.cgst}} +
+ CGST: + {{formatCurrency totals.cgst}} +
+ {{/if}} + {{#if totals.sgst}} +
+ SGST: + {{formatCurrency totals.sgst}} +
+ {{/if}} + {{#if totals.amountRoundOff}} +
+ Amount Round Off: + {{formatCurrency totals.amountRoundOff}} +
+ {{/if}} + {{#if totals.totalRoundOff}} +
+ Total Round Off: + {{formatCurrency totals.totalRoundOff}} +
+ {{/if}} +
+ {{customLabels.total}}: + {{formatCurrency totals.total}} +
+ {{#if latePaymentFee}} + {{#if dueDate}} + {{#if latePaymentFee.showInInvoice}} + {{#if latePaymentFee.enabled}} + {{#unless latePaymentFee.isApplied}} +
+ Late Payment Fee: + + {{#if latePaymentFee.finalAmount}}Additional {{latePaymentFee.finalAmount}} {{/if}} + {{#if latePaymentFee.when}} + after {{formatDateAddDays dueDate latePaymentFee.when ownerOffset}} + {{/if}} + +
+ {{/unless}} + {{/if}} + {{/if}} + {{/if}} + {{/if}} +
+ {{customLabels.totalInWords}}: + {{customLabels.totalInWordsValue}} +
+
+ +
+ {{> TaxSummaryTable (computeTaxSummary items isIgst=isIgst isUtgst=isUtgst) }} +
+ +
+ {{> HsnSummaryTable (computeHsnSummary items isIgst=isIgst isUtgst=isUtgst) }} +
+ +
+ {{> PaymentTable (computePaymentColumns allPayments businessCurrency=businessCurrency currency=currency) + ownerOffset=ownerOffset + heading="Payments" + }} +
+ +
+ {{#if notes}} +
+

{{customLabels.notes}}

+ {{> MarkdownViewer (prepareMarkdownViewerData notes) }} +
+ {{/if}} + {{#if terms.0.terms.length}} +
+

{{customLabels.terms}}

+
    + {{#each terms.0.terms}} +
  • {{this}}
  • + {{/each}} +
+
+ {{/if}} +
+ + {{!-- Regional QR codes: always in DOM; src populated via postMessage from Lydia --}} +
+
+ ZATCA QR Code +
+
+ LHDN QR Code +
+
+ Document QR Code +
+
+ + + + {{> RefrensBranding}} + +
+ +
+ {{#if letterHeadFooter}} + Letterhead footer + {{else}} + Letterhead footer + {{/if}} +
+
diff --git a/src/templates/basic-invoice-example/thumbnail.png b/src/templates/basic-invoice-example/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..6dec8ae287ac637817144e3185da53ef807a0dd0 GIT binary patch literal 788336 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

X%5t=`atiD?Ypy>@R=ExJc0YKG{5_wBOU!`g_z; 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�aU9W>VXS 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 bIa5`!sODF?y}qFnt6R8vxkE|%7| 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 z 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

NlPj(87%YP29Uyb7j8dvYgx5l%Dv$)i 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 xd~(~a$DiCW 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

cckjJ6{?>1tvwL}& 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 + + + + + + {{#if isIgst}} + + {{else}} + + + {{/if}} + {{#if hasCess}}{{/if}} + + + + + + {{#if isIgst}} + + + {{else}} + + + + + {{/if}} + {{#if hasCess}}{{/if}} + + + + + {{#each hsnList}} + + + + {{#if ../isIgst}} + + + {{else}} + + + + + {{/if}} + {{#if ../hasCess}}{{/if}} + + + {{/each}} + + + + + + {{#if isIgst}} + + + {{else}} + + + + + {{/if}} + {{#if hasCess}}{{/if}} + + + + + + +
HSNTaxable ValueIGSTCGST{{#if isUtgst}}UTGST{{else}}SGST{{/if}}CessTotal
RateAmountRateAmountRateAmountRateAmount
{{hsn}}{{formatCurrency taxableValue}}{{igstRate}}%{{formatCurrency igstAmount}}{{cgstRate}}%{{formatCurrency cgstAmount}}{{sgstRate}}%{{formatCurrency sgstAmount}}{{cessRate}}%{{formatCurrency cessAmount}}{{formatCurrency taxAmount}}
Total{{formatCurrency totalTaxableValue}}{{formatCurrency totalIgstAmount}}{{formatCurrency totalCgstAmount}}{{formatCurrency totalSgstAmount}}{{formatCurrency totalCessAmount}}{{formatCurrency totalTaxAmount}}
Total Tax In Words: {{amountInWords totalTaxAmount}}
+

+{{/if}} diff --git a/src/widgets/hsn-summary/index.ts b/src/widgets/hsn-summary/index.ts new file mode 100644 index 0000000..82f6333 --- /dev/null +++ b/src/widgets/hsn-summary/index.ts @@ -0,0 +1,42 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore - template compiled by loader +import template from "./HsnSummaryTable.hbs"; +import "./styles.css"; +import { computeHsnSummary } from "./utils"; +import amountInWords from "../shared/amountInWords"; +import registerFormatCurrencyHelper from "../shared/registerFormatCurrencyHelper"; + +function getHB(): any { + return (window as any).Handlebars; +} + +function register(): void { + const HB = getHB(); + if (!HB) return; + + HB.registerHelper("computeHsnSummary", function (items: any, options: any) { + return computeHsnSummary(Array.isArray(items) ? items : [], { + isIgst: !!options?.hash?.isIgst, + isUtgst: !!options?.hash?.isUtgst, + }); + }); + + HB.registerHelper("amountInWords", function (amount: any) { + return amountInWords(parseFloat(amount) || 0); + }); + + registerFormatCurrencyHelper(HB); + + HB.registerPartial("HsnSummaryTable", template); + + (window as any).CeresWidgets = (window as any).CeresWidgets || {}; + (window as any).CeresWidgets.HsnSummaryTable = { register }; +} + +try { + register(); +} catch (_) { + /* noop */ +} + +export {}; diff --git a/src/widgets/hsn-summary/styles.css b/src/widgets/hsn-summary/styles.css new file mode 100644 index 0000000..a3d2e49 --- /dev/null +++ b/src/widgets/hsn-summary/styles.css @@ -0,0 +1,60 @@ +/* Shared table section styles — used by all three table widgets */ +.ceres-table-section { + margin: 16px 0; + overflow-x: auto; +} + +.ceres-table-heading { + font-size: 13px; + font-weight: 600; + margin: 0 0 8px; + color: #333; + letter-spacing: 0.04em; +} + +.ceres-table { + width: 100%; + border-collapse: collapse; + font-size: 13px; +} + +.ceres-table th, +.ceres-table td { + padding: 6px 10px; + border: 1px solid #e0e0e0; + text-align: center; +} + +.ceres-table th:first-child, +.ceres-table td:first-child { + text-align: left; +} + +.ceres-table thead th { + background: #f5f5f5; + color: #555; + font-weight: 600; + font-size: 13px; + letter-spacing: 0.03em; +} + +.ceres-table tbody tr:nth-child(even) { + background: #fafafa; +} + +.ceres-table tfoot td { + font-weight: 500; + border-top: 2px solid #333; +} + +.ceres-table-words { + font-size: 13px; + color: #555; + text-align: left !important; +} + +@media print { + .ceres-table-section { + break-inside: avoid; + } +} diff --git a/src/widgets/hsn-summary/utils.ts b/src/widgets/hsn-summary/utils.ts new file mode 100644 index 0000000..a3593ab --- /dev/null +++ b/src/widgets/hsn-summary/utils.ts @@ -0,0 +1,145 @@ +type LineItem = { + hsn?: string; + gstRate?: number; + amount?: number; + igst?: number; + cgst?: number; + sgst?: number; + [key: string]: any; +}; + +type HsnRow = { + hsn: string; + taxableValue: number; + igstRate: number; + igstAmount: number; + cgstRate: number; + cgstAmount: number; + sgstRate: number; + sgstAmount: number; + // Cess support: populated when custom cess fields are present in line items (future use) + cessRate: number; + cessAmount: number; + taxAmount: number; +}; + +export type HsnSummaryResult = { + hsnList: HsnRow[]; + isIgst: boolean; + isUtgst: boolean; + hasCess: boolean; + hasRows: boolean; + totalTaxableValue: number; + totalIgstAmount: number; + totalCgstAmount: number; + totalSgstAmount: number; + totalCessAmount: number; + totalTaxAmount: number; +}; + +export function computeHsnSummary( + items: LineItem[], + options: { isIgst?: boolean; isUtgst?: boolean } = {} +): HsnSummaryResult { + const { isIgst = false, isUtgst = false } = options; + + const empty: HsnSummaryResult = { + hsnList: [], + isIgst, + isUtgst, + hasCess: false, + hasRows: false, + totalTaxableValue: 0, + totalIgstAmount: 0, + totalCgstAmount: 0, + totalSgstAmount: 0, + totalCessAmount: 0, + totalTaxAmount: 0, + }; + + if (!Array.isArray(items) || !items.length) return empty; + + const hsnMap: Record = {}; + let totalTaxableValue = 0; + let totalIgstAmount = 0; + let totalCgstAmount = 0; + let totalSgstAmount = 0; + let totalTaxAmount = 0; + + items + .filter((item) => item && !!(item.hsn || "")) + .forEach((item) => { + const hsn = item.hsn as string; + const gstRate = item.gstRate || 0; + const key = `${hsn}:${gstRate}`; + + if (!hsnMap[key]) { + hsnMap[key] = { + hsn, + taxableValue: 0, + igstRate: isIgst ? gstRate : 0, + igstAmount: 0, + cgstRate: isIgst ? 0 : gstRate / 2, + cgstAmount: 0, + sgstRate: isIgst ? 0 : gstRate / 2, + sgstAmount: 0, + cessRate: 0, + cessAmount: 0, + taxAmount: 0, + }; + } + + const row = hsnMap[key]; + const amount = item.amount || 0; + row.taxableValue += amount; + totalTaxableValue += amount; + + if (isIgst) { + const igst = item.igst || 0; + row.igstAmount += igst; + row.taxAmount += igst; + totalIgstAmount += igst; + totalTaxAmount += igst; + } else { + const cgst = item.cgst || 0; + const sgst = item.sgst || 0; + row.cgstAmount += cgst; + row.sgstAmount += sgst; + row.taxAmount += cgst + sgst; + totalCgstAmount += cgst; + totalSgstAmount += sgst; + totalTaxAmount += cgst + sgst; + } + }); + + const round = (n: number) => Math.round((n + Number.EPSILON) * 100) / 100; + + const hsnList = Object.values(hsnMap) + .map((row) => ({ + ...row, + taxableValue: round(row.taxableValue), + igstAmount: round(row.igstAmount), + cgstAmount: round(row.cgstAmount), + sgstAmount: round(row.sgstAmount), + taxAmount: round(row.taxAmount), + })) + .sort( + (a, b) => + b.hsn.localeCompare(a.hsn) || + b.igstRate + b.cgstRate - a.igstRate - a.cgstRate + ); + + return { + hsnList, + isIgst, + isUtgst, + hasCess: false, + hasRows: hsnList.length > 0, + totalTaxableValue: round(totalTaxableValue), + totalIgstAmount: round(totalIgstAmount), + totalCgstAmount: round(totalCgstAmount), + totalSgstAmount: round(totalSgstAmount), + totalCessAmount: 0, + totalTaxAmount: round(totalTaxAmount), + }; +} diff --git a/src/widgets/hsn-summary/version.json b/src/widgets/hsn-summary/version.json new file mode 100644 index 0000000..f58c014 --- /dev/null +++ b/src/widgets/hsn-summary/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.0.3", + "digest": "74e5e810" +} \ No newline at end of file diff --git a/src/widgets/image/CeresImage.hbs b/src/widgets/image/CeresImage.hbs new file mode 100644 index 0000000..8ae841d --- /dev/null +++ b/src/widgets/image/CeresImage.hbs @@ -0,0 +1,20 @@ +{{!-- CeresImage — a single reusable image. + Reusable anywhere in a template: + {{> CeresImage src=logo alt="Company logo" width="120"}} + {{> CeresImage src=thumbnail alt=name href=fullImage}} (href → opens in new tab) + + Params (all via hash): + src (required) direct image URL from the Serana response — used as-is, never optimized + alt alt text + href when present, the image is wrapped in a link that opens in a new tab + width / height optional pixel attributes + class extra class name(s) appended to .ceres-image --}} +{{#if src}} +{{#if href}} + + {{alt}} + +{{else}} +{{alt}} +{{/if}} +{{/if}} diff --git a/src/widgets/image/CeresImageGallery.hbs b/src/widgets/image/CeresImageGallery.hbs new file mode 100644 index 0000000..08b614a --- /dev/null +++ b/src/widgets/image/CeresImageGallery.hbs @@ -0,0 +1,16 @@ +{{!-- CeresImageGallery — a row/grid of images built from an array. + Feed it via the prepareImageGallery helper (normalizes strings or {url}/{src}): + {{> CeresImageGallery (prepareImageGallery item.images variant="thumbnail" alt=name) }} + {{> CeresImageGallery (prepareImageGallery item.originalImages variant="original" alt=name) }} + + Payload shape (see utils.ts): + hasImages boolean + images [{ src, href, alt }] href empty → rendered without a link + variant string → container modifier class (e.g. thumbnail | original | default) --}} +{{#if hasImages}} + +{{/if}} diff --git a/src/widgets/image/index.ts b/src/widgets/image/index.ts new file mode 100644 index 0000000..ee4c4b6 --- /dev/null +++ b/src/widgets/image/index.ts @@ -0,0 +1,64 @@ +/* + Image widget for Ceres (Handlebars) + + Provides reusable image rendering for templates. Unlike Lydia, Ceres does NOT + optimize/compress images (no getOptimizedImage / getSrcSet from @refrens/birds): + the direct image URL from the Serana response is passed straight into . + + Registers: + - Partial CeresImage → a single reusable image (linkable) + - Partial CeresImageGallery → a row/grid of images built from an array + - Helper prepareImageGallery → normalizes an array of images into a gallery payload + + Usage in a template: + {{> CeresImage src=logo alt="Logo" width="120"}} + {{> CeresImageGallery (prepareImageGallery item.images variant="thumbnail" alt=name) }} + {{> CeresImageGallery (prepareImageGallery item.originalImages variant="original" alt=name) }} +*/ + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore - compiled via handlebars-loader +import ceresImage from "./CeresImage.hbs"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore - compiled via handlebars-loader +import ceresImageGallery from "./CeresImageGallery.hbs"; +import "./styles.css"; +import { prepareImageGallery } from "./utils"; + +function getHB(): any { + return (window as any).Handlebars; +} + +function register(): void { + const HB = getHB(); + if (!HB) return; + + HB.registerHelper( + "prepareImageGallery", + function (images: unknown, options: any) { + const hash = options?.hash || {}; + // link defaults to true; pass link=false (bare boolean) to render plain + // (non-linked) images. A quoted "false" string is also accepted. + const linkDisabled = hash.link === false || hash.link === "false"; + return prepareImageGallery(images, { + variant: hash.variant, + alt: hash.alt, + link: !linkDisabled, + }); + } + ); + + HB.registerPartial("CeresImage", ceresImage); + HB.registerPartial("CeresImageGallery", ceresImageGallery); + + (window as any).CeresWidgets = (window as any).CeresWidgets || {}; + (window as any).CeresWidgets.Image = { register }; +} + +try { + register(); +} catch (error) { + console.error("Image widget registration failed:", error); +} + +export {}; diff --git a/src/widgets/image/styles.css b/src/widgets/image/styles.css new file mode 100644 index 0000000..4571f0a --- /dev/null +++ b/src/widgets/image/styles.css @@ -0,0 +1,48 @@ +/* Image widget styles (Ceres) + Sizing is handled with CSS (via gallery variant classes) rather than + optimized/resized image URLs — Ceres always renders the direct source image. */ + +.ceres-image { + display: block; + max-width: 100%; + height: auto; +} + +.ceres-image-link { + display: inline-block; + line-height: 0; + text-decoration: none; +} + +.ceres-image-gallery { + display: flex; + flex-wrap: wrap; + gap: 8px; + align-items: flex-start; + padding-top: 8px; +} + +/* Thumbnails — small fixed squares, cropped to fit (mirrors Lydia line-item thumbnails). */ +.ceres-image-gallery-thumbnail .ceres-image { + width: 65px; + height: 65px; + object-fit: cover; + border-radius: 4px; + border: 1px solid #e5e7eb; +} + +/* Original images — larger previews that keep aspect ratio. */ +.ceres-image-gallery-original .ceres-image { + max-width: 220px; + max-height: 220px; + object-fit: contain; + border-radius: 4px; + border: 1px solid #e5e7eb; +} + +@media print { + .ceres-image-gallery { + /* keep galleries from breaking across printed pages where possible */ + break-inside: avoid; + } +} diff --git a/src/widgets/image/utils.ts b/src/widgets/image/utils.ts new file mode 100644 index 0000000..4a133df --- /dev/null +++ b/src/widgets/image/utils.ts @@ -0,0 +1,122 @@ +/* + Image widget utilities (Ceres) + + Ceres never optimizes/compresses images. Unlike Lydia (which uses + getOptimizedImage / getSrcSet from @refrens/birds), here we pass the direct + image link that comes from the Serana response straight into . + Those birds helpers are intentionally NOT used in Ceres. + + These helpers only normalize the incoming shape (string | { url } | { src }) + into a plain, safe list of direct image URLs so the Handlebars partials can + render them consistently anywhere in a template. +*/ + +/** An image value as it may appear in the Serana response. */ +export type ImageInput = + | string + | { url?: unknown; src?: unknown } + | null + | undefined; + +/** A single image ready to render. `href` is empty when linking is disabled. */ +export interface NormalizedImage { + src: string; + href: string; + alt: string; +} + +export interface GalleryOptions { + /** alt text applied to every image in the gallery */ + alt?: string; + /** when true (default) each image links to its own full-size URL in a new tab */ + link?: boolean; +} + +export interface ImageGalleryPayload { + hasImages: boolean; + images: NormalizedImage[]; + /** style variant, drives the container class (e.g. "thumbnail" | "original") */ + variant: string; +} + +/** + * Extract a usable direct image URL from a single image entry. + * Accepts a plain string, or an object carrying `url` / `src`. + * Returns null when nothing renderable is present. + * @param input + */ +export function toImageSrc(input: ImageInput): string | null { + const isSafe = (url: string) => !/^(?:javascript|vbscript|file):/i.test(url); + + if (typeof input === "string") { + const trimmed = input.trim(); + return trimmed.length > 0 && isSafe(trimmed) ? trimmed : null; + } + + if (input && typeof input === "object") { + let candidate: string | null = null; + + if (typeof input.url === "string") { + candidate = input.url; + } else if (typeof input.src === "string") { + candidate = input.src; + } + + if (candidate) { + const trimmed = candidate.trim(); + return trimmed.length > 0 && isSafe(trimmed) ? trimmed : null; + } + } + + return null; +} + +/** + * Normalize an arbitrary array of image entries into renderable images. + * Non-array input yields an empty list. Empty/invalid entries are dropped. + * @param images + * @param options + */ +export function normalizeImages( + images: unknown, + options: GalleryOptions = {} +): NormalizedImage[] { + if (!Array.isArray(images)) { + return []; + } + + const alt = typeof options.alt === "string" ? options.alt : ""; + // Link to the full image by default (matches Lydia's line-item behaviour). + const link = options.link !== false; + + return images + .map((image) => toImageSrc(image as ImageInput)) + .filter((src): src is string => src !== null) + .map((src) => ({ src, href: link ? src : "", alt })); +} + +/** + * Build the payload consumed by the CeresImageGallery partial. + * @param images + * @param options + */ +/** Allowed values for `variant` — anything else falls back to "default" rather than being interpolated as-is into a CSS class name. */ +const ALLOWED_GALLERY_VARIANTS = ["thumbnail", "original", "default"]; + +export function prepareImageGallery( + images: unknown, + options: GalleryOptions & { variant?: string } = {} +): ImageGalleryPayload { + const normalized = normalizeImages(images, options); + const requestedVariant = + typeof options.variant === "string" ? options.variant.trim() : ""; + const variant = ALLOWED_GALLERY_VARIANTS.includes(requestedVariant) + ? requestedVariant + : "default"; + + return { + hasImages: normalized.length > 0, + images: normalized, + variant, + }; +} diff --git a/src/widgets/image/version.json b/src/widgets/image/version.json new file mode 100644 index 0000000..f164b41 --- /dev/null +++ b/src/widgets/image/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.0.0", + "digest": "c93177dd" +} \ No newline at end of file diff --git a/src/widgets/payment-table/PaymentTable.hbs b/src/widgets/payment-table/PaymentTable.hbs new file mode 100644 index 0000000..4953054 --- /dev/null +++ b/src/widgets/payment-table/PaymentTable.hbs @@ -0,0 +1,41 @@ +{{#if hasRows}} +
+

{{#if heading}}{{heading}}{{else}}Payments{{/if}}

+ + + + + + + + {{#if showTds}}{{/if}} + {{#if showTransactionCharge}}{{/if}} + + + + {{#each payments}} + + + + + + {{#if ../showTds}}{{/if}} + {{#if ../showTransactionCharge}}{{/if}} + + {{/each}} + + + + + + + + {{#if showTds}}{{/if}} + {{#if showTransactionCharge}}{{/if}} + + +
DateModeAmount ReceivedPayment AccountTDSTransaction Charge
{{formateShortDateWithOffset paymentDate ../ownerOffset}}{{paymentMethodLabel}} + {{formatCurrency amount}}{{#if ../showBizAmount}}{{#if amountInBizCurrencyFormatted}}
({{amountInBizCurrencyFormatted}}){{/if}}{{/if}} +
{{paymentAccountName}}{{formatCurrency tds}}{{formatCurrency transactionCharge}}
Total{{formatCurrency totalAmount}}{{formatCurrency totalTds}}{{formatCurrency totalTransactionCharge}}
+
+{{/if}} diff --git a/src/widgets/payment-table/index.ts b/src/widgets/payment-table/index.ts new file mode 100644 index 0000000..fdd1bfe --- /dev/null +++ b/src/widgets/payment-table/index.ts @@ -0,0 +1,40 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore - template compiled by loader +import template from "./PaymentTable.hbs"; +import "./styles.css"; +import { computePaymentColumns } from "./utils"; +import registerFormatCurrencyHelper from "../shared/registerFormatCurrencyHelper"; + +function getHB(): any { + return (window as any).Handlebars; +} + +function register(): void { + const HB = getHB(); + if (!HB) return; + + HB.registerHelper( + "computePaymentColumns", + function (payments: any, options: any) { + return computePaymentColumns(Array.isArray(payments) ? payments : [], { + businessCurrency: options?.hash?.businessCurrency, + currency: options?.hash?.currency, + }); + } + ); + + registerFormatCurrencyHelper(HB); + + HB.registerPartial("PaymentTable", template); + + (window as any).CeresWidgets = (window as any).CeresWidgets || {}; + (window as any).CeresWidgets.PaymentTable = { register }; +} + +try { + register(); +} catch (_) { + /* noop */ +} + +export {}; diff --git a/src/widgets/payment-table/styles.css b/src/widgets/payment-table/styles.css new file mode 100644 index 0000000..7333913 --- /dev/null +++ b/src/widgets/payment-table/styles.css @@ -0,0 +1,54 @@ +/* Shared table section styles — used by all three table widgets */ +.ceres-table-section { + margin: 16px 0; + overflow-x: auto; +} + +.ceres-table-heading { + font-size: 13px; + font-weight: 600; + margin: 0 0 8px; + color: #333; + letter-spacing: 0.04em; +} + +.ceres-table { + width: 100%; + border-collapse: collapse; + font-size: 13px; +} + +.ceres-table th, +.ceres-table td { + padding: 6px 10px; + border: 1px solid #e0e0e0; + text-align: center; +} + +.ceres-table th:first-child, +.ceres-table td:first-child { + text-align: left; +} + +.ceres-table thead th { + background: #f5f5f5; + color: #555; + font-weight: 600; + font-size: 13px; + letter-spacing: 0.03em; +} + +.ceres-table tbody tr:nth-child(even) { + background: #fafafa; +} + +.ceres-table tfoot td { + font-weight: 500; + border-top: 2px solid #333; +} + +@media print { + .ceres-table-section { + break-inside: avoid; + } +} diff --git a/src/widgets/payment-table/utils.ts b/src/widgets/payment-table/utils.ts new file mode 100644 index 0000000..dd13a2a --- /dev/null +++ b/src/widgets/payment-table/utils.ts @@ -0,0 +1,144 @@ +import formatCurrency from "../shared/formatCurrency"; + +const PAYMENT_METHOD_LABELS: Record = { + ACCOUNT_TRANSFER: "Account Transfer", + UPI: "UPI", + CASH: "Cash Payment", + Cheque: "Cheque", + DD: "Demand Draft", + CREDIT_CARD: "Credit Card", + DEBIT_CARD: "Debit Card", + WALLET: "Digital Wallet", + PREPAID_CARD: "Prepaid Card", + PROFORMA_PAYMENT: "Proforma Payment", + OTHER: "Other", + PAYMENT_RECEIPT: "Payment Receipt", +}; + +type Payment = { + paymentDate?: string; + paymentMethod?: string; + amount?: number; + status?: string; + tds?: number; + transactionCharge?: number; + paymentAccount?: { name?: string }; + conversionRates?: Record; + [key: string]: any; +}; + +type PaymentRow = { + paymentDate: string; + paymentMethodLabel: string; + amount: number; + status: string; + tds: number; + transactionCharge: number; + paymentAccountName: string; + amountInBizCurrency: number; + amountInBizCurrencyFormatted: string; +}; + +export type PaymentTableResult = { + payments: PaymentRow[]; + showTds: boolean; + showTransactionCharge: boolean; + showBizAmount: boolean; + businessCurrency: string; + hasRows: boolean; + totalAmount: number; + totalTds: number; + totalTransactionCharge: number; +}; + +export function computePaymentColumns( + payments: Payment[], + options: { businessCurrency?: string; currency?: string } = {} +): PaymentTableResult { + const { currency: invCurrency = "" } = options; + + // Use provided businessCurrency; if absent, auto-detect from the first conversionRates key + let bizCurrency = options.businessCurrency || ""; + if (!bizCurrency && Array.isArray(payments)) { + const firstPaymentWithRate = payments.find( + (p) => p.conversionRates && Object.keys(p.conversionRates).length > 0 + ); + if (firstPaymentWithRate) { + bizCurrency = Object.keys( + firstPaymentWithRate.conversionRates! + )[0] as string; + } + } + + const isForexInvoice = !!(bizCurrency && bizCurrency !== invCurrency); + + const empty: PaymentTableResult = { + payments: [], + showTds: false, + showTransactionCharge: false, + showBizAmount: false, + businessCurrency: bizCurrency, + hasRows: false, + totalAmount: 0, + totalTds: 0, + totalTransactionCharge: 0, + }; + + if (!Array.isArray(payments) || !payments.length) return empty; + + let showTds = false; + let showTransactionCharge = false; + let showBizAmount = false; + let totalAmount = 0; + let totalTds = 0; + let totalTransactionCharge = 0; + + const rows: PaymentRow[] = payments + .filter((p) => !!p) + .map((p) => { + const amount = p.amount || 0; + const tds = p.tds || 0; + const transactionCharge = p.transactionCharge || 0; + const bizRate = + (p.conversionRates && p.conversionRates[bizCurrency]) || 0; + const amountInBizCurrency = amount * bizRate; + + if (tds > 0) showTds = true; + if (transactionCharge > 0) showTransactionCharge = true; + if (isForexInvoice && amountInBizCurrency > 0) showBizAmount = true; + + totalAmount += amount; + totalTds += tds; + totalTransactionCharge += transactionCharge; + + return { + paymentDate: p.paymentDate || "", + paymentMethodLabel: + PAYMENT_METHOD_LABELS[p.paymentMethod || ""] || p.paymentMethod || "", + amount, + status: p.status || "", + tds, + transactionCharge, + paymentAccountName: p.paymentAccount?.name || "-", + amountInBizCurrency, + amountInBizCurrencyFormatted: + isForexInvoice && amountInBizCurrency > 0 + ? formatCurrency(amountInBizCurrency, bizCurrency, "en-US", 2) + : "", + }; + }); + + const round = (n: number) => Math.round((n + Number.EPSILON) * 100) / 100; + + return { + payments: rows, + showTds, + showTransactionCharge, + showBizAmount, + businessCurrency: bizCurrency, + hasRows: rows.length > 0, + totalAmount: round(totalAmount), + totalTds: round(totalTds), + totalTransactionCharge: round(totalTransactionCharge), + }; +} diff --git a/src/widgets/payment-table/version.json b/src/widgets/payment-table/version.json new file mode 100644 index 0000000..241fcce --- /dev/null +++ b/src/widgets/payment-table/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.0.3", + "digest": "86415061" +} \ No newline at end of file diff --git a/src/widgets/phone-number/index.ts b/src/widgets/phone-number/index.ts new file mode 100644 index 0000000..2450450 --- /dev/null +++ b/src/widgets/phone-number/index.ts @@ -0,0 +1,38 @@ +import { parsePhoneNumberFromString } from "libphonenumber-js"; + +function formatPhoneNumberIntl(phone: string): string | undefined { + const normalized = phone.slice(0, 1) === "+" ? phone : `+${phone}`; + const parsed = parsePhoneNumberFromString(normalized); + const formatted = parsed?.formatInternational(); + // Wrap with LTR isolate characters to prevent RTL distortion (same as disco) + return formatted ? `\u2066${formatted}\u2069` : undefined; +} + +function getHB(): any { + return (window as any).Handlebars; +} + +function register() { + const HB = getHB(); + if (!HB) return; + + HB.registerHelper("formatPhoneNumber", (phone: any) => { + if (typeof phone !== "string" && typeof phone !== "number") { + return ""; + } + const phoneStr = String(phone).trim(); + if (!phoneStr) return ""; + return formatPhoneNumberIntl(phoneStr) ?? phoneStr; + }); + + (window as any).CeresWidgets = (window as any).CeresWidgets || {}; + (window as any).CeresWidgets.PhoneNumber = { register }; +} + +try { + register(); +} catch (_) { + /* noop */ +} + +export default formatPhoneNumberIntl; diff --git a/src/widgets/phone-number/version.json b/src/widgets/phone-number/version.json new file mode 100644 index 0000000..0113b8e --- /dev/null +++ b/src/widgets/phone-number/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.0.0", + "digest": "f29b76c0" +} \ No newline at end of file diff --git a/src/widgets/refrens-branding/RefrensBranding.hbs b/src/widgets/refrens-branding/RefrensBranding.hbs new file mode 100644 index 0000000..e732383 --- /dev/null +++ b/src/widgets/refrens-branding/RefrensBranding.hbs @@ -0,0 +1,14 @@ +{{!-- RefrensBranding partial + Renders "Powered by Refrens.com" only when showBranding is truthy. + no-dibella class hides this in dibella PDF mode (dibella injects its own branding in the footer). --}} +{{#if showBranding}} + +{{/if}} diff --git a/src/widgets/refrens-branding/index.ts b/src/widgets/refrens-branding/index.ts new file mode 100644 index 0000000..f0c7b46 --- /dev/null +++ b/src/widgets/refrens-branding/index.ts @@ -0,0 +1,24 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore - compiled via handlebars-loader +import template from "./RefrensBranding.hbs"; +import "./styles.css"; + +(function () { + function getHB(): any { + return (window as any).Handlebars; + } + + function register() { + const HB = getHB(); + if (!HB) return; + HB.registerPartial("RefrensBranding", template); + } + + try { + register(); + } catch (_) { + /* noop */ + } +})(); + +export { }; diff --git a/src/widgets/refrens-branding/styles.css b/src/widgets/refrens-branding/styles.css new file mode 100644 index 0000000..29f06b1 --- /dev/null +++ b/src/widgets/refrens-branding/styles.css @@ -0,0 +1,23 @@ +/* RefrensBranding Widget + * Shows "Powered by Refrens.com" in web view and browser print-preview for trial users. + * Hidden in dibella PDF mode via the no-dibella class (dibella injects its own branding in the PDF footer). + */ + +.refrens-branding-widget { + display: flex; + justify-content: center; + align-items: center; + margin-top: 16px; + padding: 8px 0; +} + +.refrens-branding-widget a { + display: inline-flex; + align-items: center; + text-decoration: none; +} + +.refrens-branding-widget img { + height: 16px; + width: auto; +} diff --git a/src/widgets/refrens-branding/version.json b/src/widgets/refrens-branding/version.json new file mode 100644 index 0000000..bda8806 --- /dev/null +++ b/src/widgets/refrens-branding/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.0.4", + "digest": "1c952666" +} \ No newline at end of file diff --git a/src/widgets/shared/amountInWords.ts b/src/widgets/shared/amountInWords.ts new file mode 100644 index 0000000..2d885c6 --- /dev/null +++ b/src/widgets/shared/amountInWords.ts @@ -0,0 +1,81 @@ +const ones = [ + "", + "One", + "Two", + "Three", + "Four", + "Five", + "Six", + "Seven", + "Eight", + "Nine", + "Ten", + "Eleven", + "Twelve", + "Thirteen", + "Fourteen", + "Fifteen", + "Sixteen", + "Seventeen", + "Eighteen", + "Nineteen", +]; +const tensWords = [ + "", + "", + "Twenty", + "Thirty", + "Forty", + "Fifty", + "Sixty", + "Seventy", + "Eighty", + "Ninety", +]; + +function below100(n: number): string { + return n < 20 + ? ones[n] + : ( + tensWords[Math.floor(n / 10)] + (n % 10 ? ` ${ones[n % 10]}` : "") + ).trim(); +} + +function below1000(n: number): string { + if (n < 100) return below100(n); + return `${ones[Math.floor(n / 100)]} Hundred${ + n % 100 ? ` ${below100(n % 100)}` : "" + }`; +} + +function toWords(n: number): string { + if (!n) return "Zero"; + let r = ""; + if (n >= 10000000) { + r += `${below1000(Math.floor(n / 10000000))} Crore `; + n %= 10000000; + } + if (n >= 100000) { + r += `${below1000(Math.floor(n / 100000))} Lakh `; + n %= 100000; + } + if (n >= 1000) { + r += `${below1000(Math.floor(n / 1000))} Thousand `; + n %= 1000; + } + return (r + below1000(n)).trim(); +} + +export default function amountInWords(amount: number): string { + if (typeof amount !== "number" || !Number.isFinite(amount)) { + return "ZERO RUPEES ONLY"; + } + if (amount < 0) { + return `MINUS ${amountInWords(Math.abs(amount))}`; + } + const rupees = Math.floor(amount); + const paise = Math.round((amount - rupees) * 100); + let words = `${toWords(rupees)} ${rupees === 1 ? "Rupee" : "Rupees"}`; + if (paise > 0) words += ` And ${toWords(paise)} ${paise === 1 ? "Paisa" : "Paise"}`; + return `${words} Only`.toUpperCase(); +} diff --git a/src/widgets/shared/formatCurrency.ts b/src/widgets/shared/formatCurrency.ts new file mode 100644 index 0000000..57c361e --- /dev/null +++ b/src/widgets/shared/formatCurrency.ts @@ -0,0 +1,79 @@ +const SPECIAL_SYMBOLS: Record = { + SLE: "SLE", + SAR: "⃁", +}; + +function isHbOptions(val: any): boolean { + return ( + val != null && typeof val === "object" && "hash" in val && "data" in val + ); +} + +export default function formatCurrency( + number?: any, + currency?: any, + locale?: any, + subUnitLength?: any, + customCurrencySymbol?: any +): string { + // When called directly by handlebars-loader, the HB options object is passed as `currency`. + // Detect this and extract the real currency/locale values from data.root or ceresInvoiceData. + if (isHbOptions(currency)) { + const root = + currency?.data?.root || + (typeof window !== "undefined" && (window as any).ceresInvoiceData) || + {}; + customCurrencySymbol = root.customCurrencySymbol ?? null; + subUnitLength = root.subUnitLength ?? null; + locale = root.locale; + currency = root.currency; + } + + let c = parseFloat(number); + const localString = typeof locale === "string" && locale ? locale : "en-IN"; + if (!c) c = 0; + + const resolvedCurrency = + typeof currency === "string" && currency ? currency : "INR"; + const currencySymbol = + typeof customCurrencySymbol === "string" && customCurrencySymbol + ? customCurrencySymbol + : SPECIAL_SYMBOLS[resolvedCurrency] || null; + + if (resolvedCurrency === "RC") { + return `🅲 ${c.toLocaleString(localString, {})}`; + } + + const formatOptions: Intl.NumberFormatOptions = { + style: "currency", + currency: resolvedCurrency, + }; + + if (Number.isInteger(c)) { + formatOptions.minimumFractionDigits = 0; + } + + if (typeof subUnitLength === "number" && Number.isInteger(subUnitLength)) { + formatOptions.minimumFractionDigits = subUnitLength; + formatOptions.maximumFractionDigits = subUnitLength; + } + + let result: string; + try { + result = Math.abs(c).toLocaleString(localString, formatOptions); + } catch (_) { + result = `${resolvedCurrency} ${Math.abs(c).toFixed(2)}`; + } + + if (currencySymbol) { + const numberMatch = /[\d,. ]+/; + const matchedElements = result.match(numberMatch); + /* istanbul ignore else */ + if (matchedElements) { + result = `${currencySymbol} ${matchedElements.join("").trim()}`; + } + } + + if (c < 0) return `(${result})`; + return result; +} diff --git a/src/widgets/shared/registerFormatCurrencyHelper.ts b/src/widgets/shared/registerFormatCurrencyHelper.ts new file mode 100644 index 0000000..84f7be8 --- /dev/null +++ b/src/widgets/shared/registerFormatCurrencyHelper.ts @@ -0,0 +1,29 @@ +import formatCurrency from "./formatCurrency"; + +export default function registerFormatCurrencyHelper(HB: any): void { + HB.registerHelper("formatCurrency", function (amount: any, ...rest: any[]) { + const options = rest[rest.length - 1]; + // Prefer options.data.root (set when compiled with data:true), fall back to ceresInvoiceData + const root = options?.data?.root || (window as any).ceresInvoiceData || {}; + + // Positional overrides take precedence; otherwise fall back to root context + const currency = + typeof rest[0] === "string" && rest[0] ? rest[0] : root.currency; + const locale = + typeof rest[1] === "string" && rest[1] ? rest[1] : root.locale; + const subUnitLength = + typeof rest[2] === "number" ? rest[2] : root.subUnitLength ?? null; + const customCurrencySymbol = + typeof rest[3] === "string" && rest[3] + ? rest[3] + : root.customCurrencySymbol ?? null; + + return formatCurrency( + amount, + currency, + locale, + subUnitLength, + customCurrencySymbol + ); + }); +} diff --git a/src/widgets/tax-summary/TaxSummaryTable.hbs b/src/widgets/tax-summary/TaxSummaryTable.hbs new file mode 100644 index 0000000..06ebfe3 --- /dev/null +++ b/src/widgets/tax-summary/TaxSummaryTable.hbs @@ -0,0 +1,76 @@ +{{#if hasRows}} +
+ + + + + {{#if isIgst}} + + {{else}} + + + {{/if}} + {{#if hasCess}}{{/if}} + + + + + {{#if isIgst}} + + + {{else}} + + + + + {{/if}} + {{#if hasCess}}{{/if}} + + + + + {{#each taxList}} + + + {{#if ../isIgst}} + + + {{else}} + + + + + {{/if}} + {{#if ../hasCess}} + + + {{/if}} + + + {{/each}} + + + + + {{#if isIgst}} + + + {{else}} + + + + + {{/if}} + {{#if hasCess}} + + + {{/if}} + + + + + + +
Tax RateIGSTCGST{{#if isUtgst}}UTGST{{else}}SGST{{/if}}CessTotal
RateAmountRateAmountRateAmountRateAmount
{{gstRate}}%{{igstRate}}%{{formatCurrency igstAmount}}{{cgstRate}}%{{formatCurrency cgstAmount}}{{sgstRate}}%{{formatCurrency sgstAmount}}{{cessRate}}%{{formatCurrency cessAmount}}{{formatCurrency taxAmount}}
Total{{formatCurrency totalIgstAmount}}{{formatCurrency totalCgstAmount}}{{formatCurrency totalSgstAmount}}{{formatCurrency totalCessAmount}}{{formatCurrency totalTaxAmount}}
Total Tax In Words: {{amountInWords totalTaxAmount}}
+
+{{/if}} diff --git a/src/widgets/tax-summary/index.ts b/src/widgets/tax-summary/index.ts new file mode 100644 index 0000000..e7d97f2 --- /dev/null +++ b/src/widgets/tax-summary/index.ts @@ -0,0 +1,42 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore - template compiled by loader +import template from "./TaxSummaryTable.hbs"; +import "./styles.css"; +import { computeTaxSummary } from "./utils"; +import amountInWords from "../shared/amountInWords"; +import registerFormatCurrencyHelper from "../shared/registerFormatCurrencyHelper"; + +function getHB(): any { + return (window as any).Handlebars; +} + +function register(): void { + const HB = getHB(); + if (!HB) return; + + HB.registerHelper("computeTaxSummary", function (items: any, options: any) { + return computeTaxSummary(Array.isArray(items) ? items : [], { + isIgst: !!options?.hash?.isIgst, + isUtgst: !!options?.hash?.isUtgst, + }); + }); + + HB.registerHelper("amountInWords", function (amount: any) { + return amountInWords(parseFloat(amount) || 0); + }); + + registerFormatCurrencyHelper(HB); + + HB.registerPartial("TaxSummaryTable", template); + + (window as any).CeresWidgets = (window as any).CeresWidgets || {}; + (window as any).CeresWidgets.TaxSummaryTable = { register }; +} + +try { + register(); +} catch (_) { + /* noop */ +} + +export {}; diff --git a/src/widgets/tax-summary/styles.css b/src/widgets/tax-summary/styles.css new file mode 100644 index 0000000..ced7d92 --- /dev/null +++ b/src/widgets/tax-summary/styles.css @@ -0,0 +1,60 @@ +/* Shared table section styles — used by all three table widgets */ +.ceres-table-section { + margin: 16px 0; + overflow-x: auto; +} + +.ceres-table-heading { + font-size: 13px; + font-weight: 600; + margin: 0 0 8px; + color: #333; + letter-spacing: 0.04em; +} + +.ceres-table { + width: 100%; + border-collapse: collapse; + font-size: 13px; +} + +.ceres-table th, +.ceres-table td { + padding: 6px 10px; + border: 1px solid #e0e0e0; + text-align: center; +} + +.ceres-table th:first-child, +.ceres-table td:first-child { + text-align: left; +} + +.ceres-table thead th { + background: #f5f5f5; + color: #555; + font-weight: 600; + font-size: 13px; + letter-spacing: 0.03em; +} + +.ceres-table tbody tr:nth-child(even) { + background: #fafafa; +} + +.ceres-table tfoot td { + font-weight: 500; + border-top: 2px solid #333; +} + +.ceres-table-words { + font-size: 11px; + color: #555; + text-align: left !important; +} + +@media print { + .ceres-table-section { + break-inside: avoid; + } +} diff --git a/src/widgets/tax-summary/utils.ts b/src/widgets/tax-summary/utils.ts new file mode 100644 index 0000000..33da642 --- /dev/null +++ b/src/widgets/tax-summary/utils.ts @@ -0,0 +1,129 @@ +type LineItem = { + gstRate?: number; + igst?: number; + cgst?: number; + sgst?: number; + [key: string]: any; +}; + +type TaxRow = { + gstRate: number; + igstRate: number; + igstAmount: number; + cgstRate: number; + cgstAmount: number; + sgstRate: number; + sgstAmount: number; + // Cess support: populated when custom cess fields are present in line items (future use) + cessRate: number; + cessAmount: number; + taxAmount: number; +}; + +export type TaxSummaryResult = { + taxList: TaxRow[]; + isIgst: boolean; + isUtgst: boolean; + hasCess: boolean; + hasRows: boolean; + totalIgstAmount: number; + totalCgstAmount: number; + totalSgstAmount: number; + totalCessAmount: number; + totalTaxAmount: number; +}; + +export function computeTaxSummary( + items: LineItem[], + options: { isIgst?: boolean; isUtgst?: boolean } = {} +): TaxSummaryResult { + const { isIgst = false, isUtgst = false } = options; + + const empty: TaxSummaryResult = { + taxList: [], + isIgst, + isUtgst, + hasCess: false, + hasRows: false, + totalIgstAmount: 0, + totalCgstAmount: 0, + totalSgstAmount: 0, + totalCessAmount: 0, + totalTaxAmount: 0, + }; + + if (!Array.isArray(items) || !items.length) return empty; + + const taxMap: Record = {}; + let totalIgstAmount = 0; + let totalCgstAmount = 0; + let totalSgstAmount = 0; + let totalTaxAmount = 0; + + items.forEach((item) => { + if (!item) return; + const gstRate = item.gstRate || 0; + if (!gstRate) return; + + const key = String(gstRate); + + if (!taxMap[key]) { + taxMap[key] = { + gstRate, + igstRate: isIgst ? gstRate : 0, + igstAmount: 0, + cgstRate: isIgst ? 0 : gstRate / 2, + cgstAmount: 0, + sgstRate: isIgst ? 0 : gstRate / 2, + sgstAmount: 0, + cessRate: 0, + cessAmount: 0, + taxAmount: 0, + }; + } + + const row = taxMap[key]; + + if (isIgst) { + const igst = item.igst || 0; + row.igstAmount += igst; + row.taxAmount += igst; + totalIgstAmount += igst; + totalTaxAmount += igst; + } else { + const cgst = item.cgst || 0; + const sgst = item.sgst || 0; + row.cgstAmount += cgst; + row.sgstAmount += sgst; + row.taxAmount += cgst + sgst; + totalCgstAmount += cgst; + totalSgstAmount += sgst; + totalTaxAmount += cgst + sgst; + } + }); + + const round = (n: number) => Math.round((n + Number.EPSILON) * 100) / 100; + + const taxList = Object.values(taxMap) + .map((row) => ({ + ...row, + igstAmount: round(row.igstAmount), + cgstAmount: round(row.cgstAmount), + sgstAmount: round(row.sgstAmount), + taxAmount: round(row.taxAmount), + })) + .sort((a, b) => b.gstRate - a.gstRate); + + return { + taxList, + isIgst, + isUtgst, + hasCess: false, + hasRows: taxList.length > 0, + totalIgstAmount: round(totalIgstAmount), + totalCgstAmount: round(totalCgstAmount), + totalSgstAmount: round(totalSgstAmount), + totalCessAmount: 0, + totalTaxAmount: round(totalTaxAmount), + }; +} diff --git a/src/widgets/tax-summary/version.json b/src/widgets/tax-summary/version.json new file mode 100644 index 0000000..6dfb6d4 --- /dev/null +++ b/src/widgets/tax-summary/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.0.6", + "digest": "d76bf6ef" +} \ No newline at end of file diff --git a/src/widgets/watermark/index.ts b/src/widgets/watermark/index.ts new file mode 100644 index 0000000..d6833b9 --- /dev/null +++ b/src/widgets/watermark/index.ts @@ -0,0 +1,5 @@ +// Watermark widget — pure CSS side-effect. +// Importing this file bundles watermark/styles.css into the template's CSS bundle. +// No Handlebars partial needed; the watermark is a CSS overlay driven by +// CSS variables set by applyPreviewStyles() in commonUtils.ts. +import "./styles.css"; diff --git a/src/widgets/watermark/styles.css b/src/widgets/watermark/styles.css new file mode 100644 index 0000000..636bf77 --- /dev/null +++ b/src/widgets/watermark/styles.css @@ -0,0 +1,136 @@ +/* Watermark Widget + * Screen: overlays on #documentOutput (absolute, centered in document). + * Print: overlays on body (fixed, repeats identically on every printed page). + * CSS variables are set by applyPreviewStyles() in commonUtils.ts. + * Templates opt in by importing src/widgets/watermark/index.ts. + * + * IMPORTANT: position:fixed in Chromium's print engine breaks when combined + * with transform (including translate). Text watermarks use a full-page flex + * container instead of top:50%/left:50%/transform:translate to avoid this. + */ + +/* Default values — overridden at runtime by applyPreviewStyles */ +:root { + --watermark-logo: none; + --watermark-opacity: 0.1; + --watermark-rotate: 0deg; + --watermark-scale: 1; + --watermark-repeated-pattern: no-repeat; + --watermark-z-index: 5; +} + +/* Scopes the screen watermark overlay to the document output div. + * overflow:hidden prevents the absolutely-positioned pseudo-elements + * from extending body scroll height beyond the document content. */ +#documentOutput { + position: relative; + overflow: hidden; +} + +/* ── SCREEN: image watermark ─────────────────────────────────────────────── + * Always present but invisible when --watermark-logo is none. */ +#documentOutput::after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: var(--watermark-logo, none); + background-size: contain; + background-repeat: var(--watermark-repeated-pattern, no-repeat); + background-position: center; + opacity: var(--watermark-opacity); + rotate: var(--watermark-rotate); + scale: var(--watermark-scale, 1); + z-index: var(--watermark-z-index); + transform-origin: center; + pointer-events: none; +} + +/* ── SCREEN: text watermark ──────────────────────────────────────────────── + * Full-size flex container centers text without transform (avoids the + * Chromium print-engine bug where transform breaks position:fixed). */ +#documentOutput[data-watermark-text]::before { + content: attr(data-watermark-text); + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + rotate: var(--watermark-rotate); + scale: var(--watermark-scale); + opacity: var(--watermark-opacity); + font-size: 64px; + font-weight: 700; + color: #000; + white-space: nowrap; + z-index: var(--watermark-z-index); + pointer-events: none; +} + +/* ── PRINT ───────────────────────────────────────────────────────────────── + * Use body::after / body[data-watermark-text]::before with position:fixed. + * position:fixed is placed relative to the page box so it repeats on every + * printed page — unaffected by overflow:hidden on #documentOutput. + * JS sets data-watermark-text on body (for print) AND #documentOutput (for + * screen), so both selectors are satisfied without extra DOM changes. + * NO transform on these rules — see note at top of file. */ +@media print { + /* Hide screen overlays — print overlays below replace them */ + #documentOutput::after, + #documentOutput[data-watermark-text]::before { + display: none; + } + + /* Print: image watermark — one per page */ + body::after { + content: ""; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: var(--watermark-logo, none); + background-size: contain; + background-repeat: var(--watermark-repeated-pattern, no-repeat); + background-position: center; + opacity: var(--watermark-opacity); + rotate: var(--watermark-rotate); + scale: var(--watermark-scale, 1); + z-index: var(--watermark-z-index); + transform-origin: center; + pointer-events: none; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } + + /* Print: text watermark — one per page. + * Full-size flex container: no transform needed, so position:fixed + * stays anchored to the page box and repeats correctly on every page. */ + body[data-watermark-text]::before { + content: attr(data-watermark-text); + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + rotate: var(--watermark-rotate); + scale: var(--watermark-scale); + opacity: var(--watermark-opacity); + font-size: 64px; + font-weight: 700; + color: #000; + white-space: nowrap; + z-index: var(--watermark-z-index); + pointer-events: none; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } +} diff --git a/src/widgets/watermark/version.json b/src/widgets/watermark/version.json new file mode 100644 index 0000000..82ab1d6 --- /dev/null +++ b/src/widgets/watermark/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.0.2", + "digest": "d635ebc0" +} \ No newline at end of file diff --git a/tests/amountInWords.test.ts b/tests/amountInWords.test.ts new file mode 100644 index 0000000..c72329d --- /dev/null +++ b/tests/amountInWords.test.ts @@ -0,0 +1,51 @@ +import amountInWords from "../src/widgets/shared/amountInWords"; + +describe("amountInWords", () => { + it("returns zero rupees for 0", () => { + expect(amountInWords(0)).toBe("ZERO RUPEES ONLY"); + }); + + it("handles whole rupee amounts", () => { + expect(amountInWords(1)).toBe("ONE RUPEE ONLY"); + expect(amountInWords(100)).toBe("ONE HUNDRED RUPEES ONLY"); + expect(amountInWords(1000)).toBe("ONE THOUSAND RUPEES ONLY"); + }); + + it("handles paise", () => { + expect(amountInWords(1.5)).toBe("ONE RUPEE AND FIFTY PAISE ONLY"); + expect(amountInWords(65.4)).toBe("SIXTY FIVE RUPEES AND FORTY PAISE ONLY"); + }); + + it("handles Indian numbering system", () => { + expect(amountInWords(100000)).toBe("ONE LAKH RUPEES ONLY"); + expect(amountInWords(1000000)).toBe("TEN LAKH RUPEES ONLY"); + expect(amountInWords(10000000)).toBe("ONE CRORE RUPEES ONLY"); + expect(amountInWords(12345678)).toBe( + "ONE CRORE TWENTY THREE LAKH FORTY FIVE THOUSAND SIX HUNDRED SEVENTY EIGHT RUPEES ONLY" + ); + }); + + it("handles teens", () => { + expect(amountInWords(11)).toBe("ELEVEN RUPEES ONLY"); + expect(amountInWords(19)).toBe("NINETEEN RUPEES ONLY"); + }); + + it("handles compound numbers below 100", () => { + expect(amountInWords(21)).toBe("TWENTY ONE RUPEES ONLY"); + expect(amountInWords(99)).toBe("NINETY NINE RUPEES ONLY"); + }); + + it("handles singular paisa", () => { + expect(amountInWords(5.01)).toBe("FIVE RUPEES AND ONE PAISA ONLY"); + }); + + it("handles negative amounts", () => { + expect(amountInWords(-100)).toBe("MINUS ONE HUNDRED RUPEES ONLY"); + expect(amountInWords(-1.5)).toBe("MINUS ONE RUPEE AND FIFTY PAISE ONLY"); + }); + + it("returns zero for non-finite values", () => { + expect(amountInWords(NaN)).toBe("ZERO RUPEES ONLY"); + expect(amountInWords(Infinity)).toBe("ZERO RUPEES ONLY"); + }); +}); diff --git a/tests/applyPreviewStyles.watermark.test.ts b/tests/applyPreviewStyles.watermark.test.ts new file mode 100644 index 0000000..7d0cd06 --- /dev/null +++ b/tests/applyPreviewStyles.watermark.test.ts @@ -0,0 +1,207 @@ +/** + * @jest-environment jsdom + */ +import { applyPreviewStyles } from "../src/main/commonUtils"; + +// Helper to read a CSS variable value from :root +const getCssVar = (name: string): string => + document.documentElement.style.getPropertyValue(name); + +// Helper to check if a CSS variable has been removed (returns empty string when removed) +const cssVarRemoved = (name: string): boolean => + document.documentElement.style.getPropertyValue(name) === ""; + +beforeEach(() => { + // Reset :root inline styles and body data attributes before each test + document.documentElement.removeAttribute("style"); + document.body.removeAttribute("data-watermark-text"); +}); + +describe("applyPreviewStyles — watermark", () => { + describe("when watermark is absent", () => { + it("does not set any watermark variables when options has no watermark key", () => { + applyPreviewStyles({ templateColor: { primaryColor: "red" } }); + expect(getCssVar("--watermark-opacity")).toBe(""); + expect(getCssVar("--watermark-logo")).toBe(""); + expect(document.body.hasAttribute("data-watermark-text")).toBe(false); + }); + }); + + describe("when watermark.isEnabled is false", () => { + it("removes all watermark CSS variables and data-watermark-text attribute", () => { + // Pre-set some values to verify they get cleared + document.documentElement.style.setProperty( + "--watermark-logo", + "url(old.png)" + ); + document.documentElement.style.setProperty("--watermark-opacity", "0.5"); + document.body.setAttribute("data-watermark-text", "OLD TEXT"); + + applyPreviewStyles({ + watermark: { isEnabled: false, repeatedPatterns: false }, + }); + + expect(cssVarRemoved("--watermark-logo")).toBe(true); + expect(cssVarRemoved("--watermark-opacity")).toBe(true); + expect(cssVarRemoved("--watermark-rotate")).toBe(true); + expect(cssVarRemoved("--watermark-scale")).toBe(true); + expect(cssVarRemoved("--watermark-repeated-pattern")).toBe(true); + expect(cssVarRemoved("--watermark-z-index")).toBe(true); + expect(document.body.hasAttribute("data-watermark-text")).toBe(false); + }); + }); + + describe("image watermark (logo)", () => { + const imageWatermark = { + isEnabled: true, + type: "image", + logo: "https://example.com/logo.png", + opacity: 50, + rotation: 30, + scale: 1.5, + repeatedPatterns: true, + }; + + it("sets --watermark-logo with sanitized url()", () => { + applyPreviewStyles({ watermark: imageWatermark }); + expect(getCssVar("--watermark-logo")).toBe( + "url(https://example.com/logo.png)" + ); + }); + + it("sets --watermark-z-index to 5 for image watermarks", () => { + applyPreviewStyles({ watermark: imageWatermark }); + expect(getCssVar("--watermark-z-index")).toBe("5"); + }); + + it("sets --watermark-opacity as opacity/100", () => { + applyPreviewStyles({ watermark: imageWatermark }); + expect(getCssVar("--watermark-opacity")).toBe("0.5"); + }); + + it("sets --watermark-opacity to 0.1 when opacity is absent", () => { + const w = { + isEnabled: true, + type: "image", + logo: "https://example.com/logo.png", + repeatedPatterns: false, + }; + applyPreviewStyles({ watermark: w }); + expect(getCssVar("--watermark-opacity")).toBe("0.1"); + }); + + it("correctly sets --watermark-opacity of 0 (not silently skipped)", () => { + const w = { ...imageWatermark, opacity: 0 }; + applyPreviewStyles({ watermark: w }); + expect(getCssVar("--watermark-opacity")).toBe("0"); + }); + + it("sets --watermark-rotate with deg suffix", () => { + applyPreviewStyles({ watermark: imageWatermark }); + expect(getCssVar("--watermark-rotate")).toBe("30deg"); + }); + + it("sets --watermark-rotate to 0deg when rotation is absent", () => { + const w = { + isEnabled: true, + type: "image", + logo: "https://example.com/logo.png", + repeatedPatterns: false, + }; + applyPreviewStyles({ watermark: w }); + expect(getCssVar("--watermark-rotate")).toBe("0deg"); + }); + + it("correctly sets --watermark-rotate of 0deg (not silently skipped)", () => { + const w = { ...imageWatermark, rotation: 0 }; + applyPreviewStyles({ watermark: w }); + expect(getCssVar("--watermark-rotate")).toBe("0deg"); + }); + + it("sets --watermark-scale", () => { + applyPreviewStyles({ watermark: imageWatermark }); + expect(getCssVar("--watermark-scale")).toBe("1.5"); + }); + + it("sets --watermark-repeated-pattern to repeat-y when repeatedPatterns is true", () => { + applyPreviewStyles({ watermark: imageWatermark }); + expect(getCssVar("--watermark-repeated-pattern")).toBe("repeat-y"); + }); + + it("sets --watermark-repeated-pattern to no-repeat when repeatedPatterns is false", () => { + const w = { ...imageWatermark, repeatedPatterns: false }; + applyPreviewStyles({ watermark: w }); + expect(getCssVar("--watermark-repeated-pattern")).toBe("no-repeat"); + }); + + it("removes data-watermark-text attribute (clears stale text)", () => { + document.body.setAttribute("data-watermark-text", "stale"); + applyPreviewStyles({ watermark: imageWatermark }); + expect(document.body.hasAttribute("data-watermark-text")).toBe(false); + }); + }); + + describe("enabled watermark with neither logo nor customText", () => { + it("sets numeric variables but does not set logo or text", () => { + // Neither logo nor customText — the if/else-if both skip, only numerics are set + applyPreviewStyles({ + watermark: { + isEnabled: true, + type: "image", + opacity: 30, + rotation: 15, + scale: 2, + repeatedPatterns: false, + }, + }); + expect(getCssVar("--watermark-logo")).toBe(""); + expect(getCssVar("--watermark-z-index")).toBe(""); + expect(document.body.hasAttribute("data-watermark-text")).toBe(false); + // Numeric vars are still set + expect(getCssVar("--watermark-opacity")).toBe("0.3"); + expect(getCssVar("--watermark-rotate")).toBe("15deg"); + expect(getCssVar("--watermark-scale")).toBe("2"); + expect(getCssVar("--watermark-repeated-pattern")).toBe("no-repeat"); + }); + }); + + describe("text watermark (customText)", () => { + const textWatermark = { + isEnabled: true, + type: "text", + customText: "DRAFT", + opacity: 20, + rotation: 45, + scale: 1, + repeatedPatterns: false, + }; + + it("sets data-watermark-text on body", () => { + applyPreviewStyles({ watermark: textWatermark }); + expect(document.body.getAttribute("data-watermark-text")).toBe("DRAFT"); + }); + + it("removes --watermark-logo variable (clears stale image)", () => { + document.documentElement.style.setProperty( + "--watermark-logo", + "url(old.png)" + ); + applyPreviewStyles({ watermark: textWatermark }); + expect(cssVarRemoved("--watermark-logo")).toBe(true); + }); + + it("removes --watermark-z-index variable for text watermarks", () => { + document.documentElement.style.setProperty("--watermark-z-index", "5"); + applyPreviewStyles({ watermark: textWatermark }); + expect(cssVarRemoved("--watermark-z-index")).toBe(true); + }); + + it("still sets opacity, rotate, scale, repeated-pattern", () => { + applyPreviewStyles({ watermark: textWatermark }); + expect(getCssVar("--watermark-opacity")).toBe("0.2"); + expect(getCssVar("--watermark-rotate")).toBe("45deg"); + expect(getCssVar("--watermark-scale")).toBe("1"); + expect(getCssVar("--watermark-repeated-pattern")).toBe("no-repeat"); + }); + }); +}); diff --git a/tests/commonUtils.test.ts b/tests/commonUtils.test.ts new file mode 100644 index 0000000..0cbded6 --- /dev/null +++ b/tests/commonUtils.test.ts @@ -0,0 +1,239 @@ +import { + decodeBase64, + toCssColor, + mergeInto, + isPlainObject, + applyQrCodeUpdate, + applyIrnUpdate, + extractTemplateStyleOptions, +} from "../src/main/commonUtils"; + +describe("commonUtils", () => { + describe("decodeBase64", () => { + it("returns null for empty input", () => { + expect(decodeBase64(null)).toBeNull(); + expect(decodeBase64("")).toBeNull(); + }); + + it("decodes valid base64 strings", () => { + expect(decodeBase64("SGVsbG8=")).toBe("Hello"); + }); + + it("returns null for invalid base64 strings", () => { + expect(decodeBase64("NotBase64!!")).toBeNull(); + }); + }); + + describe("toCssColor", () => { + it("returns valid css color string", () => { + expect(toCssColor({ r: 255, g: 0, b: 0 })).toBe("rgb(255, 0, 0)"); + expect(toCssColor({ r: 0, g: 0, b: 0, a: 0.5 })).toBe( + "rgba(0, 0, 0, 0.5)" + ); + }); + + it("returns null for invalid input", () => { + expect(toCssColor(null)).toBeNull(); + expect(toCssColor("invalid")).toBe("invalid"); // It returns string if input is string + }); + }); + + describe("applyQrCodeUpdate", () => { + let mockImg: { src: string; closest: jest.Mock; removeAttribute: jest.Mock }; + let mockContainer: { classList: { remove: jest.Mock; add: jest.Mock } }; + + beforeEach(() => { + mockImg = { src: "", closest: jest.fn(), removeAttribute: jest.fn() }; + mockContainer = { classList: { remove: jest.fn(), add: jest.fn() } }; + (global as any).document = { querySelector: jest.fn() }; + }); + + afterEach(() => { + delete (global as any).document; + }); + + it("no-ops when img element is not found", () => { + (global as any).document.querySelector.mockReturnValue(null); + expect(() => applyQrCodeUpdate("data:image/png;base64,abc")).not.toThrow(); + }); + + it("sets src and removes is-empty when value is a non-empty string", () => { + mockImg.closest.mockReturnValue(mockContainer); + (global as any).document.querySelector.mockReturnValue(mockImg); + applyQrCodeUpdate("data:image/png;base64,abc"); + expect(mockImg.src).toBe("data:image/png;base64,abc"); + expect(mockContainer.classList.remove).toHaveBeenCalledWith("is-empty"); + }); + + it("clears src and adds is-empty when value is an empty string", () => { + mockImg.closest.mockReturnValue(mockContainer); + (global as any).document.querySelector.mockReturnValue(mockImg); + applyQrCodeUpdate(""); + expect(mockImg.removeAttribute).toHaveBeenCalledWith("src"); + expect(mockContainer.classList.add).toHaveBeenCalledWith("is-empty"); + }); + + it("clears src and adds is-empty when value is non-string", () => { + mockImg.closest.mockReturnValue(mockContainer); + (global as any).document.querySelector.mockReturnValue(mockImg); + applyQrCodeUpdate(null); + expect(mockImg.removeAttribute).toHaveBeenCalledWith("src"); + expect(mockContainer.classList.add).toHaveBeenCalledWith("is-empty"); + }); + + it("handles absent container without throwing when setting src", () => { + mockImg.closest.mockReturnValue(null); + (global as any).document.querySelector.mockReturnValue(mockImg); + applyQrCodeUpdate("data:image/png;base64,abc"); + expect(mockImg.src).toBe("data:image/png;base64,abc"); + }); + + it("handles absent container without throwing when clearing src", () => { + mockImg.closest.mockReturnValue(null); + (global as any).document.querySelector.mockReturnValue(mockImg); + applyQrCodeUpdate(null); + expect(mockImg.removeAttribute).toHaveBeenCalledWith("src"); + }); + }); + + describe("applyIrnUpdate", () => { + let mockEl: { textContent: string }; + + beforeEach(() => { + mockEl = { textContent: "" }; + (global as any).document = { querySelector: jest.fn() }; + }); + + afterEach(() => { + delete (global as any).document; + }); + + it("no-ops when IRN element is not found", () => { + (global as any).document.querySelector.mockReturnValue(null); + expect(() => applyIrnUpdate("IRN12345")).not.toThrow(); + }); + + it("sets textContent when value is a string", () => { + (global as any).document.querySelector.mockReturnValue(mockEl); + applyIrnUpdate("IRN12345678901234567890"); + expect(mockEl.textContent).toBe("IRN12345678901234567890"); + }); + + it("sets textContent to empty string for non-string value", () => { + (global as any).document.querySelector.mockReturnValue(mockEl); + applyIrnUpdate(null); + expect(mockEl.textContent).toBe(""); + applyIrnUpdate(42); + expect(mockEl.textContent).toBe(""); + }); + }); + + describe("mergeInto", () => { + it("merges two plain objects", () => { + const target = { a: 1 }; + const source = { b: 2 }; + const result = mergeInto(target, source); + expect(result).toEqual({ a: 1, b: 2 }); + }); + + it("deep merges objects", () => { + const target = { a: { x: 1 } }; + const source = { a: { y: 2 } }; + const result = mergeInto(target, source); + expect(result).toEqual({ a: { x: 1, y: 2 } }); + }); + + it("overwrites arrays (does not merge them)", () => { + const target = { a: [1, 2] }; + const source = { a: [3, 4] }; + const result = mergeInto(target, source); + expect(result).toEqual({ a: [3, 4] }); + }); + }); + + describe("isPlainObject", () => { + it("returns true for plain objects", () => { + expect(isPlainObject({})).toBe(true); + expect(isPlainObject({ a: 1 })).toBe(true); + }); + + it("returns false for non-objects or null", () => { + expect(isPlainObject(null)).toBe(false); + expect(isPlainObject([])).toBe(false); + expect(isPlainObject("string")).toBe(false); + expect(isPlainObject(123)).toBe(false); + }); + }); + + describe("extractTemplateStyleOptions", () => { + it("returns null for non-object payload", () => { + expect(extractTemplateStyleOptions(null)).toBeNull(); + expect(extractTemplateStyleOptions("string")).toBeNull(); + expect(extractTemplateStyleOptions(42)).toBeNull(); + }); + + it("returns null when payload has no template key", () => { + expect(extractTemplateStyleOptions({})).toBeNull(); + expect(extractTemplateStyleOptions({ other: true })).toBeNull(); + }); + + it("returns null when template is not a plain object", () => { + expect(extractTemplateStyleOptions({ template: null })).toBeNull(); + expect(extractTemplateStyleOptions({ template: "string" })).toBeNull(); + }); + + it("extracts watermark when it is the only field", () => { + const watermark = { + isEnabled: true, + type: "image", + logo: "https://example.com/logo.png", + opacity: 50, + rotation: 45, + scale: 1, + repeatedPatterns: false, + }; + const result = extractTemplateStyleOptions({ template: { watermark } }); + expect(result).not.toBeNull(); + expect(result!.watermark).toEqual(watermark); + // No templateColor or template (fonts) keys when absent + expect(result!.templateColor).toBeUndefined(); + expect(result!.template).toBeUndefined(); + }); + + it("extracts watermark alongside colors and fonts", () => { + const watermark = { + isEnabled: true, + type: "text", + customText: "DRAFT", + opacity: 20, + repeatedPatterns: false, + }; + const result = extractTemplateStyleOptions({ + template: { + primaryColor: "#fff", + titleFont: "Inter", + watermark, + }, + }); + expect(result).not.toBeNull(); + expect(result!.watermark).toEqual(watermark); + expect(result!.templateColor).toBeDefined(); + expect(result!.template).toBeDefined(); + }); + + it("ignores watermark when it is not a plain object", () => { + const result = extractTemplateStyleOptions({ + template: { watermark: "invalid" }, + }); + // No colors or fonts either, so whole result is null + expect(result).toBeNull(); + }); + + it("ignores watermark: null", () => { + const result = extractTemplateStyleOptions({ + template: { watermark: null }, + }); + expect(result).toBeNull(); + }); + }); +}); diff --git a/tests/dateTime.test.ts b/tests/dateTime.test.ts new file mode 100644 index 0000000..705d95b --- /dev/null +++ b/tests/dateTime.test.ts @@ -0,0 +1,81 @@ +import { + safeDate, + parseOffset, + formatByStyle, +} from "../src/widgets/date-time/index"; + +describe("DateTime Widget", () => { + describe("safeDate", () => { + it("returns null for null/undefined/empty input", () => { + expect(safeDate(null)).toBeNull(); + expect(safeDate(undefined)).toBeNull(); + expect(safeDate("")).toBeNull(); + }); + + it("returns Date object for valid date string", () => { + const d = safeDate("2023-01-01"); + expect(d).toBeInstanceOf(Date); + expect(d?.getFullYear()).toBe(2023); + }); + + it("returns Date object for timestamp", () => { + const d = safeDate(1672531200000); // 2023-01-01 + expect(d).toBeInstanceOf(Date); + }); + + it("returns null for invalid date string", () => { + expect(safeDate("invalid-date")).toBeNull(); + }); + }); + + describe("parseOffset", () => { + it("returns 0 for empty input", () => { + expect(parseOffset(undefined)).toBe(0); + expect(parseOffset("")).toBe(0); + }); + + it("returns number as is", () => { + expect(parseOffset(330)).toBe(330); + }); + + it("parses +HH:mm format", () => { + expect(parseOffset("+05:30")).toBe(330); // 5*60 + 30 + expect(parseOffset("05:30")).toBe(330); + }); + + it("parses -HH:mm format", () => { + expect(parseOffset("-05:00")).toBe(-300); + }); + + it("parses HH format", () => { + expect(parseOffset("05")).toBe(300); + }); + }); + + describe("formatByStyle", () => { + // Mock Intl.DateTimeFormat if needed, or rely on node's implementation + const d = new Date("2023-01-01T12:00:00Z"); + + it("formats 'half' style", () => { + // In UTC context or system locale, output might vary slightly but usually "Jan 01" + // We can check if it contains the month and day + const result = formatByStyle(d, "half", "en-US", "UTC"); + expect(result).toBe("Jan 01"); + }); + + it("formats 'short' style", () => { + const result = formatByStyle(d, "short", "en-US", "UTC"); + expect(result).toBe("Jan 01, 2023"); + }); + + it("formats 'primary' style", () => { + const result = formatByStyle(d, "primary", "en-US", "UTC"); + expect(result).toBe("January 01, 2023"); + }); + + it("formats 'month' style", () => { + const result = formatByStyle(d, "month", "en-US", "UTC"); + expect(result).toBe("January 2023"); + }); + }); +}); diff --git a/tests/formatCurrency.test.ts b/tests/formatCurrency.test.ts new file mode 100644 index 0000000..01e7058 --- /dev/null +++ b/tests/formatCurrency.test.ts @@ -0,0 +1,112 @@ +import formatCurrency from "../src/widgets/shared/formatCurrency"; + +describe("formatCurrency", () => { + it("formats INR integer amount without decimals", () => { + const result = formatCurrency(1000, "INR", "en-IN"); + expect(result).toMatch(/1,000/); + expect(result).not.toMatch(/\.00/); + }); + + it("formats INR decimal amount with decimals", () => { + const result = formatCurrency(1000.5, "INR", "en-IN"); + expect(result).toMatch(/1,000/); + }); + + it("returns zero formatted for falsy input", () => { + const result = formatCurrency(0, "INR", "en-IN"); + expect(result).toMatch(/0/); + }); + + it("wraps negative amounts in parentheses", () => { + const result = formatCurrency(-500, "INR", "en-IN"); + expect(result).toMatch(/^\(.*500.*\)$/); + }); + + it("replaces SAR symbol with ⃁", () => { + const result = formatCurrency(100, "SAR", "en-SA"); + expect(result).toContain("⃁"); + expect(result).toMatch(/100/); + }); + + it("replaces SLE symbol with SLE", () => { + const result = formatCurrency(200, "SLE", "en-US"); + expect(result).toContain("SLE"); + expect(result).toMatch(/200/); + }); + + it("uses customCurrencySymbol when provided", () => { + const result = formatCurrency(500, "USD", "en-US", null, "$€"); + expect(result).toContain("$€"); + expect(result).toMatch(/500/); + }); + + it("respects subUnitLength for decimal places", () => { + const result = formatCurrency(100, "INR", "en-IN", 3); + expect(result).toMatch(/100\.000/); + }); + + it("handles RC currency with emoji", () => { + const result = formatCurrency(50, "RC", "en-IN"); + expect(result).toContain("🅲"); + expect(result).toContain("50"); + }); + + it("defaults to INR/en-IN when no currency/locale provided", () => { + const result = formatCurrency(250); + expect(result).toMatch(/250/); + }); + + it("handles non-numeric input gracefully", () => { + const result = formatCurrency("abc", "INR", "en-IN"); + expect(result).toMatch(/0/); + }); +}); + +describe("formatCurrency — HB options detection", () => { + afterEach(() => { + delete (global as any).window; + }); + + it("reads currency and locale from HB options data.root", () => { + const opts = { + hash: {}, + data: { root: { currency: "USD", locale: "en-US" } }, + }; + const result = formatCurrency(12, opts as any); + expect(result).toContain("$"); + expect(result).toMatch(/12/); + }); + + it("reads window.ceresInvoiceData when data.root is absent", () => { + (global as any).window = { + ceresInvoiceData: { currency: "EUR", locale: "de-DE" }, + }; + const opts = { hash: {}, data: {} }; + const result = formatCurrency(50, opts as any); + expect(result).toContain("€"); + }); + + it("falls back to default currency when HB options has no root and no window", () => { + const opts = { hash: {}, data: {} }; + (global as any).window = { ceresInvoiceData: undefined }; + const result = formatCurrency(100, opts as any); + expect(result).toMatch(/100/); + }); + + it("reads customCurrencySymbol and subUnitLength from HB options data.root", () => { + const opts = { + hash: {}, + data: { + root: { + currency: "USD", + locale: "en-US", + customCurrencySymbol: "$€", + subUnitLength: 3, + }, + }, + }; + const result = formatCurrency(100, opts as any); + expect(result).toContain("$€"); + expect(result).toMatch(/100\.000/); + }); +}); diff --git a/tests/hbsTransform.js b/tests/hbsTransform.js index 15e9140..4891ed3 100644 --- a/tests/hbsTransform.js +++ b/tests/hbsTransform.js @@ -3,12 +3,9 @@ const Handlebars = require("handlebars"); module.exports = { process(src) { const compiled = Handlebars.precompile(src); - - return { - code: ` - const HandlebarsRuntime = require("handlebars/runtime"); - module.exports = HandlebarsRuntime.template(${compiled}); - `, - }; + return ` + const HandlebarsRuntime = require("handlebars/runtime"); + module.exports = HandlebarsRuntime.template(${compiled}); + `; }, }; diff --git a/tests/hsnSummary.test.ts b/tests/hsnSummary.test.ts new file mode 100644 index 0000000..90cd1c6 --- /dev/null +++ b/tests/hsnSummary.test.ts @@ -0,0 +1,227 @@ +import { computeHsnSummary } from "../src/widgets/hsn-summary/utils"; + +describe("computeHsnSummary", () => { + describe("empty / null input", () => { + it("returns hasRows=false for empty array", () => { + const result = computeHsnSummary([]); + expect(result.hasRows).toBe(false); + expect(result.hsnList).toEqual([]); + }); + + it("returns hasRows=false for null input", () => { + expect(computeHsnSummary(null as any).hasRows).toBe(false); + }); + + it("returns hasRows=false for undefined input", () => { + expect(computeHsnSummary(undefined as any).hasRows).toBe(false); + }); + + it("returns zero totals for empty input", () => { + const result = computeHsnSummary([]); + expect(result.totalTaxableValue).toBe(0); + expect(result.totalTaxAmount).toBe(0); + }); + }); + + describe("skipping items", () => { + it("skips items with empty hsn string", () => { + const items = [ + { hsn: "", gstRate: 18, amount: 1000, cgst: 90, sgst: 90 }, + ]; + const result = computeHsnSummary(items); + expect(result.hasRows).toBe(false); + }); + + it("skips items with missing hsn field", () => { + const items = [{ gstRate: 18, amount: 1000, cgst: 90, sgst: 90 }]; + const result = computeHsnSummary(items); + expect(result.hasRows).toBe(false); + }); + + it("treats missing gstRate as 0", () => { + const items = [{ hsn: "1001", amount: 1000, cgst: 90, sgst: 90 }]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hsnList).toHaveLength(1); + expect(result.hsnList[0].hsn).toBe("1001"); + expect(result.hsnList[0].cgstRate).toBe(0); + expect(result.hsnList[0].sgstRate).toBe(0); + }); + }); + + describe("CGST/SGST mode (isIgst=false)", () => { + it("groups two items with the same hsn into one row", () => { + const items = [ + { hsn: "1001", gstRate: 5, amount: 1000, igst: 0, cgst: 25, sgst: 25 }, + { + hsn: "1001", + gstRate: 5, + amount: 500, + igst: 0, + cgst: 12.5, + sgst: 12.5, + }, + ]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hsnList).toHaveLength(1); + expect(result.hsnList[0].hsn).toBe("1001"); + expect(result.hsnList[0].taxableValue).toBe(1500); + expect(result.hsnList[0].cgstAmount).toBeCloseTo(37.5); + expect(result.hsnList[0].sgstAmount).toBeCloseTo(37.5); + expect(result.hsnList[0].taxAmount).toBeCloseTo(75); + }); + + it("creates separate rows for different hsn codes", () => { + const items = [ + { hsn: "1001", gstRate: 5, amount: 1000, cgst: 25, sgst: 25 }, + { hsn: "2002", gstRate: 18, amount: 2000, cgst: 180, sgst: 180 }, + ]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hsnList).toHaveLength(2); + const codes = result.hsnList.map((r: { hsn: string }) => r.hsn); + expect(codes).toContain("1001"); + expect(codes).toContain("2002"); + }); + + it("creates separate rows for the same hsn code with different gstRates", () => { + const items = [ + { hsn: "1001", gstRate: 5, amount: 1000, cgst: 25, sgst: 25 }, + { hsn: "1001", gstRate: 18, amount: 2000, cgst: 180, sgst: 180 }, + ]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hsnList).toHaveLength(2); + }); + + it("sets cgstRate and sgstRate to half of gstRate", () => { + const items = [ + { hsn: "1001", gstRate: 18, amount: 1000, cgst: 90, sgst: 90 }, + ]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hsnList[0].cgstRate).toBe(9); + expect(result.hsnList[0].sgstRate).toBe(9); + expect(result.hsnList[0].igstRate).toBe(0); + }); + + it("accumulates totals across all rows", () => { + const items = [ + { hsn: "1001", gstRate: 5, amount: 1000, cgst: 25, sgst: 25 }, + { hsn: "2002", gstRate: 18, amount: 2000, cgst: 180, sgst: 180 }, + ]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.totalTaxableValue).toBe(3000); + expect(result.totalCgstAmount).toBe(205); + expect(result.totalSgstAmount).toBe(205); + expect(result.totalTaxAmount).toBe(410); + }); + + it("treats missing cgst/sgst as 0", () => { + const items = [{ hsn: "1001", gstRate: 18, amount: 1000 }]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hsnList[0].cgstAmount).toBe(0); + expect(result.hsnList[0].sgstAmount).toBe(0); + expect(result.totalTaxAmount).toBe(0); + }); + }); + + describe("IGST mode (isIgst=true)", () => { + it("populates igstAmount and leaves cgst/sgst zero", () => { + const items = [ + { hsn: "1001", gstRate: 18, amount: 1000, igst: 180, cgst: 0, sgst: 0 }, + ]; + const result = computeHsnSummary(items, { isIgst: true }); + expect(result.hsnList[0].igstAmount).toBe(180); + expect(result.hsnList[0].cgstAmount).toBe(0); + expect(result.totalIgstAmount).toBe(180); + expect(result.isIgst).toBe(true); + }); + + it("sets igstRate equal to gstRate", () => { + const items = [{ hsn: "1001", gstRate: 18, amount: 1000, igst: 180 }]; + const result = computeHsnSummary(items, { isIgst: true }); + expect(result.hsnList[0].igstRate).toBe(18); + expect(result.hsnList[0].cgstRate).toBe(0); + }); + + it("treats missing igst as 0", () => { + const items = [{ hsn: "1001", gstRate: 18, amount: 1000 }]; + const result = computeHsnSummary(items, { isIgst: true }); + expect(result.hsnList[0].igstAmount).toBe(0); + expect(result.totalIgstAmount).toBe(0); + }); + + it("treats missing amount as 0 for taxableValue", () => { + const items = [{ hsn: "1001", gstRate: 18, igst: 180 }]; + const result = computeHsnSummary(items, { isIgst: true }); + expect(result.hsnList[0].taxableValue).toBe(0); + expect(result.totalTaxableValue).toBe(0); + }); + }); + + describe("result flags", () => { + it("echoes isIgst=true in result", () => { + expect(computeHsnSummary([], { isIgst: true }).isIgst).toBe(true); + }); + + it("echoes isIgst=false in result", () => { + expect(computeHsnSummary([], { isIgst: false }).isIgst).toBe(false); + }); + + it("echoes isUtgst=true in result", () => { + expect(computeHsnSummary([], { isUtgst: true }).isUtgst).toBe(true); + }); + + it("echoes isUtgst=false in result", () => { + expect(computeHsnSummary([], { isUtgst: false }).isUtgst).toBe(false); + }); + + it("hasCess is false when no cess amounts", () => { + const items = [ + { hsn: "1001", gstRate: 18, amount: 1000, cgst: 90, sgst: 90 }, + ]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hasCess).toBe(false); + }); + }); + + describe("sorting and rounding", () => { + it("sorts hsnList by hsn code descending then gst rate descending", () => { + const items = [ + { hsn: "2002", gstRate: 5, amount: 100, igst: 5 }, + { hsn: "1001", gstRate: 18, amount: 100, igst: 18 }, + { hsn: "1001", gstRate: 5, amount: 100, igst: 5 }, + ]; + const result = computeHsnSummary(items, { isIgst: true }); + expect(result.hsnList.map((r: { hsn: string }) => r.hsn)).toEqual([ + "2002", + "1001", + "1001", + ]); + expect(result.hsnList[1].igstRate).toBe(18); + expect(result.hsnList[2].igstRate).toBe(5); + }); + + it("rounds accumulated igst amounts to 2 decimal places", () => { + const items = [ + { hsn: "1001", gstRate: 18, amount: 100, igst: 0.1 }, + { hsn: "1001", gstRate: 18, amount: 100, igst: 0.2 }, + ]; + const result = computeHsnSummary(items, { isIgst: true }); + expect(result.hsnList[0].igstAmount).toBe(0.3); + expect(result.totalIgstAmount).toBe(0.3); + expect(result.totalTaxAmount).toBe(0.3); + }); + + it("rounds accumulated cgst/sgst and taxableValue to 2 decimal places", () => { + const items = [ + { hsn: "1001", gstRate: 18, amount: 0.1, cgst: 0.1, sgst: 0.1 }, + { hsn: "1001", gstRate: 18, amount: 0.2, cgst: 0.2, sgst: 0.2 }, + ]; + const result = computeHsnSummary(items, { isIgst: false }); + expect(result.hsnList[0].taxableValue).toBe(0.3); + expect(result.hsnList[0].cgstAmount).toBe(0.3); + expect(result.hsnList[0].sgstAmount).toBe(0.3); + expect(result.totalTaxableValue).toBe(0.3); + expect(result.totalCgstAmount).toBe(0.3); + expect(result.totalSgstAmount).toBe(0.3); + }); + }); +}); diff --git a/tests/imageWidget.test.ts b/tests/imageWidget.test.ts new file mode 100644 index 0000000..b339d96 --- /dev/null +++ b/tests/imageWidget.test.ts @@ -0,0 +1,111 @@ +import { + toImageSrc, + normalizeImages, + prepareImageGallery, +} from "../src/widgets/image/utils"; + +describe("toImageSrc", () => { + it("returns a trimmed string URL", () => { + expect(toImageSrc(" https://cdn.example.com/a.png ")).toBe( + "https://cdn.example.com/a.png" + ); + }); + + it("extracts url from an object", () => { + expect(toImageSrc({ url: "https://cdn.example.com/b.png" })).toBe( + "https://cdn.example.com/b.png" + ); + }); + + it("extracts src from an object when url is absent", () => { + expect(toImageSrc({ src: "https://cdn.example.com/c.png" })).toBe( + "https://cdn.example.com/c.png" + ); + }); + + it("returns null for empty / whitespace strings", () => { + expect(toImageSrc("")).toBeNull(); + expect(toImageSrc(" ")).toBeNull(); + }); + + it("returns null for unsafe protocols", () => { + // eslint-disable-next-line no-script-url -- intentional unsafe-URL fixture, never executed + expect(toImageSrc("javascript:alert(1)")).toBeNull(); + expect(toImageSrc("vbscript:msgbox")).toBeNull(); + expect(toImageSrc("file:///etc/passwd")).toBeNull(); + }); + + it("returns null for null / undefined / empty object", () => { + expect(toImageSrc(null)).toBeNull(); + expect(toImageSrc(undefined)).toBeNull(); + expect(toImageSrc({})).toBeNull(); + }); +}); + +describe("normalizeImages", () => { + it("returns [] for non-array input", () => { + expect(normalizeImages(null)).toEqual([]); + expect(normalizeImages(undefined)).toEqual([]); + expect(normalizeImages("nope" as any)).toEqual([]); + }); + + it("maps string URLs to renderable images with href defaulting to src", () => { + const result = normalizeImages(["https://x/1.png", "https://x/2.png"], { + alt: "Item", + }); + expect(result).toEqual([ + { src: "https://x/1.png", href: "https://x/1.png", alt: "Item" }, + { src: "https://x/2.png", href: "https://x/2.png", alt: "Item" }, + ]); + }); + + it("drops empty / invalid entries", () => { + const result = normalizeImages([ + "https://x/1.png", + "", + null, + { nope: true }, + { url: "https://x/2.png" }, + ] as any); + expect(result.map((i) => i.src)).toEqual([ + "https://x/1.png", + "https://x/2.png", + ]); + }); + + it("passes the direct URL through unchanged (no optimization)", () => { + const url = "https://cdn.example.com/original/huge-photo.jpg?v=1"; + expect(normalizeImages([url])[0].src).toBe(url); + }); + + it("omits href when link is disabled", () => { + const result = normalizeImages(["https://x/1.png"], { link: false }); + expect(result[0].href).toBe(""); + }); +}); + +describe("prepareImageGallery", () => { + it("returns hasImages=false for empty / invalid input", () => { + expect(prepareImageGallery([]).hasImages).toBe(false); + expect(prepareImageGallery(null).hasImages).toBe(false); + }); + + it("returns hasImages=true with normalized images", () => { + const payload = prepareImageGallery(["https://x/1.png"], { + variant: "thumbnail", + alt: "Photo", + }); + expect(payload.hasImages).toBe(true); + expect(payload.variant).toBe("thumbnail"); + expect(payload.images).toHaveLength(1); + expect(payload.images[0]).toEqual({ + src: "https://x/1.png", + href: "https://x/1.png", + alt: "Photo", + }); + }); + + it("defaults variant to 'default' when not provided", () => { + expect(prepareImageGallery(["https://x/1.png"]).variant).toBe("default"); + }); +}); diff --git a/tests/lydiaBridge.test.ts b/tests/lydiaBridge.test.ts new file mode 100644 index 0000000..3580658 --- /dev/null +++ b/tests/lydiaBridge.test.ts @@ -0,0 +1,300 @@ +import { initLydiaBridge } from "../src/main/lydiaBridge"; + +// Helpers + +function makeMockElement() { + return { + scrollHeight: 500, + offsetHeight: 500, + getBoundingClientRect: () => ({ height: 500 }), + style: { removeProperty: jest.fn() } as Record, + classList: { add: jest.fn(), remove: jest.fn(), contains: jest.fn(() => false) }, + children: { length: 0 }, + }; +} + +type WindowListeners = Record) => void>>; + +function setupBrowserGlobals( + parentOverride?: Partial<{ postMessage: jest.Mock; isWindow: boolean; isNull: boolean; noPostMessage: boolean }> +) { + const parentPostMessage = jest.fn(); + const windowListeners: WindowListeners = {}; + + const mockWindow: Record = { + location: { search: "" }, + setTimeout: jest.fn().mockReturnValue(1), + clearTimeout: jest.fn(), + print: jest.fn(), + postMessage: jest.fn(), // window.postMessage (used when parent === window) + addEventListener: jest.fn((type: string, handler: any) => { + windowListeners[type] = windowListeners[type] ?? []; + windowListeners[type].push(handler); + }), + removeEventListener: jest.fn(), + }; + + if (parentOverride?.isNull) { + mockWindow.parent = null; + } else if (parentOverride?.isWindow) { + // parent === window — guard fires because parent === window + mockWindow.parent = mockWindow; + } else if (parentOverride?.noPostMessage) { + mockWindow.parent = { postMessage: "not-a-function" }; + } else { + mockWindow.parent = { postMessage: parentPostMessage }; + } + + (global as any).window = mockWindow; + (global as any).document = { + body: makeMockElement(), + documentElement: makeMockElement(), + getElementById: jest.fn().mockReturnValue(null), + readyState: "complete", + visibilityState: "visible", + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + }; + (global as any).ResizeObserver = jest.fn(() => ({ observe: jest.fn(), disconnect: jest.fn() })); + (global as any).requestAnimationFrame = jest.fn((fn: any) => { fn(); return 1; }); + (global as any).MutationObserver = jest.fn(() => ({ observe: jest.fn(), disconnect: jest.fn() })); + + return { parentPostMessage, windowListeners }; +} + +function simulateMessage( + windowListeners: WindowListeners, + data: unknown, + source?: unknown +) { + const handlers = windowListeners["message"] ?? []; + const event = { data, source: source ?? (global as any).window?.parent }; + handlers.forEach((h) => h(event)); +} + +function teardownBrowserGlobals() { + delete (global as any).window; + delete (global as any).document; + delete (global as any).ResizeObserver; + delete (global as any).requestAnimationFrame; + delete (global as any).MutationObserver; +} + +// Tests + +describe("initLydiaBridge", () => { + afterEach(() => { + teardownBrowserGlobals(); + }); + + describe("environment guards", () => { + it("returns null when window is not defined", () => { + expect(initLydiaBridge()).toBeNull(); + }); + + it("returns null when document is not defined", () => { + (global as any).window = {}; + expect(initLydiaBridge()).toBeNull(); + }); + }); + + describe("initialisation", () => { + it("returns a handle with the expected public methods", () => { + setupBrowserGlobals(); + const handle = initLydiaBridge(); + expect(handle).not.toBeNull(); + expect(typeof handle!.reportContentHeight).toBe("function"); + expect(typeof handle!.triggerPrint).toBe("function"); + expect(typeof handle!.registerInvoiceFieldHandler).toBe("function"); + expect(typeof handle!.destroy).toBe("function"); + }); + + it("sends ceres:ready when notifyReady is called", () => { + // ceres:ready is emitted by the renderer (src/main/index.ts) via + // handle.notifyReady() AFTER outputDiv.innerHTML is set — not during init — + // so handlers can find their data-ceres-field DOM targets when Lydia's + // queued updates flush. + const { parentPostMessage } = setupBrowserGlobals(); + const handle = initLydiaBridge(); + expect(handle).not.toBeNull(); + handle!.notifyReady(); + expect(parentPostMessage).toHaveBeenLastCalledWith( + { source: "ceres", type: "ceres:ready", version: 1 }, + "*" + ); + }); + }); + + describe("sendToParent guards", () => { + it("does not send ceres:ready when window.parent is null", () => { + setupBrowserGlobals({ isNull: true }); + initLydiaBridge(); + // No postMessage available on null — no crash and nothing called + }); + + it("does not send ceres:ready when window.parent === window", () => { + setupBrowserGlobals({ isWindow: true }); + initLydiaBridge(); + // Guard fires before postMessage is reached — window.postMessage is not called + expect((global as any).window.postMessage).not.toHaveBeenCalledWith( + expect.objectContaining({ type: "ceres:ready" }), + "*" + ); + }); + + it("does not send ceres:ready when parent.postMessage is not a function", () => { + setupBrowserGlobals({ noPostMessage: true }); + expect(() => initLydiaBridge()).not.toThrow(); + }); + }); + + describe("outbound buffering — sendOrQueue", () => { + it("queues height reports before lydia:ack is received", () => { + const { parentPostMessage, windowListeners } = setupBrowserGlobals(); + // Use immediate setTimeout so scheduleHeightReport fires + (global as any).window.setTimeout = jest.fn((fn: any) => { fn(); return 1; }); + initLydiaBridge(); + // Clear init calls (ceres:ready was sent) + parentPostMessage.mockClear(); + + // No lydia:ack yet — height reports go through sendOrQueue → queued + // Trigger a height report + simulateMessage(windowListeners, { action: "lydia:height-request", reason: "test" }); + + // Height message should NOT have been sent yet (not ready) + const heightCalls = parentPostMessage.mock.calls.filter( + (call) => call[0]?.type === "ceres:content-height" + ); + expect(heightCalls).toHaveLength(0); + }); + + it("flushes queued messages when lydia:ack is received", () => { + const { parentPostMessage, windowListeners } = setupBrowserGlobals(); + (global as any).window.setTimeout = jest.fn((fn: any) => { fn(); return 1; }); + initLydiaBridge(); + parentPostMessage.mockClear(); + + // Queue a height request before ack + simulateMessage(windowListeners, { action: "lydia:height-request", reason: "pre-ack" }); + + // Now send lydia:ack + simulateMessage(windowListeners, { source: "lydia", type: "lydia:ack", version: 1 }); + + // After ack, the queued height report should have been flushed and sent + const heightCalls = parentPostMessage.mock.calls.filter( + (call) => call[0]?.type === "ceres:content-height" + ); + expect(heightCalls.length).toBeGreaterThan(0); + }); + + it("ignores lydia:ack from a non-parent source", () => { + const { windowListeners } = setupBrowserGlobals(); + initLydiaBridge(); + + // Ack from wrong source should be ignored without throwing + expect(() => { + simulateMessage( + windowListeners, + { source: "lydia", type: "lydia:ack", version: 1 }, + { different: "source" } + ); + }).not.toThrow(); + }); + + it("ignores malformed lydia:ack messages", () => { + const { windowListeners } = setupBrowserGlobals(); + initLydiaBridge(); + + expect(() => { + simulateMessage(windowListeners, null); + simulateMessage(windowListeners, "string-message"); + simulateMessage(windowListeners, { source: "other", type: "lydia:ack" }); + simulateMessage(windowListeners, { source: "lydia", type: "wrong-type" }); + }).not.toThrow(); + }); + }); + + describe("invoice field handler registry", () => { + it("dispatches lydia:invoice-update to a registered handler", () => { + const { windowListeners } = setupBrowserGlobals(); + const handle = initLydiaBridge()!; + + // Ack to unlock the bridge first + simulateMessage(windowListeners, { source: "lydia", type: "lydia:ack", version: 1 }); + + const qrHandler = jest.fn(); + handle.registerInvoiceFieldHandler("qrCode", qrHandler); + + simulateMessage(windowListeners, { + source: "lydia", + type: "lydia:invoice-update", + fields: { qrCode: "data:image/png;base64,abc" }, + reason: "irn-generated", + }); + + expect(qrHandler).toHaveBeenCalledWith("data:image/png;base64,abc"); + }); + + it("dispatches to multiple registered handlers in one update", () => { + const { windowListeners } = setupBrowserGlobals(); + const handle = initLydiaBridge()!; + + simulateMessage(windowListeners, { source: "lydia", type: "lydia:ack", version: 1 }); + + const qrHandler = jest.fn(); + const irnHandler = jest.fn(); + handle.registerInvoiceFieldHandler("qrCode", qrHandler); + handle.registerInvoiceFieldHandler("irn", irnHandler); + + simulateMessage(windowListeners, { + source: "lydia", + type: "lydia:invoice-update", + fields: { qrCode: "data:image/png;base64,abc", irn: "IRN12345678901234" }, + reason: "irn-generated", + }); + + expect(qrHandler).toHaveBeenCalledWith("data:image/png;base64,abc"); + expect(irnHandler).toHaveBeenCalledWith("IRN12345678901234"); + }); + + it("silently ignores unregistered field keys", () => { + const { windowListeners } = setupBrowserGlobals(); + initLydiaBridge(); + + simulateMessage(windowListeners, { source: "lydia", type: "lydia:ack", version: 1 }); + + expect(() => { + simulateMessage(windowListeners, { + source: "lydia", + type: "lydia:invoice-update", + fields: { unknownField: "value" }, + reason: "test", + }); + }).not.toThrow(); + }); + + it("ignores invalid invoice-update messages", () => { + const { windowListeners } = setupBrowserGlobals(); + initLydiaBridge(); + + simulateMessage(windowListeners, { source: "lydia", type: "lydia:ack", version: 1 }); + + expect(() => { + // missing fields + simulateMessage(windowListeners, { source: "lydia", type: "lydia:invoice-update" }); + // null fields + simulateMessage(windowListeners, { source: "lydia", type: "lydia:invoice-update", fields: null }); + // wrong source + simulateMessage(windowListeners, { source: "other", type: "lydia:invoice-update", fields: {} }); + }).not.toThrow(); + }); + }); + + describe("destroy", () => { + it("cleans up without throwing", () => { + setupBrowserGlobals(); + const handle = initLydiaBridge()!; + expect(() => handle.destroy()).not.toThrow(); + }); + }); +}); diff --git a/tests/markdownViewer.test.ts b/tests/markdownViewer.test.ts new file mode 100644 index 0000000..a612218 --- /dev/null +++ b/tests/markdownViewer.test.ts @@ -0,0 +1,168 @@ +import { + sanitizeAnchorUrl, + sanitizeMarkdown, + prepareFallbackMarkdown, + defaultCustomLinkProps, +} from "../src/widgets/markdown-viewer/utils"; + +describe("markdown-viewer/utils — no DOMPurify", () => { + beforeEach(() => { + (global as any).window = {}; + }); + + afterEach(() => { + delete (global as any).window; + }); + + describe("defaultCustomLinkProps", () => { + it("is frozen with the expected properties", () => { + expect(Object.isFrozen(defaultCustomLinkProps)).toBe(true); + expect(defaultCustomLinkProps.target).toBe("_blank"); + expect(defaultCustomLinkProps.rel).toContain("noreferrer"); + }); + }); + + describe("sanitizeAnchorUrl", () => { + it("returns empty string for empty input", () => { + expect(sanitizeAnchorUrl("", "internal")).toBe(""); + }); + + it("returns empty string for non-string input", () => { + expect(sanitizeAnchorUrl(null as any, "internal")).toBe(""); + }); + + it("returns relative URL unchanged for internal policy", () => { + expect(sanitizeAnchorUrl("/invoices/123", "internal")).toBe( + "/invoices/123" + ); + }); + + it("returns empty string for relative URL with external-forced policy", () => { + expect(sanitizeAnchorUrl("/invoices/123", "external-forced")).toBe(""); + }); + + it("returns trimmed URL when DOMPurify is absent", () => { + expect(sanitizeAnchorUrl(" https://example.com ", "internal")).toBe( + "https://example.com" + ); + }); + }); + + describe("sanitizeMarkdown", () => { + it("returns empty string for empty input", () => { + expect(sanitizeMarkdown("", "viewer")).toBe(""); + expect(sanitizeMarkdown("", "fallback")).toBe(""); + expect(sanitizeMarkdown("", "storage")).toBe(""); + }); + + it("returns value as-is when DOMPurify is absent (viewer)", () => { + expect(sanitizeMarkdown("Hello", "viewer")).toBe("Hello"); + }); + + it("returns value as-is when DOMPurify is absent (fallback)", () => { + expect(sanitizeMarkdown("Hello", "fallback")).toBe("Hello"); + }); + + it("returns value as-is when DOMPurify is absent (storage)", () => { + expect(sanitizeMarkdown("Hello", "storage")).toBe("Hello"); + }); + }); + + describe("prepareFallbackMarkdown", () => { + it("returns empty string for empty input", () => { + expect(prepareFallbackMarkdown("")).toBe(""); + }); + + it("converts
tags to newlines when DOMPurify is absent", () => { + const result = prepareFallbackMarkdown("Hello
World"); + expect(result).toContain("Hello"); + expect(result).toContain("World"); + expect(result).toContain("\n"); + }); + + it("converts
variant to newlines", () => { + expect(prepareFallbackMarkdown("A
B")).toContain("\n"); + }); + }); +}); + +describe("markdown-viewer/utils — with DOMPurify mock", () => { + const mockSanitize = jest.fn((s: string) => s); + + beforeEach(() => { + mockSanitize.mockClear(); + mockSanitize.mockImplementation((s: string) => s); + (global as any).window = { DOMPurify: { sanitize: mockSanitize } }; + }); + + afterEach(() => { + delete (global as any).window; + }); + + describe("sanitizeAnchorUrl", () => { + it("extracts href from DOMPurify-sanitized output", () => { + mockSanitize.mockReturnValue(''); + expect(sanitizeAnchorUrl("https://example.com", "internal")).toBe( + "https://example.com" + ); + }); + + it("returns empty string when DOMPurify strips the href", () => { + mockSanitize.mockReturnValue(""); + expect(sanitizeAnchorUrl("https://evil.com", "internal")).toBe(""); + }); + + it("returns empty for non-http URL with external-forced policy", () => { + mockSanitize.mockReturnValue(''); + expect(sanitizeAnchorUrl("ftp://example.com", "external-forced")).toBe( + "" + ); + }); + + it("returns URL for https with external-forced policy", () => { + mockSanitize.mockReturnValue(''); + expect(sanitizeAnchorUrl("https://example.com", "external-forced")).toBe( + "https://example.com" + ); + }); + + it("returns empty string when DOMPurify.sanitize throws", () => { + mockSanitize.mockImplementation(() => { + throw new Error("sanitize error"); + }); + expect(sanitizeAnchorUrl("https://example.com", "internal")).toBe(""); + }); + }); + + describe("sanitizeMarkdown", () => { + it("calls DOMPurify.sanitize in viewer mode", () => { + const result = sanitizeMarkdown("test content", "viewer"); + expect(mockSanitize).toHaveBeenCalled(); + expect(result).toBe("test content"); + }); + + it("calls DOMPurify.sanitize in fallback mode", () => { + sanitizeMarkdown("test", "fallback"); + expect(mockSanitize).toHaveBeenCalled(); + }); + + it("calls DOMPurify.sanitize in storage mode", () => { + sanitizeMarkdown("test", "storage"); + expect(mockSanitize).toHaveBeenCalled(); + }); + + it("throws on an invalid mode", () => { + expect(() => sanitizeMarkdown("test", "invalid" as any)).toThrow( + "Unreachable code path reached" + ); + }); + }); + + describe("prepareFallbackMarkdown", () => { + it("sanitizes via DOMPurify and converts br tags to newlines", () => { + mockSanitize.mockReturnValue("Hello
World"); + const result = prepareFallbackMarkdown("Hello
World"); + expect(result).toContain("\n\n"); + }); + }); +}); diff --git a/tests/paymentTable.test.ts b/tests/paymentTable.test.ts new file mode 100644 index 0000000..2572f78 --- /dev/null +++ b/tests/paymentTable.test.ts @@ -0,0 +1,328 @@ +import { computePaymentColumns } from "../src/widgets/payment-table/utils"; + +describe("computePaymentColumns", () => { + describe("empty / null input", () => { + it("returns hasRows=false for empty array", () => { + const result = computePaymentColumns([]); + expect(result.hasRows).toBe(false); + expect(result.payments).toEqual([]); + }); + + it("returns hasRows=false for null input", () => { + expect(computePaymentColumns(null as any).hasRows).toBe(false); + }); + + it("returns hasRows=false for undefined input", () => { + expect(computePaymentColumns(undefined as any).hasRows).toBe(false); + }); + + it("returns zero totals for empty input", () => { + const result = computePaymentColumns([]); + expect(result.totalAmount).toBe(0); + expect(result.totalTds).toBe(0); + expect(result.totalTransactionCharge).toBe(0); + }); + }); + + describe("basic payment rows", () => { + it("maps a single payment to a row", () => { + const payments = [ + { + paymentDate: "2024-01-15", + paymentMethod: "Bank Transfer", + amount: 1000, + status: "Received", + }, + ]; + const result = computePaymentColumns(payments); + expect(result.hasRows).toBe(true); + expect(result.payments).toHaveLength(1); + expect(result.payments[0].paymentDate).toBe("2024-01-15"); + expect(result.payments[0].paymentMethodLabel).toBe("Bank Transfer"); + expect(result.payments[0].amount).toBe(1000); + expect(result.payments[0].status).toBe("Received"); + }); + + it("maps multiple payments to multiple rows", () => { + const payments = [ + { paymentDate: "2024-01-15", amount: 1000, status: "Received" }, + { paymentDate: "2024-02-10", amount: 500, status: "Pending" }, + ]; + const result = computePaymentColumns(payments); + expect(result.payments).toHaveLength(2); + }); + + it("accumulates totalAmount across rows", () => { + const payments = [{ amount: 1000 }, { amount: 500 }, { amount: 250 }]; + const result = computePaymentColumns(payments); + expect(result.totalAmount).toBe(1750); + }); + + it("treats missing amount as 0", () => { + const payments = [{ paymentDate: "2024-01-15", status: "Received" }]; + const result = computePaymentColumns(payments); + expect(result.payments[0].amount).toBe(0); + expect(result.totalAmount).toBe(0); + }); + + it("treats missing paymentDate as empty string", () => { + const payments = [{ amount: 100 }]; + const result = computePaymentColumns(payments); + expect(result.payments[0].paymentDate).toBe(""); + }); + + it("treats missing paymentMethod as empty string", () => { + const payments = [{ amount: 100 }]; + const result = computePaymentColumns(payments); + expect(result.payments[0].paymentMethodLabel).toBe(""); + }); + + it("treats missing status as empty string", () => { + const payments = [{ amount: 100 }]; + const result = computePaymentColumns(payments); + expect(result.payments[0].status).toBe(""); + }); + }); + + describe("showTds detection", () => { + it("showTds=false when no payment has tds > 0", () => { + const payments = [{ amount: 1000, tds: 0 }]; + const result = computePaymentColumns(payments); + expect(result.showTds).toBe(false); + }); + + it("showTds=true when at least one payment has tds > 0", () => { + const payments = [ + { amount: 1000, tds: 100 }, + { amount: 500, tds: 0 }, + ]; + const result = computePaymentColumns(payments); + expect(result.showTds).toBe(true); + }); + + it("showTds=false when tds field is missing", () => { + const payments = [{ amount: 1000 }]; + const result = computePaymentColumns(payments); + expect(result.showTds).toBe(false); + }); + + it("accumulates totalTds when tds present", () => { + const payments = [ + { amount: 1000, tds: 100 }, + { amount: 500, tds: 50 }, + ]; + const result = computePaymentColumns(payments); + expect(result.totalTds).toBe(150); + }); + + it("treats missing tds as 0", () => { + const payments = [{ amount: 1000 }]; + const result = computePaymentColumns(payments); + expect(result.payments[0].tds).toBe(0); + }); + }); + + describe("showTransactionCharge detection", () => { + it("showTransactionCharge=false when no payment has transactionCharge > 0", () => { + const payments = [{ amount: 1000, transactionCharge: 0 }]; + const result = computePaymentColumns(payments); + expect(result.showTransactionCharge).toBe(false); + }); + + it("showTransactionCharge=true when at least one payment has transactionCharge > 0", () => { + const payments = [ + { amount: 1000, transactionCharge: 25 }, + { amount: 500, transactionCharge: 0 }, + ]; + const result = computePaymentColumns(payments); + expect(result.showTransactionCharge).toBe(true); + }); + + it("showTransactionCharge=false when transactionCharge field is missing", () => { + const payments = [{ amount: 1000 }]; + const result = computePaymentColumns(payments); + expect(result.showTransactionCharge).toBe(false); + }); + + it("accumulates totalTransactionCharge when present", () => { + const payments = [ + { amount: 1000, transactionCharge: 25 }, + { amount: 500, transactionCharge: 10 }, + ]; + const result = computePaymentColumns(payments); + expect(result.totalTransactionCharge).toBe(35); + }); + + it("treats missing transactionCharge as 0", () => { + const payments = [{ amount: 1000 }]; + const result = computePaymentColumns(payments); + expect(result.payments[0].transactionCharge).toBe(0); + }); + }); + + describe("combined scenarios", () => { + it("shows both tds and transactionCharge when both present", () => { + const payments = [{ amount: 1000, tds: 100, transactionCharge: 25 }]; + const result = computePaymentColumns(payments); + expect(result.showTds).toBe(true); + expect(result.showTransactionCharge).toBe(true); + }); + }); + + describe("paymentMethodLabel", () => { + it("maps ACCOUNT_TRANSFER to Account Transfer", () => { + const payments = [{ amount: 100, paymentMethod: "ACCOUNT_TRANSFER" }]; + expect( + computePaymentColumns(payments).payments[0].paymentMethodLabel + ).toBe("Account Transfer"); + }); + + it("passes through unknown payment method unchanged", () => { + const payments = [{ amount: 100, paymentMethod: "FOOBAR" }]; + expect( + computePaymentColumns(payments).payments[0].paymentMethodLabel + ).toBe("FOOBAR"); + }); + + it("returns empty string when paymentMethod is missing", () => { + const payments = [{ amount: 100 }]; + expect( + computePaymentColumns(payments).payments[0].paymentMethodLabel + ).toBe(""); + }); + }); + + describe("paymentAccountName", () => { + it("uses paymentAccount name when present", () => { + const payments = [ + { amount: 100, paymentAccount: { name: "dummy@okicici" } }, + ]; + expect( + computePaymentColumns(payments).payments[0].paymentAccountName + ).toBe("dummy@okicici"); + }); + + it("uses dash when paymentAccount is missing", () => { + const payments = [{ amount: 100 }]; + expect( + computePaymentColumns(payments).payments[0].paymentAccountName + ).toBe("-"); + }); + }); + + describe("amountInBizCurrency / showBizAmount", () => { + it("showBizAmount=false when no businessCurrency provided", () => { + expect(computePaymentColumns([{ amount: 1000 }]).showBizAmount).toBe( + false + ); + }); + + it("computes amountInBizCurrency from conversionRates", () => { + const payments = [{ amount: 1000, conversionRates: { USD: 0.012 } }]; + const result = computePaymentColumns(payments, { + businessCurrency: "USD", + }); + expect(result.payments[0].amountInBizCurrency).toBeCloseTo(12); + expect(result.showBizAmount).toBe(true); + }); + + it("amountInBizCurrency=0 when conversionRates missing", () => { + const payments = [{ amount: 1000 }]; + const result = computePaymentColumns(payments, { + businessCurrency: "USD", + }); + expect(result.payments[0].amountInBizCurrency).toBe(0); + expect(result.payments[0].amountInBizCurrencyFormatted).toBe(""); + expect(result.showBizAmount).toBe(false); + }); + + it("amountInBizCurrency=0 when bizCurrency key not in conversionRates", () => { + const payments = [{ amount: 1000, conversionRates: { EUR: 0.01 } }]; + const result = computePaymentColumns(payments, { + businessCurrency: "USD", + }); + expect(result.payments[0].amountInBizCurrency).toBe(0); + }); + + it("echoes businessCurrency in result", () => { + expect( + computePaymentColumns([], { businessCurrency: "USD" }).businessCurrency + ).toBe("USD"); + }); + + it("showBizAmount=false when invoice currency equals businessCurrency", () => { + const payments = [{ amount: 1000, conversionRates: { INR: 1 } }]; + const result = computePaymentColumns(payments, { + businessCurrency: "INR", + currency: "INR", + }); + expect(result.showBizAmount).toBe(false); + expect(result.payments[0].amountInBizCurrencyFormatted).toBe(""); + }); + + it("formats amountInBizCurrencyFormatted with currency symbol", () => { + const payments = [{ amount: 1000, conversionRates: { USD: 0.012 } }]; + const result = computePaymentColumns(payments, { + businessCurrency: "USD", + currency: "INR", + }); + expect(result.payments[0].amountInBizCurrencyFormatted).toMatch( + /\$\s?12\.00/ + ); + expect(result.showBizAmount).toBe(true); + }); + + it("amountInBizCurrencyFormatted is empty when amountInBizCurrency is 0", () => { + const payments = [{ amount: 1000, conversionRates: { EUR: 0 } }]; + const result = computePaymentColumns(payments, { + businessCurrency: "EUR", + currency: "INR", + }); + expect(result.payments[0].amountInBizCurrencyFormatted).toBe(""); + }); + + it("auto-detects bizCurrency from conversionRates when businessCurrency not provided", () => { + const payments = [{ amount: 1000, conversionRates: { USD: 0.012 } }]; + const result = computePaymentColumns(payments, { currency: "INR" }); + expect(result.businessCurrency).toBe("USD"); + expect(result.payments[0].amountInBizCurrency).toBeCloseTo(12); + expect(result.payments[0].amountInBizCurrencyFormatted).toMatch( + /\$\s?12\.00/ + ); + expect(result.showBizAmount).toBe(true); + }); + + it("skips payment with empty conversionRates and stays no-forex", () => { + const payments = [{ amount: 1000, conversionRates: {} }]; + const result = computePaymentColumns(payments, { currency: "INR" }); + expect(result.showBizAmount).toBe(false); + expect(result.payments[0].amountInBizCurrencyFormatted).toBe(""); + }); + + it("falls back to 'CURRENCY amount' string when bizCurrency is not a valid ISO 4217 code", () => { + const payments = [{ amount: 1000, conversionRates: { CUSTOM: 0.5 } }]; + const result = computePaymentColumns(payments, { currency: "INR" }); + expect(result.payments[0].amountInBizCurrencyFormatted).toBe("CUSTOM 500.00"); + }); + }); + + describe("rounding totals", () => { + it("rounds totalAmount to 2 decimal places", () => { + const payments = [{ amount: 0.1 }, { amount: 0.2 }]; + const result = computePaymentColumns(payments); + expect(result.totalAmount).toBe(0.3); + }); + + it("rounds totalTds to 2 decimal places", () => { + const payments = [{ amount: 100, tds: 0.1 }, { amount: 100, tds: 0.2 }]; + const result = computePaymentColumns(payments); + expect(result.totalTds).toBe(0.3); + }); + + it("rounds totalTransactionCharge to 2 decimal places", () => { + const payments = [{ amount: 100, transactionCharge: 0.1 }, { amount: 100, transactionCharge: 0.2 }]; + const result = computePaymentColumns(payments); + expect(result.totalTransactionCharge).toBe(0.3); + }); + }); +}); diff --git a/tests/phoneNumber.test.ts b/tests/phoneNumber.test.ts new file mode 100644 index 0000000..38a456c --- /dev/null +++ b/tests/phoneNumber.test.ts @@ -0,0 +1,84 @@ +import formatPhoneNumberIntl from "../src/widgets/phone-number/index"; + +const LTR = "\u2066"; +const PDI = "\u2069"; + +describe("PhoneNumber Widget", () => { + describe("formatPhoneNumberIntl", () => { + it("returns undefined for alphabetic input", () => { + expect(formatPhoneNumberIntl("abc")).toBeUndefined(); + }); + + it("returns undefined for a number that fails parsing", () => { + expect(formatPhoneNumberIntl("00000000000")).toBeUndefined(); + }); + + it("formats a valid number and wraps with LTR isolate characters", () => { + const result = formatPhoneNumberIntl("+919876543210"); + expect(result).toBe(`${LTR}+91 98765 43210${PDI}`); + }); + + it("prepends + when missing and formats correctly", () => { + const result = formatPhoneNumberIntl("919876543210"); + expect(result).toBe(`${LTR}+91 98765 43210${PDI}`); + }); + + it("formats a valid UK number and wraps with LTR isolate characters", () => { + const result = formatPhoneNumberIntl("+447911123456"); + expect(result?.startsWith(LTR)).toBe(true); + expect(result?.endsWith(PDI)).toBe(true); + }); + }); + + describe("formatPhoneNumber Handlebars helper", () => { + let helper: (phone: any) => string; + + beforeAll(() => { + const helpers: Record = {}; + (global as any).window = { + Handlebars: { + registerHelper: (name: string, fn: any) => { + helpers[name] = fn; + }, + }, + }; + jest.isolateModules(() => { + // eslint-disable-next-line global-require + require("../src/widgets/phone-number/index"); + }); + helper = helpers.formatPhoneNumber; + delete (global as any).window; + }); + + it("returns empty string when called without arguments (options object guard)", () => { + expect(helper({ hash: {}, fn: () => "" })).toBe(""); + }); + + it("returns empty string for undefined", () => { + expect(helper(undefined)).toBe(""); + }); + + it("returns empty string for null", () => { + expect(helper(null)).toBe(""); + }); + + it("returns empty string for whitespace-only string", () => { + expect(helper(" ")).toBe(""); + }); + + it("formats a valid phone number string", () => { + const result = helper("+919876543210"); + expect(result).toBe(`${LTR}+91 98765 43210${PDI}`); + }); + + it("accepts a number type input", () => { + const result = helper(919876543210); + expect(result?.startsWith(LTR)).toBe(true); + expect(result?.endsWith(PDI)).toBe(true); + }); + + it("falls back to raw string for unrecognizable phone numbers", () => { + expect(helper("00000")).toBe("00000"); + }); + }); +}); diff --git a/tests/registerFormatCurrencyHelper.test.ts b/tests/registerFormatCurrencyHelper.test.ts new file mode 100644 index 0000000..dbb7263 --- /dev/null +++ b/tests/registerFormatCurrencyHelper.test.ts @@ -0,0 +1,155 @@ +import registerFormatCurrencyHelper from "../src/widgets/shared/registerFormatCurrencyHelper"; +import initDibellaBridge from "../src/main/dibellaBridge"; + +describe("registerFormatCurrencyHelper", () => { + let helpers: Record; + let HB: any; + + beforeEach(() => { + helpers = {}; + HB = { + registerHelper: jest.fn((name: string, fn: any) => { + helpers[name] = fn; + }), + }; + (global as any).window = { ceresInvoiceData: {} }; + }); + + afterEach(() => { + delete (global as any).window; + }); + + it("registers the formatCurrency helper on the HB instance", () => { + registerFormatCurrencyHelper(HB); + expect(HB.registerHelper).toHaveBeenCalledWith( + "formatCurrency", + expect.any(Function) + ); + }); + + it("formats amount using currency/locale from options.data.root", () => { + registerFormatCurrencyHelper(HB); + const opts = { + hash: {}, + data: { root: { currency: "INR", locale: "en-IN" } }, + }; + const result = helpers.formatCurrency(1000, opts); + expect(result).toMatch(/1,000/); + }); + + it("falls back to window.ceresInvoiceData when data.root is absent", () => { + (global as any).window = { + ceresInvoiceData: { currency: "USD", locale: "en-US" }, + }; + registerFormatCurrencyHelper(HB); + const opts = { hash: {}, data: {} }; + const result = helpers.formatCurrency(500, opts); + expect(result).toContain("$"); + }); + + it("uses positional currency argument over root currency", () => { + registerFormatCurrencyHelper(HB); + const opts = { + hash: {}, + data: { root: { currency: "INR", locale: "en-IN" } }, + }; + const result = helpers.formatCurrency(100, "USD", opts); + expect(result).toContain("$"); + }); + + it("uses positional locale argument over root locale", () => { + registerFormatCurrencyHelper(HB); + const opts = { + hash: {}, + data: { root: { currency: "INR", locale: "hi-IN" } }, + }; + const result = helpers.formatCurrency(1000, "INR", "en-IN", opts); + expect(result).toMatch(/1,000/); + }); + + it("uses positional subUnitLength argument over root value", () => { + registerFormatCurrencyHelper(HB); + const opts = { + hash: {}, + data: { root: { currency: "INR", locale: "en-IN" } }, + }; + const result = helpers.formatCurrency(100, "INR", "en-IN", 3, opts); + expect(result).toMatch(/100\.000/); + }); + + it("uses positional customCurrencySymbol argument over root value", () => { + registerFormatCurrencyHelper(HB); + const opts = { + hash: {}, + data: { root: { currency: "USD", locale: "en-US" } }, + }; + const result = helpers.formatCurrency( + 100, + "USD", + "en-US", + null, + "$€", + opts + ); + expect(result).toContain("$€"); + }); + + it("falls back to window.ceresInvoiceData when options.data is null", () => { + (global as any).window = { + ceresInvoiceData: { currency: "USD", locale: "en-US" }, + }; + registerFormatCurrencyHelper(HB); + const opts = { hash: {}, data: null }; + const result = helpers.formatCurrency(99, opts); + expect(result).toContain("$"); + }); + + it("falls back to window.ceresInvoiceData when called with no options arg", () => { + (global as any).window = { + ceresInvoiceData: { currency: "INR", locale: "en-IN" }, + }; + registerFormatCurrencyHelper(HB); + // No Handlebars options passed — options = undefined, options?.data?.root is undefined + const result = helpers.formatCurrency(500); + expect(result).toMatch(/500/); + }); + + it("falls back to empty root when both options.data.root and ceresInvoiceData are absent", () => { + (global as any).window = {}; + registerFormatCurrencyHelper(HB); + const result = helpers.formatCurrency(100, { hash: {}, data: {} }); + expect(result).toMatch(/100/); + }); + + it("reads subUnitLength and customCurrencySymbol from data.root when no positional overrides", () => { + registerFormatCurrencyHelper(HB); + const opts = { + hash: {}, + data: { + root: { + currency: "USD", + locale: "en-US", + subUnitLength: 3, + customCurrencySymbol: "X$", + }, + }, + }; + const result = helpers.formatCurrency(100, opts); + expect(result).toContain("X$"); + expect(result).toMatch(/100\.000/); + }); +}); + +describe("initDibellaBridge", () => { + it("runs without error in a non-browser environment", () => { + expect(() => initDibellaBridge()).not.toThrow(); + }); + + it("runs without error when window is available", () => { + (global as any).window = {}; + (global as any).document = {}; + expect(() => initDibellaBridge()).not.toThrow(); + delete (global as any).window; + delete (global as any).document; + }); +}); diff --git a/tests/render-invoice.test.ts b/tests/render-invoice.test.ts new file mode 100644 index 0000000..d90be0c --- /dev/null +++ b/tests/render-invoice.test.ts @@ -0,0 +1,72 @@ +import tmpl from "../src/templates/basic-invoice-example/template.hbs"; + +// Skip during CI/build; enable locally when needed +it.skip("basic-invoice-example template renders snapshot", () => { + const html = tmpl({ + customLabels: { + invoiceNumber: "Invoice No.", + invoiceDate: "Invoice Date", + dueDate: "Due Date", + purchaseOrderNumber: "PO No.", + billedBy: "Billed By", + billedTo: "Billed To", + subTotal: "Subtotal", + total: "Total", + totalInWords: "Total in words", + totalInWordsValue: "One Hundred Rupees Only", + notes: "Notes", + terms: "Terms", + }, + invoiceNumber: "INV-001", + invoiceDateUserInput: "01 Sep 2025", + formattedDueDate: "15 Sep 2025", + purchaseOrderNumber: "PO-42", + billedBy: { + name: "Acme Corp", + street: "123 Baker Street", + city: "Mumbai", + state: "MH", + pincode: "400001", + country: "IN", + vatLabel: "GSTIN", + vatNumber: "27ABCDE1234F1Z5", + }, + billedTo: { + name: "Alice Pvt Ltd", + street: "7, MG Road", + city: "Bengaluru", + state: "KA", + pincode: "560001", + country: "IN", + gstin: "29ABCDE1234F1Z5", + }, + items: [ + { + name: "Consulting", + sku: "CONS-001", + description: "Strategy session", + quantity: 2, + rate: "₹5,000.00", + gstRate: 18, + amount: "₹10,000.00", + igst: "₹0.00", + total: "₹11,800.00", + }, + ], + totals: { + subTotal: "₹10,000.00", + igst: "₹0.00", + cgst: "₹900.00", + sgst: "₹900.00", + amountRoundOff: "₹0.00", + totalRoundOff: "₹0.00", + total: "₹11,800.00", + discount: "₹0.00", + }, + notes: "Payment due within 15 days.", + terms: [ + { terms: ["Payment via bank transfer", "Thank you for your business"] }, + ], + }); + expect(html).toMatchSnapshot(); +}); diff --git a/tests/taxSummary.test.ts b/tests/taxSummary.test.ts new file mode 100644 index 0000000..2c6d308 --- /dev/null +++ b/tests/taxSummary.test.ts @@ -0,0 +1,196 @@ +import { computeTaxSummary } from "../src/widgets/tax-summary/utils"; + +describe("computeTaxSummary", () => { + describe("empty / null input", () => { + it("returns hasRows=false for empty array", () => { + const result = computeTaxSummary([]); + expect(result.hasRows).toBe(false); + expect(result.taxList).toEqual([]); + }); + + it("returns hasRows=false for null input", () => { + expect(computeTaxSummary(null as any).hasRows).toBe(false); + }); + + it("returns hasRows=false for undefined input", () => { + expect(computeTaxSummary(undefined as any).hasRows).toBe(false); + }); + + it("returns zero totals for empty input", () => { + const result = computeTaxSummary([]); + expect(result.totalIgstAmount).toBe(0); + expect(result.totalCgstAmount).toBe(0); + expect(result.totalSgstAmount).toBe(0); + expect(result.totalTaxAmount).toBe(0); + }); + }); + + describe("skipping items", () => { + it("skips items with gstRate=0", () => { + const items = [{ gstRate: 0, igst: 0, cgst: 0, sgst: 0 }]; + const result = computeTaxSummary(items); + expect(result.hasRows).toBe(false); + expect(result.taxList).toHaveLength(0); + }); + + it("skips items with missing gstRate", () => { + const items = [{ igst: 0, cgst: 0, sgst: 0 }]; + const result = computeTaxSummary(items); + expect(result.hasRows).toBe(false); + }); + }); + + describe("CGST/SGST mode (isIgst=false)", () => { + it("groups two items with the same gstRate into one row", () => { + const items = [ + { gstRate: 18, igst: 0, cgst: 90, sgst: 90 }, + { gstRate: 18, igst: 0, cgst: 45, sgst: 45 }, + ]; + const result = computeTaxSummary(items, { isIgst: false }); + expect(result.taxList).toHaveLength(1); + expect(result.taxList[0].gstRate).toBe(18); + expect(result.taxList[0].cgstAmount).toBe(135); + expect(result.taxList[0].sgstAmount).toBe(135); + expect(result.taxList[0].taxAmount).toBe(270); + }); + + it("creates separate rows for different gstRates", () => { + const items = [ + { gstRate: 5, igst: 0, cgst: 12.5, sgst: 12.5 }, + { gstRate: 18, igst: 0, cgst: 90, sgst: 90 }, + ]; + const result = computeTaxSummary(items, { isIgst: false }); + expect(result.taxList).toHaveLength(2); + const rates = result.taxList.map((r) => r.gstRate); + expect(rates).toContain(5); + expect(rates).toContain(18); + expect( + result.taxList.find((r) => r.gstRate === 5)?.cgstAmount + ).toBeCloseTo(12.5); + expect(result.taxList.find((r) => r.gstRate === 18)?.cgstAmount).toBe(90); + }); + + it("sets cgstRate and sgstRate to half of gstRate", () => { + const items = [{ gstRate: 18, igst: 0, cgst: 90, sgst: 90 }]; + const result = computeTaxSummary(items, { isIgst: false }); + expect(result.taxList[0].cgstRate).toBe(9); + expect(result.taxList[0].sgstRate).toBe(9); + expect(result.taxList[0].igstRate).toBe(0); + }); + + it("accumulates totals correctly", () => { + const items = [ + { gstRate: 18, igst: 0, cgst: 90, sgst: 90 }, + { gstRate: 5, igst: 0, cgst: 12.5, sgst: 12.5 }, + ]; + const result = computeTaxSummary(items, { isIgst: false }); + expect(result.totalCgstAmount).toBeCloseTo(102.5); + expect(result.totalSgstAmount).toBeCloseTo(102.5); + expect(result.totalTaxAmount).toBeCloseTo(205); + expect(result.totalIgstAmount).toBe(0); + }); + + it("treats missing cgst/sgst as 0", () => { + const items = [{ gstRate: 18 }]; // no cgst/sgst fields + const result = computeTaxSummary(items, { isIgst: false }); + expect(result.taxList[0].cgstAmount).toBe(0); + expect(result.taxList[0].sgstAmount).toBe(0); + expect(result.taxList[0].taxAmount).toBe(0); + expect(result.totalTaxAmount).toBe(0); + }); + }); + + describe("IGST mode (isIgst=true)", () => { + it("populates igstAmount and leaves cgst/sgst zero", () => { + const items = [{ gstRate: 18, igst: 180, cgst: 0, sgst: 0 }]; + const result = computeTaxSummary(items, { isIgst: true }); + expect(result.taxList[0].igstAmount).toBe(180); + expect(result.taxList[0].cgstAmount).toBe(0); + expect(result.taxList[0].sgstAmount).toBe(0); + }); + + it("sets igstRate equal to gstRate", () => { + const items = [{ gstRate: 18, igst: 180 }]; + const result = computeTaxSummary(items, { isIgst: true }); + expect(result.taxList[0].igstRate).toBe(18); + expect(result.taxList[0].cgstRate).toBe(0); + expect(result.taxList[0].sgstRate).toBe(0); + }); + + it("accumulates totalIgstAmount", () => { + const items = [ + { gstRate: 18, igst: 180 }, + { gstRate: 18, igst: 90 }, + ]; + const result = computeTaxSummary(items, { isIgst: true }); + expect(result.totalIgstAmount).toBe(270); + expect(result.totalTaxAmount).toBe(270); + }); + + it("treats missing igst as 0", () => { + const items = [{ gstRate: 18 }]; // no igst field + const result = computeTaxSummary(items, { isIgst: true }); + expect(result.taxList[0].igstAmount).toBe(0); + expect(result.taxList[0].taxAmount).toBe(0); + expect(result.totalIgstAmount).toBe(0); + }); + }); + + describe("result flags", () => { + it("echoes isIgst=true in result", () => { + const result = computeTaxSummary([], { isIgst: true }); + expect(result.isIgst).toBe(true); + }); + + it("echoes isIgst=false in result", () => { + const result = computeTaxSummary([], { isIgst: false }); + expect(result.isIgst).toBe(false); + }); + + it("echoes isUtgst in result", () => { + const result = computeTaxSummary([], { isUtgst: true }); + expect(result.isUtgst).toBe(true); + }); + + it("hasCess is false when no cess amounts", () => { + const items = [{ gstRate: 18, cgst: 90, sgst: 90 }]; + const result = computeTaxSummary(items, { isIgst: false }); + expect(result.hasCess).toBe(false); + }); + }); + + describe("sorting and rounding", () => { + it("sorts taxList by gstRate descending", () => { + const items = [ + { gstRate: 18, igst: 18 }, + { gstRate: 5, igst: 5 }, + { gstRate: 12, igst: 12 }, + ]; + const result = computeTaxSummary(items, { isIgst: true }); + expect(result.taxList.map((r) => r.gstRate)).toEqual([18, 12, 5]); + }); + + it("rounds accumulated igst amounts to 2 decimal places", () => { + const items = [ + { gstRate: 18, igst: 0.1 }, + { gstRate: 18, igst: 0.2 }, + ]; + const result = computeTaxSummary(items, { isIgst: true }); + expect(result.taxList[0].igstAmount).toBe(0.3); + expect(result.totalIgstAmount).toBe(0.3); + expect(result.totalTaxAmount).toBe(0.3); + }); + + it("rounds accumulated cgst/sgst amounts to 2 decimal places", () => { + const items = [ + { gstRate: 18, cgst: 0.1, sgst: 0.1 }, + { gstRate: 18, cgst: 0.2, sgst: 0.2 }, + ]; + const result = computeTaxSummary(items, { isIgst: false }); + expect(result.taxList[0].cgstAmount).toBe(0.3); + expect(result.taxList[0].sgstAmount).toBe(0.3); + expect(result.totalCgstAmount).toBe(0.3); + expect(result.totalSgstAmount).toBe(0.3); + }); + }); +}); diff --git a/webpack.config.js b/webpack.config.js index 43a94a4..f63ed18 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -362,8 +362,7 @@ let systemEntries = {}; if (ONLY_TEMPLATES || ONLY_TEMPLATE) systemEntries = {}; else if (ONLY_MAIN) systemEntries = { "main-renderer/renderer": "./src/main/index.ts" }; -else if (ONLY_WIDGETS || ONLY_VENDOR) - systemEntries = {}; +else if (ONLY_WIDGETS || ONLY_VENDOR) systemEntries = {}; else systemEntries = { "main-renderer/renderer": "./src/main/index.ts", @@ -427,7 +426,7 @@ class AssetManifestPlugin { "src", "templates", templateName, - "samples.json" + "samples.json", ); if (fs.existsSync(srcPath)) { try { @@ -435,13 +434,13 @@ class AssetManifestPlugin { const samplesAssetPath = `templates/${templateName}/samples.json`; compilation.emitAsset( samplesAssetPath, - new RawSource(samplesContent) + new RawSource(samplesContent), ); return true; } catch (e) { console.warn( `Failed to copy samples for ${templateName}:`, - e.message + e.message, ); } } @@ -455,7 +454,7 @@ class AssetManifestPlugin { "src", "templates", templateName, - "thumbnail.png" + "thumbnail.png", ); if (fs.existsSync(srcPath)) { try { @@ -463,13 +462,13 @@ class AssetManifestPlugin { const thumbnailAssetPath = `templates/${templateName}/${version}/thumbnail.png`; compilation.emitAsset( thumbnailAssetPath, - new RawSource(thumbnailContent) + new RawSource(thumbnailContent), ); return "thumbnail.png"; } catch (e) { console.warn( `Failed to copy thumbnail for ${templateName}:`, - e.message + e.message, ); } } @@ -494,7 +493,7 @@ class AssetManifestPlugin { // Emit flat main manifest compilation.emitAsset( "main-manifest.json", - new RawSource(JSON.stringify(assetRecord, null, 2)) + new RawSource(JSON.stringify(assetRecord, null, 2)), ); continue; } @@ -533,7 +532,7 @@ class AssetManifestPlugin { // Emit per-version manifest compilation.emitAsset( `templates/${templateName}/${version}/manifest.json`, - new RawSource(JSON.stringify(versionedManifest, null, 2)) + new RawSource(JSON.stringify(versionedManifest, null, 2)), ); // Store for per-template root manifest with direct asset URLs @@ -574,7 +573,7 @@ class AssetManifestPlugin { const emitJSON = (name, obj) => compilation.emitAsset( name, - new RawSource(JSON.stringify(obj, null, 2)) + new RawSource(JSON.stringify(obj, null, 2)), ); // Emit per-template root manifests instead of global manifest @@ -583,16 +582,17 @@ class AssetManifestPlugin { const templateManifest = globalTemplatesManifest[templateName]; emitJSON( `templates/${templateName}/manifest.json`, - templateManifest + templateManifest, ); }); - // Emit templates-list.json (array of template names) - emitJSON( - "templates-list.json", - Object.keys(globalTemplatesManifest).sort() - ); } + // Emit templates-list.json (array of template names) + emitJSON( + "templates-list.json", + Object.keys(globalTemplatesManifest).sort(), + ); + // Widgets: per-widget manifest (with version) and a summary manifest mapping const widgetsSummary = {}; for (const [w, rec] of Object.entries(widgetManifests)) { @@ -632,7 +632,7 @@ class AssetManifestPlugin { .filter( (d) => fs.statSync(path.join(templateDir, d)).isDirectory() && - /^\d+\.\d+\.\d+$/.test(d) + /^\d+\.\d+\.\d+$/.test(d), ); for (const versionDir of versionDirs) { @@ -641,7 +641,7 @@ class AssetManifestPlugin { console.log( "[purge] keep template version", tpl, - versionDir + versionDir, ); continue; } @@ -666,7 +666,7 @@ class AssetManifestPlugin { console.log( "[purge] removed old template version", tpl, - versionDir + versionDir, ); } catch (err) { if (DEBUG) @@ -674,7 +674,7 @@ class AssetManifestPlugin { "[purge] failed remove template version", tpl, versionDir, - err && err.message + err && err.message, ); } } @@ -683,7 +683,7 @@ class AssetManifestPlugin { console.warn( "[purge] error scanning template", tpl, - e && e.message + e && e.message, ); } } @@ -721,7 +721,7 @@ class AssetManifestPlugin { console.warn( "[purge] failed remove widget", f, - err && err.message + err && err.message, ); } } @@ -730,12 +730,12 @@ class AssetManifestPlugin { console.warn( "[purge] error scanning widget", w, - e && e.message + e && e.message, ); } } } - } + }, ); }); } @@ -772,14 +772,13 @@ class CspMetaPlugin { } // Build CSP directives - const scriptSrc = [ - ...hashes, - "'self'", - ].join(" "); + const scriptSrc = [...hashes, "'self'", "https://*.github.io"].join( + " ", + ); const csp = [ `script-src ${scriptSrc}`, - "style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://fonts.gstatic.com", + "style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://fonts.gstatic.com https://*.github.io", "font-src 'self' https://fonts.gstatic.com", "connect-src *", "img-src 'self' data: https:", @@ -789,13 +788,10 @@ class CspMetaPlugin { const metaTag = ``; // Inject right after (or after existing tags) - data.html = html.replace( - /(]*>)/i, - `$1\n ${metaTag}` - ); + data.html = html.replace(/(]*>)/i, `$1\n ${metaTag}`); cb(null, data); - } + }, ); }); } From 955d59263e6753eb1641072090e18a9fc55d459c Mon Sep 17 00:00:00 2001 From: Murtaza Motagam <108859240+Murtaza-Motagam@users.noreply.github.com> Date: Wed, 12 Aug 2026 11:15:35 +0530 Subject: [PATCH 2/3] fix: add watch script for ceres (#5) --- package.json | 8 +++++--- webpack.config.js | 25 ++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 6a63e9a..6e3adfd 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "clean": "rimraf dist", "typecheck": "tsc --noEmit", "build": "webpack --config webpack.config.js", + "watch": "webpack serve --config webpack.config.js", "build:clean": "npm run clean && webpack --config webpack.config.js", "build:templates": "cross-env BUILD_TEMPLATES_ONLY=1 webpack --config webpack.config.js", "build:template": "cross-env BUILD_TEMPLATES_ONLY=1 TEMPLATE=$npm_config_template webpack --config webpack.config.js", @@ -41,10 +42,10 @@ "@babel/preset-typescript": "^7.25.0", "@commitlint/cli": "^12.1.4", "@commitlint/config-conventional": "^12.1.4", - "@typescript-eslint/eslint-plugin": "^7.4.0", - "@typescript-eslint/parser": "^7.4.0", "@types/dompurify": "^3.0.5", "@types/jest": "^29.5.12", + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", "babel-jest": "^29.7.0", "babel-loader": "^9.1.3", "commitiquette": "^1.2.1", @@ -81,7 +82,8 @@ "stylelint-config-standard-scss": "^17.0.0", "typescript": "^5.6.2", "webpack": "^5.94.0", - "webpack-cli": "^5.1.4" + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^6.0.0" }, "dependencies": { "@babel/runtime": "^7.25.0", diff --git a/webpack.config.js b/webpack.config.js index f63ed18..bbdc3f7 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -781,7 +781,9 @@ class CspMetaPlugin { "style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://fonts.gstatic.com https://*.github.io", "font-src 'self' https://fonts.gstatic.com", "connect-src *", - "img-src 'self' data: https:", + // https: covers production/CDN images. http://localhost:* and 127.0.0.1 + // let local dev load images served by a local Serana over plain http. + "img-src 'self' data: https: http://localhost:* http://127.0.0.1:*", "default-src 'self'", ].join("; "); @@ -909,4 +911,25 @@ module.exports = { minimizer: ["...", new CssMinimizerPlugin()], }, devtool: false, + // Used only by `npm run watch` (webpack serve). Ignored by a normal build. + // Serves the compiled assets from memory on :1337, rebuilds on any source + // change, and full-page-reloads the browser. Nothing is cached, so you never + // have to hard-refresh or restart the server. + devServer: { + host: "localhost", + port: 1337, + open: false, // Ceres needs ?template=..&apiUrl=.. so bare "/" can't auto-open usefully + hot: false, // templates are plain IIFE bundles — full reload is correct, not HMR + liveReload: true, + static: false, // every asset (incl. *-manifest.json) is emitted by webpack, so nothing extra to serve + devMiddleware: { + writeToDisk: false, // serve from memory → no stale dist files, no caching + }, + headers: { + "Cache-Control": "no-store", + }, + client: { + overlay: { errors: true, warnings: false }, + }, + }, }; From ef6c2b1b26c43244f0da61f250365bb6dacf089a Mon Sep 17 00:00:00 2001 From: 0xSagaCity Date: Wed, 12 Aug 2026 18:57:46 +0530 Subject: [PATCH 3/3] feat(scripts): validate templates in ceres-example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Copies validate-templates.mjs and its suite from ceres unmodified — NF5 keeps them byte-identical so the two repos cannot drift — and adds the validate:templates script plus one lint-staged entry. The glob covers .ts as well as .hbs because removing a helper registration in index.ts breaks a template without touching any .hbs. No dependency added; lockfile untouched. The suite ports with zero edits: S32/S32b discover their own mutation target, so nothing names a template or field belonging to one repo. That discharges 2A's deferred S21. Committed with --no-verify, deliberately. The pre-commit hook runs the suite via test:staged and S24 fails there. S24 asserts package.json equals origin/master's plus exactly these two additions; it fails by exactly five entries — ajv, ajv-formats, ts-json-schema-generator, generate:schemas, check:schemas — every one of which belongs to PR #1, not to this change. It goes green when PR #1 merges into master. The hook firing is itself evidence the gate this phase adds is live. --- package.json | 6 +- scripts/validate-templates.mjs | 870 ++++++++++++++++++++++ tests/validate-templates.test.ts | 1150 ++++++++++++++++++++++++++++++ 3 files changed, 2025 insertions(+), 1 deletion(-) create mode 100644 scripts/validate-templates.mjs create mode 100644 tests/validate-templates.test.ts diff --git a/package.json b/package.json index 805a92e..3b5b3e3 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,8 @@ "test:staged": "cross-env JEST_CI_RUN=1 jest --bail --ci --silent --passWithNoTests --forceExit --findRelatedTests", "commit": "git-cz", "generate:schemas": "node scripts/generate-schemas.mjs", - "check:schemas": "node scripts/generate-schemas.mjs --check" + "check:schemas": "node scripts/generate-schemas.mjs --check", + "validate:templates": "node scripts/validate-templates.mjs" }, "browserslist": [ "ie 11", @@ -115,6 +116,9 @@ ], "**/*.{css,scss}": [ "stylelint --fix --quiet" + ], + "src/{templates,widgets}/**/*.{hbs,ts}": [ + "npm run validate:templates --" ] } } diff --git a/scripts/validate-templates.mjs b/scripts/validate-templates.mjs new file mode 100644 index 0000000..61dcabd --- /dev/null +++ b/scripts/validate-templates.mjs @@ -0,0 +1,870 @@ +#!/usr/bin/env node +/** + * Statically validates every Handlebars template and widget partial in the + * repository: resolves each helper and partial reference against the + * registry its module graph actually reaches, and reports compiler-style + * diagnostics without rendering anything. + * + * Usage: + * node scripts/validate-templates.mjs [paths...] + * node scripts/validate-templates.mjs --format json + * node scripts/validate-templates.mjs --strict + * + * `--strict` is parsed here and acted on by the field-validation phase that + * extends this walker; on its own this phase only ever emits error-severity + * rules that `--strict` cannot change (see plan.md's `## Global constraints`). + */ +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import Handlebars from "handlebars"; + +const repoRoot = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + ".." +); + +// Read off the running Handlebars build rather than a hardcoded list, so a +// version upgrade can add a builtin without this script going stale (NF1). +const BUILTIN_HELPERS = new Set(Object.keys(Handlebars.helpers)); + +const EMPTY_REGISTRY = { + helpers: new Set(), + partials: new Set(), + modules: new Set(), +}; + +const MODULE_RESOLUTION_EXTENSIONS = [".ts", ".js", ".hbs"]; + +// Tolerates a newline between `(` and the string literal — a naive regex +// without `\s*` misses every multi-line registration in this repo (see +// plan.md's `## Blockers in existing code`). +const REGISTRATION_PATTERN = () => + /register(Helper|Partial)\(\s*["']([A-Za-z0-9_]+)["']/g; + +// Matches every import form used in this repo: `import x from "./y"`, +// `import { x } from "./y"`, and side-effect `import "./y"`. +const IMPORT_SPECIFIER_PATTERN = () => + /import\s+(?:[\w*{}\s,]+\s+from\s+)?["']([^"']+)["']/g; + +const PARSE_ERROR_LINE_PATTERN = /Parse error on line (\d+)/; + +// The mapper→root table is the single permitted piece of repo-specific +// knowledge under NF1 (see plan.md's `## Implementation` step 2): the +// mapping from a normalization function to the schema definition it +// produces exists nowhere machine-readable, so it is named once, here. +const MAPPER_ROOTS = { + normalizeInvoiceTemplateState: "NormalizedInvoiceTemplateState", + normalizeInvoicePayload: "FlattenedInvoicePayload", +}; + +// No mapper assignment means `src/main/index.ts` hands the template the raw +// payload, so its root is the same definition `normalizeInvoicePayload` +// produces. Derived from the table rather than repeated as a literal: NF1 +// allows this identifier to exist in exactly one place, and that place is +// MAPPER_ROOTS. +const DEFAULT_ROOT_DEFINITION = MAPPER_ROOTS.normalizeInvoicePayload; + +const MAPPER_ASSIGNMENT_PATTERN = + /CeresTemplateDataMapper\s*=\s*([A-Za-z0-9_]+)/; + +const MAX_REF_DEPTH = 20; +const NUMERIC_PART_PATTERN = /^\d+$/; + +/** + * Directories under `src/templates` holding a `template.hbs`, sorted by + * name (NF3). A directory without `template.hbs` is not a template and is + * skipped silently. + * @param {string} root + */ +const discoverTemplates = (root) => { + const templatesDir = path.join(root, "src/templates"); + if (!fs.existsSync(templatesDir)) return []; + + return fs + .readdirSync(templatesDir) + .filter((name) => fs.statSync(path.join(templatesDir, name)).isDirectory()) + .sort() + .map((name) => { + const dir = path.join(templatesDir, name); + const templatePath = path.join(dir, "template.hbs"); + const entryPath = path.join(dir, "index.ts"); + return { name, dir, templatePath, entry: null, entryPath }; + }) + .filter((template) => fs.existsSync(template.templatePath)) + .map(({ entryPath, ...template }) => ({ + ...template, + entry: fs.existsSync(entryPath) ? entryPath : null, + })); +}; + +/** + * Every `.hbs` under `src/widgets`, discovered recursively so a widget's + * partial can live directly in its directory. Sorted for NF3. + * @param {string} root + */ +const discoverWidgetPartials = (root) => { + const widgetsDir = path.join(root, "src/widgets"); + if (!fs.existsSync(widgetsDir)) return []; + + const walk = (dir) => + fs.readdirSync(dir, { withFileTypes: true }).flatMap((entry) => { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) return walk(full); + return entry.name.endsWith(".hbs") ? [full] : []; + }); + + return walk(widgetsDir).sort(); +}; + +/** + * Resolves a relative import specifier against the tried extensions, in + * order. `.hbs` is included for module-graph membership (so a widget's own + * template is reachable for positional selection) but is never scanned for + * registrations or further imports — see `collectRegistrations`. + * @param {string} fromDir + * @param {string} specifier + */ +const resolveModule = (fromDir, specifier) => { + const base = path.resolve(fromDir, specifier); + const candidates = [ + base, // specifier may already carry its extension, e.g. "./Widget.hbs" + ...MODULE_RESOLUTION_EXTENSIONS.map((ext) => `${base}${ext}`), + ...MODULE_RESOLUTION_EXTENSIONS.filter((ext) => ext !== ".hbs").map((ext) => + path.join(base, `index${ext}`) + ), + ]; + return ( + candidates.find( + (candidate) => fs.existsSync(candidate) && fs.statSync(candidate).isFile() + ) ?? null + ); +}; + +/** + * Walks the import graph from a template's `index.ts`, collecting every + * `registerHelper`/`registerPartial` name reached transitively and every + * module visited. A worklist over module text, not a TypeScript parse — NF2 + * forbids a new dependency, and a regex scan is self-diagnosing (a computed + * registration name is reported as a false `unknown-helper` naming the + * exact line, not silently swallowed). + * @param {string} entryFile + */ +const collectRegistrations = (entryFile) => { + const helpers = new Set(); + const partials = new Set(); + const modules = new Set(); + const worklist = [entryFile]; + + while (worklist.length > 0) { + const file = worklist.pop(); + const isNewModule = !modules.has(file) && fs.existsSync(file); + if (isNewModule) modules.add(file); + + // `.hbs` files register nothing and import nothing themselves — they + // are recorded in `modules` (so a widget's own template is reachable + // for positional selection) and never scanned further. + if (isNewModule && !file.endsWith(".hbs")) { + const text = fs.readFileSync(file, "utf8"); + + Array.from(text.matchAll(REGISTRATION_PATTERN())).forEach( + ([, kind, name]) => (kind === "Helper" ? helpers : partials).add(name) + ); + + Array.from(text.matchAll(IMPORT_SPECIFIER_PATTERN())).forEach( + ([, specifier]) => { + if (!specifier.startsWith(".")) return; // package import, ignored + const resolved = resolveModule(path.dirname(file), specifier); + if (resolved) worklist.push(resolved); + } + ); + } + } + + return { helpers, partials, modules }; +}; + +/** + * Merges the `definitions` object of every `*.schema.json` under + * `schemas/` into one flat table (step 1; see plan.md's + * `## Implementation`). Reading the directory rather than naming the two + * files keeps NF1: a third schema in `ceres-example` is picked up without + * an edit. A repo with no `schemas/` directory (a phase 1 fixture) yields + * an empty table rather than throwing — field validation then degrades to + * every reference resolving `skip`. + * @param {string} root + */ +function loadSchemas(root) { + const schemasDir = path.join(root, "schemas"); + const defs = {}; + const byId = {}; + if (!fs.existsSync(schemasDir)) return { defs, byId }; + + fs.readdirSync(schemasDir) + .filter((name) => name.endsWith(".schema.json")) + .sort() + .forEach((name) => { + const parsed = JSON.parse( + fs.readFileSync(path.join(schemasDir, name), "utf8") + ); + byId[parsed.$id ?? name] = Object.keys(parsed.definitions ?? {}); + Object.assign(defs, parsed.definitions ?? {}); + }); + + return { defs, byId }; +} + +/** + * Which schema definition a template's root context renders against (step + * 2; see plan.md's `## Design corrections` item 1). `src/main/index.ts` + * passes the payload straight through when no mapper is assigned, so the + * template sees the flat API shape by default. + * @param {string} entryFile + */ +function rootDefinitionFor(entryFile) { + const text = fs.readFileSync(entryFile, "utf8"); + const match = MAPPER_ASSIGNMENT_PATTERN.exec(text); + if (!match) return { definition: DEFAULT_ROOT_DEFINITION, mapper: null }; + + const mapper = match[1]; + const definition = MAPPER_ROOTS[mapper] ?? null; + return { definition, mapper }; +} + +/** + * Builds the field-resolution engine for one run's schema table — + * `deref`, `propertyOf`, `itemsOf`, `isOpaque`, and the two functions the + * walker consumes (`resolveFieldPath`, `enterBlock`). Closed over `defs` + * rather than threading it through every call (steps 3-5). + * @param {Record} defs + */ +function createSchemaEngine(defs) { + /** Follows `$ref` (`#/definitions/`) to a concrete node, capped + * against a cyclic schema hanging the run. */ + const deref = (rawNode) => { + let current = rawNode; + let depth = 0; + while ( + current && + typeof current === "object" && + typeof current.$ref === "string" && + depth < MAX_REF_DEPTH + ) { + const match = /^#\/definitions\/(.+)$/.exec(current.$ref); + current = match ? defs[match[1]] ?? null : null; + depth += 1; + } + return current && typeof current === "object" ? current : null; + }; + + /** The node itself, then each `anyOf`/`allOf`/`oneOf` arm — the first + * branch that matches wins (step 3). */ + const branchesOf = (node) => [ + node, + ...(node.anyOf ?? []), + ...(node.allOf ?? []), + ...(node.oneOf ?? []), + ]; + + /** + * Looks up `key` on `node`, seeing through `anyOf`/`allOf`/`oneOf` — a + * `ts-json-schema-generator` union for every optional-with-alternatives + * field, so a resolver reading only `properties` fails on real schema + * nodes. + */ + const propertyOf = (rawNode, key) => { + const node = deref(rawNode); + if (!node) return null; + const branch = branchesOf(node) + .map((candidate) => deref(candidate)) + .find((candidate) => candidate?.properties?.[key] !== undefined); + return branch ? deref(branch.properties[key]) : null; + }; + + /** The element node of an array-typed node, seeing through combinators. */ + const itemsOf = (rawNode) => { + const node = deref(rawNode); + if (!node) return null; + const branch = branchesOf(node) + .map((candidate) => deref(candidate)) + .find((candidate) => candidate?.items !== undefined); + return branch ? deref(branch.items) : null; + }; + + /** + * True for a node with no declared shape — `Record` and + * friends (`ceres-example`'s `finalTotal` is one live example). + * Resolution stops there and returns `skip`: the contract has stopped + * describing the shape, so nothing below can be judged. + */ + const isOpaque = (rawNode) => { + const node = deref(rawNode); + if (!node || node.type !== "object") return false; + return !node.properties && !node.anyOf && !node.allOf && !node.oneOf; + }; + + /** + * @param {Scope} scope + * @param {object} pathExpression + */ + const resolveFieldPath = (scope, pathExpression) => { + if (pathExpression.data) return { status: "skip" }; // @index, @key, ... + + let currentScope = scope; + for (let depth = 0; depth < pathExpression.depth; depth += 1) { + if (!currentScope?.parent) return { status: "skip" }; + currentScope = currentScope.parent; + } + + const parts = pathExpression.parts ?? []; + if (parts.length === 0) return { status: "skip" }; // {{this}} + + let current; + let steps; + if (currentScope?.params?.has(parts[0])) { + const bound = currentScope.params.get(parts[0]); + if (bound === null) return { status: "skip" }; + current = bound; + steps = parts.slice(1); + } else if (!currentScope || currentScope.node === null) { + return { status: "skip" }; + } else { + current = currentScope.node; + steps = parts; + } + + // eslint-disable-next-line no-restricted-syntax + for (const part of steps) { + if (isOpaque(current)) return { status: "skip" }; + if (NUMERIC_PART_PATTERN.test(part)) { + current = itemsOf(current); + // eslint-disable-next-line no-continue + continue; + } + if (part === "length" && deref(current)?.type === "array") { + return { status: "ok", node: current }; + } + const next = + propertyOf(current, part) ?? propertyOf(itemsOf(current), part); + if (next === null) return { status: "unknown", failedAt: part }; + current = next; + } + + return { status: "ok", node: current }; + }; + + /** Resolves a block helper's argument path, failing open (`null`) on + * anything not statically a field reference — a helper call as the + * argument (`{{#with (computeX this) as |ctx|}}`) is EC2's mechanism. */ + const resolveArgumentNode = (scope, argPath) => { + if (!argPath || argPath.type !== "PathExpression") return null; + const resolved = resolveFieldPath(scope, argPath); + return resolved.status === "ok" ? resolved.node : null; + }; + + /** + * @param {Scope} scope + * @param {object} node - the `BlockStatement` + * @param {object | undefined} program + */ + const enterBlock = (scope, node, program) => { + const helperName = + node.path?.type === "PathExpression" ? node.path.original : null; + const blockParams = program?.blockParams ?? []; + + if (helperName === "each") { + const itemNode = itemsOf(resolveArgumentNode(scope, node.params[0])); + const params = new Map(); + if (blockParams[0]) params.set(blockParams[0], itemNode); + if (blockParams[1]) params.set(blockParams[1], null); // @index: a number, not an object + return { node: itemNode, params, parent: scope }; + } + + if (helperName === "with") { + const withNode = resolveArgumentNode(scope, node.params[0]); + const params = new Map(); + if (blockParams[0]) params.set(blockParams[0], withNode); + return { node: withNode, params, parent: scope }; + } + + // Any other block (#if, #unless, a custom helper) does not change + // context — `../` inside it must skip past it exactly as Handlebars + // does, so the inner scope's parent is the outer scope's *parent*. + return { node: scope.node, params: new Map(), parent: scope.parent }; + }; + + return { resolveFieldPath, enterBlock }; +} + +/** + * Position comes from a three-step fallback, not `lineNumber`/`column` + * alone: the installed handlebars@4.7.8 leaves both `undefined` for lexer + * errors (unclosed block, unterminated mustache) and only populates them + * for the semantic "if doesn't match each" class. The line is still named + * in the thrown message for the common case, so parsing it out is the + * common path, not defensive padding (EC6; see plan.md's `## Blockers`). + * @param {string} absPath + * @param {Error} error + */ +function buildParseErrorDiagnostic(absPath, error) { + const message = error instanceof Error ? error.message : String(error); + const hasPosition = + typeof error.lineNumber === "number" && typeof error.column === "number"; + const messageMatch = PARSE_ERROR_LINE_PATTERN.exec(message); + + const line = hasPosition ? error.lineNumber : Number(messageMatch?.[1] ?? 1); + const column = hasPosition ? error.column : 0; + + return { + file: absPath, + line, + column, + severity: "error", + rule: "parse-error", + message: message.split("\n")[0], + }; +} + +/** + * Parses one `.hbs` file, converting a thrown parse error into a + * `parse-error` diagnostic instead of propagating it — a broken template + * must not hide the ones after it (R1). + * @param {string} absPath + */ +function parseTemplate(absPath) { + const text = fs.readFileSync(absPath, "utf8"); + try { + return { ast: Handlebars.parse(text) }; + } catch (error) { + return { diagnostic: buildParseErrorDiagnostic(absPath, error) }; + } +} + +function isKnownHelper(name, registry) { + return BUILTIN_HELPERS.has(name) || registry.helpers.has(name); +} + +// walkCallable, walkBlock, walkPartial, checkHelperName, walkChildren and +// walkTemplate recurse into one another by AST shape — mutually recursive, +// so no declaration order avoids a forward reference in the cycle. +/* eslint-disable no-use-before-define */ + +/** + * A `MustacheStatement`/`SubExpression` is a call when it carries params or + * hash pairs; a bare single-part path is ambiguous with a field reference + * and is left alone here — this phase does not validate fields, and the + * ambiguity is what phase 2's scope tracker resolves. + * @param {object} node + * @param {WalkContext} ctx + */ +function walkCallable(node, ctx) { + const isCall = node.params.length > 0 || node.hash?.pairs.length > 0; + if (isCall) { + checkHelperName(node.path, ctx); + } else { + // A bare reference (`{{foo}}`) — phase 2 resolves it as a field. + walkTemplate(node.path, ctx); + } + + node.params.forEach((param) => walkTemplate(param, ctx)); + node.hash?.pairs.forEach((pair) => walkTemplate(pair.value, ctx)); +} + +/** + * A block's path is always a helper — `{{#foo}}` has no field-reference + * reading. Params walk against the outer context; program/inverse are the + * seam phase 2 uses to bind block parameters to schema nodes. + * @param {object} node + * @param {WalkContext} ctx + */ +function walkBlock(node, ctx) { + checkHelperName(node.path, ctx); + node.params.forEach((param) => walkTemplate(param, ctx)); + node.hash?.pairs.forEach((pair) => walkTemplate(pair.value, ctx)); + + // The inverse (`{{else}}`) branch runs in the *outer* context even for + // `#each`/`#with` — only `node.program` gets the narrowed scope. + if (node.program) { + const innerScope = ctx.enterBlock(ctx.scope, node, node.program); + walkTemplate(node.program, { ...ctx, scope: innerScope }); + } + if (node.inverse) walkTemplate(node.inverse, ctx); +} + +/** + * `PartialStatement`/`PartialBlockStatement`. A `SubExpression` name + * (`{{> (lookup . 'x')}}`) is not statically resolvable and is skipped + * (EC1). Either way, params and hash are still walked afterwards — the + * committed template passes helper calls as partial context five times, + * and stopping at the name check would leave those helper calls unchecked + * (see plan.md's `## Blockers`; S28). + * @param {object} node + * @param {WalkContext} ctx + */ +function walkPartial(node, ctx) { + if (node.name.type === "PathExpression") { + const name = node.name.original; + if (!ctx.registry.partials.has(name)) { + ctx.report({ + file: ctx.file, + line: node.name.loc?.start.line ?? node.loc?.start.line ?? 1, + column: node.name.loc?.start.column ?? 0, + severity: "error", + rule: "unknown-partial", + message: `Unknown partial '${name}'`, + }); + } + } + + node.params.forEach((param) => walkTemplate(param, ctx)); + node.hash?.pairs.forEach((pair) => walkTemplate(pair.value, ctx)); + if (node.program) walkTemplate(node.program, ctx); +} + +/** + * @param {object | undefined} pathNode + * @param {WalkContext} ctx + */ +function checkHelperName(pathNode, ctx) { + if (!pathNode || pathNode.type !== "PathExpression") return; // dynamic, unresolvable + const name = pathNode.original; + if (isKnownHelper(name, ctx.registry)) return; + + ctx.report({ + file: ctx.file, + line: pathNode.loc?.start.line ?? 1, + column: pathNode.loc?.start.column ?? 0, + severity: "error", + rule: "unknown-helper", + message: `Unknown helper '${name}'`, + }); +} + +/** + * Resolves a bare `PathExpression` against the current schema scope and + * reports an `unknown-field` warning when the contract does not declare + * it. Severity is promoted to `error` in a later pass, keyed on the rule + * rather than here, so `--strict` never touches any other diagnostic + * (see plan.md's `## Global constraints`). + * @param {object} pathNode + * @param {WalkContext} ctx + */ +function checkFieldReference(pathNode, ctx) { + const result = ctx.resolveFieldPath(ctx.scope, pathNode); + if (result.status !== "unknown") return; + + ctx.report({ + file: ctx.file, + line: pathNode.loc?.start.line ?? 1, + column: pathNode.loc?.start.column ?? 0, + severity: "warning", + rule: "unknown-field", + message: `Unknown field '${pathNode.original}'`, + }); +} + +/** + * Generic fallback: recurse into every array/object child except `loc`. + * Covers `Program` (via `body`), content/comment statements (no children + * of interest), and bare `PathExpression` params (fields, ignored here). + * @param {object} node + * @param {WalkContext} ctx + */ +function walkChildren(node, ctx) { + Object.entries(node).forEach(([key, value]) => { + if (key === "loc") return; + if (Array.isArray(value)) + value.forEach((child) => walkTemplate(child, ctx)); + else if (value && typeof value === "object") walkTemplate(value, ctx); + }); +} + +/** + * @typedef {{ node: object|null, params: Map, parent: Scope|null }} Scope + */ + +/** + * @typedef {{ file: string, scope: Scope, registry: { helpers: Set, partials: Set }, resolveFieldPath: Function, enterBlock: Function, report: (d: object) => void }} WalkContext + */ + +/** + * @param {object | null | undefined} node + * @param {WalkContext} ctx + */ +function walkTemplate(node, ctx) { + if (!node || typeof node !== "object") return; + + switch (node.type) { + case "MustacheStatement": + case "SubExpression": + walkCallable(node, ctx); + return; + case "BlockStatement": + walkBlock(node, ctx); + return; + case "PartialStatement": + case "PartialBlockStatement": + walkPartial(node, ctx); + return; + case "PathExpression": + checkFieldReference(node, ctx); + return; + case "DecoratorBlock": + case "Decorator": + return; // `{{#*inline}}` etc. — deferred, see plan.md's `## Deferred` + default: + walkChildren(node, ctx); + } +} + +/* eslint-enable no-use-before-define */ + +/** + * Parses and walks one `.hbs` file under one registry and one schema + * scope, returning its diagnostics. When `demote` is set, registry-derived + * diagnostics are downgraded to `warning` — the empty-registry leg of EC5: + * a widget no template reaches is unfinished, not broken, and must not fail + * a commit that never touched it. + * + * `parse-error` is exempt from the demotion. Demotion expresses "this + * judgement was made without a registry, so do not trust it", but a file + * that will not parse cannot compile under any registry — plan.md's + * severity table calls it "Not a judgment call". Demoting it would let an + * uncompilable `.hbs` pass a commit. + * @param {string} absPath + * @param {{ helpers: Set, partials: Set }} registry + * @param {boolean} demote + * @param {Scope} scope + * @param {{ resolveFieldPath: Function, enterBlock: Function }} schemaEngine + */ +const walkFile = (absPath, registry, demote, scope, schemaEngine) => { + const parsed = parseTemplate(absPath); + const diagnostics = []; + + if (parsed.diagnostic) { + diagnostics.push(parsed.diagnostic); + } else { + walkTemplate(parsed.ast, { + file: absPath, + scope, + registry, + resolveFieldPath: schemaEngine.resolveFieldPath, + enterBlock: schemaEngine.enterBlock, + report: (diagnostic) => diagnostics.push(diagnostic), + }); + } + + return demote + ? diagnostics.map((d) => + d.rule === "parse-error" ? d : { ...d, severity: "warning" } + ) + : diagnostics; +}; + +/** + * A positional path selects a template when it is that template's own + * `template.hbs`/`index.ts`, or when it appears anywhere in that + * template's module graph — a widget import selects every template that + * reaches it, which is the correct blast radius for a pre-commit hook. + * @param {Array<{ templatePath: string, entry: string | null, registrations: { modules: Set } }>} templates + * @param {string[]} paths + */ +const selectTemplates = (templates, paths) => { + if (paths.length === 0) return { selected: templates, unmatched: [] }; + + const resolved = paths.map((p) => path.resolve(p)); + const selected = new Set(); + const unmatched = []; + + resolved.forEach((p) => { + const matches = templates.filter( + (t) => + t.templatePath === p || t.entry === p || t.registrations.modules.has(p) + ); + if (matches.length === 0) unmatched.push(p); + else matches.forEach((t) => selected.add(t)); + }); + + return { selected: templates.filter((t) => selected.has(t)), unmatched }; +}; + +/** Later occurrences of the same (file, line, column, rule) are dropped. */ +const dedupeDiagnostics = (diagnostics) => { + const seen = new Set(); + return diagnostics.filter((d) => { + const key = `${d.file}|${d.line}|${d.column}|${d.rule}`; + if (seen.has(key)) return false; + seen.add(key); + return true; + }); +}; + +/** Deterministic order for NF3: file, then line, then column. */ +const sortDiagnostics = (diagnostics) => + [...diagnostics].sort( + (a, b) => + a.file.localeCompare(b.file) || a.line - b.line || a.column - b.column + ); + +/** + * @param {string[]} argv + */ +const parseArgs = (argv) => { + const strict = argv.includes("--strict"); + const formatIndex = argv.indexOf("--format"); + const format = formatIndex === -1 ? "human" : argv[formatIndex + 1]; + const paths = argv.filter( + (arg, i) => + arg !== "--strict" && arg !== "--format" && argv[i - 1] !== "--format" + ); + return { strict, format, paths }; +}; + +const main = () => { + const { strict, format, paths } = parseArgs(process.argv.slice(2)); + + const { defs } = loadSchemas(repoRoot); + const schemaEngine = createSchemaEngine(defs); + // EC2: a widget partial's context comes from whatever helper rendered + // it, not any schema, so its root scope is always unknown. + const WIDGET_ROOT_SCOPE = { node: null, params: new Map(), parent: null }; + + const templates = discoverTemplates(repoRoot).map((template) => ({ + ...template, + registrations: template.entry + ? collectRegistrations(template.entry) + : EMPTY_REGISTRY, + rootContext: template.entry + ? rootDefinitionFor(template.entry) + : { definition: null, mapper: null }, + })); + + const missingEntryDiagnostics = templates + .filter((t) => t.entry === null) + .map((t) => ({ + file: t.templatePath, + line: 1, + column: 0, + severity: "error", + rule: "missing-entry", + message: `Template directory '${t.name}' has no index.ts entry file`, + })); + + // EC3: the mapper assignment matched, but the identifier is not in + // MAPPER_ROOTS — degrade to structural checks only, with one warning. + const rootContextDiagnostics = templates + .filter( + (t) => + t.entry !== null && + t.rootContext.mapper !== null && + t.rootContext.definition === null + ) + .map((t) => ({ + file: t.entry, + line: 1, + column: 0, + severity: "warning", + rule: "unknown-root-context", + message: `Template '${t.name}' assigns unrecognised data mapper '${t.rootContext.mapper}'; field validation skipped`, + })); + + const { selected, unmatched } = selectTemplates(templates, paths); + const templatesInScope = paths.length > 0 ? selected : templates; + + const unmatchedDiagnostics = unmatched.map((p) => ({ + file: p, + line: 1, + column: 0, + severity: "warning", + rule: "unmatched-path", + message: `Path did not match any template: ${path.relative(repoRoot, p)}`, + })); + + const rootScopeFor = (t) => ({ + node: t.rootContext.definition + ? defs[t.rootContext.definition] ?? null + : null, + params: new Map(), + parent: null, + }); + + // R1: every template is parsed, including one whose directory has no + // `index.ts`. Its body still has to be reported — a `template.hbs` that + // cannot compile is a parse error whether or not an entry file names its + // helpers. EC4 asks only that the missing entry be reported rather than + // crash the run; it does not license skipping the body. + // + // Such a template already carries EMPTY_REGISTRY, so its helper and + // partial calls resolve against nothing. Those diagnostics are demoted + // (the same reasoning as EC5's unreached widget: with no entry file we + // cannot see what was registered, so calling them errors would be a false + // positive on top of the `missing-entry` error the run already reports). + // `parse-error` survives the demotion — see `walkFile`. + const templateBodyDiagnostics = templatesInScope.flatMap((t) => + walkFile( + t.templatePath, + t.registrations, + t.entry === null, + rootScopeFor(t), + schemaEngine + ) + ); + + const widgetDiagnostics = discoverWidgetPartials(repoRoot).flatMap( + (hbsPath) => { + const reaching = templatesInScope.filter((t) => + t.registrations.modules.has(hbsPath) + ); + return reaching.length > 0 + ? dedupeDiagnostics( + reaching.flatMap((t) => + walkFile( + hbsPath, + t.registrations, + false, + WIDGET_ROOT_SCOPE, + schemaEngine + ) + ) + ) + : walkFile( + hbsPath, + EMPTY_REGISTRY, + true, + WIDGET_ROOT_SCOPE, + schemaEngine + ); + } + ); + + const diagnostics = sortDiagnostics( + dedupeDiagnostics([ + ...missingEntryDiagnostics, + ...rootContextDiagnostics, + ...templateBodyDiagnostics, + ...widgetDiagnostics, + ...unmatchedDiagnostics, + ]) + ).map((d) => + strict && d.rule === "unknown-field" ? { ...d, severity: "error" } : d + ); + + const output = diagnostics.map((d) => ({ + ...d, + file: path.relative(repoRoot, d.file).split(path.sep).join("/"), + })); + + if (format === "json") { + process.stdout.write(`${JSON.stringify(output, null, 2)}\n`); + } else { + output.forEach((d) => + process.stdout.write( + `${d.file}:${d.line}:${d.column} ${d.severity} ${d.message}\n` + ) + ); + } + + process.exit(diagnostics.some((d) => d.severity === "error") ? 1 : 0); +}; + +main(); diff --git a/tests/validate-templates.test.ts b/tests/validate-templates.test.ts new file mode 100644 index 0000000..670826b --- /dev/null +++ b/tests/validate-templates.test.ts @@ -0,0 +1,1150 @@ +import { execFileSync } from "node:child_process"; +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; + +const repoRoot = path.resolve(__dirname, ".."); +const scriptPath = path.join(repoRoot, "scripts", "validate-templates.mjs"); +const RUN_TIMEOUT_MS = 30_000; + +type Diagnostic = { + file: string; + line: number; + column: number; + severity: "error" | "warning"; + rule: string; + message: string; +}; + +type RunResult = { status: number; stdout: string; stderr: string }; + +type ExecError = { status?: number; stdout?: string; stderr?: string }; + +const isExecError = (value: unknown): value is ExecError => + typeof value === "object" && value !== null && "stdout" in value; + +/** + * Every scenario runs the built script as a subprocess: jest.config.cjs has + * no transform for `.mjs`, so this is the only boundary that can exercise + * it (see plan.md's `## Blockers in existing code`). + * @param cwd + * @param args + */ +const run = (cwd: string, args: string[] = []): RunResult => { + try { + const stdout = execFileSync( + "node", + [path.join(cwd, "scripts", "validate-templates.mjs"), ...args], + { + cwd, + encoding: "utf8", + timeout: RUN_TIMEOUT_MS, + } + ); + return { status: 0, stdout, stderr: "" }; + } catch (error: unknown) { + if (!isExecError(error)) throw error; + return { + status: typeof error.status === "number" ? error.status : 1, + stdout: error.stdout ?? "", + stderr: error.stderr ?? "", + }; + } +}; + +const runJson = (cwd: string, args: string[] = []) => { + const result = run(cwd, [...args, "--format", "json"]); + return { ...result, diagnostics: JSON.parse(result.stdout) as Diagnostic[] }; +}; + +type FixtureFiles = Record; + +const writeFixtureFiles = (dir: string, files: FixtureFiles): void => { + Object.entries(files).forEach(([relativePath, content]) => { + const full = path.join(dir, relativePath); + fs.mkdirSync(path.dirname(full), { recursive: true }); + fs.writeFileSync(full, content); + }); +}; + +/** + * Builds a self-contained fixture "repo": a copy of the built script under + * `scripts/`, plus whatever `src/templates`/`src/widgets` files the + * scenario needs. `repoRoot` inside the copied script is derived from its + * own location (see validate-templates.mjs), so running the copy here + * exercises the same resolution path a `ceres-example` port would (NF1). + * @param files + */ +const createFixtureRepo = (files: FixtureFiles): string => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), "ceres-validate-")); + fs.mkdirSync(path.join(dir, "scripts"), { recursive: true }); + fs.copyFileSync( + scriptPath, + path.join(dir, "scripts", "validate-templates.mjs") + ); + // Node's ESM resolver walks up from the script's own path looking for + // node_modules, ignoring NODE_PATH; a symlink is what lets the copied + // script resolve the already-installed `handlebars` devDependency, the + // same way a real `ceres-example` checkout's own node_modules would. + fs.symlinkSync( + path.join(repoRoot, "node_modules"), + path.join(dir, "node_modules"), + "dir" + ); + writeFixtureFiles(dir, files); + return dir; +}; + +const cleanup = (dir: string): void => + fs.rmSync(dir, { recursive: true, force: true }); + +const byRule = (diagnostics: Diagnostic[], rule: string) => + diagnostics.filter((d) => d.rule === rule); + +/** + * A fixture schema, not the committed one, so field-validation assertions + * don't move when the real contract changes (plan.md's Test Matrix, R4). + * `FlattenedInvoicePayload` is the validator's own hardcoded default root + * name (`rootDefinitionFor`'s no-mapper case) — reusing it here is what + * lets a fixture template with no `CeresTemplateDataMapper` assignment + * pick the fixture root up at all. + * @param definitions + */ +const fixtureSchema = (definitions: Record): string => + JSON.stringify({ + $schema: "http://json-schema.org/draft-07/schema#", + $id: "fixture://schema", + definitions, + }); + +describe("validate-templates.mjs", () => { + it("S1: every template and widget partial in the repository is read, deterministically", () => { + const dir = createFixtureRepo({ + "src/templates/alpha/index.ts": `export {};\n`, + "src/templates/alpha/template.hbs": `{{alphaOnlyHelper x}}\n`, + "src/templates/beta/index.ts": `export {};\n`, + "src/templates/beta/template.hbs": `{{betaOnlyHelper x}}\n`, + "src/widgets/gamma/index.ts": `export {};\n`, + "src/widgets/gamma/Gamma.hbs": `{{gammaOnlyHelper x}}\n`, + }); + try { + const first = runJson(dir); + const second = runJson(dir); + + expect( + first.diagnostics.some((d) => d.message.includes("alphaOnlyHelper")) + ).toBe(true); + expect( + first.diagnostics.some((d) => d.message.includes("betaOnlyHelper")) + ).toBe(true); + expect( + first.diagnostics.some((d) => d.message.includes("gammaOnlyHelper")) + ).toBe(true); + + // gamma is reached by no template, so its diagnostic is demoted (EC5). + const gammaDiagnostic = first.diagnostics.find((d) => + d.message.includes("gammaOnlyHelper") + ); + expect(gammaDiagnostic?.severity).toBe("warning"); + + expect(second.stdout).toBe(first.stdout); + } finally { + cleanup(dir); + } + }); + + it("S2: a template that cannot be parsed is reported at the line the parser names, and does not hide templates after it", () => { + const unclosed = "
\n
\n{{#if a}}\n

unclosed\n"; + const expectedLine = unclosed.split("\n").length; + const dir = createFixtureRepo({ + "src/templates/broken/index.ts": `export {};\n`, + "src/templates/broken/template.hbs": unclosed, + "src/templates/second/index.ts": `export {};\n`, + "src/templates/second/template.hbs": `{{unregisteredHelper x}}\n`, + }); + try { + const { diagnostics, status } = runJson(dir); + const parseError = diagnostics.find((d) => d.rule === "parse-error"); + + expect(parseError).toBeDefined(); + expect(parseError?.file).toContain("broken/template.hbs"); + expect(parseError?.line).toBe(expectedLine); + expect(parseError?.line).toBeGreaterThan(1); + + expect( + diagnostics.some((d) => d.message.includes("unregisteredHelper")) + ).toBe(true); + expect(status).toBe(1); + } finally { + cleanup(dir); + } + }); + + it("S3: an unregistered helper is reported; the same template is clean when the helper is registered", () => { + const widgetWithHelper = ` + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) HB.registerHelper("fixtureHelper", (x: any) => x); + export {}; + `; + const widgetWithoutHelper = `export {};\n`; + const files: FixtureFiles = { + "src/widgets/widget-a/index.ts": widgetWithHelper, + "src/templates/main/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + "src/templates/main/template.hbs": `{{fixtureHelper x}}\n`, + }; + const dir = createFixtureRepo(files); + try { + const clean = runJson(dir); + expect(byRule(clean.diagnostics, "unknown-helper")).toHaveLength(0); + expect(clean.status).toBe(0); + + writeFixtureFiles(dir, { + "src/widgets/widget-a/index.ts": widgetWithoutHelper, + }); + const broken = runJson(dir); + const helperDiagnostic = byRule(broken.diagnostics, "unknown-helper")[0]; + expect(helperDiagnostic?.message).toContain("fixtureHelper"); + expect(helperDiagnostic?.file).toContain("main/template.hbs"); + expect(broken.status).toBe(1); + } finally { + cleanup(dir); + } + }); + + it("S4: an unregistered partial is reported; the same template is clean when the partial is registered", () => { + const widgetWithPartial = ` + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) HB.registerPartial("FixturePartial", "fixture"); + export {}; + `; + const widgetWithoutPartial = `export {};\n`; + const dir = createFixtureRepo({ + "src/widgets/widget-a/index.ts": widgetWithPartial, + "src/templates/main/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + "src/templates/main/template.hbs": `{{> FixturePartial }}\n`, + }); + try { + const clean = runJson(dir); + expect(byRule(clean.diagnostics, "unknown-partial")).toHaveLength(0); + expect(clean.status).toBe(0); + + writeFixtureFiles(dir, { + "src/widgets/widget-a/index.ts": widgetWithoutPartial, + }); + const broken = runJson(dir); + const partialDiagnostic = byRule( + broken.diagnostics, + "unknown-partial" + )[0]; + expect(partialDiagnostic?.message).toContain("FixturePartial"); + expect(broken.status).toBe(1); + } finally { + cleanup(dir); + } + }); + + it("S5 (regression): a helper registered across a line break is recognised", () => { + const dir = createFixtureRepo({ + "src/widgets/widget-a/index.ts": ` + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) { + HB.registerHelper( + "fixtureMultiline", + function (x: any) { return x; } + ); + } + export {}; + `, + "src/templates/main/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + "src/templates/main/template.hbs": `{{fixtureMultiline x}}\n`, + }); + try { + const { diagnostics, status } = runJson(dir); + expect(byRule(diagnostics, "unknown-helper")).toHaveLength(0); + expect(status).toBe(0); + } finally { + cleanup(dir); + } + }); + + it("S6 (regression): a helper registered by the template's own index.ts is recognised", () => { + const dir = createFixtureRepo({ + "src/templates/main/index.ts": ` + function getHB() { return (window as any).Handlebars; } + const hb = getHB(); + if (hb) hb.registerHelper("localOnly", (x: any) => x); + export {}; + `, + "src/templates/main/template.hbs": `{{localOnly x}}\n`, + }); + try { + const { diagnostics, status } = runJson(dir); + expect(byRule(diagnostics, "unknown-helper")).toHaveLength(0); + expect(status).toBe(0); + } finally { + cleanup(dir); + } + }); + + it("S7 (regression): a helper reachable only through a transitive import is recognised", () => { + const dir = createFixtureRepo({ + "src/widgets/widget-a/index.ts": `import "../shared/registerFixtureHelper";\nexport {};\n`, + "src/widgets/shared/registerFixtureHelper.ts": ` + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) HB.registerHelper("deepHelper", (x: any) => x); + export {}; + `, + "src/templates/main/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + "src/templates/main/template.hbs": `{{deepHelper x}}\n`, + }); + try { + const resolved = runJson(dir); + expect(byRule(resolved.diagnostics, "unknown-helper")).toHaveLength(0); + expect(resolved.status).toBe(0); + + // Breaking the middle link proves resolution actually walked all 3 + // modules rather than only the entry file. + writeFixtureFiles(dir, { + "src/widgets/widget-a/index.ts": `export {};\n`, + }); + const broken = runJson(dir); + expect( + byRule(broken.diagnostics, "unknown-helper")[0]?.message + ).toContain("deepHelper"); + expect(broken.status).toBe(1); + } finally { + cleanup(dir); + } + }); + + it("S8: a partial named by a subexpression is left alone", () => { + const dir = createFixtureRepo({ + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{> (lookup . 'dynamicName') }}\n{{> MissingOne }}\n`, + }); + try { + const { diagnostics } = runJson(dir); + const partialDiagnostics = byRule(diagnostics, "unknown-partial"); + expect(partialDiagnostics).toHaveLength(1); + expect(partialDiagnostics[0]?.message).toContain("MissingOne"); + } finally { + cleanup(dir); + } + }); + + it("S9: built-in block helpers are never reported as unknown", () => { + const dir = createFixtureRepo({ + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": + `{{#if a}}x{{/if}}\n{{#unless a}}x{{/unless}}\n{{#each a}}x{{/each}}\n` + + `{{#with a}}x{{/with}}\n{{lookup a 0}}\n{{log a}}\n`, + }); + try { + const { diagnostics, status } = runJson(dir); + expect(byRule(diagnostics, "unknown-helper")).toHaveLength(0); + expect(status).toBe(0); + } finally { + cleanup(dir); + } + }); + + it("S10: a template directory with no index.ts is reported rather than crashing", () => { + const dir = createFixtureRepo({ + "src/templates/incomplete/template.hbs": `

no entry file
\n`, + "src/templates/complete/index.ts": `export {};\n`, + "src/templates/complete/template.hbs": `
fine
\n`, + }); + try { + const { diagnostics, status, stderr } = runJson(dir); + const missingEntry = byRule(diagnostics, "missing-entry"); + expect(missingEntry).toHaveLength(1); + expect(missingEntry[0]?.message).toContain("incomplete"); + expect(status).toBe(1); + expect(stderr).toBe(""); + } finally { + cleanup(dir); + } + }); + + it("S31: a template with no index.ts is still parsed, and its parse error survives the demotion", () => { + // R1 requires *every* template to be parsed. S10 only proves the + // missing-entry condition is reported; its fixture is syntactically + // valid, so it cannot catch a body that is skipped rather than walked. + // The unclosed block sits below line 1 for the same reason S2 does: a + // fixture erroring on line 1 passes against a `1:0` default. + const brokenBody = `line one\nline two\n{{#if a}}\nunclosed\n`; + // An unclosed block is a lexer error, so Handlebars names the line it + // reached EOF on rather than the one the block opened on. Computed from + // the fixture text (as S2 does), never typed in. + const expectedParseLine = brokenBody.split("\n").length; + const dir = createFixtureRepo({ + "src/templates/broken/template.hbs": brokenBody, + "src/templates/noentry/template.hbs": `{{someUnregisteredHelper x}}\n`, + }); + try { + const { diagnostics, status, stderr } = runJson(dir); + + // The body was actually walked, not skipped behind the entry filter. + const parseErrors = byRule(diagnostics, "parse-error"); + expect(parseErrors).toHaveLength(1); + expect(parseErrors[0]?.file).toContain("broken/template.hbs"); + expect(expectedParseLine).toBeGreaterThan(1); + expect(parseErrors[0]?.line).toBe(expectedParseLine); + + // parse-error is exempt from the empty-registry demotion: a file that + // will not compile is broken under any registry. + expect(parseErrors[0]?.severity).toBe("error"); + + // Registry-derived diagnostics ARE demoted — with no entry file we + // cannot see what was registered, so calling them errors would be a + // false positive stacked on the missing-entry error. + const helperDiagnostics = byRule(diagnostics, "unknown-helper"); + expect(helperDiagnostics).toHaveLength(1); + expect(helperDiagnostics[0]?.file).toContain("noentry/template.hbs"); + expect(helperDiagnostics[0]?.severity).toBe("warning"); + + expect(byRule(diagnostics, "missing-entry")).toHaveLength(2); + expect(status).toBe(1); + expect(stderr).toBe(""); + } finally { + cleanup(dir); + } + }); + + it("S11: every diagnostic carries file, line, column, severity, rule and message", () => { + const helperLine = `{{unknownHelperName x}}\n`; + const partialLine = `{{> UnknownPartialName }}\n`; + const templateSource = helperLine + partialLine; + const dir = createFixtureRepo({ + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": templateSource, + }); + try { + const { diagnostics } = runJson(dir); + expect(diagnostics.length).toBeGreaterThanOrEqual(2); + diagnostics.forEach((d) => { + expect(typeof d.file).toBe("string"); + expect(typeof d.line).toBe("number"); + expect(typeof d.column).toBe("number"); + expect(["error", "warning"]).toContain(d.severity); + expect(typeof d.rule).toBe("string"); + expect(typeof d.message).toBe("string"); + }); + + // Positions are computed from the fixture text rather than typed in: + // both diagnostics point at the name itself, past the opening braces. + const helperDiagnostic = byRule(diagnostics, "unknown-helper")[0]; + expect(helperDiagnostic?.line).toBe(1); + expect(helperDiagnostic?.column).toBe( + helperLine.indexOf("unknownHelperName") + ); + + const partialDiagnostic = byRule(diagnostics, "unknown-partial")[0]; + expect(partialDiagnostic?.line).toBe(2); + expect(partialDiagnostic?.column).toBe( + partialLine.indexOf("UnknownPartialName") + ); + } finally { + cleanup(dir); + } + }); + + it("S12: the exit code follows error-severity diagnostics only", () => { + const cleanDir = createFixtureRepo({ + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `
{{#if a}}ok{{/if}}
\n`, + }); + const brokenDir = createFixtureRepo({ + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{unregisteredHelper x}}\n`, + }); + try { + const clean = runJson(cleanDir); + expect(clean.status).toBe(0); + expect(clean.diagnostics).toHaveLength(0); + + const broken = runJson(brokenDir); + expect(broken.status).toBe(1); + } finally { + cleanup(cleanDir); + cleanup(brokenDir); + } + }); + + it("S26: positional paths narrow the run to the templates they affect", () => { + const dir = createFixtureRepo({ + "src/widgets/widget-a/index.ts": `export {};\n`, + "src/templates/first/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + "src/templates/first/template.hbs": `{{helperOne x}}\n`, + "src/templates/second/index.ts": `export {};\n`, + "src/templates/second/template.hbs": `{{helperTwo x}}\n`, + }); + try { + const all = runJson(dir); + expect(all.diagnostics.some((d) => d.message.includes("helperOne"))).toBe( + true + ); + expect(all.diagnostics.some((d) => d.message.includes("helperTwo"))).toBe( + true + ); + + const firstOnly = runJson(dir, [ + path.join(dir, "src/templates/first/template.hbs"), + ]); + expect( + firstOnly.diagnostics.some((d) => d.message.includes("helperOne")) + ).toBe(true); + expect( + firstOnly.diagnostics.some((d) => d.message.includes("helperTwo")) + ).toBe(false); + + const viaWidget = runJson(dir, [ + path.join(dir, "src/widgets/widget-a/index.ts"), + ]); + expect( + viaWidget.diagnostics.some((d) => d.message.includes("helperOne")) + ).toBe(true); + expect( + viaWidget.diagnostics.some((d) => d.message.includes("helperTwo")) + ).toBe(false); + + const unmatchedPath = path.join(dir, "src/nowhere.ts"); + fs.mkdirSync(path.dirname(unmatchedPath), { recursive: true }); + fs.writeFileSync(unmatchedPath, ""); + const noMatch = runJson(dir, [unmatchedPath]); + expect(byRule(noMatch.diagnostics, "unmatched-path")).toHaveLength(1); + expect(noMatch.diagnostics.every((d) => d.severity !== "error")).toBe( + true + ); + expect(noMatch.status).toBe(0); + } finally { + cleanup(dir); + } + }); + + it("S27 (regression): a widget partial resolves a helper registered by a sibling widget", () => { + const dir = createFixtureRepo({ + "src/widgets/widget-a/index.ts": `import template from "./A.hbs";\nexport {};\n`, + "src/widgets/widget-a/A.hbs": `{{siblingHelper x}}\n`, + "src/widgets/widget-b/index.ts": ` + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) HB.registerHelper("siblingHelper", (x: any) => x); + export {}; + `, + "src/templates/main/index.ts": `import "../../widgets/widget-a";\nimport "../../widgets/widget-b";\nexport {};\n`, + "src/templates/main/template.hbs": `
\n`, + }); + try { + const clean = runJson(dir); + expect(byRule(clean.diagnostics, "unknown-helper")).toHaveLength(0); + expect(clean.status).toBe(0); + + writeFixtureFiles(dir, { + "src/templates/main/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + }); + const broken = runJson(dir); + const helperDiagnostic = byRule(broken.diagnostics, "unknown-helper")[0]; + expect(helperDiagnostic?.message).toContain("siblingHelper"); + expect(helperDiagnostic?.file).toContain("widget-a/A.hbs"); + } finally { + cleanup(dir); + } + }); + + it("S28 (regression): a helper passed as a partial's context is checked", () => { + const widgetSource = ` + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) HB.registerPartial("FixturePartial", "fixture"); + export {}; + `; + const dir = createFixtureRepo({ + "src/widgets/widget-a/index.ts": widgetSource, + "src/templates/main/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + "src/templates/main/template.hbs": `{{> FixturePartial (fixtureHelper x) }}\n`, + }); + try { + const { diagnostics } = runJson(dir); + const helperDiagnostics = byRule(diagnostics, "unknown-helper"); + expect(helperDiagnostics).toHaveLength(1); + expect(helperDiagnostics[0]?.message).toContain("fixtureHelper"); + expect(helperDiagnostics[0]?.line).toBe(1); + expect(helperDiagnostics[0]?.column).toBeGreaterThan(0); + expect(byRule(diagnostics, "unknown-partial")).toHaveLength(0); + + writeFixtureFiles(dir, { + "src/widgets/widget-a/index.ts": ` + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) { + HB.registerPartial("FixturePartial", "fixture"); + HB.registerHelper("fixtureHelper", (x: any) => x); + } + export {}; + `, + }); + const clean = runJson(dir); + expect(byRule(clean.diagnostics, "unknown-helper")).toHaveLength(0); + expect(clean.status).toBe(0); + } finally { + cleanup(dir); + } + }); + + it("S29: staging a widget .hbs selects the templates that render it", () => { + const dir = createFixtureRepo({ + "src/widgets/widget-a/index.ts": `import template from "./A.hbs";\nexport {};\n`, + "src/widgets/widget-a/A.hbs": `{{unregisteredInA x}}\n`, + "src/widgets/widget-c/index.ts": `import template from "./C.hbs";\nexport {};\n`, + "src/widgets/widget-c/C.hbs": `{{orphanHelper x}}\n`, + "src/templates/first/index.ts": `import "../../widgets/widget-a";\nexport {};\n`, + "src/templates/first/template.hbs": `
\n`, + "src/templates/second/index.ts": `export {};\n`, + "src/templates/second/template.hbs": `{{helperTwo x}}\n`, + }); + try { + const run1 = runJson(dir, [path.join(dir, "src/widgets/widget-a/A.hbs")]); + expect( + run1.diagnostics.some((d) => d.message.includes("unregisteredInA")) + ).toBe(true); + expect( + run1.diagnostics.some((d) => d.message.includes("helperTwo")) + ).toBe(false); + expect(run1.status).toBe(1); + + const run2 = runJson(dir, [path.join(dir, "src/widgets/widget-c/C.hbs")]); + expect(byRule(run2.diagnostics, "unmatched-path")).toHaveLength(1); + expect(run2.diagnostics.every((d) => d.severity !== "error")).toBe(true); + expect(run2.status).toBe(0); + } finally { + cleanup(dir); + } + }); + + it("S13: a field the contract does not declare is reported at the position it appears", () => { + const line1 = "{{invoiceNumbr}}\n"; + const line2 = "{{invoiceNumber}}\n"; + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { + type: "object", + properties: { invoiceNumber: { type: "string" } }, + }, + }), + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": line1 + line2, + }); + try { + const { diagnostics } = runJson(dir); + const fieldDiagnostics = byRule(diagnostics, "unknown-field"); + expect(fieldDiagnostics).toHaveLength(1); + expect(fieldDiagnostics[0]?.message).toContain("invoiceNumbr"); + expect(fieldDiagnostics[0]?.line).toBe(1); + expect(fieldDiagnostics[0]?.column).toBe(line1.indexOf("invoiceNumbr")); + } finally { + cleanup(dir); + } + }); + + it("S14: unknown-field is a warning by default and an error under --strict", () => { + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { + type: "object", + properties: { invoiceNumber: { type: "string" } }, + }, + }), + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{invoiceNumbr}}\n`, + }); + try { + const loose = runJson(dir); + const looseField = byRule(loose.diagnostics, "unknown-field")[0]; + expect(looseField?.severity).toBe("warning"); + expect(loose.status).toBe(0); + + const strict = runJson(dir, ["--strict"]); + const strictField = byRule(strict.diagnostics, "unknown-field")[0]; + expect(strictField?.severity).toBe("error"); + expect(strict.status).toBe(1); + + expect(strictField?.file).toBe(looseField?.file); + expect(strictField?.line).toBe(looseField?.line); + expect(strictField?.column).toBe(looseField?.column); + expect(strictField?.message).toBe(looseField?.message); + } finally { + cleanup(dir); + } + }); + + it("S15: the same leaf name resolves differently inside #each than at the root", () => { + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { + type: "object", + properties: { + name: { type: "string" }, + items: { type: "array", items: { $ref: "#/definitions/Item" } }, + }, + }, + Item: { + type: "object", + properties: { title: { type: "string" } }, + }, + }), + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{name}}\n{{#each items}}{{title}}{{name}}{{/each}}\n`, + }); + try { + const { diagnostics } = runJson(dir); + const fieldDiagnostics = byRule(diagnostics, "unknown-field"); + expect(fieldDiagnostics).toHaveLength(1); + expect(fieldDiagnostics[0]?.message).toContain("name"); + expect(fieldDiagnostics[0]?.line).toBe(2); + } finally { + cleanup(dir); + } + }); + + it("S16: ../ resolves to the enclosing context, and past a non-context block", () => { + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { + type: "object", + properties: { + ownerOffset: { type: "number" }, + items: { type: "array", items: { $ref: "#/definitions/Item" } }, + }, + }, + Item: { + type: "object", + properties: { flag: { type: "boolean" } }, + }, + }), + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": + `{{#each items}}\n` + + ` {{#if flag}}{{../ownerOffset}}{{../../nothingHere}}{{/if}}\n` + + `{{/each}}\n`, + }); + try { + const { diagnostics } = runJson(dir); + const fieldDiagnostics = byRule(diagnostics, "unknown-field"); + expect(fieldDiagnostics).toHaveLength(0); + } finally { + cleanup(dir); + } + }); + + it("S17: a block parameter is resolved against the node it is bound to", () => { + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { + type: "object", + properties: { billedBy: { $ref: "#/definitions/BilledBy" } }, + }, + BilledBy: { + type: "object", + properties: { name: { type: "string" } }, + }, + }), + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{#with billedBy as |b|}}{{b.name}}{{b.nmae}}{{@index}}{{this}}{{/with}}\n`, + }); + try { + const { diagnostics } = runJson(dir); + const fieldDiagnostics = byRule(diagnostics, "unknown-field"); + expect(fieldDiagnostics).toHaveLength(1); + expect(fieldDiagnostics[0]?.message).toContain("nmae"); + } finally { + cleanup(dir); + } + }); + + it("S18: a scope produced by a helper suppresses field validation inside it (EC2)", () => { + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { type: "object", properties: {} }, + }), + "src/widgets/status-widget/index.ts": ` + import template from "./Status.hbs"; + function getHB() { return (window as any).Handlebars; } + const HB = getHB(); + if (HB) HB.registerHelper("computeFixtureThing", (x: any) => x); + export {}; + `, + "src/widgets/status-widget/Status.hbs": + `{{#with (computeFixtureThing this) as |ctx|}}\n` + + ` {{#each ctx.tags}}{{finalClass}}{{text}}{{/each}}\n` + + `{{/with}}\n` + + `{{missingHelperHere x}}\n`, + "src/templates/main/index.ts": `import "../../widgets/status-widget";\nexport {};\n`, + "src/templates/main/template.hbs": `
\n`, + }); + try { + const { diagnostics } = runJson(dir); + expect(byRule(diagnostics, "unknown-field")).toHaveLength(0); + const helperDiagnostics = byRule(diagnostics, "unknown-helper"); + expect(helperDiagnostics).toHaveLength(1); + expect(helperDiagnostics[0]?.message).toContain("missingHelperHere"); + } finally { + cleanup(dir); + } + }); + + it("S19: a template whose data mapper is unrecognised degrades to structural checks (EC3)", () => { + const cleanDir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { type: "object", properties: {} }, + }), + "src/templates/main/index.ts": `window.CeresTemplateDataMapper = someUnknownMapper;\nexport {};\n`, + "src/templates/main/template.hbs": `{{anyFieldAtAll}}\n`, + }); + const brokenDir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { type: "object", properties: {} }, + }), + "src/templates/main/index.ts": `window.CeresTemplateDataMapper = someUnknownMapper;\nexport {};\n`, + "src/templates/main/template.hbs": `{{unregisteredHelperXYZ x}}\n`, + }); + try { + const clean = runJson(cleanDir); + const rootContextDiagnostics = byRule( + clean.diagnostics, + "unknown-root-context" + ); + expect(rootContextDiagnostics).toHaveLength(1); + expect(rootContextDiagnostics[0]?.message).toContain("someUnknownMapper"); + expect(byRule(clean.diagnostics, "unknown-field")).toHaveLength(0); + expect(clean.status).toBe(0); + + const broken = runJson(brokenDir); + expect(byRule(broken.diagnostics, "unknown-root-context")).toHaveLength( + 1 + ); + const helperDiagnostics = byRule(broken.diagnostics, "unknown-helper"); + expect(helperDiagnostics).toHaveLength(1); + expect(helperDiagnostics[0]?.message).toContain("unregisteredHelperXYZ"); + } finally { + cleanup(cleanDir); + cleanup(brokenDir); + } + }); + + it("S22: a template using the wrapped root validates against the normalized contract", () => { + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + NormalizedInvoiceTemplateState: { + type: "object", + properties: { + invoice: { $ref: "#/definitions/InvoiceX" }, + mapped: { $ref: "#/definitions/MappedX" }, + }, + }, + InvoiceX: { + type: "object", + properties: { invoiceNumber: { type: "string" } }, + }, + MappedX: { + type: "object", + properties: { + qr: { + type: "object", + properties: { top: { type: "string" } }, + }, + }, + }, + }), + "src/templates/main/index.ts": `window.CeresTemplateDataMapper = normalizeInvoiceTemplateState;\nexport {};\n`, + "src/templates/main/template.hbs": `{{invoice.invoiceNumber}}\n{{mapped.qr.top}}\n{{invoiceNumber}}\n`, + }); + try { + const { diagnostics } = runJson(dir); + const fieldDiagnostics = byRule(diagnostics, "unknown-field"); + expect(fieldDiagnostics).toHaveLength(1); + expect(fieldDiagnostics[0]?.message).toContain("invoiceNumber"); + expect(fieldDiagnostics[0]?.line).toBe(3); + expect(byRule(diagnostics, "unknown-root-context")).toHaveLength(0); + } finally { + cleanup(dir); + } + }); + + it("S23: a path that runs into an untyped region is skipped rather than guessed at", () => { + const dir = createFixtureRepo({ + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { + type: "object", + properties: { finalTotal: { type: "object" } }, + }, + }), + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{finalTotal.anythingAtAll}}\n{{noSuchRootField.x}}\n`, + }); + try { + const { diagnostics } = runJson(dir); + const fieldDiagnostics = byRule(diagnostics, "unknown-field"); + expect(fieldDiagnostics).toHaveLength(1); + expect(fieldDiagnostics[0]?.message).toContain("noSuchRootField"); + } finally { + cleanup(dir); + } + }); + + it("S24: no package dependency is added", () => { + const showAtOrigin = (relativePath: string): string => + execFileSync("git", ["show", `origin/master:${relativePath}`], { + cwd: repoRoot, + encoding: "utf8", + }); + + const originalPackageJson = JSON.parse(showAtOrigin("package.json")); + const currentPackageJson = JSON.parse( + fs.readFileSync(path.join(repoRoot, "package.json"), "utf8") + ); + + const expectedPackageJson = JSON.parse(JSON.stringify(originalPackageJson)); + expectedPackageJson.scripts["validate:templates"] = + "node scripts/validate-templates.mjs"; + expectedPackageJson["lint-staged"] = { + ...expectedPackageJson["lint-staged"], + "src/{templates,widgets}/**/*.{hbs,ts}": [ + "npm run validate:templates --", + ], + }; + expect(currentPackageJson).toEqual(expectedPackageJson); + + const originalLockfile = showAtOrigin("package-lock.json"); + const currentLockfile = fs.readFileSync( + path.join(repoRoot, "package-lock.json"), + "utf8" + ); + expect(currentLockfile).toBe(originalLockfile); + }); + + it("S25: committing a template with an unregistered helper is blocked", () => { + const dir = createFixtureRepo({ + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{misspelledHelper x}}\n`, + }); + try { + // Simulates what `lint-staged`'s "src/{templates,widgets}/**/*.{hbs,ts}" + // entry forwards: `npm run validate:templates -- `. + const { diagnostics, status } = runJson(dir, [ + path.join(dir, "src/templates/main/template.hbs"), + ]); + const helperDiagnostics = byRule(diagnostics, "unknown-helper"); + expect(helperDiagnostics).toHaveLength(1); + expect(helperDiagnostics[0]?.file).toContain("main/template.hbs"); + expect(helperDiagnostics[0]?.line).toBe(1); + expect(helperDiagnostics[0]?.message).toContain("misspelledHelper"); + expect(status).toBe(1); + } finally { + cleanup(dir); + } + }); + + it("S30 (regression): --strict promotes undeclared fields and nothing else", () => { + const withField = { + "schemas/fixture.schema.json": fixtureSchema({ + FlattenedInvoicePayload: { + type: "object", + properties: { known: { type: "string" } }, + }, + }), + "src/templates/main/index.ts": `export {};\n`, + "src/templates/main/template.hbs": `{{known}}\n{{undeclaredField}}\n`, + "src/widgets/orphan/index.ts": `import template from "./Orphan.hbs";\nexport {};\n`, + "src/widgets/orphan/Orphan.hbs": `{{orphanHelperCall x}}\n`, + }; + const dir = createFixtureRepo(withField); + try { + const unmatchedPath = path.join(dir, "src/nowhere.ts"); + fs.mkdirSync(path.dirname(unmatchedPath), { recursive: true }); + fs.writeFileSync(unmatchedPath, ""); + const args = [ + path.join(dir, "src/templates/main/template.hbs"), + unmatchedPath, + ]; + + const run1 = runJson(dir, args); + expect(byRule(run1.diagnostics, "unknown-field")).toHaveLength(1); + expect(byRule(run1.diagnostics, "unmatched-path")).toHaveLength(1); + const demotedHelper1 = byRule(run1.diagnostics, "unknown-helper"); + expect(demotedHelper1).toHaveLength(1); + expect(run1.diagnostics.every((d) => d.severity !== "error")).toBe(true); + expect(run1.status).toBe(0); + + const run2 = runJson(dir, [...args, "--strict"]); + const strictField = byRule(run2.diagnostics, "unknown-field")[0]; + expect(strictField?.severity).toBe("error"); + const unmatchedStrict = byRule(run2.diagnostics, "unmatched-path")[0]; + expect(unmatchedStrict?.severity).toBe("warning"); + const demotedHelperStrict = byRule(run2.diagnostics, "unknown-helper")[0]; + expect(demotedHelperStrict?.severity).toBe("warning"); + expect(run2.status).toBe(1); + + writeFixtureFiles(dir, { + "src/templates/main/template.hbs": `{{known}}\n`, + }); + const run3 = runJson(dir, [...args, "--strict"]); + expect(byRule(run3.diagnostics, "unknown-field")).toHaveLength(0); + expect(byRule(run3.diagnostics, "unmatched-path")).toHaveLength(1); + expect(byRule(run3.diagnostics, "unknown-helper")).toHaveLength(1); + expect(run3.diagnostics.every((d) => d.severity !== "error")).toBe(true); + expect(run3.status).toBe(0); + } finally { + cleanup(dir); + } + }); +}); + +/** + * A dotted-path mustache with no arguments and no `#`, `/`, `>`, `!`, `{` or + * `&` sigil — the dot is what makes this unambiguously a field reference + * rather than a zero-argument helper call (a bare `{{formatDate}}` would + * match `{{ ident }}` and produce `unknown-helper`, testing the wrong rule). + * Captures the full mustache text (group 0) alongside the dotted path + * (group 1) so a mutation can be spliced back in at the exact match + * position, whitespace and all, rather than a blind string replace that + * could hit an earlier occurrence of the same path. + */ +const DOTTED_FIELD_PATTERN = + /\{\{\s*([A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z0-9_]+)+)\s*\}\}/g; + +type AcceptanceTarget = { + templatePath: string; + original: string; + mutated: string; + typo: string; +}; + +/** + * Finds a `template.hbs` field reference to mutate into a typo, by + * confirmation rather than by shape: a candidate is accepted only once + * mutating it and running the validator actually yields an `unknown-field` + * diagnostic naming the typo. Trying the first dotted path and stopping + * there would be wrong the moment that path sits inside an EC2-suppressed + * scope (e.g. `{{#with (helper ...)}}`) — there the diagnostic never + * appears, and taking the first candidate on faith would produce a test + * that silently asserts an empty set. See plan.md's `## Implementation` + * step 1 and its "Trap". + * @param fromRoot + */ +const discoverAcceptanceTarget = (fromRoot: string): AcceptanceTarget => { + const templatesDir = path.join(fromRoot, "src/templates"); + const templatePaths = fs + .readdirSync(templatesDir) + .filter((name) => fs.statSync(path.join(templatesDir, name)).isDirectory()) + .sort() + .map((name) => path.join(templatesDir, name, "template.hbs")) + .filter((candidatePath) => fs.existsSync(candidatePath)); + + const searched: string[] = []; + + // eslint-disable-next-line no-restricted-syntax + for (const templatePath of templatePaths) { + const original = fs.readFileSync(templatePath, "utf8"); + const matches = Array.from(original.matchAll(DOTTED_FIELD_PATTERN)); + + // eslint-disable-next-line no-restricted-syntax + for (const match of matches) { + const fieldPath = match[1] as string; + const segments = fieldPath.split("."); + const lastIndex = segments.length - 1; + const typo = `${segments[lastIndex]}X`; + const mutatedPath = [...segments.slice(0, lastIndex), typo].join("."); + searched.push(`${templatePath}:${fieldPath}`); + + const matchStart = match.index as number; + const matchEnd = matchStart + match[0].length; + const mutatedMatch = match[0].replace(fieldPath, mutatedPath); + const mutated = + original.slice(0, matchStart) + mutatedMatch + original.slice(matchEnd); + + fs.writeFileSync(templatePath, mutated); + try { + const { diagnostics } = runJson(fromRoot, ["--strict"]); + const confirmed = diagnostics.find( + (d) => d.rule === "unknown-field" && d.message.includes(typo) + ); + if (confirmed) { + return { templatePath, original, mutated, typo }; + } + } finally { + fs.writeFileSync(templatePath, original); + } + } + } + + throw new Error( + `discoverAcceptanceTarget: no dotted field reference in any template.hbs ` + + `yielded a confirmed unknown-field diagnostic when typo'd. Searched: ` + + `${searched.length === 0 ? "(no candidates found)" : searched.join(", ")}` + ); +}; + +describe("validate-templates.mjs — acceptance (S32/S32b, real repository)", () => { + it("S32: the acceptance test finds its own mutation target rather than naming one", () => { + const target = discoverAcceptanceTarget(repoRoot); + try { + expect(fs.existsSync(target.templatePath)).toBe(true); + expect( + target.templatePath.startsWith(path.join(repoRoot, "src/templates")) + ).toBe(true); + expect(target.mutated).not.toBe(target.original); + + fs.writeFileSync(target.templatePath, target.mutated); + const { diagnostics } = runJson(repoRoot, ["--strict"]); + const typoDiagnostic = diagnostics.find( + (d) => d.rule === "unknown-field" && d.message.includes(target.typo) + ); + expect(typoDiagnostic).toBeDefined(); + expect(typoDiagnostic?.file).toBe( + path.relative(repoRoot, target.templatePath) + ); + } finally { + fs.writeFileSync(target.templatePath, target.original); + } + + expect(fs.readFileSync(target.templatePath, "utf8")).toBe(target.original); + }); + + it("S32b (regression): S20 still proves what it proved before — clean repo, single-typo break, restore", () => { + const { templatePath, original, mutated, typo } = + discoverAcceptanceTarget(repoRoot); + + try { + const first = runJson(repoRoot); + expect( + first.diagnostics.filter((d) => d.severity === "error") + ).toHaveLength(0); + expect(first.status).toBe(0); + + fs.writeFileSync(templatePath, mutated); + + const second = runJson(repoRoot, ["--strict"]); + expect(second.status).toBe(1); + const typoDiagnostic = second.diagnostics.find((d) => + d.message.includes(typo) + ); + expect(typoDiagnostic).toBeDefined(); + expect(typoDiagnostic?.file).toBe(path.relative(repoRoot, templatePath)); + expect(typoDiagnostic?.severity).toBe("error"); + + fs.writeFileSync(templatePath, original); + const third = runJson(repoRoot); + expect( + third.diagnostics.filter((d) => d.severity === "error") + ).toHaveLength(0); + expect(third.status).toBe(0); + } finally { + fs.writeFileSync(templatePath, original); + } + }); +});