From 3c4e47b242cca2dfe77be3cc1d03281a87d6b8b0 Mon Sep 17 00:00:00 2001 From: Kim T Date: Thu, 2 May 2024 22:41:36 -0700 Subject: [PATCH 01/10] New boilerplate --- .eslintrc.json | 27 + .github/workflows/test.yml | 2 +- .gitignore | 33 +- .prettierrc | 11 +- __tests__/main.test.ts | 42 + jest.config.js | 18 + package-lock.json | 6024 +++++++++++++++++++++++++++++------- package.json | 50 +- src/audio/surge.flac | Bin 141339 -> 0 bytes src/image/surge.jpg | Bin 159518 -> 0 bytes src/index.ts | 61 - src/main.ts | 36 + src/registry.json | 55 - src/sources/github.ts | 125 - src/sources/owlplug.ts | 86 - tsconfig.json | 26 +- tsconfig.release.json | 8 + tslint.json | 9 - 18 files changed, 5067 insertions(+), 1546 deletions(-) create mode 100644 .eslintrc.json create mode 100644 __tests__/main.test.ts create mode 100644 jest.config.js delete mode 100644 src/audio/surge.flac delete mode 100644 src/image/surge.jpg delete mode 100644 src/index.ts create mode 100644 src/main.ts delete mode 100644 src/registry.json delete mode 100644 src/sources/github.ts delete mode 100644 src/sources/owlplug.ts create mode 100644 tsconfig.release.json delete mode 100644 tslint.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..a7a3f42 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,27 @@ +{ + "env": { + "browser": false, + "es6": true, + "node": true + }, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module", + "ecmaVersion": 2020 + }, + "plugins": ["@typescript-eslint", "jest"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:jest/recommended", + "prettier" + ], + "rules": { + // The following rule is enabled only to supplement the inline suppression + // examples, and because it is not a recommended rule, you should either + // disable it, or understand what it enforces. + // https://typescript-eslint.io/rules/explicit-function-return-type/ + "@typescript-eslint/explicit-function-return-type": "warn" + } +} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 422da8b..79bac12 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: - name: Test run: | - npm run test + npm test - name: Build run: | diff --git a/.gitignore b/.gitignore index 58e80a3..08b35db 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,29 @@ -.DS_Store -dist -node_modules -out +# Logs +logs +*.log +npm-debug.log* + +# Dependencies +node_modules/ + +# Coverage +coverage + +# Transpiled files +build/ + +# VS Code +.vscode +!.vscode/tasks.js + +# JetBrains IDEs +.idea/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Misc +.DS_Store \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index 1ba0e78..4c4a30c 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,12 @@ { - "printWidth": 120, "singleQuote": true, - "semi": true + "trailingComma": "all", + "overrides": [ + { + "files": ["*.ts", "*.mts"], + "options": { + "parser": "typescript" + } + } + ] } diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts new file mode 100644 index 0000000..9aaca6e --- /dev/null +++ b/__tests__/main.test.ts @@ -0,0 +1,42 @@ +import { Delays, greeter } from '../src/main.js'; + +describe('greeter function', () => { + const name = 'John'; + let hello: string; + + let timeoutSpy: jest.SpyInstance; + + // Act before assertions + beforeAll(async () => { + // Read more about fake timers + // http://facebook.github.io/jest/docs/en/timer-mocks.html#content + // Jest 27 now uses "modern" implementation of fake timers + // https://jestjs.io/blog/2021/05/25/jest-27#flipping-defaults + // https://github.com/facebook/jest/pull/5171 + jest.useFakeTimers(); + timeoutSpy = jest.spyOn(global, 'setTimeout'); + + const p: Promise = greeter(name); + jest.runOnlyPendingTimers(); + hello = await p; + }); + + // Teardown (cleanup) after assertions + afterAll(() => { + timeoutSpy.mockRestore(); + }); + + // Assert if setTimeout was called properly + it('delays the greeting by 2 seconds', () => { + expect(setTimeout).toHaveBeenCalledTimes(1); + expect(setTimeout).toHaveBeenLastCalledWith( + expect.any(Function), + Delays.Long, + ); + }); + + // Assert greeter result + it('greets a user with `Hello, {name}` message', () => { + expect(hello).toBe(`Hello, ${name}`); + }); +}); diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..10696f4 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,18 @@ +export default { + testEnvironment: 'node', + preset: 'ts-jest/presets/default-esm', + transform: { + '^.+\\.m?[tj]s?$': ['ts-jest', { useESM: true }], + }, + moduleNameMapper: { + '^(\\.{1,2}/.*)\\.(m)?js$': '$1', + }, + testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(m)?ts$', + coverageDirectory: 'coverage', + collectCoverageFrom: [ + 'src/**/*.ts', + 'src/**/*.mts', + '!src/**/*.d.ts', + '!src/**/*.d.mts', + ], +}; diff --git a/package-lock.json b/package-lock.json index 7a9d1b4..f666cba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,261 +1,321 @@ { "name": "studiorack-registry", - "version": "0.0.1", - "lockfileVersion": 2, + "version": "1.0.0", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "studiorack-registry", - "version": "0.0.1", - "license": "ISC", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@types/jest": "~29.5", + "@types/node": "~20", + "@typescript-eslint/eslint-plugin": "~7.6", + "@typescript-eslint/parser": "~7.6", + "eslint": "~8.56", + "eslint-config-prettier": "~9.1", + "eslint-plugin-jest": "~28.2", + "jest": "~29.7", + "prettier": "~3.2", + "rimraf": "~5.0", + "ts-jest": "~29.1", + "typescript": "~5.4" + }, + "engines": { + "node": ">= 20.9 < 21" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, "dependencies": { - "@studiorack/core": "^1.2.5", - "@types/semver": "^7.3.13", - "graphql-request": "^5.1.0", - "node-fetch": "^2.6.7", - "semver": "^7.3.8" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, - "devDependencies": { - "@types/node": "^18.11.18", - "@types/node-fetch": "^2.6.2", - "prettier": "^2.8.1", - "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "typescript": "^4.9.4" + "engines": { + "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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, + "bin": { + "semver": "bin/semver.js" } }, - "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/@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@babel/helper-compilation-targets/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, - "engines": { - "node": ">=6.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "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/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@studiorack/core": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.5.tgz", - "integrity": "sha512-9UmdwYWPYN+dNentoWymG6zDrpNB88n1ZxbY/AdmWNGC7bcD0pLwuBNtNJ8oYyfcgtWk2lHfLBh3OE743YM7ew==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, "dependencies": { - "@vscode/sudo-prompt": "^9.3.1", - "adm-zip": "^0.4.16", - "fs-extra": "^10.1.0", - "glob": "^7.1.6", - "node-fetch": "^2.6.1", - "nodejs-fs-utils": "^1.2.5", - "readline-sync": "^1.4.10", - "semver": "^7.3.4", - "slugify": "^1.4.6" + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "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.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", - "dev": true - }, - "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" - }, - "node_modules/@vscode/sudo-prompt": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz", - "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==" - }, - "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=0.4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">=6.9.0" } }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, "engines": { - "node": ">=0.3.0" + "node": ">=6.9.0" } }, - "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/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=4" + "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/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "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/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.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==" + "node_modules/@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "node_modules/@babel/highlight/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, + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/chalk": { + "node_modules/@babel/highlight/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==", @@ -269,7 +329,7 @@ "node": ">=4" } }, - "node_modules/color-convert": { + "node_modules/@babel/highlight/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==", @@ -278,299 +338,357 @@ "color-name": "1.1.3" } }, - "node_modules/color-name": { + "node_modules/@babel/highlight/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/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "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 - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "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/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/@babel/highlight/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, "engines": { - "node": ">=0.4.0" + "node": ">=0.8.0" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/@babel/highlight/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, "engines": { - "node": ">=0.3.1" + "node": ">=4" } }, - "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/@babel/highlight/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, + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=4" } }, - "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/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", "dev": true, "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "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, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==" + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.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==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, "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/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": "*" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/graphql-request": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.1.0.tgz", - "integrity": "sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "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, "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-fetch": "^3.1.5", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "graphql": "14 - 16" + "@babel/core": "^7.0.0-0" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "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, "dependencies": { - "function-bind": "^1.1.1" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">= 0.4.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "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, - "engines": { - "node": ">=4" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "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, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "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, "dependencies": { - "has": "^1.0.3" + "@babel/helper-plugin-utils": "^7.14.5" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "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==", + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, "dependencies": { - "universalify": "^2.0.0" + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=6.9.0" } }, - "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==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" } }, - "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==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "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/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "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/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, "dependencies": { - "mime-db": "1.52.0" + "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": ">= 0.6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/minimatch": { + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/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, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -578,1032 +696,4592 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "minimist": "^1.2.6" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=10.10.0" } }, - "node_modules/module-require": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/module-require/-/module-require-1.4.5.tgz", - "integrity": "sha512-ksEXPs62btutKsbJKph7rLhdu7A6JIIHXTqvr3uhOP1mViI8JeHkNzYHJnVlHVCaRCuHa7XMBnKmxc23YZGl6Q==" + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/@humanwhocodes/config-array/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, "dependencies": { - "whatwg-url": "^5.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": "*" + } + }, + "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, + "engines": { + "node": ">=12.22" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/nodejs-fs-utils": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/nodejs-fs-utils/-/nodejs-fs-utils-1.2.6.tgz", - "integrity": "sha512-uDIfV3Qvjrtis2jOhHYzvUTAReqtnBXCVm0efjAYDgrCgZZBDxMQcZE7SsDAui4zzQ7GpqYUFUwoOpOoQD4vpA==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, "dependencies": { - "module-require": "*" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "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==", - "dependencies": { - "wrappy": "1" + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "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/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/readline-sync": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", - "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "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, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "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": ">=10" + "node": ">=8" } }, - "node_modules/slugify": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", - "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", - "engines": { - "node": ">=8.0.0" + "node_modules/@istanbuljs/load-nyc-config/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, + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "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/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/@istanbuljs/load-nyc-config/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, "dependencies": { - "has-flag": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "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==", + "node_modules/@istanbuljs/load-nyc-config/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": ">= 0.4" + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "node_modules/@istanbuljs/load-nyc-config/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, "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" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "p-locate": "^4.1.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "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 - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "node_modules/@istanbuljs/load-nyc-config/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, "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" + "p-try": "^2.0.0" }, "engines": { - "node": ">=4.8.0" + "node": ">=6" }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", + "node_modules/@istanbuljs/load-nyc-config/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, - "bin": { - "tslint-config-prettier-check": "bin/check.js" + "dependencies": { + "p-limit": "^2.2.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=8" } }, - "node_modules/tslint/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/@istanbuljs/load-nyc-config/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, - "bin": { - "semver": "bin/semver" + "engines": { + "node": ">=8" } }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "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, - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + "engines": { + "node": ">=8" } }, - "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "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, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "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": ">=4.2.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "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, + "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": ">= 10.0.0" + "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/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/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "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, "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "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, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + }, + "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, - "requires": { - "@babel/highlight": "^7.18.6" + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "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, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "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" } }, - "@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/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" + "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" } }, - "@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "requires": {} - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@studiorack/core": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.5.tgz", - "integrity": "sha512-9UmdwYWPYN+dNentoWymG6zDrpNB88n1ZxbY/AdmWNGC7bcD0pLwuBNtNJ8oYyfcgtWk2lHfLBh3OE743YM7ew==", - "requires": { - "@vscode/sudo-prompt": "^9.3.1", - "adm-zip": "^0.4.16", - "fs-extra": "^10.1.0", - "glob": "^7.1.6", - "node-fetch": "^2.6.1", - "nodejs-fs-utils": "^1.2.5", - "readline-sync": "^1.4.10", - "semver": "^7.3.4", - "slugify": "^1.4.6" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@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 - }, - "@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 - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", - "dev": true - }, - "@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "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, - "requires": { + "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": "*", - "form-data": "^3.0.0" + "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 + } } }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" - }, - "@vscode/sudo-prompt": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz", - "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==" - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true + "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, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true + "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, + "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" + } }, - "adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==" + "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, + "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" + } }, - "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/@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, - "requires": { - "color-convert": "^1.9.0" + "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" } }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "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, + "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" + } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "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, - "requires": { - "sprintf-js": "~1.0.2" + "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" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "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, + "engines": { + "node": ">=6.0.0" + } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, - "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/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "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/@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, - "requires": { - "color-name": "1.1.3" + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "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 - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" + "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, + "engines": { + "node": ">= 8" } }, - "commander": { - "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 + "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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } }, - "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==", + "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 }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" + "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, + "dependencies": { + "type-detect": "4.0.8" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "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 + "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, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } }, - "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 + "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, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } }, - "extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "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, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "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==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "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, + "dependencies": { + "@types/node": "*" + } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "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 }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "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" + "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, + "dependencies": { + "@types/istanbul-lib-coverage": "*" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "peer": true - }, - "graphql-request": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.1.0.tgz", - "integrity": "sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-fetch": "^3.1.5", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" + "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, + "dependencies": { + "@types/istanbul-lib-report": "*" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, - "requires": { - "function-bind": "^1.1.1" + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, - "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/@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 }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "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 }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, - "requires": { - "has": "^1.0.3" + "dependencies": { + "@types/yargs-parser": "*" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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 }, - "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==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", + "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/type-utils": "7.6.0", + "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "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" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.6.0.tgz", + "integrity": "sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.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.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", + "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.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.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", + "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/utils": "7.6.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.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true, + "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.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", + "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.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/utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", + "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/typescript-estree": "7.6.0", + "semver": "^7.6.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.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.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.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.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, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "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, + "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/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, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "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, + "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, + "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, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "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/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, + "engines": { + "node": ">=8" + } + }, + "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, + "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-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, + "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-istanbul/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, + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/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, + "bin": { + "semver": "bin/semver.js" + } + }, + "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, + "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-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.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, + "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 + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "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": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "dependencies": { + "node-int64": "^0.4.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/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001609", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz", + "integrity": "sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==", + "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" + } + ] + }, + "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, + "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/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, + "engines": { + "node": ">=10" + } + }, + "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" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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, + "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 + }, + "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, + "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 + }, + "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/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, + "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-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "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 + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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, + "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, + "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, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.736", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz", + "integrity": "sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==", + "dev": true + }, + "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, + "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 + }, + "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, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@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-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "28.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.2.0.tgz", + "integrity": "sha512-yRDti/a+f+SMSmNTiT9/M/MzXGkitl8CfzUxnpoQcTyfq8gUrXMriVcWU36W1X6BZSUoyUCJrDAWWUA2N4hE5g==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^6.0.0" + }, + "engines": { + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.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": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.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": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-jest/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "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-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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "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, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "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, + "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, + "engines": { + "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==", + "dev": true, + "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/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "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/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-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "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, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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-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 + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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, + "dependencies": { + "bser": "2.1.1" + } + }, + "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, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "engines": { + "node": ">=14" + }, + "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/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, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.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==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=6.9.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==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "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, + "engines": { + "node": ">=8.0.0" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "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": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/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, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "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==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "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/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/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=0.12.0" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "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/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, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "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, + "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/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, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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/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, + "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" + }, + "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-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, + "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/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, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "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, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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" + } + }, + "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, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": 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, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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" + } + }, + "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, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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": "^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, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "dev": true, + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "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 + }, + "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": "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/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 + }, + "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, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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/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, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.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 + }, + "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, + "dependencies": { + "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, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "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/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "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/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/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "wrappy": "1" + } + }, + "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, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "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" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "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, + "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, + "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 + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "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, + "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/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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "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, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "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": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/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, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/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 + }, + "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, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.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 + }, + "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, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/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, + "engines": { + "node": ">=8" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "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, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" } }, - "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==", - "requires": { - "yallist": "^4.0.0" + "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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "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/string-width-cjs": { + "name": "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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, - "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/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, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "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==", - "requires": { - "mime-db": "1.52.0" + "node_modules/strip-ansi-cjs": { + "name": "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, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" + "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, + "engines": { + "node": ">=8" } }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true + "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, + "engines": { + "node": ">=6" + } }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "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, - "requires": { - "minimist": "^1.2.6" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "module-require": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/module-require/-/module-require-1.4.5.tgz", - "integrity": "sha512-ksEXPs62btutKsbJKph7rLhdu7A6JIIHXTqvr3uhOP1mViI8JeHkNzYHJnVlHVCaRCuHa7XMBnKmxc23YZGl6Q==" + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "nodejs-fs-utils": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/nodejs-fs-utils/-/nodejs-fs-utils-1.2.6.tgz", - "integrity": "sha512-uDIfV3Qvjrtis2jOhHYzvUTAReqtnBXCVm0efjAYDgrCgZZBDxMQcZE7SsDAui4zzQ7GpqYUFUwoOpOoQD4vpA==", - "requires": { - "module-require": "*" + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "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/test-exclude/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "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==", + "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 }, - "prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "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 }, - "readline-sync": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", - "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==" + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "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, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "requires": { - "lru-cache": "^6.0.0" + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", + "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } } }, - "slugify": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", - "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==" + "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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "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/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, + "engines": { + "node": ">=4" + } }, - "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/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, - "requires": { - "has-flag": "^3.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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 + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@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" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "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": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", - "dev": true - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "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, - "requires": { - "tslib": "^1.8.1" + "dependencies": { + "punycode": "^2.1.0" } }, - "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "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, + "dependencies": { + "makeerror": "1.0.12" + } }, - "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/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "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, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node_modules/wrap-ansi-cjs": { + "name": "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, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "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, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "yn": { + "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true + }, + "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, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index f208d78..dd0897b 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,19 @@ { "name": "studiorack-registry", - "version": "0.0.1", + "version": "1.0.0", "description": "Audio plugin registry with searchable plugin list, metadata and download urls", - "main": "dist/index.js", + "type": "module", "scripts": { - "copy": "cp -r ./src/audio ./out && cp -r ./src/image ./out", - "build": "tsc && cp ./src/registry.json ./dist", - "dev": "ts-node src/index.ts", - "format": "prettier --write \"src/**/*.{ts,tsx}\"", - "lint": "tslint -p tsconfig.json", - "start": "node dist/index.js && npm run copy", - "test": "echo 'No tests were run'" + "start": "node build/src/main.js", + "clean": "rimraf coverage build tmp", + "prebuild": "npm run lint", + "build": "tsc -p tsconfig.json", + "build:watch": "tsc -w -p tsconfig.json", + "build:release": "npm run clean && tsc -p tsconfig.release.json", + "lint": "eslint . --ext .ts --ext .mts", + "test": "jest --coverage", + "prettier": "prettier --config .prettierrc --write .", + "test:watch": "jest --watch" }, "repository": { "type": "git", @@ -27,25 +30,26 @@ "download" ], "author": "kmturley", - "license": "ISC", + "license": "MIT", "bugs": { "url": "https://github.com/studiorack/studiorack-registry/issues" }, "homepage": "https://github.com/studiorack/studiorack-registry#readme", - "dependencies": { - "@studiorack/core": "^1.2.5", - "@types/semver": "^7.3.13", - "graphql-request": "^5.1.0", - "node-fetch": "^2.6.7", - "semver": "^7.3.8" + "engines": { + "node": ">= 20.9 < 21" }, "devDependencies": { - "@types/node": "^18.11.18", - "@types/node-fetch": "^2.6.2", - "prettier": "^2.8.1", - "ts-node": "^10.9.1", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "typescript": "^4.9.4" + "@types/jest": "~29.5", + "@types/node": "~20", + "@typescript-eslint/eslint-plugin": "~7.6", + "@typescript-eslint/parser": "~7.6", + "eslint": "~8.56", + "eslint-config-prettier": "~9.1", + "eslint-plugin-jest": "~28.2", + "jest": "~29.7", + "prettier": "~3.2", + "rimraf": "~5.0", + "ts-jest": "~29.1", + "typescript": "~5.4" } } diff --git a/src/audio/surge.flac b/src/audio/surge.flac deleted file mode 100644 index 9c961732865dc50cfe84c1e9a4f92b10295813aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141339 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

=97v)wE+YnK17ZRkoXR4AC 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

#n{l=uw9xDCugJKnKUkt&e+kK-f}*jE(5 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%0Dtiw1X0hXg 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 diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index efc4960..0000000 --- a/src/index.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { dirCreate, fileJsonCreate, PluginEntry, PluginInterface, pluginLatest, PluginPack } from '@studiorack/core'; -import { githubGetPack } from './sources/github'; -import { getOwlplugPack } from './sources/owlplug'; - -const DIST_PATH = './out'; -const REGISTRY_OUT = 'index.json'; -const REGISTRY_OUT_EFFECTS = 'effects.json'; -const REGISTRY_OUT_INSTRUMENTS = 'instruments.json'; -const REGISTRY_OUT_SFZ = 'sfz.json'; - -function registryLoad() { - const registry: any = require('./registry.json'); - registry.time = new Date(); - registry.total = registry.objects.length || 0; - return registry; -} - -function registryAdd(list: any, pluginPack: PluginPack) { - console.log(list); - console.log(pluginPack); - list.objects = Object.assign(list.objects, pluginPack); - list.total += Object.keys(pluginPack).length; -} - -async function registrySave(path: string, file: any) { - dirCreate(DIST_PATH); - fileJsonCreate(path, file); -} - -async function run() { - const registry = registryLoad(); - registryAdd(registry, await githubGetPack()); - // registryAdd(registry, await getOwlplugPack()); - - // Create separate registries for Effects and Instruments - const effects: any = { objects: {} }; - const index: any = { objects: {} }; - const instruments: any = { objects: {} }; - const sfz: any = { objects: {} }; - for (const pluginId in registry.objects) { - const pluginEntry: PluginEntry = registry.objects[pluginId]; - const plugin: PluginInterface = pluginLatest(pluginEntry); - // Check if tags include Effect/Fx - if (plugin.tags.includes('Effect') || plugin.tags.includes('Fx')) { - effects.objects[pluginId] = pluginEntry; - } - if (plugin.tags.includes('Instrument')) { - instruments.objects[pluginId] = pluginEntry; - } - if (plugin.tags.includes('sfz')) { - sfz.objects[pluginId] = pluginEntry; - } - index.objects[pluginId] = pluginEntry; - } - registrySave(`${DIST_PATH}/${REGISTRY_OUT}`, index); - registrySave(`${DIST_PATH}/${REGISTRY_OUT_EFFECTS}`, effects); - registrySave(`${DIST_PATH}/${REGISTRY_OUT_INSTRUMENTS}`, instruments); - registrySave(`${DIST_PATH}/${REGISTRY_OUT_SFZ}`, sfz); -} - -run(); diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..7c7117f --- /dev/null +++ b/src/main.ts @@ -0,0 +1,36 @@ +/** + * Some predefined delay values (in milliseconds). + */ +export enum Delays { + Short = 500, + Medium = 2000, + Long = 6000, +} + +/** + * Returns a Promise that resolves after a given time. + * + * @param {string} name - A name. + * @param {number=} [delay=Delays.Medium] - A number of milliseconds to delay resolution of the Promise. + * @returns {Promise} + */ +function delayedHello( + name: string, + delay: number = Delays.Medium, +): Promise { + return new Promise((resolve: (value?: string) => void) => + setTimeout(() => resolve(`Hello, ${name}`), delay), + ); +} + +// Please see the comment in the .eslintrc.json file about the suppressed rule! +// Below is an example of how to use ESLint errors suppression. You can read more +// at https://eslint.org/docs/latest/user-guide/configuring/rules#disabling-rules + +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +export async function greeter(name: any) { // eslint-disable-line @typescript-eslint/no-explicit-any + // The name parameter should be of type string. Any is used only to trigger the rule. + return await delayedHello(name, Delays.Long); +} + +console.log(await greeter('Tony')); diff --git a/src/registry.json b/src/registry.json deleted file mode 100644 index 8670458..0000000 --- a/src/registry.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "objects": { - "surge-synthesizer/releases-xt/surge": { - "id": "surge-synthesizer/releases-xt/surge", - "license": "gpl-3.0", - "version": "1.3.1", - "versions": { - "1.3.1": { - "author": "Surge Synth Team", - "homepage": "https://surge-synthesizer.github.io", - "name": "Surge XT", - "description": "Hybrid synthesizer featuring many synthesis techniques, a great selection of filters, a flexible modulation engine, a smorgasbord of effects, and modern features like MPE and microtuning.", - "tags": [ - "Instrument", - "Synth", - "Modulation" - ], - "version": "1.3.1", - "id": "surge", - "date": "2024-02-06T00:00:00.000Z", - "files": { - "audio": { - "name": "https://studiorack.github.io/studiorack-registry/audio/surge.flac", - "size": 141339 - }, - "image": { - "name": "https://studiorack.github.io/studiorack-registry/image/surge.jpg", - "size": 159518 - }, - "linux": { - "name": "surge-xt-linux-1.3.1-pluginsonly.tar.gz", - "size": 94448096 - }, - "mac": { - "name": "surge-xt-macos-1.3.1-pluginsonly.zip", - "size": 180726292 - }, - "win": { - "name": "surge-xt-win64-1.3.1-pluginsonly.zip", - "size": 48165645 - } - }, - "release": "1.3.1", - "license": { - "key": "gpl-3.0", - "name": "GNU General Public License v3.0", - "url": "https://choosealicense.com/licenses/gpl-3.0", - "same": true - }, - "repo": "surge-synthesizer/releases-xt/surge" - } - } - } - } -} diff --git a/src/sources/github.ts b/src/sources/github.ts deleted file mode 100644 index 3f42181..0000000 --- a/src/sources/github.ts +++ /dev/null @@ -1,125 +0,0 @@ -import * as semver from 'semver'; -import { PluginInterface, PluginLocal, PluginPack, pluginValidateSchema, safeSlug } from '@studiorack/core'; -import fetch from 'node-fetch'; -import { gql, GraphQLClient, RequestDocument } from 'graphql-request'; - -// Plugins need to have a topic `studiorack-plugin` to appear in the results -// https://github.com/topics/studiorack-plugin -const GITHUB_API: string = 'https://api.github.com/graphql'; -const GITHUB_TOPIC: string = 'studiorack-plugin'; -const GITHUB_REPO_PAGINATION: number = 100; -const GITHUB_RELEASES_PAGINATION: number = 100; - -interface GitHubRelease { - tagName: string; -} - -interface GitHubRepository { - nameWithOwner: string; - licenseInfo: { - key: string; - }; - releases: { - nodes: GitHubRelease[]; - }; -} - -interface GitHubSearch { - search: { - nodes: GitHubRepository[]; - }; -} - -async function githubGetPack(): Promise { - const pluginPack: PluginPack = {}; - const results: GitHubSearch = await githubSearchRepos(GITHUB_API); - for (const repo of results.search.nodes) { - for (const release of repo.releases.nodes) { - await githubGetRelease(pluginPack, repo, release); - } - } - return pluginPack; -} - -async function githubSearchRepos(url: string): Promise { - const headers: any = {}; - if (process.env.GITHUB_TOKEN) headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`; - const graphQLClient = new GraphQLClient(url, { headers }); - const query: RequestDocument = gql` - { - search(query: "topic:${GITHUB_TOPIC} fork:true", type: REPOSITORY, first: ${GITHUB_REPO_PAGINATION}) { - nodes { - ... on Repository { - nameWithOwner - licenseInfo { - key - } - releases(first: ${GITHUB_RELEASES_PAGINATION}) { - nodes { - tagName - } - } - } - } - } - } - `; - return graphQLClient.request(query); -} - -async function githubGetRelease(pluginPack: PluginPack, repo: GitHubRepository, release: GitHubRelease) { - const pluginsJsonList = await githubGetPlugins( - `https://github.com/${repo.nameWithOwner}/releases/download/${release.tagName}/plugins.json` - ); - pluginsJsonList.plugins.forEach((plugin: PluginInterface) => { - // For each plugin sanitize the id and add to registry - const pluginId = safeSlug(`${repo.nameWithOwner}/${plugin.id}`); - const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; - console.log('github', pluginId, pluginVersion); - if (!pluginPack[pluginId]) { - pluginPack[pluginId] = { - id: pluginId, - license: repo.licenseInfo?.key || 'other', - version: pluginVersion, - versions: {}, - }; - } - // Release is different from version and can vary per version - plugin.release = release.tagName; - pluginPack[pluginId].versions[pluginVersion] = plugin; - // If plugin version is greater than the current, set as latest version - if (semver.gt(pluginVersion, pluginPack[pluginId].version)) { - pluginPack[pluginId].version = pluginVersion; - } - }); - return pluginPack; -} - -async function githubGetPlugins(url: string) { - const pluginsValid: PluginInterface[] = []; - const pluginsJson = await getJSONSafe(url); - pluginsJson.plugins.forEach((plugin: PluginInterface) => { - const error = pluginValidateSchema(plugin as PluginLocal); - if (error === false) { - plugin.id = safeSlug(plugin.id); - pluginsValid.push(plugin); - } else { - console.log(error, plugin); - } - }); - return { plugins: pluginsValid }; -} - -async function getJSONSafe(url: string): Promise { - console.log('⤓', url); - try { - const response = await fetch(url); - const json = await response.json(); - return json; - } catch (error) { - // console.log(error); - return { plugins: [] }; - } -} - -export { githubGetPack }; diff --git a/src/sources/owlplug.ts b/src/sources/owlplug.ts deleted file mode 100644 index 470d28f..0000000 --- a/src/sources/owlplug.ts +++ /dev/null @@ -1,86 +0,0 @@ -import * as semver from 'semver'; -import { getJSON, pathGetId, pathGetVersion, PluginInterface, PluginPack, safeSlug } from '@studiorack/core'; - -const REGISTRY_URL = 'https://central.owlplug.com/store'; - -interface OwlPluginInterface { - name: string; - creator: string; - screenshotUrl: string; - description: string; - pageUrl: string; - donateUrl: string; - version: string; - technicalUid: string; - type: string; - stage: string; - tags: string[]; - bundles: OwlPluginFiles[]; -} - -interface OwlPluginFiles { - name: string; - targets: string[]; - format: string; - downloadUrl: string; - fileSize: number; -} - -async function getOwlplugPack(): Promise { - const pluginPack: PluginPack = {}; - const registry = await getJSON(REGISTRY_URL); - registry.products.forEach((product: OwlPluginInterface) => { - const plugin: PluginInterface = { - author: product.creator, - date: new Date().toISOString(), - description: product.description, - homepage: product.pageUrl, - id: pathGetId(product.screenshotUrl), - name: product.name, - files: { - audio: { name: '', size: 0 }, - image: { name: product.screenshotUrl, size: 0 }, - linux: { name: '', size: 0 }, - mac: { name: '', size: 0 }, - win: { name: '', size: 0 }, - }, - release: `v${registry.version}`, - repo: 'owlplug/central', - tags: product.tags, - version: pathGetVersion(product.version || '0.0.0'), - }; - product.bundles.forEach((bundle: OwlPluginFiles) => { - if (bundle.targets.includes('linux')) { - plugin.files.linux.name = bundle.downloadUrl; - plugin.files.linux.size = bundle.fileSize; - } - if (bundle.targets.includes('osx')) { - plugin.files.mac.name = bundle.downloadUrl; - plugin.files.mac.size = bundle.fileSize; - } else if (bundle.targets.includes('win64')) { - plugin.files.win.name = bundle.downloadUrl; - plugin.files.win.size = bundle.fileSize; - } - }); - // For each plugin sanitize the id and add to registry - const pluginId = safeSlug(`${plugin.repo}/${plugin.id}`); - const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; - console.log('owlplug', pluginId, pluginVersion); - if (!pluginPack[pluginId]) { - pluginPack[pluginId] = { - id: pluginId, - license: '', - version: pluginVersion, - versions: {}, - }; - } - pluginPack[pluginId].versions[pluginVersion] = plugin; - // If plugin version is greater than the current, set as latest version - if (semver.gt(pluginVersion, pluginPack[pluginId].version)) { - pluginPack[pluginId].version = pluginVersion; - } - }); - return pluginPack; -} - -export { getOwlplugPack }; diff --git a/tsconfig.json b/tsconfig.json index 59640a3..4a94f7f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,23 @@ { "compilerOptions": { - "target": "es5", - "module": "commonjs", - "declaration": true, - "outDir": "./dist", - "strict": true + "target": "es2022", + "module": "node16", + "lib": ["ES2022"], + "moduleResolution": "node16", + "rootDir": ".", + "outDir": "build", + "allowSyntheticDefaultImports": true, + "importHelpers": true, + "alwaysStrict": true, + "sourceMap": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitAny": false, + "noImplicitThis": false, + "strictNullChecks": false }, - "include": ["src"], - "exclude": ["dist", "node_modules"] + "include": ["src/**/*", "__tests__/**/*"] } diff --git a/tsconfig.release.json b/tsconfig.release.json new file mode 100644 index 0000000..f08638c --- /dev/null +++ b/tsconfig.release.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "sourceMap": false, + "removeComments": true + }, + "include": ["src/**/*"] +} diff --git a/tslint.json b/tslint.json deleted file mode 100644 index ae9b8db..0000000 --- a/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["tslint:recommended", "tslint-config-prettier"], - "rules": { - "forin": false, - "no-console": false, - "no-var-requires": false, - "semicolon": [true, "always", "ignore-bound-class-methods"] - } -} From 6086f3c96879c38f056e24d50884bbf89c1deafd Mon Sep 17 00:00:00 2001 From: Kim T Date: Fri, 3 May 2024 22:37:24 -0700 Subject: [PATCH 02/10] Example using yaml --- .github/workflows/release.yml | 4 +- README.md | 9 +- __tests__/main.test.ts | 42 -- jest.config.js | 2 +- package-lock.json | 621 +++++++++++++++++- package.json | 12 +- src/main.ts | 57 +- .../releases-xt/1.3.1/surge.yaml | 27 + src/types/Plugin.ts | 47 ++ tests/main.test.ts | 0 tsconfig.json | 2 +- 11 files changed, 735 insertions(+), 88 deletions(-) delete mode 100644 __tests__/main.test.ts create mode 100644 src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml create mode 100644 src/types/Plugin.ts create mode 100644 tests/main.test.ts diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 20ef942..fc85538 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,9 +1,9 @@ name: Release -on: +on: workflow_dispatch: schedule: - # https://crontab.guru/weekly + # https://crontab.guru/weekly - cron: '0 0 * * 0' jobs: diff --git a/README.md b/README.md index 29d833a..425b8a1 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # studiorack-registry + ![Release](https://github.com/studiorack/studiorack-registry/workflows/Release/badge.svg) Audio plugin registry with searchable plugin list, metadata and download urls using: -* NodeJS 12.x -* TypeScript 4.x - +- NodeJS 20.x +- TypeScript 5.x ## Installation @@ -13,7 +13,6 @@ Install dependencies using: npm install - ## Usage Setup a personal access token on [GitHub](https://github.com/settings/tokens) with `public_repo` access. Export in your terminal: @@ -32,7 +31,6 @@ Run the production build: npm start - ## How it works The StudioRack Registry uses GitHub as a source of truth for plugins. We search the GitHub API for topic `studiosrack-plugin`: @@ -118,7 +116,6 @@ This registry json is updated once a day, and used for the StudioRack website, a https://studiorack.github.io/studiorack-registry/ - ## Contact For more information please contact kmturley diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts deleted file mode 100644 index 9aaca6e..0000000 --- a/__tests__/main.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Delays, greeter } from '../src/main.js'; - -describe('greeter function', () => { - const name = 'John'; - let hello: string; - - let timeoutSpy: jest.SpyInstance; - - // Act before assertions - beforeAll(async () => { - // Read more about fake timers - // http://facebook.github.io/jest/docs/en/timer-mocks.html#content - // Jest 27 now uses "modern" implementation of fake timers - // https://jestjs.io/blog/2021/05/25/jest-27#flipping-defaults - // https://github.com/facebook/jest/pull/5171 - jest.useFakeTimers(); - timeoutSpy = jest.spyOn(global, 'setTimeout'); - - const p: Promise = greeter(name); - jest.runOnlyPendingTimers(); - hello = await p; - }); - - // Teardown (cleanup) after assertions - afterAll(() => { - timeoutSpy.mockRestore(); - }); - - // Assert if setTimeout was called properly - it('delays the greeting by 2 seconds', () => { - expect(setTimeout).toHaveBeenCalledTimes(1); - expect(setTimeout).toHaveBeenLastCalledWith( - expect.any(Function), - Delays.Long, - ); - }); - - // Assert greeter result - it('greets a user with `Hello, {name}` message', () => { - expect(hello).toBe(`Hello, ${name}`); - }); -}); diff --git a/jest.config.js b/jest.config.js index 10696f4..0240957 100644 --- a/jest.config.js +++ b/jest.config.js @@ -7,7 +7,7 @@ export default { moduleNameMapper: { '^(\\.{1,2}/.*)\\.(m)?js$': '$1', }, - testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(m)?ts$', + testRegex: '(/tests/.*|(\\.|/)(test|spec))\\.(m)?ts$', coverageDirectory: 'coverage', collectCoverageFrom: [ 'src/**/*.ts', diff --git a/package-lock.json b/package-lock.json index f666cba..5089dbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,12 @@ "name": "studiorack-registry", "version": "1.0.0", "license": "MIT", + "dependencies": { + "js-yaml": "^4.1.0" + }, "devDependencies": { "@types/jest": "~29.5", + "@types/js-yaml": "^4.0.9", "@types/node": "~20", "@typescript-eslint/eslint-plugin": "~7.6", "@typescript-eslint/parser": "~7.6", @@ -20,6 +24,7 @@ "prettier": "~3.2", "rimraf": "~5.0", "ts-jest": "~29.1", + "tsx": "^4.9.0", "typescript": "~5.4" }, "engines": { @@ -627,6 +632,400 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "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==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -1359,6 +1758,38 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "optional": true, + "peer": 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, + "optional": true, + "peer": 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, + "optional": true, + "peer": 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, + "optional": true, + "peer": true + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1443,6 +1874,12 @@ "pretty-format": "^29.0.0" } }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1702,6 +2139,17 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1782,11 +2230,18 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true, + "peer": true + }, "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 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-union": { "version": "2.1.0", @@ -2164,6 +2619,14 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.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, + "optional": true, + "peer": true + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2233,6 +2696,17 @@ "node": ">=8" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -2305,6 +2779,44 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -2938,6 +3450,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", + "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -3886,7 +4410,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -4598,6 +5121,15 @@ "node": ">=4" } }, + "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, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -5046,6 +5578,70 @@ } } }, + "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==", + "dev": true, + "optional": true, + "peer": 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" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsx": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.9.0.tgz", + "integrity": "sha512-UY0UUhDPL6MkqkZU4xTEjEBOLfV+RIt4xeeJ1qwK73xai4/zveG+X6+tieILa7rjtegUW2LE4p7fw7gAoLuytA==", + "dev": true, + "dependencies": { + "esbuild": "~0.20.2", + "get-tsconfig": "^4.7.3" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5137,6 +5733,14 @@ "punycode": "^2.1.0" } }, + "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, + "optional": true, + "peer": true + }, "node_modules/v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", @@ -5271,6 +5875,17 @@ "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, + "optional": true, + "peer": 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", diff --git a/package.json b/package.json index dd0897b..d256e13 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,16 @@ "description": "Audio plugin registry with searchable plugin list, metadata and download urls", "type": "module", "scripts": { + "copy": "cp -r ./src/plugins ./build/src", "start": "node build/src/main.js", "clean": "rimraf coverage build tmp", "prebuild": "npm run lint", - "build": "tsc -p tsconfig.json", - "build:watch": "tsc -w -p tsconfig.json", + "build": "tsc -p tsconfig.json && npm run copy", + "dev": "tsx src/main.ts", "build:release": "npm run clean && tsc -p tsconfig.release.json", "lint": "eslint . --ext .ts --ext .mts", "test": "jest --coverage", - "prettier": "prettier --config .prettierrc --write .", + "format": "prettier --config .prettierrc --write .", "test:watch": "jest --watch" }, "repository": { @@ -38,8 +39,12 @@ "engines": { "node": ">= 20.9 < 21" }, + "dependencies": { + "js-yaml": "^4.1.0" + }, "devDependencies": { "@types/jest": "~29.5", + "@types/js-yaml": "^4.0.9", "@types/node": "~20", "@typescript-eslint/eslint-plugin": "~7.6", "@typescript-eslint/parser": "~7.6", @@ -50,6 +55,7 @@ "prettier": "~3.2", "rimraf": "~5.0", "ts-jest": "~29.1", + "tsx": "^4.9.0", "typescript": "~5.4" } } diff --git a/src/main.ts b/src/main.ts index 7c7117f..22fd600 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,36 +1,33 @@ -/** - * Some predefined delay values (in milliseconds). - */ -export enum Delays { - Short = 500, - Medium = 2000, - Long = 6000, -} +import fs from 'fs'; +import yaml from 'js-yaml'; +import { PluginInterface, PluginRegistry } from './types/Plugin.js'; -/** - * Returns a Promise that resolves after a given time. - * - * @param {string} name - A name. - * @param {number=} [delay=Delays.Medium] - A number of milliseconds to delay resolution of the Promise. - * @returns {Promise} - */ -function delayedHello( - name: string, - delay: number = Delays.Medium, -): Promise { - return new Promise((resolve: (value?: string) => void) => - setTimeout(() => resolve(`Hello, ${name}`), delay), - ); +function registryLoad(repo: string, version: string, id: string) { + const file: string = fs.readFileSync(`./src/plugins/${repo}/${version}/${id}.yaml`, 'utf8'); + return yaml.load(file) as PluginInterface; } -// Please see the comment in the .eslintrc.json file about the suppressed rule! -// Below is an example of how to use ESLint errors suppression. You can read more -// at https://eslint.org/docs/latest/user-guide/configuring/rules#disabling-rules +function registryNew() { + return { + name: 'StudioRack Registry', + url: 'https://studiorack.github.io/studiorack-registry', + version: '2.0.0', + objects: [], + }; +} -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export async function greeter(name: any) { // eslint-disable-line @typescript-eslint/no-explicit-any - // The name parameter should be of type string. Any is used only to trigger the rule. - return await delayedHello(name, Delays.Long); +function run() { + const registry: PluginRegistry = registryNew(); + const pluginRepo: string = 'surge-synthesizer/releases-xt'; + const pluginVersion: string = '1.3.1'; + const pluginId: string = 'surge'; + const plugin: PluginInterface = registryLoad(pluginRepo, pluginVersion, pluginId); + // registry.objects[`${pluginRepo}/${pluginId}`] = { + // id: pluginId, + // version: pluginVersion, + // versions[pluginVersion]: plugin;, + // } + console.log(plugin); } -console.log(await greeter('Tony')); +run(); diff --git a/src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml b/src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml new file mode 100644 index 0000000..a5ed945 --- /dev/null +++ b/src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml @@ -0,0 +1,27 @@ +--- +name: Surge XT +author: Surge Synth Team +homepage: https://surge-synthesizer.github.io +description: Hybrid synthesizer featuring many synthesis techniques, a great selection of filters, a flexible modulation engine, a smorgasbord of effects, and modern features like MPE and microtuning. +date: 2024-02-06T00:00:00.000Z +license: gpl-3.0 +tags: + - Instrument + - Synth + - Modulation +files: + audio: + url: https://studiorack.github.io/studiorack-registry/audio/surge.flac + size: 141339 + image: + url: https://studiorack.github.io/studiorack-registry/image/surge.jpg + size: 159518 + linux: + url: surge-xt-linux-1.3.1-pluginsonly.tar.gz + size: 94448096 + mac: + url: surge-xt-macos-1.3.1-pluginsonly.zip + size: 180726292 + win: + url: surge-xt-win64-1.3.1-pluginsonly.zip + size: 48165645 diff --git a/src/types/Plugin.ts b/src/types/Plugin.ts new file mode 100644 index 0000000..bb929cc --- /dev/null +++ b/src/types/Plugin.ts @@ -0,0 +1,47 @@ +export interface PluginRegistry { + name: string; + url: string; + version: string; + objects: PluginPack[]; +} + +export interface PluginPack { + [property: string]: PluginEntry; +} + +export interface PluginEntry { + id: string; + version: string; + versions: { [version: string]: PluginInterface }; +} + +interface PluginFile { + url: string; + size: number; +} + +interface PluginFiles { + audio: PluginFile; + image: PluginFile; + linux: PluginFile; + mac: PluginFile; + win: PluginFile; +} + +export interface PluginInterface { + author: string; + date: string; + description: string; + homepage: string; + name: string; + files: PluginFiles; + license?: PluginLicense; + tags: string[]; +} + +interface PluginLicense { + key: string; + name: string; + url: string; + same: boolean; +} diff --git a/tests/main.test.ts b/tests/main.test.ts new file mode 100644 index 0000000..e69de29 diff --git a/tsconfig.json b/tsconfig.json index 4a94f7f..fc3ae36 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,5 +19,5 @@ "noImplicitThis": false, "strictNullChecks": false }, - "include": ["src/**/*", "__tests__/**/*"] + "include": ["src/**/*", "tests/**/*"] } From 9784aec5854bf1e7e5a31f3923cd95e86c66ae55 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sat, 4 May 2024 22:55:33 -0700 Subject: [PATCH 03/10] Testing out plugin versions from local --- .eslintrc.json | 3 +- .gitignore | 1 + package-lock.json | 246 ++++++++++++++---- package.json | 5 +- src/main.ts | 74 ++++-- src/plugins/sfztools/sfizz/1.2.3.yaml | 27 ++ src/plugins/sfztools/sfizz/sfizz.flac | Bin 0 -> 47910 bytes src/plugins/sfztools/sfizz/sfizz.jpg | Bin 0 -> 33976 bytes .../releases-xt/1.3.1/surge.yaml | 27 -- .../surge-synthesizer/surge/1.3.0.yaml | 27 ++ .../surge-synthesizer/surge/1.3.1.yaml | 27 ++ .../surge-synthesizer/surge/surge.flac | Bin 0 -> 141339 bytes src/plugins/surge-synthesizer/surge/surge.jpg | Bin 0 -> 159518 bytes src/sources/github.ts | 130 +++++++++ src/sources/local.ts | 43 +++ src/sources/owlplug.ts | 93 +++++++ src/types/Plugin.ts | 13 +- 17 files changed, 608 insertions(+), 108 deletions(-) create mode 100644 src/plugins/sfztools/sfizz/1.2.3.yaml create mode 100644 src/plugins/sfztools/sfizz/sfizz.flac create mode 100644 src/plugins/sfztools/sfizz/sfizz.jpg delete mode 100644 src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml create mode 100644 src/plugins/surge-synthesizer/surge/1.3.0.yaml create mode 100644 src/plugins/surge-synthesizer/surge/1.3.1.yaml create mode 100644 src/plugins/surge-synthesizer/surge/surge.flac create mode 100644 src/plugins/surge-synthesizer/surge/surge.jpg create mode 100644 src/sources/github.ts create mode 100644 src/sources/local.ts create mode 100644 src/sources/owlplug.ts diff --git a/.eslintrc.json b/.eslintrc.json index a7a3f42..75afc02 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -22,6 +22,7 @@ // examples, and because it is not a recommended rule, you should either // disable it, or understand what it enforces. // https://typescript-eslint.io/rules/explicit-function-return-type/ - "@typescript-eslint/explicit-function-return-type": "warn" + "@typescript-eslint/explicit-function-return-type": "warn", + "@typescript-eslint/no-explicit-any": "warn" } } diff --git a/.gitignore b/.gitignore index 08b35db..b33d66e 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ coverage # Transpiled files build/ +out/ # VS Code .vscode diff --git a/package-lock.json b/package-lock.json index 5089dbe..e0523d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,10 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "js-yaml": "^4.1.0" + "@studiorack/core": "^1.2.6", + "graphql-request": "^6.1.0", + "js-yaml": "^4.1.0", + "semver": "^7.6.0" }, "devDependencies": { "@types/jest": "~29.5", @@ -1104,6 +1107,14 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -1163,7 +1174,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -1180,7 +1190,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, "engines": { "node": ">=12" }, @@ -1192,7 +1201,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, "engines": { "node": ">=12" }, @@ -1203,14 +1211,12 @@ "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -1227,7 +1233,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -1242,7 +1247,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -1728,7 +1732,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" @@ -1758,6 +1761,43 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@studiorack/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.6.tgz", + "integrity": "sha512-sqOtkTNDp4CIaJGvNhGL1YG1AjY+dUGuXqCW0o2doiu1EbnqLVW7VTxQEzb6nhSaYm+hWM2BPdYuXn6U017p6A==", + "dependencies": { + "@vscode/sudo-prompt": "^9.3.1", + "adm-zip": "^0.4.16", + "fs-extra": "^10.1.0", + "glob": "^10.3.6", + "node-fetch": "^2.6.1", + "nodejs-fs-utils": "^1.2.5", + "readline-sync": "^1.4.10", + "semver": "^7.3.4", + "slugify": "^1.4.6" + } + }, + "node_modules/@studiorack/core/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -2118,6 +2158,11 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@vscode/sudo-prompt": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz", + "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==" + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -2150,6 +2195,14 @@ "node": ">=0.4.0" } }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "engines": { + "node": ">=0.3.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2197,7 +2250,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -2206,7 +2258,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2371,14 +2422,12 @@ "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 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -2572,7 +2621,6 @@ "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, "dependencies": { "color-name": "~1.1.4" }, @@ -2583,8 +2631,7 @@ "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 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -2627,11 +2674,18 @@ "optional": true, "peer": true }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2743,8 +2797,7 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/electron-to-chromium": { "version": "1.4.736", @@ -2767,8 +2820,7 @@ "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 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/error-ex": { "version": "1.3.2", @@ -3358,7 +3410,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -3374,7 +3425,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "engines": { "node": ">=14" }, @@ -3382,6 +3432,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3554,8 +3617,7 @@ "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 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -3563,6 +3625,27 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3699,7 +3782,6 @@ "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, "engines": { "node": ">=8" } @@ -3758,8 +3840,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", @@ -3831,7 +3912,6 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -4465,6 +4545,17 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -4618,7 +4709,6 @@ "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4633,11 +4723,15 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/module-require": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/module-require/-/module-require-1.4.5.tgz", + "integrity": "sha512-ksEXPs62btutKsbJKph7rLhdu7A6JIIHXTqvr3uhOP1mViI8JeHkNzYHJnVlHVCaRCuHa7XMBnKmxc23YZGl6Q==" + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4650,6 +4744,25 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -4662,6 +4775,14 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, + "node_modules/nodejs-fs-utils": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/nodejs-fs-utils/-/nodejs-fs-utils-1.2.6.tgz", + "integrity": "sha512-uDIfV3Qvjrtis2jOhHYzvUTAReqtnBXCVm0efjAYDgrCgZZBDxMQcZE7SsDAui4zzQ7GpqYUFUwoOpOoQD4vpA==", + "dependencies": { + "module-require": "*" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4815,7 +4936,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -4830,7 +4950,6 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", - "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -4846,7 +4965,6 @@ "version": "10.2.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, "engines": { "node": "14 || >=16.14" } @@ -5065,6 +5183,14 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5216,7 +5342,6 @@ "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -5231,7 +5356,6 @@ "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, "dependencies": { "yallist": "^4.0.0" }, @@ -5242,14 +5366,12 @@ "node_modules/semver/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 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "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, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -5261,7 +5383,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -5287,6 +5408,14 @@ "node": ">=8" } }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -5350,7 +5479,6 @@ "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, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5365,7 +5493,6 @@ "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, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5379,7 +5506,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5392,7 +5518,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5523,6 +5648,11 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", @@ -5694,6 +5824,14 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -5764,11 +5902,24 @@ "makeerror": "1.0.12" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -5801,7 +5952,6 @@ "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, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", diff --git a/package.json b/package.json index d256e13..d07b953 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,10 @@ "node": ">= 20.9 < 21" }, "dependencies": { - "js-yaml": "^4.1.0" + "@studiorack/core": "^1.2.6", + "graphql-request": "^6.1.0", + "js-yaml": "^4.1.0", + "semver": "^7.6.0" }, "devDependencies": { "@types/jest": "~29.5", diff --git a/src/main.ts b/src/main.ts index 22fd600..bd43283 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,33 +1,61 @@ -import fs from 'fs'; -import yaml from 'js-yaml'; -import { PluginInterface, PluginRegistry } from './types/Plugin.js'; +import { dirCreate, fileJsonCreate } from '@studiorack/core'; +import { + PluginEntry, + PluginInterface, + PluginRegistry, +} from './types/Plugin.js'; +import { githubGetPack } from './sources/github.js'; +import { localGetPack } from './sources/local.js'; -function registryLoad(repo: string, version: string, id: string) { - const file: string = fs.readFileSync(`./src/plugins/${repo}/${version}/${id}.yaml`, 'utf8'); - return yaml.load(file) as PluginInterface; -} +const DIST_PATH: string = './out'; +const REGISTRY_OUT: string = 'index.json'; +const REGISTRY_OUT_EFFECTS: string = 'effects.json'; +const REGISTRY_OUT_INSTRUMENTS: string = 'instruments.json'; +const REGISTRY_OUT_SFZ: string = 'sfz.json'; -function registryNew() { +export function registryNew(type: string): PluginRegistry { return { - name: 'StudioRack Registry', - url: 'https://studiorack.github.io/studiorack-registry', + name: `StudioRack Registry - ${type}`, + url: `https://studiorack.github.io/studiorack-registry/${type}.json`, version: '2.0.0', - objects: [], + objects: {}, }; } -function run() { - const registry: PluginRegistry = registryNew(); - const pluginRepo: string = 'surge-synthesizer/releases-xt'; - const pluginVersion: string = '1.3.1'; - const pluginId: string = 'surge'; - const plugin: PluginInterface = registryLoad(pluginRepo, pluginVersion, pluginId); - // registry.objects[`${pluginRepo}/${pluginId}`] = { - // id: pluginId, - // version: pluginVersion, - // versions[pluginVersion]: plugin;, - // } - console.log(plugin); +async function registrySave(path: string, file: PluginRegistry) { + dirCreate(DIST_PATH); + fileJsonCreate(path, file); +} + +async function run() { + const registry: PluginRegistry = registryNew('registry'); + registry.objects = Object.assign(registry.objects, await githubGetPack()); + registry.objects = Object.assign(registry.objects, localGetPack()); + + // Create separate registries for Effects and Instruments + const effects: PluginRegistry = registryNew('effects'); + const index: PluginRegistry = registryNew('index'); + const instruments: PluginRegistry = registryNew('instruments'); + const sfz: PluginRegistry = registryNew('sfz'); + for (const pluginId in registry.objects) { + const pluginEntry: PluginEntry = registry.objects[pluginId]; + const plugin: PluginInterface = pluginEntry.versions[pluginEntry.version]; + // Check if tags include Effect/Fx + if (plugin.tags.includes('Effect') || plugin.tags.includes('Fx')) { + effects.objects[pluginId] = pluginEntry; + } + if (plugin.tags.includes('Instrument')) { + instruments.objects[pluginId] = pluginEntry; + } + if (plugin.tags.includes('sfz')) { + sfz.objects[pluginId] = pluginEntry; + } + index.objects[pluginId] = pluginEntry; + } + registrySave(`${DIST_PATH}/${REGISTRY_OUT}`, index); + registrySave(`${DIST_PATH}/${REGISTRY_OUT_EFFECTS}`, effects); + registrySave(`${DIST_PATH}/${REGISTRY_OUT_INSTRUMENTS}`, instruments); + registrySave(`${DIST_PATH}/${REGISTRY_OUT_SFZ}`, sfz); } run(); diff --git a/src/plugins/sfztools/sfizz/1.2.3.yaml b/src/plugins/sfztools/sfizz/1.2.3.yaml new file mode 100644 index 0000000..1245da9 --- /dev/null +++ b/src/plugins/sfztools/sfizz/1.2.3.yaml @@ -0,0 +1,27 @@ +--- +name: Sfizz +author: SFZTools +homepage: https://github.com/sfztools/sfizz +description: SFZ parser and synth c++ library, providing AU / LV2 / VST3 plugins and JACK standalone client. +date: 2024-01-14T00:00:00.000Z +license: bsd-2-clause +tags: + - Instrument + - Sampler + - Synth +files: + audio: + url: https://studiorack.github.io/studiorack-registry/plugins/sfztools/sfizz/sfizz.flac + size: 47910 + image: + url: https://studiorack.github.io/studiorack-registry/plugins/sfztools/sfizz/sfizz.jpg + size: 33976 + linux: + url: https://github.com/sfztools/sfizz/releases/download/1.2.3/sfizz-1.2.3.tar.gz + size: 19102967 + mac: + url: https://github.com/sfztools/sfizz/releases/download/1.2.3/sfizz-1.2.3-macos.tar.gz + size: 1748833 + win: + url: https://github.com/sfztools/sfizz/releases/download/1.2.3/sfizz-1.2.3-win64.zip + size: 8286178 diff --git a/src/plugins/sfztools/sfizz/sfizz.flac b/src/plugins/sfztools/sfizz/sfizz.flac new file mode 100644 index 0000000000000000000000000000000000000000..cf729210c5edd89c854037cf1f7349532a9c96ca GIT binary patch literal 47910 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 I`jltAbmsY(gGNC&ae zo2c}TA_&qI3n*AFdw<`z{r>;#bI1A5xo6xv?l>!BtgQ8x`L_Aa`ONvw^=szW62PLT zt*Z@yKmY(b{sF({0S$nbnueB!nwFM^mX3}V!ob47Ku^!W&cu9zg^T^1OhZj|oP~h>(HcN?+`HqJ|GYpj zR^#OW! zEpSeM1jU2t*)ZbCE`e;FXJ|SEwyv*3@VH{=(_~uic*(6=)x01ozjChYc_#L4x99dk z1t0QdJJ;Q9ogYIf%XvqIy*&ZA%ptXqdj12HPORT9>D@!vFTj@)RHnA>?S!fI={RB=&vy`Ng>Mrz0!$IqgV36gU0O> zZC?Gboku*f?4Wk;^a6hK2r{Ie)Ut}J9N9{5L9tJ(&%C4=Q;wvIr&fxjo~tiCTVgL( z?n_zDJi0Se+{9&d^tfX;rvH0xNqZZ|Oe`)=qHVka+G#09_X{XEb+si_Yco@&M(Hpz zkee})xU7dmBm--(gPvviBYltfwO4~QiT%;(ls$&hnHvrCpWeNG`|jnF>Ng0LKGxaR zmrn;@-V42WTdFS5kw0mlYjgjQ~@c&cr|4Y-8%@X)I zwskCfLNVJ>M{h2b2@=wk{SSd{ za9&12*odDK`W7dVg*nKG;OXkqRMRZtf&-^g5<1WU5MD7A$)@vK8(*Q4PYNx<25cN5 zTSGtw5Hh>-{?rb8y_jlI$PnoXWZNtMx(aOQ^rLd?rNq9CX}_AA!jYQ(NfjV`7!m}7 z)d4?wpP51Op*ufrTw)J>T8YM3X{j% z8UV3m75{}O>|}@ol5mm2R7YCcCGt-K_^PW3m2y4Ep)pFNncy`M2Pty6I^yBHCDC?Y z{&u!%=pppNr}$v!v~1hkQAx{?u6y(c=&K6ij8UFxN;ZmTu3WzHqc7h~@u&4K0Iw$b z#BuLnUG5j~LS`dN{&A&D25W|Bi7BNd%O@>=S{0e$1hopo2)#d5)@(GBb-?SOsevhw zH+FbokPN$pP^2>MGcP#kCmYVEXP!?oELI^E#PZ&g2V`|@J0^EQU-eoa!Gk(tqv*O+ zE-xEgf^Jyey33m7^gPCmYu;<94q9CTY_cf6mJK@k48Q&E zL7>_8^Q)((fYCB)bL$@B29Et#&L*C(^^!{mKj+7|q2d+D~7@xj&ecY?AS< zuRW7tKGVV}aiSl+MLQniyqnOYGwmSCo(+S?&kt7pDEl{q?cLXVMw0#K50{}IQfArx_$-pLE-(%Bax|F=wvV4dmhsZ4+-$+nXq3~Dq3LgV ziMgWEnSEZIuS@;Ot!TjjfmJ-UGt?21% z*!v=->deB*^I;PwSO+qWaG@4maC4E1TIctZ-ZDF7A0dranD;a-DxAyN1_YX;hJQL; zXLBTdf$0fx*tOq<7mvD`_7*yqPYuoC5GWUq3@6(Jh9OEqg0$aiV47)9dc5z%forWt z5{*^XgzNC5CJ!`{9gHjFl_1j92>9#@J2ma-NAT*q&~c%>k#@=L)fB5`3`y}&f%ib4 zei`+epDvJ) zW8TKguN1IBcS~Xv%KEFSQ7ZQv+PG~s{pIRGH!f9@04|^u&29NAG_rg;F@Qg9d`+V{vI3>yi?<_k4o=+^v?4Z$I0XUrbP0BVn z6n$Q?_6+u-63bi@mZbl3n&{wRj5*+!T%;lW%BSlgTYlE&yB>AbjfF{ z*rb#5x>c~|R+6DF&1rVrRWnwUo_$F_k58}Yfu5ENb!?N{gS0T$2^SS7dzqqX?Mm^y z{A61A%*?jnwRoYBjkU9^`wZP}vvXsclfm(Aeini(^O2c&sS*bP@KSXM4oA~BN4_#z zD#HH2_i|RZ?8=i&TE^_KRoep`O^qE(-G;(=${k_ULyP71s_iCL%Cwa~fqpD+sTl%n zHTO&hIi5<0S#R@gJ;U4)|H)H!pVy1^F1{1{c)?GAsH8|^V^ORQy(N@Uah49c<9hjy zp@Z14!;`FSwIlifgQ&h5}4&g#eL%Gfm@Wb$6CQAj85PS=%y;#e%<-8@jax$t-q4ZnzV1CeW6Yx0@4H2?QRjm% zNm0kZ!pdt}ml!?IC5y2WA;OaBXdT1Px%*tMt!q1S^Un+WCKl@0tEH%pdfmY%g{R~s zYqtX2#J}K9rr0CI8(GdgNwyyFpeBf+FKJXxvjDp}r75 zuje>xU#9S?Bbuh(htVITo+TIVe_Fn2ZteV~N>2@{#yBy;heE;%=>}R{dum3kFVenr1GLPR^g_G4=n;>B zAD20=RaG->z9C9^04#(lo&@n{aCLIOpR zduAj*?@o@<@ce+@Sqe^(u|&PU_d$>I&imU+OtBY)Px@#}HhWkzczUgV;wha*R+q5> z7T*yoQEyM2&+}4)){Bc?{h< z=uYmEbLSIB3LR9>#-QrBqGWlB?P6kX}VhOtW8o88?dtRMh3IfaZZ*b zk|eNeNf5Lf^_r0XI5)GSh^d7?pND6%CW7c5EC} zn=Xl#uqX=EZjiM1P-m`hx5Boqvl8r@>w=i)PEU{@OJ>Pk_J zKdYI9I6E1x_CyoacMNCSCKlRHrjcyvx+n%+ak%t-ayxDHo1x^jFCu;3Ijm}1Pe4wqTJ@>9r6jK z&Dy=Ss`Ie!U%*up*T*R{ogs0U+^E2Q!|)&F3EgNi9J$^!m|F4av~*VntLUZdQ5I?n zK>=$MKu%(Dt%GcWq@N$LS)`e0upr}4piZgt)5e9AYX-D0{Q}rxSNJ5=?WpVp({Csr zY^j7y&%zZ9+k;o9Zl}%QuHDQJ`I7&5Yde8Qbn(3J)`h`sv2&Yynkld`YE87J=3h6b zae)W8%uM)bD9QrQQ>Nkx@7YlkOuE{5*|zb?Cle;vOrSn-9$L|x#EMz__~K+<6S2mi zbpc;{VTN`O<*0h$w-hUXEFaW^n3N-cLw>YAUVy-d3H^!33c41PTR zTF$3c`#)drf1m5i@eTZRVNYaR<{Ui?lkL}*VR^d=dRK#~-`hI0S)pzjXZbS0wp_Y^ zH_yfxzhwIh&@Fe+k0uKtW1!*uz!O{PU5Z}llV5<&YY)w>ABj9a@6UgII{$f#XJdAH z_;xS5_9Y|6^l$F=iwa{I0qX4zd{GazM|pH&u7}=w9-7m4XxMWMwrBpFgg~LR`!`Hm zJ3|wSYu`DXQ$EO0xydy%cW%C`^WWfk{i)x$UGgR?3^s9aod6RGDDE~loxy-N<8*ffNfSQs?p z-&~MDG&i2FDcfqcYb|$2bt5J`uD(7|1kxn{PDZUE^FJXrCq{ zLEMdS0sZizpU%5#a$wD6UI|nWrpZj>FRXGTJZoq?(4mi_UfS8YIcxvi^*T5V0GmSbg!-w@QNu~tbWW2=$Mfht55vj0=Z(0jcR$*cw ze7XVvw2||x=gJ@*b5CiX^|Te>pX>JdJwY+XLHFeDeS*v#727S3A=ps(3Lfl^$3hS> zdh?nM4-HL*$R1Q2=RT0nS5W89laH%3&LEUy^Kmz>Jxi|lndYd`W4k%ecG9q~E#;6h z%C5L4R38!{NnFQX59$f((Hs{xh*t0onwwvoUGK>#y`~@g^hcvUl$94Wy{M;?=kEi7 zpLX-0KYa|vwNC7eUzr_DivCa>Bly$FjrnF!qRad=Z(rwU+PYg@gM3yqv@zDP0V)bziu*#vINZ>er5#RVC(BuT})-;PF zou50u0QThtzt^<_ujzSHbdbJo#}?TyVDag4o^@i#mmZ!sLJeYTs`vS%?+V_D5*MrJ z@Qmiy_mZOzMIal-kh~bG5T=dyBp)Z^6KBocGD|x-#42O=yP&y4oHmP zOd~`yDCefBmrj_Ab5J$pC1(JZD!7?Nw6)fk%h-)c*GB@SpVde!rQZc6F6|e&O7E%O zR2MB{rG{fVH^5ti`iY`L?L6Aeu|yhWn0dlg)>+k27p^zT^U+@lCc}U@8i@^MN~uF+VmVdXs=9 zSjo%gt6G~5kcY;q2h8nGbrtdkODF{?W=Eb%6eBec09T9 z>QPa>o>{h(r3OmVY|o=`L_lcqyplaZ^QO{*lRWnjlMnfm?x_R(CvxSofU>_E&=U6G zH>uwPj?2*T;Pw?HaED=w$L^IESZ9l}q4bjkv^NcVG4y)Tmcrn7Bo)3%feTTWoXC3S z{B&$w%IpGCK(Lc#|=b{Z;hHBmdWttcW)rT8dDD zg%lvWq&$`t8UuMTz9YUO=(++L9rg;yb4L_CR}&(%+n@+YKK7iOf$1mO*WxOkl@qFn zPSaKD34cSB<;i5rumDyg?=bo|!#u)oSldC!hCp zw;Z!xXt39Sp)F%6X(-kdMoanIp2J>$?HZfEcs*k-ES_R2wxXMBSZ20CTz@jomWyxU zqLx6AM08o6#F4g7w+D9B(2BqZBDElWA7GIZzkr=b@TnOEmG4HY@B96JPu}nSDTruJ za55^DH!3sT`0OG%K<_Ylo&j4k!YJZ~PcLyLf&3OU znEbZ6=@IRszgYUWXoHwi+^!ee+y1zEE%-=Cd$85mrv2r|5C*2; zM<&9W{$Vf{7!35!8~iC_3z=|rty&7z{&cr2?(SN$e55zWQZraS!tLp!!UykuzHfKG zFY0jW%%|I-%E8}S=6Zes%W0{HZ`D>_Buv$}#jI(D?!jQVUH58t7;Kqp?Ce(j(KR^* zE83;g*^lt+8u(ZyorgQ(LgKbx;%jOkq6-ttPd@l$U0_klTB|Tz(zzll|3xALy_~wP!)0Y&+Zk#nb^VKu( z%VFym&y`E1h+jY$j6bC1&!O>>-)_Ak?0mR<#bxWkOrp`_RioE5`wEGHAL@K#-lI6b z3e~pDO&v zcam8txb7R3^2PG})k|()xC3%1IVAPT3$mu+D{;JTxL?4x0%$*teQ=cYeMMbLxT>Iw zb$BbaIz$h1fFnY~_n9rj1}ynqZSapSQ;Rn(#TdpPUJ9L5C4t9Mo)A`HFj(`$J7c!Y z67{W+DEOSv!bGB3WY7rPd#C5er1cUhym70S$yTOv@v6^=WnoujJ`=wig3~Wg2P7$M zOk=_=RArE&~os@+J8}f zA6bZOTW#>n&}c7?#-@aHe6gG`xTI5Q0EE@@55xWJ}u17c@VZO@9IDS9hbHB`BkRU_Y6Pl5Dzr%lpiF@V)QF7yOm3c*R@m_E{E5Vo2OyM{}Yw*`ssy zsLdIDFbY_*)ex0B%*6h`?pM6cjIBXe4<&9H7Tw|M%BOj?Wn^cVW;b0H|AjDxMVB6#VCSj>}mW^r_T3ukR^NqfzVCP3afma4HAzHvr2Z$gDdOtbIF zJQ$hyl*Yc=qpn9gIR^w50D|R)*-+dTo6k?)?uU#c_pUAK;m5*2ba23GUaNynPs_FS z8@3c7bjhwZz?T%%o{g8*~MXY^gg#TR880cuKvmn4r{O1v#ZCKwxbeJ};Xdtg* zFZq*ENmGy6z6F5RG>1#twY>lNq)N_p!akCNQ@t>o<3aqaUG;MbYJ3e<(f)+8k$PY` zo3|+Pe!o*GMVzJXh^n3vD9|vGPJ~!>7HikgZX}fq_GI00&yhF6Xmeoh8TxG32vX&D zvR9x50Kozs?ScitD8plH{pPiI;mExYHTM>=^tpGgJgdK?XLRYx?YR5ekF}fbU%7F@ zA!m`n5H9>kc|57hEpx(OK@xmcgb~w;D6oWpBmG|+KlbhkYA=aKTGCWnIS4sYWLq=e zIx3Z!Hb^MQZ~)}f=ygVSzSRgO*Z_~ylaubeD-4E$)y|o zgZH<-7+1O8XS+QZtuq$+Wci|PU?+y&tj2p;bs%YuuPru~xwI3}6h4`OP}cEgPL;Q) z+%6?W32EbyO+?hv`DXwR5=PY2{)Z0wH_7}k|F_6~ca4$mw`6|N^KT-%`2$u{2MdES zzJm42-xMKme@5Ce9j2vR$0EfI->0L4nm_}x-_R?km*XUhGI%=~J)Y~}s#P90kS@&l zpjgT{(-l(i6AIKs8_ny$l-gU|hdGu$3C#*Kot*}asC5Cmg4;0;0s>OIiscu`UJ8&( z^Afd7_>fO-vZvA{SFax1hyh{-S8n!Xg$`+Vi>hqoV>5i>&J{G+v^14p2(#}?8RH$P zONgI?b^Aqn9X+9-cg>It|4~Y~0`L%8h?^-6xHmbE7GPmL9OfZPbP*;1yCK}=PsxPt1errOTi{tb~lXukQwo&MlsdH-Xb451A2KoU0q;s%JJZ~ zim{Mab^E+&)^678X$+?X~PG)ipD#Xq35MM)O?G~mtidG23e4XQckrJUT0;8m`` zQp~L)yvYxCkoryt#UXIUY1wPvQ4iWZuOa*QI+o`$^zIoafqnrD8S{cAN??YEo^qVe zv!rqXpPZ1taQ$yYCt~eGW3svE8)}66d3a^(hI;75NbOez6W7u`Jifz)*mFpt8I}>; zZoa6iO@*8^8UbJ}6m}IhCZH_k@ZoQ4uoxeiA8u;rw8cS*?WuAi%?bhoLZWDG0y(fC zpYtg!L9;I)_`<^#?!KwYc}53(9tgG*scD`IxoBlpX57b1_wsLyTD=&)r^xs-vf)uP zCw(bJ_$efBGCPq406nfL^L}2v{4K!EkWZMLJc`PUln1g5DfpwErGFxRqQo1ut$D zX<^N=A@p3mf{k(%!4z=VXs-k?RRzc2{W}X{tTA4A3Kg*NX=9?*$!sjW#$kZm&pzMc zqJ=@ifVza9anZj+&GhUW@VLKOAi4h$H2q%$-~XpLi>H}uykYVkAyWs_WC(SfN&050 zkk3xEqgCIbXYCx7_QNR6w_C5PcivxibeUDy*t&D^r?I{IGqq8SEi)A}ah8WmlsO~)c=e{5 zYa~lMGXwwtN_QQbCFOszp`yH>K>v)UNLVq@oam?6*mTIsX!y0e1>g;YEy~H%ZhoyL ze`<>jRm;bFRak4p1o5YmWTyr;ZESJJ&SX6gF21uE7M`ti8+G+0)~0g5g4S$tXB<#~ zFJz>6!SM(QtWW6~)lDy*TQfGsvYk8h7N4vqG+-y}o^;Yn(sozOC@-4dBUqpEuR4zwOOc=i= ze|BcM;ggiy65dx5k>Nzq#Lir&hPMTGjElyOGhR=*d~n(Bfaw>|_WbK>rU4bceoy85 zIX`Nx_hw#6-)>XoFAKWdW=ntcK2Y`SnJD*Dxim-D;xcD1#C~gnD>6GE<+Mxc$Rnj% zY3UYxSFD9@j4A4MNb%NPQh(qCfk2;|LW3L{MPn?h4NE#~ZqNDeFSkucuKHl|6C_*2 zP7DmC)Rp04V#A_TdhZ`4)rH(I>kc$dT2e6FS6To13*h-$leyp=cdTkp4(IBp(X$|> z)5P%14;c`a)@1A&ZNFrM1s$clamCG+bzQICSK(pu8n37V`gn>wS>9-QFkEEQi{cT^m->+YY%2QZsYNGjps3y zXAQjyKGTbZui4yZyplQewRn>U8l6NQyv{hOZK&Ip>@?uU_(FPxI8fRZw?HjVB+~TA z6WtXb%;aQk2gjFUTqfM4EyK41T9Ta#JgnNs9!;C=vo!dU8r^wl-cHpU@--?O+*zpV z=B!LR-TQ%1z`1OTLkg5Q|CsB*bK$_Bnf1}l;TlHIVn2o>gcac@{3Qim z7|qJkZklIys3VdWV0Er#^=8@$czrdhH}p3$HEDXfHT_kW9^CE~>D0G_z{c_&Kyy(I z?42+;ZR!7j3|h;Uzsu2+K6KL!v5CxnKsbX z#?&nur9@>1K9`@k;>wGFOVz=4FWVNemVY&J!rZ%@xjfD-7r47=0~&6X60DC79K;>< ziGOu&=3TFTs-HgJaHqb3q#z(}n>a#MImTQ2Sio)2a+jLCTihv3aq9ARwtD>}XRVLX z_h2N2_I*3J*=5XZ*d%(b-&x|eKRjW#=qgh;eJ1DlMFKZS*D`jBi)rzS&vb7oihKzb zjEKzWxgo)5t>$AGaph(G+Lx<4*V^sj#c+#4hv3|1r&5E9iPFgge+uWAjb4}lJ+5*o zOvkf4#GO>F$Y3+U9DGx8ldV{TJo7+QBgTnBw};fQWAagjzC2;39ZjytKwoqEa8B}R z>i#f24tl@0>LOEfEL$>ad%RfbtfNW>l5^Hd-5tgPXxo8sOmWbrg&)2Cr=@oY0uM#9 zQ8U&dj*eboFOtoOK|3Lr<0tSkc|n38xeqCpHcmr+U8oJbd49f_5n! z7yxx1jNkGRPhEOQOXZ!~BYLF*$+3ZFq34fpc44$s+PSYAeh(q^hhXQh;Z|e+eu1Nm zC$)Vdkk8Jx(P;c~9AMWYdW40E0nqic-%)a6|D2@MtJQVaP6SXOvxRXxsK z%uqH^K&DQkq*regczDgc>Y!>vC`TlbUsYz^6{c9=$9*-rH$FHhW>I0XY1J_`%FzyH z&0A0#yxYmtBn$ezGE^a__)D$iXiFz13BtGvJe3kV2KPcRJV|)23@NjJlQS_;mByKk z>|(|uSnfd6E(;bLb|5hbIS83ZCPTrNCeA3eOx$6u+tJdc0aois-Q=KZc{iEI=f$f_IgB3b(%ZiCkadtt z@i*mD&cT}ln-X9Im=iWhVUkC1*_h!S?vt+?#||_++Zv`fYh)sV@HNG9jhCU3M!pfQB5@^5WPdTD{lDca7ctfqy?Iw8oCXwUe1#H%7I& z%(oOXnWrA@)n>K6A zPi!~NPCOXqzuAZ^b-aFdQ8f6@xrq07+6}%)`O&?W82aBtG+&o8f%<65mks@9RPF)H zQG0IjqIpMELjT$Emrce_8ur6?H;Ii%gPlu}(e(DO>5?h6H%T51G|Fh&DeB`8ZMuDO zo?olf^rsAqTMxAoA4p(#D6%7$JZq;o0CyJNV0q|^K&YVigpT6=R1R*LeXdtZL>K2y zLleoI_E0z=$5fZRJILuImzB7k;{5;a%RmGJ;b3g|HSSCkOQ!g=ykZBQia;ZLPa5}G(v}D-^~ghl zt9>_4y`HynB}DNiZssPBCn)8EGbnh$_w;Mm9TOY%TxED?5yPcvu*KBlHU3|IS>x|+ zw))<$U!Jd9h1#g z9(vXCT6YJOhax%LW3^DAHYAFXL6Z&(fk1ftg7C>%YzQfpB*n95A|<~uDQ{)_m+m4l zPbU0H(K;LnoT|DpDDSrxv*G0%Haf1)`?+{H0FT{pt}Fm^NY`do`Nb;ob56*68I%V( zA>rKfXaS|K59-Be6nOzDxtid}>(E^_Sh4IxI`#EDZYkNVXTkcllD%@(&&d^fun~b% zH_drzSClgt{0C%9`t=(G+NAm|$v<~6$Bwe==)D6vOArHJS*-irZNglsPUvS-elN9- z1r8-v9Rz#5DNzAE8(MB1yW-8mJu04I*RzpiawBVWF>~ca!&@^CuO^^6*7Gx&Vsq*^ zz`*(|kxJ|Np%=VlxV+MRxSjdF)U)~lpQiJ7mbb}zVdAadh}W4jy_-dHl8wAnh?|#8 zH_%U(n(mn0e5Q}7CKk4B08dgD1^pwV=gDKDs?l#n1Q-LL+jfPE)C-=QZFk>Aiq&Aq z6E5HOMN{dG0xI000_O3|^5p?CZvqB z!2jvh!I+ouUol|6qrv{4d=fN!Dr)@Z2iQ}4>tC$O0xN2n2rONcP0cxV=gNyqT0nd( zdqfemt-#ZKDuV${4bA0rxVoA2CaiEMSk>ef`>ewp34sjwtPo}9Ip2<;nt;ptz>y1% zTS_TeQq43bi@8eznfEvzh1Jcv9UBxqYLdHv;3Czg0;*iEhZR}VOB@^fR9zVT7Wse^ z%Vg0&1|*vybiHjvF*>7UX>&)P-m~1s5fQHV$}RE^rciQVN2!^CM-ML!!*AaeK$D1a z`;SNI36ES&stn7z!WdZZ-N55NRo<{0p+Zc1Bu;J8h>VOV)a|V+kbs8XH zg*2Ry$tyfmNwLCj4Yxmtpn)b-=bokq189+o(8VnTE6j^B5ySH!F5)VH+9fhT4(YJl z{imX)*5PhNT@8~V-&DIsI%oSq=IT}R?z$88N%h+ngM0pKE$$l+PGtR27_*}D{owKE z+?ZCAU%>hIp`y#jtNg!nQ866l&1PgwRaU z7aUM@Io+f^~(Mx_zOGrKA`X4$G3io#mfXK*m>e`lQK}VM_3j z>gVtXT&L$Y)}MgFeK+U=qs+r_b1UxL^j+0Qr9EYp@^mvvBKTSI=1A#$0J=t?`oYdT zYLLV7Oyv}n35>z1nxDJ!3T`g{93K>kfAc5>eU3x#xqpGLrRltcM4eeDhN{O|qkE?w zM>_Xy+*v<%{&_@F#rZa6F%BEnWT2%l7wiElL+6gNl$nw)!gE<|%P069R5SFQg{m;Q zo|E9F@P>DF&St5oy31zOv!-7LoW55!ot`3pZzfO5IMFcY2v!tL;@z0P~$03RH<-dTt2T#&`{zc$F z0nz`7*YoOC6xu`0Pk1dMdoce$aq(}hb^L^>x@B;$`;dArVXEev>}}?CHa9`zD-4kX zgC&?!kQS!7#o89N9KaYNCJ} z3tc@x3OkrC0jdz5x!nE4&&4=Q9^JQxhBtY$%96s zOme~MzTaVM$YeN~rEVPx$A()_NoDq>(@PRV04>h!rkQyExH2^4NgIC?p)&0a|g_+G+_#Jr$0=BVpFiDf639(Wm z#!3nA>QeS}qU$|K7z{f1*`%n``KHCkxM!)^A21rSHUSRJ5+>P*6dK6fP;=B=KyvxU zczzC4!cI5-S-jwg={G#3T+?f&^nivY{JWJuBztW$A zbBmOBJ)@OJ@+~L5dS)8jU$ji-94yc5xceMHF8#?`Hpiide=@Mb=7o2U-%}Q_f5&nE z6KP2;X+CY6V7};P7gpu|Bj%n5MMEb#ZdP1ON1PsH3Mb+&QQdm;LD18Y%6=p?yi?sN z`U&;9l>H_rM&g2^arl4QI4qT~(@uZ*8KzJi@Gs^kL&j(NDwK03CE0tmG(KHLh&>Q# zR*DqHHQNs2HFcVq&N5}k61u89E%M3teJ4gx26Ey;xdMUZ)R!=fk0Zn&uVt@e%_y#& zeR4g0K3)h1VZqORALMm#YEsB^sX)RNe`3NHOFE-4HS1mz(G%)Xn>o)-4$e0Js24c4Yw_O$(Z&lodE^dVIk3X-*1T+GKJpRW)Uf zS6hwFyED?(w^>4eG=oPnh+-f#l@m?mdHWuX(SL*jwOUY&6O4T32tn@$jB>I5))+j1 zK#hQfs?6hFTe7sJlvOmMzEn$Um7{M_>*AN21($+lUujJdapCAw*r=2hn1b*McU|3l z21Dw`i&`zTT}OZzAutbU^N4NF6yVYb=j0Utc{++O%SE)M>NmB^B2zcUQ5@V?*o6g~ zJ)p7p=4vhOMjO^RCk|jCDB&f;qzD0qcPPrlIH_3`wYQ-0(JF)*6g8Pl8mk-ise7%< z_y)$(Hu_Hm_&)@`_cJGI(7|$x5wgv9OA~n*TG8J*(|N}cZ`w5x5QsY?f0TX^5cXhs z%n#LF-uV{L!9h|oL3SfIo+Pusj)&;{yL;e2GM8Fvig|(H+a!Y+<9>@rG}(0%Df}0i z9D}bK<7o0#UBG-)y8BNi1&9YPCn^9%fM=J_L6IkhIZ_iHtiX*I=MVaZ@e>1>r_Fro z+`u$SC`M>f_#dB4{CkUk$G@gupM;+bV=ukrb#}DaNb}BIa^9d1Kq8W=1%v`uopIslWY3)T6(m)!-K-vk)I*D^oM{NdpSoD_vgRUdV@uHT6>#Pzw>Ff2# zH+6-Wk;gJgaLnAEaie^$2%w};mvOU= zl;j|2D5F!+Gxt-3^HdbPLLOA^@YBf=9nMOU6mlmMZA`rx6Ye|I*snsRVkbEy1cy|1 z9&?xVs5gh>j=>EP675!4H{&4yhw5pH*>!W^_ybs_O)U-xZt5pbnRnV>vE%%-`nVVF z=k#^KTya5MKf_o{PfN?-s}shmL@A1Z(g-cWrH4lXW{w4NGjgxhpZpPp_g~;&e$O)5 z4(5nCC0AVXc2N7$0{-63eHm&mglJOq7y&tPdhq1=8i%UO!4kr9cr4I+RL|o#|a+7yAH|zOrsBf z0j$k@I>iNua}jzvCTssK>ij$C-{{~rR=(Xud!Wd~z56Rd_wk(cxf3nMyWFEMByV)&OvlB{ZXG5)aF!aXGM#dg-iy;k=S>V~D}BtQZA=A5&KM1( zu;4F1B$VaXr3;n^>}d%(4~I4M{oZ0cXsm2z^6*}uYVE6s<`N ze|qKd_hx;Otup#Nv>xC3rL3KrqYl)jqugPYF69wtdm(pB9^x)LodNUR zySPAOJmJ*hF+q1@ps)V~CVC(|<;ST$>xM7x?P8>)#{(7!7A;0RP=ONGd&ua}EXpmB4X~4o_y5)^Jsq>q$OQj!KAyyoFk*uip zPa7=9pBzv|eRIje+NGwPSqA6vh6Owtt~3mqn0>DmdzSHP5=K*-G2tJk zz3AdUEyI8L5&q?YT8|=G>7e-y5I^dU`s<6cS?4|U7k-XUrpMwHr$SSTm+z;0R)3he z^WaCRI!jXh8NVZA5mR47wGeiXLpt|0 zk{bZ9B3s8ZOQL|6!%5|q5u|`3+tzUj(FHvmAVm42qRXecsP)V)o}y5X@HC_-%is|z$JUIaK8xa#}5 zD{W$wwY%+BIQxYzQ9X_u?HH@1@4;KZV!X z=n(%=)q@d&4F59Ae!C+7G~l8|Pr4}+GU1+-3O&nkR(cRVYFSySM^jVt%YUYEEcLnI z|3Ku1?MdI>hioXa{ucg!KC$L}x8zTPL|nPDN4li2LN$VUV=t#6G;8oh=-4?+i47pd z^I`u`r=g7GZ2N*f7pXc~!?51H3A&7ztx>zo-k+pHAAHqBI~7O}ncl=6M-9t94|~41 z1E`dq+Y#_5@`?Vzh|jIjtc7i1pLK@J8E{c=n04~2*P~g9pH&w}ki4CO z9mmG)Eq*Uj9^2Bf`13~MoYs^77rxX@h21`LLNCbgH8Q(?pUNtz=!=lA2XQF#jkdM$dk{Ju~8iwDmU#iR5?$>3ACSn z-gkyIwQlQ%-m6sUAVO#&LV(bFlirIWNbe}1Nbg9Ku2KUe5PA(D(v%LO^b(XVQltuq z2zs*CUIfoRob7tfx%bC??*75^ObByke51T$jQ1;3f-XUqbZs$-DjJ{O8nszW(%fx; z0o6^8RRfMf{lR%uj;fI{5a$|VAn_%V7A)ePhGefloy1J_KF0=oQ_>2neAJO*R6XuM19{G;OwErY;CBj&_Ca(7^T#L) zNfh;kYGBx%+HVxtb)L$avNCm`B1~4IFacW;B`oP~2ZBP13Z(kP5T7_~C?sHc8F%-Fj> zW%ypQHvrH$MVvmIBsF_uAsqF9YAH=-BZ#`&UHs_y9@F(Ye)ZO{PpEsMgrq>!4~S4# zuiiXCfS|$A$evditMUBYqQW`$GYYnAV_^IT4sO9)ETu$wvc3o;zbeba17VK@rmBR6 z{XI7z`O;8;P!>eGcB>Nuf{(jUp!TOL{lR0hd60jQp-fbF!CN~LZ8Q<~OgvUp#LIYT zug8#~Eyn{B&q~e{_xlV2Pv0(48V4M)|CHxNdYRK9EkVR^5tR*i!@t2VGLw zz}h4YUNs7l1SsOpgQRZ2EE$EjLP(b%!Z^MmzV~d|W0|=*tb+kh_){N+@Fyu0V=5FM z!7vq6r@ow`j?uy!Ow8snvf3iw=hfS1JKI0 z8=kS@P2+#fdHk~;&(-?3reUPmOqJ*TIL8uNaK*{fYB)-ysdj?!Eq2&hP(9gF*~tYt z{vst|t|we|`0T!xzze;Lg4H ze|UACAX;?UuU9atV_b6hPYCm?fzDa~H3D*tl0^!DDCV!9|F<{(&p%+HO4L*0Aqrk4 z2YqrZc;>?y(Lm*MkKb#HO0>nvpn>+<208cM<`hdVODBEH zmeTVb_(Nlf$Ny01pZ6=Q{ri^xCpGqNgb_-TdGI*$OL^5mLh~YnV_i%-B0f2hgq@uO zPTVIGOJ)iKb#M5^h*lU|o4yBj#Bq(p(AHhvkBy?!hEZK}5Lu)5&j$}1wN7xQ2|JLg zv(#M=nwC4gr>W$4!T&Ov_PbZO1blij4Q2d}us3I9Yu@=zh_BZy_Bwz&&rhyWwb3*D zSXcfq>~>Q1UCWaay@r~kX^sr86fTQtiMKxib_oi=oh5?({D@857WReiOKVC*NRme? zH1{$$GFg0=4ju7$egX=(j$}?%qjDInq*HZTAd^rF^z-Kj3y!xIf)Gi|l}y?2gF%S9 zluE4}@JMBx_kSsGdsc4K%KY5QH-;WZ&mey~jzGpef(Z6Bw2(^ZFG%3~C^`v}{?hY# zg!K0E_C!qVVa-YL2!$AW@E&Jlh>gKtWg$vNard; z+%wv~+R#R{_i&{RxzzH_Z`bfg9&4KVMH<7r7r2ob7L>W{&N$d#(42Aggrjen(rg1Q z<|0o*>3J?3SRD=O3S}Vc&}W=5v1- zH+MX!?)v`jMpfAmV~IpxzWZy*966qg)NuJ)a?~cV<)KcHMM{FW?7?8SW#1l1jX&q; z0<&F9RWak4M0V~KCa^8{O@g$(v`rTz_WNI8wUXiw_dRjHjQR;Lm0Ca^tt?$z{>H$G zT|0*!(7DQ-%Il7&7EeDtpEB~Gy{h%1=0Wz4LB>e^3pJ*@ktsX-=!spZcdXlwmyHFR zcfav+vZx)sy-13KA91;;vz87xVqOS&52iG4A37`xjD7+G&eXB z+B%u_x#!E#!AySPpz^;N{}_7BVk>dbBZAtJ^Dl*EvPEvRx-hkR{dhb5{-)&|F8*AU zWT=%Iq45PSCTxj<86=&;=c2&ImA2o7u*`=0QOA#A35|0f{{2&b0{YCGGiFb&^(`ef zT^PYZ6LY&!r}_6q(Q&3!(R_h}<$vQ29P0WBu*Ey*6ZgY^@G3!cp^Y_C9ro}7#|=3X zmZYDfoZ5NQ+E-sOI_q~&eUv>ZO71QtTC2r*A(&6xLdQ1~>?6fQ4C1g_vN&Hu@gm2i z?Nd06y!M@2ra}z@+TM5>BRwILT%&YiFMUA(AO8d>YwrXdC#9Ur3;&(GAX5E+`**h` z0|!}~p6;ez6u^eArV~B*?vm24!xFAn{xAfZPpf`T>NB3bK!(M)H?!~CY)hPGh@(Apzl`|_UkZMqc`*2-dH1_;XsD_71^y^v zG@k9^5&5O#GdCE~_r1c67e7l#Cmm!&TS5^DH1MYKlWg;=;OPLbkW7037aE5?Zu7>N6qS{*~R#cw5fEb7ynd< zsDzy3YdpreyYzkc(&Z70a(+}U6ia2R?dv%C5m2;^Tb80)>{Z+ zaVciOjn3+eN>s%Y6B6t?4T=&<+|nGIBtHRzu6IDqTJX1MANlm56g;&+@+oRc$77q@ zh10UkH9{>-4fcZnapFvHf8rO_H^;ad{YvRonw;M{u34L)^;qviTbHr) z4Bh4TVqY5`rwhdz7mmD7)1vdd;{x}EP9OAn0+kK<@YHi$t~oo7fU%diJ$PIGt50#wgk+Sv5y$<>EuK64Aftn+HKD}o!C%ekb`x1=VvTNECz^vpgy&5(Qd z(#X5|HN!iyD#*gD?vZ+%%%vC6j{6N)h8J{47bwZUs7)P;v?2~mOt@Xr0IL{nWh-y6 zFg1BG7y7*p4}nR*>VoFkJ4Q-*P?($t1x8iy8b-B;Qxw9Jt;)Md3pB1zo)+vd za~HbCs|DsM-;;dAJMct&II%wjRzepe-)9n2K?XvdZ?{>u&ftQ3Z95Fxy(33X5E_Yj zQROzO;Cc|et9+$LcU_q9MoM0U2z=d>lHP4Vqmo;Gz)VGNv~Xg?`4p0`8ilyZa=p}sT) z|6R7UQ1T7R%PxL~(eV=zIKcumjZ=KiZu%yVDvgckpQ;7Fa8WU@zD3o9#1T;Sk#NOH zhqT%{G&(I+ISOQHESJw}x(CuO?+ykbdi?gjE|#9k%N2@CTV=eZeeJE<7>Nn#3xpQq zyK2?X$AD<`u)KhB<%Gk2t0K~qOxpu3TZp3ql22u+b;xXTvl5OwEtA@EHBY~tVz#i$ zAXVS)p+7`@C`kc7;RqN|6|wnD7^laBWZe@lxxrVY<;XInN8|_jb{M03N1z<>C}XbR zpgqw77;2$_p<~mgXAll5GWSqoAOd1EQ9&jm99s4-=c1FHO{vyl({?7Fd$vq%y$@}g zim$NdkxELhSSI17XB_v#BHReG&}ADEBObZCJm7Yvyy>UA78FA>0=!0<<|e_6OZ`N| z6Q0VK3Y9vBsKFZ4S9;AIz3V&4iJOxc%GF4mwPNSgT9k6pl7bKFx%{Vk{MVVXJ8Jx& zuZa-a0TK_?c?#HJf?QoV{Djn1jh{n}kWN+(TtyfUo%o$kt6$DNZlkJPrx?8c zH$+V=l|civ$2)H37mWkoq?P;LW@Vrx)gmfoFQ(Sbx>wD?LsiEeCjT7erUuaKi|{%`<;h~JS2-@@Ia(PFlU0i!t<{egvTqLM=h~_WWzO@mEMx$rZU81WFnP+Ow; zHw2jMcpg~1muudi9TZ!iL@OR?hW_iukJ&~tD$VYx$Wqd{r7>jK@ZFw7N_thGoA4X2 zNL>?df%#B3Ha96VbpjV$WPpoj;FmX_dBup%D{LPY7TFZT_Qr&4jFxnpCYNWQ8=hUt zc6L-#wNL~IuwPbm@yO+p$q>+VCj``LLF*k2=rE5piAAl4SYzGY}YW zFj(o?>N&b;SlfW+g`konH>5+7_mXVOuw{HOOV@`{xA*&L4D*QjIX^NKLQq-1v%N>P z#9mjXN0hiY3PVlnl>~c{(R-{9o~6+92IBr)9@?yD_QvuopyD1quG!!fid0*-sYv%}$u+jBbHnFN~%IZ4$E` z>bF_kx7>TMp``TPG|*rTCa#GpRBoBr-MWhTv6{)P%S&&=f$9a@)Mg!xS?IU4{Dsnl zSJ277C%b4_0{AC@-1lZdX#JComk~cERFa$TpFE^=da1X#?uC13nmk+4W82)GwPEq% z+)q4d#!Xl*4b{(dsF&+zMTX}ao}173cGU-{6C!6F=_}beJ^aZGW1io zm`lewbl2;8iPCUWE<2AJJvCRY3BgUv=+_~v1GNw|u5N`?96rrA@Hm{-{bxW#J#P9Nm zg|Ua&essFGeu_-47{j}Tcu)Gq`p1!=@`?EJB|=qeX2YL=I>D%Ety9mzAasdanDdb$ ztQr@X7Wttg74hz-qPoU6OUG*2GSh)0)UoTm<;G)90e>rr{{)x^b+a5kM&3fh^4qqC z;9Z4G?_N(Tdz|QlmGv!&1>%o4jk)+8?oDrrYH0aD=tGeTs+M=o0UpQ}eXdv0A81zN zR%qfMNn=F;GKg&;HIhxZY6SDbn03h)PjdY#^jE<~SVN0{klIpy9*{RkmlH zb3ly#D_C75o0Cjk!&$gjjI&DXx5ICw>6&Lnln>Z9nhF#k$lr(#UH)6i8(+^NRmQ>k zC!i+mcsZ*jTw=b5VP`H;LF^|WrJl5t&dlh_1B#JJ4549aKD&S-9P1E2(Z#V+bFlY} zX)m2ZE3s!A$v5m9S0c;*>UDh>&UqE)=fS&*QVsKiDaxMYc8hsQOg{nmHhOi~5q%U@ z*8~IC5GAhxVE!^$QqP%uR7EXeKJJ)mQo!RkkWe^{1H*(UMoyITkOMaLIG~zz9p~iE z({n;5-dAv8y+uI8x>P^7vC3&UPl~|F8$r|y@HH(fD zqQ4@%?V|OqI^o-xghZ61ucCK;c|e&qkHfrc^pZwszupf+rSF)SOFTR&Y^h=KHE(>fn5XZs*%q@|A-4Za-}Kt2 z^fIr00@jta(Rq;tVM6I>k-hSd#wNn}AB_zK4!W_4J8j}lV^l!27(G{t5h`kKTz5@0 z)8WBZbw&3t9}9mO!Ibz}a~o#5=hQL&h+2dGDgwh}BCRt9s9#>@qnPIw?GvNpuYzRw z3CKXUyV`#w2`@c}uPPQQ7H;6I7Gm(A*JF01&z0@-Rjrx8WO<2Uc;JB8hRhbx$2z^O z7gO+EIHY3qj1Sr?R-f%xu}Qd>fDv*vEyUv^*w2ruH+5=w)?JX7eP~1v(uf~CCF>PD zwRBugSrF|jqWce*87ndSN6N>1jqW64dKjOBSNdijd>6il?g~i$2H(+JJ zN17)WcaZXtq>%|{O1}```K7QXRd~BZVumfM)d5rH1{p@#n z&g{D(9~DSF*b6W>p`&sAoGmG}K=a_vJH!OSWkgZH(V3}2#lr4{FTNqBG?B?^IPHqK zud$%GJ-2+Gv_H&$UN6FV96{f^yILtA`AJ!U2R9vV4J6{U=4q6idJj;jABDSwnq$O% zpMS-$^C|JB7*Xn+#nktAEVZiQUunO-3Kd;=$NJ1udd`H5%KD}^bAfDuIG9e~ETM>k zE&X#{(_T0q0_x2Vc6H^%F3r(8b%3`yU+d2Xe?d1}J~te=li4=aqDJ}i9NpQb)l}iA zvu$phmnVdfk3>LSyZlH~B0*14vOcblClPVFktCn`E?mQ;*Y-|0xHB@7dEA=AJ5TNo zQA7oZh#dX`oeh6M?aq%PQ6&f7R?oej5v6x}zoZ`4D2M1RN8PO-GIb(aF^Y|>kibpR z-Sh7d$+{N4p5#f4BbR)trbmv*rZXsLH-n;VjHPg=B_#^jTw&#*p$cDX1eF9fq_AiIk9T##WAArm<;qMd+LkJy| zfcRx1wm!#rH`JMEhuGEuxoG2v$mR1Q@SLb`igRYT)HP`3ywD0A8zM};Zt2vwxu0OK z2X=+vjfo~u;;lACNyvDyF`z?~TB5>@b@q|FUDlmDO<{GCEb`ES!U2nDa=MuH41M_! zJqC3}J@zUF3tWdIuTX}!T;5%%UI<`o#;Eq;0&8F_{C@3M zd5ZeR?ZDe7hCy&u9(1LPMKHz$)tigIn#r#v;6E+PUz|r=sqQ@%nHHI-5sdYrwZ)bP zveEeZsgWkgL?sr}!VqdO;i+Gttfz=2Rc>b(AZb;p85)Q#*-?tR4wFO9l2wdY>)Yll z9+7o9Y869dfv&}@JmeNTh%pL-){aXszxlQEp=*nC-68jd^M(U3nIXnbq+>kK?r8{5JGx~{-OI))hEQLzZXHjVSz~+) z^_r0-gUdGvx1#w&p@*t0`Rk0IPlu*=Zpk5;$@27UM{O$<@rjkZHGz4u#UwCxAcYA@ z#bp72d;r>F=64^oT?zzRj&VGra3ZaZ<4LpCw~h1FVONru)3nDCUQXjyyn&qXr5Wu6 z*WHTcAst_HQI6M4e@cNm){~ZM2-nC~cs)$MM-_&N@u9xlhWEb4rswQQ%TdWsfKH;# zPNIy`nE3SfyxIkDSY3?yE_Bqkxa(aeHx5FWEp1J!DRHD~gunyf*DzTYetc##${FqQ zgln_D*%5ZwC1DjygtttEr>&Uz2t19F^i8|8UeK$N6CWa;8}9E$wt()chas9-Zb3T> z2NWOgu*8gH>&ph~&FIM*uvRlz$RA>`nP*s@GYaP-4LOmHu0KoA7@Kx-E0Chhzy{_~ zLD{Ru(`Hr~2f4j0WuxGjf#`}A<%<<#OmIWN<#flIkq_WUAHhWWvOKC?0i|3GBjVYr zYxTh_IyttG=VBy^p0XeWR$MIe*^9;>W1Z;7KOA&#mmkU}-4 z-PL2*12a~~JIl(TlqZw#Zhr_R4<(_q7_jI{u{>MOL~U<<4%>MCf{csX*G2a(-sAB5 z2A4T#446tsrs6MW@(Zy01LXyP5aP0a$8p?G(6{r(l6B>YoVD->oxSTbpG2%0(JL4Hl$%D|`Q1#jLYa|XX zWK+60dbve2y>R`;Fc2c2L7^_sOJaJfHRR1ml+r%_qmWy037rzFKE6>~Sd-U5zZXqm zut8GHcOz|g=zVa~s4GA^kMRA-cQiBEcLoy*_OHD093DzXs6Ew8e?iWAoqAljFai?_ zN{xmp-2pW^G-43!qb=qdKYOBi1PjthxT6FIzZEPoOw&xi{!#WZH35!D7S(97K_2-# zXVYbKZSwVDA3nH*F|7Ks2*}Jr@klS+LSL5NG358et zJU5$M5WOK7(G|roVQy-+I;avmF9xDRshyBtZo)G{udKwS`U$Ewg{uO~<_oiuVfc}L zX7AXM52K7?!+#;wbR6PLb$lu{tc9Ii>KY&K!0;OjgN15=MFy8?z)IZYq?-umUvrvs z!q<=6UB<`Zq3A^hf`Zv{NG1NG5yzUb#ZQB&n8*zB{{5m`s*Wa(*o^?GnT-j(-x^_x zYqMyghjv@??dw`p%w9HNDxW{zyvhkOyP_R@VwAd`fsL7tOvcQ^iAFBcRuMFNoB=2P z)LB0zgq{GRqxyYn$MJz|$`?mnsntwRUmKkS4w+?O=qdAVno6}My;)b$tV6x1p#(`T&KOhP{4w>_TOhM#+2BrNgOLm>!bBwM2tVpz4hsumD?w|N-C5pP1Qg)Z>M)Uj7>XwURqG6@YDp@ z+UaY-h55W_E{QbkiG<$P=&Q!)&!YlS$wMrHrJP@zn!{KOu|dT z`V@foGT>3KHrizT=-Ku=>TvLuAZ#2JRuqfvPpKWLMY0Swl2VfZsF+Q&)TVPDwG)O* zn7=we-c)y~Q_aOVDhG}WJgx9@B`OU(?3$0#e=qMfjn(vSLn}+ z{Ua^NCVTpcqwuto=lzv_3|CEj+ei8pP~kG+PzwO_=D`M=G}>hKqZ@Z)zvkFmnTGtn z^nEr0*>uO7bi59%8D{s#TdXTG7-FTWA4{ah=Tn{}ZwXd4`gi~FkN$%yo%}RccP=LP zsWj?L#8?*7s)fcU3Spc=x=HTZ&$%yoP+-60oYcc|rR}e3^I17%*uA>}+@buV3By40cuYl?mb)4W-Nh2oaJRN6I1((OT<|25|7r-dFamSaK zgxH=}@T7vV#*5U5o}*WTko}4)FAZf0R3hzOy15~cPOgZP^TBb19kyqr`YcYONterNLrYb zujH5%2#u__V^gBukAnknJFdL%rE04RxZO@OBFeUZ{;-TF!+ZIQwH1Q6x;mh^>Go@P zC|auyJTv?1yMm9e3ZJ}?J*q)wxD9@!z`@6liCpsBRL}u9f2}|-(|0|{h}NHSa7ps~ zgaO42m%V1i5Ff0fLt6eQzP$srZ7CPe^C{)%XYm>kj7unx8!9Wmkl)WN#FW?koWjhT zNFf+HCnU}NgsJ7rR99i=ju>R9(nhD;jo%0{1|y7o)k#Y+WQ*QSRIiyL^7tkjGjW~d zDjTq-)^;Lq(iMOyIa9b|eZ;>mO@mnJpXf&N@4AWV%q1LZi+cTHW=1Ya_z+Y&a%?@r zRRedlTpq&@BSHyY@~{;Xz6EQpe*_NKDUIlqvf2-Mt`m2OwKon%NV$iD37Me9LcN)y zcaJ6DtGRgv48KW_>*X%)0>Lu+y@0qk-MgNYbqn1MZ_sH|gKk|JK9*#0Ru}hLb?j(PcqDr~d;s@dMBR literal 0 HcmV?d00001 diff --git a/src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml b/src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml deleted file mode 100644 index a5ed945..0000000 --- a/src/plugins/surge-synthesizer/releases-xt/1.3.1/surge.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -name: Surge XT -author: Surge Synth Team -homepage: https://surge-synthesizer.github.io -description: Hybrid synthesizer featuring many synthesis techniques, a great selection of filters, a flexible modulation engine, a smorgasbord of effects, and modern features like MPE and microtuning. -date: 2024-02-06T00:00:00.000Z -license: gpl-3.0 -tags: - - Instrument - - Synth - - Modulation -files: - audio: - url: https://studiorack.github.io/studiorack-registry/audio/surge.flac - size: 141339 - image: - url: https://studiorack.github.io/studiorack-registry/image/surge.jpg - size: 159518 - linux: - url: surge-xt-linux-1.3.1-pluginsonly.tar.gz - size: 94448096 - mac: - url: surge-xt-macos-1.3.1-pluginsonly.zip - size: 180726292 - win: - url: surge-xt-win64-1.3.1-pluginsonly.zip - size: 48165645 diff --git a/src/plugins/surge-synthesizer/surge/1.3.0.yaml b/src/plugins/surge-synthesizer/surge/1.3.0.yaml new file mode 100644 index 0000000..7166fb7 --- /dev/null +++ b/src/plugins/surge-synthesizer/surge/1.3.0.yaml @@ -0,0 +1,27 @@ +--- +name: Surge XT +author: Surge Synth Team +homepage: https://github.com/surge-synthesizer/surge +description: Hybrid synthesizer featuring many synthesis techniques, a great selection of filters, a flexible modulation engine, a smorgasbord of effects, and modern features like MPE and microtuning. +date: 2023-12-08T00:00:00.000Z +license: gpl-3.0 +tags: + - Instrument + - Synth + - Modulation +files: + audio: + url: https://studiorack.github.io/studiorack-registry/plugins/surge-synthesizer/surge/surge.flac + size: 141339 + image: + url: https://studiorack.github.io/studiorack-registry/plugins/surge-synthesizer/surge/surge.jpg + size: 159518 + linux: + url: https://github.com/surge-synthesizer/releases-xt/releases/download/1.3.0/surge-xt-linux-1.3.0-pluginsonly.tar.gz + size: 94448096 + mac: + url: https://github.com/surge-synthesizer/releases-xt/releases/download/1.3.0/surge-xt-macos-1.3.0-pluginsonly.zip + size: 180726292 + win: + url: https://github.com/surge-synthesizer/releases-xt/releases/download/1.3.0/surge-xt-win64-1.3.0-pluginsonly.zip + size: 48165645 diff --git a/src/plugins/surge-synthesizer/surge/1.3.1.yaml b/src/plugins/surge-synthesizer/surge/1.3.1.yaml new file mode 100644 index 0000000..3ba2bd6 --- /dev/null +++ b/src/plugins/surge-synthesizer/surge/1.3.1.yaml @@ -0,0 +1,27 @@ +--- +name: Surge XT +author: Surge Synth Team +homepage: https://github.com/surge-synthesizer/surge +description: Hybrid synthesizer featuring many synthesis techniques, a great selection of filters, a flexible modulation engine, a smorgasbord of effects, and modern features like MPE and microtuning. +date: 2024-02-06T00:00:00.000Z +license: gpl-3.0 +tags: + - Instrument + - Synth + - Modulation +files: + audio: + url: https://studiorack.github.io/studiorack-registry/plugins/surge-synthesizer/surge/surge.flac + size: 141339 + image: + url: https://studiorack.github.io/studiorack-registry/plugins/surge-synthesizer/surge/surge.jpg + size: 159518 + linux: + url: https://github.com/surge-synthesizer/releases-xt/releases/download/1.3.1/surge-xt-linux-1.3.1-pluginsonly.tar.gz + size: 94448096 + mac: + url: https://github.com/surge-synthesizer/releases-xt/releases/download/1.3.1/surge-xt-macos-1.3.1-pluginsonly.zip + size: 180726292 + win: + url: https://github.com/surge-synthesizer/releases-xt/releases/download/1.3.1/surge-xt-win64-1.3.1-pluginsonly.zip + size: 48165645 diff --git a/src/plugins/surge-synthesizer/surge/surge.flac b/src/plugins/surge-synthesizer/surge/surge.flac new file mode 100644 index 0000000000000000000000000000000000000000..9c961732865dc50cfe84c1e9a4f92b10295813aa GIT binary patch literal 141339 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

=97v)wE+YnK17ZRkoXR4AC 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

#n{l=uw9xDCugJKnKUkt&e+kK-f}*jE(5 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%0Dtiw1X0hXg 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 literal 0 HcmV?d00001 diff --git a/src/sources/github.ts b/src/sources/github.ts new file mode 100644 index 0000000..34b0a2f --- /dev/null +++ b/src/sources/github.ts @@ -0,0 +1,130 @@ +import * as semver from 'semver'; +import { PluginLocal, pluginValidateSchema, safeSlug } from '@studiorack/core'; +import fetch from 'node-fetch'; +import { gql, GraphQLClient, RequestDocument } from 'graphql-request'; +import { PluginPack, PluginRelease } from '../types/Plugin.js'; + +// Plugins need to have a topic `studiorack-plugin` to appear in the results +// https://github.com/topics/studiorack-plugin +const GITHUB_API: string = 'https://api.github.com/graphql'; +const GITHUB_TOPIC: string = 'studiorack-plugin'; +const GITHUB_REPO_PAGINATION: number = 100; +const GITHUB_RELEASES_PAGINATION: number = 100; + +interface GitHubRelease { + tagName: string; +} + +interface GitHubRepository { + nameWithOwner: string; + licenseInfo: { + key: string; + }; + releases: { + nodes: GitHubRelease[]; + }; +} + +interface GitHubSearch { + search: { + nodes: GitHubRepository[]; + }; +} + +async function githubGetPack(): Promise { + const pluginPack: PluginPack = {}; + const results: GitHubSearch = await githubSearchRepos(GITHUB_API); + for (const repo of results.search.nodes) { + for (const release of repo.releases.nodes) { + await githubGetRelease(pluginPack, repo, release); + } + } + console.log(pluginPack); + return pluginPack; +} + +async function githubSearchRepos(url: string): Promise { + const headers: any = {}; + if (process.env.GITHUB_TOKEN) + headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`; + const graphQLClient = new GraphQLClient(url, { headers }); + const query: RequestDocument = gql` + { + search(query: "topic:${GITHUB_TOPIC} fork:true", type: REPOSITORY, first: ${GITHUB_REPO_PAGINATION}) { + nodes { + ... on Repository { + nameWithOwner + licenseInfo { + key + } + releases(first: ${GITHUB_RELEASES_PAGINATION}) { + nodes { + tagName + } + } + } + } + } + } + `; + return graphQLClient.request(query); +} + +async function githubGetRelease( + pluginPack: PluginPack, + repo: GitHubRepository, + release: GitHubRelease, +) { + const pluginsJsonList = await githubGetPlugins( + `https://github.com/${repo.nameWithOwner}/releases/download/${release.tagName}/plugins.json`, + ); + pluginsJsonList.plugins.forEach((plugin: PluginRelease) => { + // For each plugin sanitize the id and add to registry + const pluginId = safeSlug(`${repo.nameWithOwner}/${safeSlug(plugin.id)}`); + const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; + console.log('github', pluginId, pluginVersion); + if (!pluginPack[pluginId]) { + pluginPack[pluginId] = { + version: pluginVersion, + versions: {}, + }; + } + // TODO update plugins.json to not need these fields + delete plugin.id; + delete plugin.version; + pluginPack[pluginId].versions[pluginVersion] = plugin; + // If plugin version is greater than the current, set as latest version + if (semver.gt(pluginVersion, pluginPack[pluginId].version)) { + pluginPack[pluginId].version = pluginVersion; + } + }); + return pluginPack; +} + +async function githubGetPlugins(url: string) { + const pluginsValid: PluginRelease[] = []; + const pluginsJson = await getJSONSafe(url); + pluginsJson.plugins.forEach((plugin: PluginRelease) => { + const error = pluginValidateSchema(plugin as unknown as PluginLocal); + if (error === false) { + pluginsValid.push(plugin); + } else { + console.log(error, plugin); + } + }); + return { plugins: pluginsValid }; +} + +async function getJSONSafe(url: string): Promise { + console.log('⤓', url); + try { + const response = await fetch(url); + const json = await response.json(); + return json; + } catch (error) { + // console.log(error); + return { plugins: [] }; + } +} + +export { githubGetPack }; diff --git a/src/sources/local.ts b/src/sources/local.ts new file mode 100644 index 0000000..1112977 --- /dev/null +++ b/src/sources/local.ts @@ -0,0 +1,43 @@ +import yaml from 'js-yaml'; +import path from 'path'; +import * as semver from 'semver'; +import { dirRead, fileReadString, safeSlug } from '@studiorack/core'; +import { PluginInterface, PluginPack } from '../types/Plugin.js'; + +const LOCAL_DIR: string = path.join('src', 'plugins'); +const LOCAL_EXT: string = '.yaml'; +const LOCAL_REG: string = path.join(LOCAL_DIR, '**', '*' + LOCAL_EXT); + +export function localGetPack() { + const pack: PluginPack = {}; + const filepaths: string[] = dirRead(LOCAL_REG); + filepaths.forEach((filepath: string) => { + // TODO update studiorack/core to handle these strings + const parts: string[] = filepath + .replace(LOCAL_DIR, '') + .replace(LOCAL_EXT, '') + .substring(1) + .split(path.sep); + const id = safeSlug(`${parts[0]}/${parts[1]}`); + const version = parts[2]; + if (!pack[id]) { + pack[id] = { + version, + versions: {}, + }; + } + // Release is different from version and can vary per version + const plugin: PluginInterface = localGetFile(filepath); + pack[id].versions[version] = plugin; + // If plugin version is greater than the current, set as latest version + if (semver.gt(version, pack[id].version)) { + pack[id].version = version; + } + }); + return pack; +} + +export function localGetFile(path: string) { + const file: string = fileReadString(path); + return yaml.load(file) as PluginInterface; +} diff --git a/src/sources/owlplug.ts b/src/sources/owlplug.ts new file mode 100644 index 0000000..a17b5f8 --- /dev/null +++ b/src/sources/owlplug.ts @@ -0,0 +1,93 @@ +import * as semver from 'semver'; +import { + fileReadJson, + pathGetId, + pathGetVersion, + PluginInterface, + PluginPack, + safeSlug, +} from '@studiorack/core'; + +const REGISTRY_URL = 'https://central.owlplug.com/store'; + +interface OwlPluginInterface { + name: string; + creator: string; + screenshotUrl: string; + description: string; + pageUrl: string; + donateUrl: string; + version: string; + technicalUid: string; + type: string; + stage: string; + tags: string[]; + bundles: OwlPluginFiles[]; +} + +interface OwlPluginFiles { + name: string; + targets: string[]; + format: string; + downloadUrl: string; + fileSize: number; +} + +async function getOwlplugPack(): Promise { + const pluginPack: PluginPack = {}; + const registry = await fileReadJson(REGISTRY_URL); + registry.products.forEach((product: OwlPluginInterface) => { + const plugin: PluginInterface = { + author: product.creator, + date: new Date().toISOString(), + description: product.description, + homepage: product.pageUrl, + id: pathGetId(product.screenshotUrl), + name: product.name, + files: { + audio: { name: '', size: 0 }, + image: { name: product.screenshotUrl, size: 0 }, + linux: { name: '', size: 0 }, + mac: { name: '', size: 0 }, + win: { name: '', size: 0 }, + }, + release: `v${registry.version}`, + repo: 'owlplug/central', + tags: product.tags, + version: pathGetVersion(product.version || '0.0.0'), + }; + product.bundles.forEach((bundle: OwlPluginFiles) => { + if (bundle.targets.includes('linux')) { + plugin.files.linux.name = bundle.downloadUrl; + plugin.files.linux.size = bundle.fileSize; + } + if (bundle.targets.includes('osx')) { + plugin.files.mac.name = bundle.downloadUrl; + plugin.files.mac.size = bundle.fileSize; + } else if (bundle.targets.includes('win64')) { + plugin.files.win.name = bundle.downloadUrl; + plugin.files.win.size = bundle.fileSize; + } + }); + // For each plugin sanitize the id and add to registry + const pluginId = safeSlug(`${plugin.repo}/${plugin.id}`); + const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; + console.log('owlplug', pluginId, pluginVersion); + if (!pluginPack[pluginId]) { + pluginPack[pluginId] = { + id: pluginId, + license: '', + version: pluginVersion, + versions: {}, + }; + } + pluginPack[pluginId].versions[pluginVersion] = plugin; + // If plugin version is greater than the current, set as latest version + if (semver.gt(pluginVersion, pluginPack[pluginId].version)) { + pluginPack[pluginId].version = pluginVersion; + } + }); + return pluginPack; +} + +export { getOwlplugPack }; diff --git a/src/types/Plugin.ts b/src/types/Plugin.ts index bb929cc..099b353 100644 --- a/src/types/Plugin.ts +++ b/src/types/Plugin.ts @@ -2,7 +2,7 @@ export interface PluginRegistry { name: string; url: string; version: string; - objects: PluginPack[]; + objects: PluginPack; } export interface PluginPack { @@ -10,7 +10,6 @@ export interface PluginPack { } export interface PluginEntry { - id: string; version: string; versions: { [version: string]: PluginInterface }; } @@ -35,13 +34,11 @@ export interface PluginInterface { homepage: string; name: string; files: PluginFiles; - license?: PluginLicense; + license: string; tags: string[]; } -interface PluginLicense { - key: string; - name: string; - url: string; - same: boolean; +export interface PluginRelease extends PluginInterface { + id: string; + version: string; } From 4a603c2cb231a98f012ece86471116b6b41825f8 Mon Sep 17 00:00:00 2001 From: Kim T Date: Mon, 13 May 2024 22:16:56 -0700 Subject: [PATCH 04/10] Update typescipt, eslint, prettier and vitest dependencies --- .eslintrc.json | 28 - .gitattributes | 2 + .prettierrc | 12 - .prettierrc.json | 15 + eslint.config.js | 9 + jest.config.js | 18 - package-lock.json | 6324 +++++++++++------------------------------ package.json | 32 +- tests/main.test.ts | 5 + tsconfig.json | 23 +- tsconfig.release.json | 8 - 11 files changed, 1666 insertions(+), 4810 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 .gitattributes delete mode 100644 .prettierrc create mode 100644 .prettierrc.json create mode 100644 eslint.config.js delete mode 100644 jest.config.js delete mode 100644 tsconfig.release.json diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 75afc02..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "env": { - "browser": false, - "es6": true, - "node": true - }, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": "tsconfig.json", - "sourceType": "module", - "ecmaVersion": 2020 - }, - "plugins": ["@typescript-eslint", "jest"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:jest/recommended", - "prettier" - ], - "rules": { - // The following rule is enabled only to supplement the inline suppression - // examples, and because it is not a recommended rule, you should either - // disable it, or understand what it enforces. - // https://typescript-eslint.io/rules/explicit-function-return-type/ - "@typescript-eslint/explicit-function-return-type": "warn", - "@typescript-eslint/no-explicit-any": "warn" - } -} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 4c4a30c..0000000 --- a/.prettierrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "singleQuote": true, - "trailingComma": "all", - "overrides": [ - { - "files": ["*.ts", "*.mts"], - "options": { - "parser": "typescript" - } - } - ] -} diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..9b8066c --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,15 @@ +{ + "arrowParens": "avoid", + "bracketSpacing": true, + "endOfLine": "lf", + "bracketSameLine": false, + "jsxSingleQuote": false, + "printWidth": 120, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "useTabs": false +} diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..d51e609 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,9 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; + +export default [ + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + ...tseslint.configs.recommended, +]; diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 0240957..0000000 --- a/jest.config.js +++ /dev/null @@ -1,18 +0,0 @@ -export default { - testEnvironment: 'node', - preset: 'ts-jest/presets/default-esm', - transform: { - '^.+\\.m?[tj]s?$': ['ts-jest', { useESM: true }], - }, - moduleNameMapper: { - '^(\\.{1,2}/.*)\\.(m)?js$': '$1', - }, - testRegex: '(/tests/.*|(\\.|/)(test|spec))\\.(m)?ts$', - coverageDirectory: 'coverage', - collectCoverageFrom: [ - 'src/**/*.ts', - 'src/**/*.mts', - '!src/**/*.d.ts', - '!src/**/*.d.mts', - ], -}; diff --git a/package-lock.json b/package-lock.json index e0523d3..f228755 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,20 +15,16 @@ "semver": "^7.6.0" }, "devDependencies": { - "@types/jest": "~29.5", + "@eslint/js": "^9.2.0", "@types/js-yaml": "^4.0.9", - "@types/node": "~20", - "@typescript-eslint/eslint-plugin": "~7.6", - "@typescript-eslint/parser": "~7.6", - "eslint": "~8.56", - "eslint-config-prettier": "~9.1", - "eslint-plugin-jest": "~28.2", - "jest": "~29.7", - "prettier": "~3.2", - "rimraf": "~5.0", - "ts-jest": "~29.1", - "tsx": "^4.9.0", - "typescript": "~5.4" + "eslint": "^8.57.0", + "globals": "^15.2.0", + "prettier": "^3.2.5", + "rimraf": "^5.0", + "tsx": "^4.10.2", + "typescript": "^5.4.5", + "typescript-eslint": "^7.9.0", + "vitest": "^1.6.0" }, "engines": { "node": ">= 20.9 < 21" @@ -36,3688 +32,1118 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@babel/core": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", - "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "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, "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.4", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" + "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": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/core/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/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/generator": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", - "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "node_modules/@eslint/eslintrc/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, "dependencies": { - "@babel/types": "^7.24.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "node_modules/@eslint/eslintrc/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, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/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, - "bin": { - "semver": "bin/semver.js" + "node": "*" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@eslint/js": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.2.0.tgz", + "integrity": "sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "license": "MIT", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.10.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "node_modules/@humanwhocodes/config-array/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, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": "*" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" + "node": ">=12.22" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "license": "ISC", "dependencies": { - "@babel/types": "^7.22.5" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" }, - "node_modules/@babel/helpers": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", - "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@babel/highlight/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, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@babel/highlight/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/@jest/schemas": { + "version": "29.6.3", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@babel/highlight/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/@jridgewell/sourcemap-codec": { + "version": "1.4.15", "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/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/@babel/highlight/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/@nodelib/fs.scandir": { + "version": "2.1.5", "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 8" } }, - "node_modules/@babel/highlight/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/@nodelib/fs.stat": { + "version": "2.0.5", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/@babel/highlight/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/@nodelib/fs.walk": { + "version": "1.2.8", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "license": "MIT", + "optional": true, "engines": { - "node": ">=6.0.0" + "node": ">=14" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.17.2", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT" }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, + "node_modules/@studiorack/core": { + "version": "1.2.6", + "license": "ISC", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "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, + "@vscode/sudo-prompt": "^9.3.1", + "adm-zip": "^0.4.16", + "fs-extra": "^10.1.0", + "glob": "^10.3.6", + "node-fetch": "^2.6.1", + "nodejs-fs-utils": "^1.2.5", + "readline-sync": "^1.4.10", + "semver": "^7.3.4", + "slugify": "^1.4.6" + } + }, + "node_modules/@studiorack/core/node_modules/glob": { + "version": "10.3.12", + "license": "ISC", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@types/estree": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.12.7", "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "undici-types": "~5.26.4" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz", + "integrity": "sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.9.0", + "@typescript-eslint/type-utils": "7.9.0", + "@typescript-eslint/utils": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "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==", + "node_modules/@typescript-eslint/parser": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.9.0.tgz", + "integrity": "sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@typescript-eslint/scope-manager": "7.9.0", + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/typescript-estree": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "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==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.9.0.tgz", + "integrity": "sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "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==", + "node_modules/@typescript-eslint/type-utils": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.9.0.tgz", + "integrity": "sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@typescript-eslint/typescript-estree": "7.9.0", + "@typescript-eslint/utils": "7.9.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": { - "@babel/core": "^7.0.0-0" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "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==", + "node_modules/@typescript-eslint/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", + "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": "^18.18.0 || >=20.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "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==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.9.0.tgz", + "integrity": "sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/visitor-keys": "7.9.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" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@typescript-eslint/utils": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.9.0.tgz", + "integrity": "sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.9.0", + "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/typescript-estree": "7.9.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^8.56.0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "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==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.9.0.tgz", + "integrity": "sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@typescript-eslint/types": "7.9.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || >=20.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", - "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitest/expect": { + "version": "1.6.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "chai": "^4.3.10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "node_modules/@vitest/runner": { + "version": "1.6.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@vitest/utils": "1.6.0", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "node_modules/@vitest/snapshot": { + "version": "1.6.0", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "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/@vitest/spy": { + "version": "1.6.0", "dev": true, - "optional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "tinyspy": "^2.2.0" }, - "engines": { - "node": ">=12" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "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/@vitest/utils": { + "version": "1.6.0", "dev": true, - "optional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } + "node_modules/@vscode/sudo-prompt": { + "version": "9.3.1", + "license": "MIT" }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], + "node_modules/acorn": { + "version": "8.11.3", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=12" + "node": ">=0.4.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], + "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, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], + "node_modules/acorn-walk": { + "version": "8.3.2", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.4.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "node_modules/adm-zip": { + "version": "0.4.16", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.3.0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "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, - "dependencies": { - "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/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/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, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/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, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "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, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "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, - "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/load-nyc-config/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, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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, - "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/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, - "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, - "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, - "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, - "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, - "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, - "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.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "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, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "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, - "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, - "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, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "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 - }, - "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, - "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, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@studiorack/core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.6.tgz", - "integrity": "sha512-sqOtkTNDp4CIaJGvNhGL1YG1AjY+dUGuXqCW0o2doiu1EbnqLVW7VTxQEzb6nhSaYm+hWM2BPdYuXn6U017p6A==", - "dependencies": { - "@vscode/sudo-prompt": "^9.3.1", - "adm-zip": "^0.4.16", - "fs-extra": "^10.1.0", - "glob": "^10.3.6", - "node-fetch": "^2.6.1", - "nodejs-fs-utils": "^1.2.5", - "readline-sync": "^1.4.10", - "semver": "^7.3.4", - "slugify": "^1.4.6" - } - }, - "node_modules/@studiorack/core/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "optional": true, - "peer": 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, - "optional": true, - "peer": 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, - "optional": true, - "peer": 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, - "optional": true, - "peer": true - }, - "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, - "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.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "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, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "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, - "dependencies": { - "@types/node": "*" - } - }, - "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/@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, - "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, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/js-yaml": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", - "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", - "dev": true - }, - "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": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, - "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 - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "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 - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", - "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/type-utils": "7.6.0", - "@typescript-eslint/utils": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "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" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.6.0.tgz", - "integrity": "sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.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.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", - "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.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.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", - "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/utils": "7.6.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.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", - "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", - "dev": true, - "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.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", - "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.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/utils": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", - "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", - "semver": "^7.6.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.6.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", - "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.6.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.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vscode/sudo-prompt": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz", - "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==" - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.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, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "engines": { - "node": ">=0.3.0" - } - }, - "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, - "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/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, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "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==", - "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==", - "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, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "optional": true, - "peer": true - }, - "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==" - }, - "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, - "engines": { - "node": ">=8" - } - }, - "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, - "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-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, - "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-istanbul/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, - "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" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/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, - "bin": { - "semver": "bin/semver.js" - } - }, - "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, - "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-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.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, - "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==" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "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": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "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, - "dependencies": { - "node-int64": "^0.4.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/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001609", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz", - "integrity": "sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==", - "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" - } - ] - }, - "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, - "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/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, - "engines": { - "node": ">=10" - } - }, - "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" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "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, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "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, - "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 - }, - "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==", - "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==" - }, - "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/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, - "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/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, - "optional": true, - "peer": true - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "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 - }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "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, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "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, - "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, - "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, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.736", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz", - "integrity": "sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==", - "dev": true - }, - "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, - "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==" - }, - "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, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", - "@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-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "28.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.2.0.tgz", - "integrity": "sha512-yRDti/a+f+SMSmNTiT9/M/MzXGkitl8CfzUxnpoQcTyfq8gUrXMriVcWU36W1X6BZSUoyUCJrDAWWUA2N4hE5g==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "^6.0.0" - }, - "engines": { - "node": "^16.10.0 || ^18.12.0 || >=20.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0 || ^9.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": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.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": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-jest/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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, - "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-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, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/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, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "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, - "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, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "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, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "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, - "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, - "engines": { - "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/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "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" + "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": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "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, + "node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "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, + "node_modules/ansi-styles": { + "version": "4.3.0", + "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" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "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-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "node": ">=8" }, - "engines": { - "node": ">=8.6.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } + "node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" }, - "node_modules/fast-json-stable-stringify": { + "node_modules/array-union": { "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-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 - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "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, - "dependencies": { - "bser": "2.1.1" - } - }, - "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, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { "node": ">=8" } }, - "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==", + "node_modules/assertion-error": { + "version": "1.1.0", "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "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, + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "balanced-match": "^1.0.0" } }, - "node_modules/flat-cache/node_modules/rimraf": { + "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "fill-range": "^7.0.1" }, "engines": { - "node": ">=12" - } - }, - "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/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, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.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==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "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/cac": { + "version": "6.7.14", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "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/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=6" } }, - "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/chai": { + "version": "4.4.1", "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, "engines": { - "node": ">=8.0.0" + "node": ">=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==", + "node_modules/chalk": { + "version": "4.1.2", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/get-tsconfig": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", - "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "node_modules/check-error": { + "version": "1.0.3", "dev": true, + "license": "MIT", "dependencies": { - "resolve-pkg-maps": "^1.0.0" + "get-func-name": "^2.0.2" }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "engines": { + "node": "*" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, + "node_modules/color-convert": { + "version": "2.0.1", + "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" + "color-name": "~1.1.4" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=7.0.0" } }, - "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==", + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.7", "dev": true, + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 8" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/debug": { + "version": "4.3.4", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/deep-eql": { + "version": "4.1.3", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "type-detect": "^4.0.0" }, "engines": { - "node": "*" + "node": ">=6" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "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, "dependencies": { - "type-fest": "^0.20.2" + "path-type": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "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" + "esutils": "^2.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0.0" } }, - "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==" + "node_modules/eastasianwidth": { + "version": "0.2.0", + "license": "MIT" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", - "peer": true, + "node_modules/esbuild": { + "version": "0.20.2", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" } }, - "node_modules/graphql-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.2.0", - "cross-fetch": "^3.1.5" + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" }, - "peerDependencies": { - "graphql": "14 - 16" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@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": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "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, "dependencies": { - "function-bind": "^1.1.2" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "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/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/eslint-visitor-keys": { + "version": "3.4.3", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/eslint/node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { - "node": ">= 4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, + "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/eslint/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, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" @@ -3726,770 +1152,519 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "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==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", "dev": true, + "license": "ISC", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "brace-expansion": "^1.1.7" + }, + "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/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/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "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, "dependencies": { - "hasown": "^2.0.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "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/esquery": { + "version": "1.5.0", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">=6" + "node": ">=0.10" } }, - "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==", + "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, "dependencies": { - "is-extglob": "^2.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "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/estraverse": { + "version": "5.3.0", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=0.12.0" + "node": ">=4.0" } }, - "node_modules/is-path-inside": { + "node_modules/estree-walker": { "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, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" } }, - "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/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "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, - "engines": { - "node": ">=8" - } + "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/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "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" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=10" + "node": ">=8.6.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/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, "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "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/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-levenshtein": { + "version": "2.0.6", "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "node_modules/fastq": { + "version": "1.17.1", "dev": true, + "license": "ISC", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" + "reusify": "^1.0.4" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "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, "dependencies": { - "@isaacs/cliui": "^8.0.2" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "node": "^10.12.0 || >=12.0.0" } }, - "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/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "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" + "to-regex-range": "^5.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": ">=8" } }, - "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/find-up": { + "version": "5.0.0", "dev": true, + "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "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-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/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, "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" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^10.12.0 || >=12.0.0" } }, - "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/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==", "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" + "glob": "^7.1.3" }, "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" + "rimraf": "bin.js" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "license": "ISC", "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" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=14" }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">=14" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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, + "node_modules/fs-extra": { + "version": "10.1.0", + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" } }, - "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/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/fsevents": { + "version": "2.3.3", "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "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/get-func-name": { + "version": "2.0.2", "dev": true, - "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" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "*" } }, - "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/get-tsconfig": { + "version": "4.7.3", "dev": true, + "license": "MIT", "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" + "resolve-pkg-maps": "^1.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "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/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "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" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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/glob-parent": { + "version": "6.0.2", "dev": true, + "license": "ISC", "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" + "is-glob": "^4.0.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=10.13.0" } }, - "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/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "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/glob/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, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "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-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/globals": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.2.0.tgz", + "integrity": "sha512-FQ5YwCHZM3nCmtb5FzEWwdUc9K5d3V/w9mzcz8iGD1gC/aOTHc6PouYu0kkKipNJqHAT7m51sqzQjEjIP+cK0A==", "dev": true, - "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" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "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": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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, + "node_modules/graceful-fs": { + "version": "4.2.11", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.8.1", + "license": "MIT", + "peer": true, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-request": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" }, "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "graphql": "14 - 16" } }, - "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/has-flag": { + "version": "4.0.0", "dev": true, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "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/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, - "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" + "node": ">= 4" } }, - "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/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/imurmurhash": { + "version": "0.1.4", "dev": true, - "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" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.8.19" } }, - "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/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "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" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "once": "^1.3.0", + "wrappy": "1" } }, - "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/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/is-extglob": { + "version": "2.1.1", "dev": true, - "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" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "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, - "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" - }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", "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/is-glob": { + "version": "4.0.3", "dev": true, + "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" + "is-extglob": "^2.1.1" }, "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/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, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.12.0" } }, - "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/is-path-inside": { + "version": "3.0.3", "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": ">=8" } }, - "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, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" }, - "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, + "node_modules/jackspeak": { + "version": "2.3.6", + "license": "BlueOak-1.0.0", "dependencies": { - "has-flag": "^4.0.0" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "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": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -4497,30 +1672,12 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "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 }, - "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": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -4529,26 +1686,12 @@ }, "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 - }, - "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, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } + "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -4565,29 +1708,10 @@ "json-buffer": "3.0.1" } }, - "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, - "engines": { - "node": ">=6" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, "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": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -4596,17 +1720,25 @@ "node": ">= 0.8.0" } }, - "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/local-pkg": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } }, "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" }, @@ -4617,62 +1749,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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.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 - }, - "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, - "dependencies": { - "yallist": "^3.0.2" - } + "license": "MIT" }, - "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==", + "node_modules/loupe": { + "version": "2.3.7", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "get-func-name": "^2.0.1" } }, - "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/magic-string": { + "version": "0.30.10", "dev": true, + "license": "MIT", "dependencies": { - "tmpl": "1.0.5" + "@jridgewell/sourcemap-codec": "^1.4.15" } }, "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 + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", @@ -4696,19 +1797,9 @@ "node": ">=8.6" } }, - "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, - "engines": { - "node": ">=6" - } - }, "node_modules/minimatch": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4721,33 +1812,56 @@ }, "node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/mlly": { + "version": "1.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, "node_modules/module-require": { "version": "1.4.5", - "resolved": "https://registry.npmjs.org/module-require/-/module-require-1.4.5.tgz", - "integrity": "sha512-ksEXPs62btutKsbJKph7rLhdu7A6JIIHXTqvr3uhOP1mViI8JeHkNzYHJnVlHVCaRCuHa7XMBnKmxc23YZGl6Q==" + "license": "MIT" }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, "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 + "dev": true, + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -4763,47 +1877,13 @@ } } }, - "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/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, "node_modules/nodejs-fs-utils": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/nodejs-fs-utils/-/nodejs-fs-utils-1.2.6.tgz", - "integrity": "sha512-uDIfV3Qvjrtis2jOhHYzvUTAReqtnBXCVm0efjAYDgrCgZZBDxMQcZE7SsDAui4zzQ7GpqYUFUwoOpOoQD4vpA==", + "license": "MIT", "dependencies": { "module-require": "*" } }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "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, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4813,26 +1893,10 @@ "wrappy": "1" } }, - "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, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -4847,9 +1911,8 @@ }, "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==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4862,9 +1925,8 @@ }, "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" }, @@ -4875,15 +1937,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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, - "engines": { - "node": ">=6" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4896,29 +1949,10 @@ "node": ">=6" } }, - "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, - "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" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4934,22 +1968,14 @@ }, "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==", + "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 - }, "node_modules/path-scurry": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -4963,8 +1989,7 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "license": "ISC", "engines": { "node": "14 || >=16.14" } @@ -4973,107 +1998,82 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "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, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/pkg-dir/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/pathe": { + "version": "1.1.2", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/pkg-dir/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/picocolors": { + "version": "1.0.0", + "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, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkg-dir/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/pkg-types": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.38", "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" + } + ], + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, "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": ">= 0.8.0" } @@ -5095,9 +2095,8 @@ }, "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", @@ -5109,9 +2108,8 @@ }, "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": ">=10" }, @@ -5119,19 +2117,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5141,26 +2126,8 @@ "node": ">=6" } }, - "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, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, "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": [ { @@ -5175,69 +2142,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/readline-sync": { "version": "1.4.10", - "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", - "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/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, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -5249,27 +2168,16 @@ }, "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, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -5277,9 +2185,8 @@ }, "node_modules/rimraf": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^10.3.7" }, @@ -5295,9 +2202,8 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", @@ -5315,10 +2221,42 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.17.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.17.2", + "@rollup/rollup-android-arm64": "4.17.2", + "@rollup/rollup-darwin-arm64": "4.17.2", + "@rollup/rollup-darwin-x64": "4.17.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", + "@rollup/rollup-linux-arm-musleabihf": "4.17.2", + "@rollup/rollup-linux-arm64-gnu": "4.17.2", + "@rollup/rollup-linux-arm64-musl": "4.17.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", + "@rollup/rollup-linux-riscv64-gnu": "4.17.2", + "@rollup/rollup-linux-s390x-gnu": "4.17.2", + "@rollup/rollup-linux-x64-gnu": "4.17.2", + "@rollup/rollup-linux-x64-musl": "4.17.2", + "@rollup/rollup-win32-arm64-msvc": "4.17.2", + "@rollup/rollup-win32-ia32-msvc": "4.17.2", + "@rollup/rollup-win32-x64-msvc": "4.17.2", + "fsevents": "~2.3.2" + } + }, "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, "funding": [ { @@ -5334,14 +2272,14 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/semver": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5354,8 +2292,7 @@ }, "node_modules/semver/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==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5365,13 +2302,11 @@ }, "node_modules/semver/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "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==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -5381,23 +2316,15 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=8" } }, - "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/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "node_modules/siginfo": { + "version": "2.0.0", + "dev": true, + "license": "ISC" }, "node_modules/slash": { "version": "3.0.0", @@ -5410,75 +2337,32 @@ }, "node_modules/slugify": { "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", "engines": { "node": ">=8.0.0" } }, - "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/source-map-js": { + "version": "1.2.0", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "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, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.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 - }, - "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, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/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/stackback": { + "version": "0.0.2", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "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/std-env": { + "version": "3.7.0", "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5491,8 +2375,7 @@ "node_modules/string-width-cjs": { "name": "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==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5504,8 +2387,7 @@ }, "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==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5516,8 +2398,7 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -5525,24 +2406,6 @@ "node": ">=8" } }, - "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, - "engines": { - "node": ">=8" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -5555,85 +2418,57 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/strip-literal": { + "version": "2.1.0", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "js-tokens": "^9.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, - "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==", + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/supports-color": { + "version": "7.2.0", "dev": true, + "license": "MIT", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/text-table": { + "version": "0.2.0", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "license": "MIT" }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/tinybench": { + "version": "2.8.0", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=14.0.0" } }, - "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 - }, - "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 - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/tinyspy": { + "version": "2.2.1", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=14.0.0" } }, "node_modules/to-regex-range": { @@ -5650,8 +2485,7 @@ }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/ts-api-utils": { "version": "1.3.0", @@ -5660,103 +2494,15 @@ "dev": true, "engines": { "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "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==", - "dev": true, - "optional": true, - "peer": 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" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, "node_modules/tsx": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.9.0.tgz", - "integrity": "sha512-UY0UUhDPL6MkqkZU4xTEjEBOLfV+RIt4xeeJ1qwK73xai4/zveG+X6+tieILa7rjtegUW2LE4p7fw7gAoLuytA==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.10.2.tgz", + "integrity": "sha512-gOfACgv1ElsIjvt7Fp0rMJKGnMGjox0JfGOfX3kmZCV/yZumaNqtHGKBXt1KgaYS9KjDOmqGeI8gHk/W7kWVZg==", "dev": true, "dependencies": { "esbuild": "~0.20.2", @@ -5774,9 +2520,8 @@ }, "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" }, @@ -5786,9 +2531,8 @@ }, "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" } @@ -5818,99 +2562,330 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.9.0.tgz", + "integrity": "sha512-7iTn9c10teHHCys5Ud/yaJntXZrjt3h2mrx3feJGBOLgQkF3TB1X89Xs3aVQ/GgdXRAXpk2bPTdpRwHP4YkUow==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "7.9.0", + "@typescript-eslint/parser": "7.9.0", + "@typescript-eslint/utils": "7.9.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/ufo": { + "version": "1.5.3", + "dev": true, + "license": "MIT" + }, "node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "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, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.2.11", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "less": { + "optional": true }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true } - ], + } + }, + "node_modules/vite-node": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vitest": { + "version": "1.6.0", + "dev": true, + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "@vitest/expect": "1.6.0", + "@vitest/runner": "1.6.0", + "@vitest/snapshot": "1.6.0", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.0", + "why-is-node-running": "^2.2.2" }, "bin": { - "update-browserslist-db": "cli.js" + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "browserslist": ">= 4.21.0" + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.0", + "@vitest/ui": "1.6.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", "dev": true, + "license": "MIT", "dependencies": { - "punycode": "^2.1.0" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "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==", + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", "dev": true, - "optional": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path": { + "version": "5.3.0", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=10.12.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/vitest/node_modules/onetime": { + "version": "6.0.0", "dev": true, + "license": "MIT", "dependencies": { - "makeerror": "1.0.12" + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -5918,8 +2893,7 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -5930,28 +2904,25 @@ "node": ">= 8" } }, - "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==", + "node_modules/why-is-node-running": { + "version": "2.2.2", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "siginfo": "^2.0.0", + "stackback": "0.0.2" }, - "engines": { - "node": ">=10" + "bin": { + "why-is-node-running": "cli.js" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "engines": { + "node": ">=8" } }, "node_modules/wrap-ansi-cjs": { "name": "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==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5970,77 +2941,10 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "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, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "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, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "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, - "optional": true, - "peer": 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 d07b953..f637879 100644 --- a/package.json +++ b/package.json @@ -9,12 +9,12 @@ "clean": "rimraf coverage build tmp", "prebuild": "npm run lint", "build": "tsc -p tsconfig.json && npm run copy", - "dev": "tsx src/main.ts", + "dev": "tsx ./src/main.ts", "build:release": "npm run clean && tsc -p tsconfig.release.json", - "lint": "eslint . --ext .ts --ext .mts", - "test": "jest --coverage", - "format": "prettier --config .prettierrc --write .", - "test:watch": "jest --watch" + "lint": "eslint ./**/*.ts", + "test": "vitest run ./tests", + "format": "prettier ./**/*.ts --write", + "test:watch": "vitest ./tests" }, "repository": { "type": "git", @@ -46,19 +46,15 @@ "semver": "^7.6.0" }, "devDependencies": { - "@types/jest": "~29.5", + "@eslint/js": "^9.2.0", "@types/js-yaml": "^4.0.9", - "@types/node": "~20", - "@typescript-eslint/eslint-plugin": "~7.6", - "@typescript-eslint/parser": "~7.6", - "eslint": "~8.56", - "eslint-config-prettier": "~9.1", - "eslint-plugin-jest": "~28.2", - "jest": "~29.7", - "prettier": "~3.2", - "rimraf": "~5.0", - "ts-jest": "~29.1", - "tsx": "^4.9.0", - "typescript": "~5.4" + "eslint": "^8.57.0", + "globals": "^15.2.0", + "prettier": "^3.2.5", + "rimraf": "^5.0", + "tsx": "^4.10.2", + "typescript": "^5.4.5", + "typescript-eslint": "^7.9.0", + "vitest": "^1.6.0" } } diff --git a/tests/main.test.ts b/tests/main.test.ts index e69de29..44ed59e 100644 --- a/tests/main.test.ts +++ b/tests/main.test.ts @@ -0,0 +1,5 @@ +import { expect, test } from 'vitest'; + +test('adds 1 + 2 to equal 3', () => { + expect(1 + 2).toBe(3); +}); diff --git a/tsconfig.json b/tsconfig.json index fc3ae36..8a52fee 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,23 +1,14 @@ { "compilerOptions": { - "target": "es2022", + "lib": ["es2023", "dom"], "module": "node16", - "lib": ["ES2022"], + "target": "es2022", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, "moduleResolution": "node16", - "rootDir": ".", "outDir": "build", - "allowSyntheticDefaultImports": true, - "importHelpers": true, - "alwaysStrict": true, - "sourceMap": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitAny": false, - "noImplicitThis": false, - "strictNullChecks": false }, - "include": ["src/**/*", "tests/**/*"] + "include": ["src/**/*.ts"], + "exclude": ["tests/**/*.ts", "node_modules"] } diff --git a/tsconfig.release.json b/tsconfig.release.json deleted file mode 100644 index f08638c..0000000 --- a/tsconfig.release.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "sourceMap": false, - "removeComments": true - }, - "include": ["src/**/*"] -} From 2ee8a4563cbb09bbaa84ca94e8c16890f3c9fa4e Mon Sep 17 00:00:00 2001 From: Kim T Date: Mon, 13 May 2024 22:36:11 -0700 Subject: [PATCH 05/10] Update package.json deps --- .github/workflows/release.yml | 4 +- .github/workflows/test.yml | 2 +- package-lock.json | 1913 +++++++++++++++++++++++---------- package.json | 2 + 4 files changed, 1342 insertions(+), 579 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fc85538..710f7f7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install dependencies run: npm ci @@ -23,7 +23,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./out diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 79bac12..cda31ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install run: | diff --git a/package-lock.json b/package-lock.json index f228755..5b91db9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,8 @@ "devDependencies": { "@eslint/js": "^9.2.0", "@types/js-yaml": "^4.0.9", + "@types/node-fetch": "^2.6.11", + "@types/semver": "^7.5.8", "eslint": "^8.57.0", "globals": "^15.2.0", "prettier": "^3.2.5", @@ -30,21 +32,94 @@ "node": ">= 20.9 < 21" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=0.10.0" + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, "node_modules/@esbuild/darwin-x64": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -53,10 +128,283 @@ "node": ">=12" } }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -69,8 +417,9 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -98,16 +447,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -123,18 +462,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/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, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@eslint/js": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.2.0.tgz", @@ -146,7 +473,8 @@ }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } @@ -165,32 +493,11 @@ "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/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, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "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, - "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -207,7 +514,8 @@ }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -222,7 +530,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { "node": ">=12" }, @@ -230,139 +539,300 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "license": "MIT", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "license": "MIT", + "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, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "license": "MIT", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "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, "dependencies": { - "ansi-regex": "^6.0.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">= 8" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "license": "MIT", + "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, + "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, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">= 8" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", + "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", + "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", + "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", + "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", + "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", + "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", + "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", + "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", + "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", + "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", + "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", + "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "license": "MIT", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", + "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "cpu": [ + "x64" + ], + "dev": true, "optional": true, - "engines": { - "node": ">=14" - } + "os": [ + "linux" + ] }, - "node_modules/@rollup/rollup-darwin-x64": { + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", + "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", + "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", + "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ - "darwin" + "win32" ] }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, "node_modules/@studiorack/core": { "version": "1.2.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.6.tgz", + "integrity": "sha512-sqOtkTNDp4CIaJGvNhGL1YG1AjY+dUGuXqCW0o2doiu1EbnqLVW7VTxQEzb6nhSaYm+hWM2BPdYuXn6U017p6A==", "dependencies": { "@vscode/sudo-prompt": "^9.3.1", "adm-zip": "^0.4.16", @@ -375,46 +845,43 @@ "slugify": "^1.4.6" } }, - "node_modules/@studiorack/core/node_modules/glob": { - "version": "10.3.12", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@types/estree": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true }, "node_modules/@types/js-yaml": { "version": "4.0.9", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true }, "node_modules/@types/node": { - "version": "20.12.7", + "version": "20.12.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", + "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "undici-types": "~5.26.4" } }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz", @@ -561,6 +1028,30 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.9.0.tgz", @@ -608,8 +1099,9 @@ }, "node_modules/@vitest/expect": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/spy": "1.6.0", "@vitest/utils": "1.6.0", @@ -621,8 +1113,9 @@ }, "node_modules/@vitest/runner": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", + "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/utils": "1.6.0", "p-limit": "^5.0.0", @@ -634,8 +1127,9 @@ }, "node_modules/@vitest/runner/node_modules/p-limit": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -648,8 +1142,9 @@ }, "node_modules/@vitest/runner/node_modules/yocto-queue": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.20" }, @@ -659,8 +1154,9 @@ }, "node_modules/@vitest/snapshot": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", + "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", "dev": true, - "license": "MIT", "dependencies": { "magic-string": "^0.30.5", "pathe": "^1.1.1", @@ -672,8 +1168,9 @@ }, "node_modules/@vitest/spy": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", + "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", "dev": true, - "license": "MIT", "dependencies": { "tinyspy": "^2.2.0" }, @@ -683,8 +1180,9 @@ }, "node_modules/@vitest/utils": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", "dev": true, - "license": "MIT", "dependencies": { "diff-sequences": "^29.6.3", "estree-walker": "^3.0.3", @@ -697,12 +1195,14 @@ }, "node_modules/@vscode/sudo-prompt": { "version": "9.3.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz", + "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==" }, "node_modules/acorn": { "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -721,15 +1221,17 @@ }, "node_modules/acorn-walk": { "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/adm-zip": { "version": "0.4.16", - "license": "MIT", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "engines": { "node": ">=0.3.0" } @@ -752,14 +1254,16 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -772,7 +1276,8 @@ }, "node_modules/argparse": { "version": "2.0.1", - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-union": { "version": "2.1.0", @@ -785,21 +1290,32 @@ }, "node_modules/assertion-error": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/balanced-match": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -816,8 +1332,9 @@ }, "node_modules/cac": { "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -833,8 +1350,9 @@ }, "node_modules/chai": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", "dev": true, - "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -850,8 +1368,9 @@ }, "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" @@ -865,8 +1384,9 @@ }, "node_modules/check-error": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, - "license": "MIT", "dependencies": { "get-func-name": "^2.0.2" }, @@ -876,7 +1396,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -886,28 +1407,45 @@ }, "node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/confbox": { "version": "0.1.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true }, "node_modules/cross-fetch": { "version": "3.1.8", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "dependencies": { "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { "version": "7.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -919,8 +1457,9 @@ }, "node_modules/debug": { "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -935,8 +1474,9 @@ }, "node_modules/deep-eql": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, - "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -946,13 +1486,24 @@ }, "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 + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=0.4.0" + } }, "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" } @@ -983,17 +1534,20 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/esbuild": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -1028,8 +1582,9 @@ }, "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" }, @@ -1110,8 +1665,9 @@ }, "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" }, @@ -1128,15 +1684,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -1152,17 +1699,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -1182,8 +1718,9 @@ }, "node_modules/esquery": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1205,16 +1742,18 @@ }, "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/estree-walker": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } @@ -1228,6 +1767,29 @@ "node": ">=0.10.0" } }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1270,13 +1832,15 @@ }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, "node_modules/fastq": { "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -1307,8 +1871,9 @@ }, "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" @@ -1331,7 +1896,27 @@ "rimraf": "^3.0.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/flat-cache/node_modules/rimraf": { @@ -1357,7 +1942,8 @@ }, "node_modules/foreground-child": { "version": "3.1.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -1369,19 +1955,24 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">=14" + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">= 6" } }, "node_modules/fs-extra": { "version": "10.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1399,8 +1990,10 @@ }, "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, - "license": "MIT", + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -1411,16 +2004,30 @@ }, "node_modules/get-func-name": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-tsconfig": { - "version": "4.7.3", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", "dev": true, - "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -1429,20 +2036,21 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "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" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1450,8 +2058,9 @@ }, "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" }, @@ -1460,25 +2069,25 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/glob/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, + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/globals": { @@ -1515,7 +2124,8 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "license": "ISC" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -1525,7 +2135,8 @@ }, "node_modules/graphql": { "version": "16.8.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "peer": true, "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" @@ -1533,7 +2144,8 @@ }, "node_modules/graphql-request": { "version": "6.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", "dependencies": { "@graphql-typed-document-node/core": "^3.2.0", "cross-fetch": "^3.1.5" @@ -1544,12 +2156,22 @@ }, "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/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -1577,8 +2199,9 @@ }, "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": ">=0.8.19" } @@ -1601,23 +2224,26 @@ }, "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/is-fullwidth-code-point": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "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" }, @@ -1636,19 +2262,34 @@ }, "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": ">=8" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isexe": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { "version": "2.3.6", - "license": "BlueOak-1.0.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -1662,9 +2303,16 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true + }, "node_modules/js-yaml": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { "argparse": "^2.0.1" }, @@ -1686,12 +2334,14 @@ }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "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 }, "node_modules/jsonfile": { "version": "6.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dependencies": { "universalify": "^2.0.0" }, @@ -1710,8 +2360,9 @@ }, "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": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -1722,8 +2373,9 @@ }, "node_modules/local-pkg": { "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", "dev": true, - "license": "MIT", "dependencies": { "mlly": "^1.4.2", "pkg-types": "^1.0.3" @@ -1737,8 +2389,9 @@ }, "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" }, @@ -1751,29 +2404,41 @@ }, "node_modules/lodash.merge": { "version": "4.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/loupe": { "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, - "license": "MIT", "dependencies": { "get-func-name": "^2.0.1" } }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/magic-string": { "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", @@ -1797,30 +2462,64 @@ "node": ">=8.6" } }, - "node_modules/minimatch": { - "version": "9.0.4", - "license": "ISC", + "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, + "engines": { + "node": ">= 0.6" + } + }, + "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, "dependencies": { - "brace-expansion": "^2.0.1" + "mime-db": "1.52.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/minipass": { - "version": "7.0.4", - "license": "ISC", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/mlly": { "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", "dev": true, - "license": "MIT", "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", @@ -1830,15 +2529,19 @@ }, "node_modules/module-require": { "version": "1.4.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/module-require/-/module-require-1.4.5.tgz", + "integrity": "sha512-ksEXPs62btutKsbJKph7rLhdu7A6JIIHXTqvr3uhOP1mViI8JeHkNzYHJnVlHVCaRCuHa7XMBnKmxc23YZGl6Q==" }, "node_modules/ms": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/nanoid": { "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -1846,7 +2549,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1856,12 +2558,14 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/node-fetch": { "version": "2.7.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1879,11 +2583,39 @@ }, "node_modules/nodejs-fs-utils": { "version": "1.2.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nodejs-fs-utils/-/nodejs-fs-utils-1.2.6.tgz", + "integrity": "sha512-uDIfV3Qvjrtis2jOhHYzvUTAReqtnBXCVm0efjAYDgrCgZZBDxMQcZE7SsDAui4zzQ7GpqYUFUwoOpOoQD4vpA==", "dependencies": { "module-require": "*" } }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1893,17 +2625,33 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { - "version": "0.9.3", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -1911,8 +2659,9 @@ }, "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==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -1925,8 +2674,9 @@ }, "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" }, @@ -1951,8 +2701,9 @@ }, "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==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -1968,32 +2719,27 @@ }, "node_modules/path-key": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { "node": ">=8" } }, "node_modules/path-scurry": { - "version": "1.10.2", - "license": "BlueOak-1.0.0", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -2005,21 +2751,24 @@ }, "node_modules/pathe": { "version": "1.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true }, "node_modules/pathval": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "node_modules/picocolors": { - "version": "1.0.0", - "dev": true, - "license": "ISC" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -2035,8 +2784,9 @@ }, "node_modules/pkg-types": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", "dev": true, - "license": "MIT", "dependencies": { "confbox": "^0.1.7", "mlly": "^1.7.0", @@ -2045,6 +2795,8 @@ }, "node_modules/postcss": { "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -2060,7 +2812,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -2072,8 +2823,9 @@ }, "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": ">= 0.8.0" } @@ -2095,8 +2847,9 @@ }, "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", @@ -2108,8 +2861,9 @@ }, "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": ">=10" }, @@ -2128,6 +2882,8 @@ }, "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": [ { @@ -2142,17 +2898,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/react-is": { - "version": "18.2.0", - "dev": true, - "license": "MIT" + "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/readline-sync": { "version": "1.4.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", "engines": { "node": ">= 0.8.0" } @@ -2168,25 +2925,28 @@ }, "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, - "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/reusify": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rimraf": { - "version": "5.0.5", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", + "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^10.3.7" }, @@ -2194,28 +2954,7 @@ "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.3.12", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2223,8 +2962,9 @@ }, "node_modules/rollup": { "version": "4.17.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", + "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -2257,6 +2997,8 @@ }, "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, "funding": [ { @@ -2272,17 +3014,14 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/semver": { - "version": "7.6.0", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "bin": { "semver": "bin/semver.js" }, @@ -2290,23 +3029,10 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, "node_modules/shebang-command": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2316,16 +3042,29 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "engines": { "node": ">=8" } }, - "node_modules/siginfo": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "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==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -2337,45 +3076,54 @@ }, "node_modules/slugify": { "version": "1.6.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", "engines": { "node": ">=8.0.0" } }, "node_modules/source-map-js": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/stackback": { "version": "0.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true }, "node_modules/std-env": { "version": "3.7.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true }, "node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2385,9 +3133,40 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/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==" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2398,7 +3177,8 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2406,6 +3186,18 @@ "node": ">=8" } }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "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", @@ -2420,8 +3212,9 @@ }, "node_modules/strip-literal": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", "dev": true, - "license": "MIT", "dependencies": { "js-tokens": "^9.0.0" }, @@ -2429,15 +3222,11 @@ "url": "https://github.com/sponsors/antfu" } }, - "node_modules/strip-literal/node_modules/js-tokens": { - "version": "9.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/supports-color": { "version": "7.2.0", + "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" }, @@ -2447,26 +3236,30 @@ }, "node_modules/text-table": { "version": "0.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "node_modules/tinybench": { "version": "2.8.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", + "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", + "dev": true }, "node_modules/tinypool": { "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/tinyspy": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", "dev": true, - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -2485,7 +3278,8 @@ }, "node_modules/tr46": { "version": "0.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/ts-api-utils": { "version": "1.3.0", @@ -2520,8 +3314,9 @@ }, "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" }, @@ -2531,8 +3326,9 @@ }, "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" } @@ -2590,19 +3386,20 @@ }, "node_modules/ufo": { "version": "1.5.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true }, "node_modules/undici-types": { "version": "5.26.5", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true }, "node_modules/universalify": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -2618,8 +3415,9 @@ }, "node_modules/vite": { "version": "5.2.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", + "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", @@ -2672,8 +3470,9 @@ }, "node_modules/vite-node": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", + "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", "dev": true, - "license": "MIT", "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", @@ -2693,8 +3492,9 @@ }, "node_modules/vitest": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", + "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", "dev": true, - "license": "MIT", "dependencies": { "@vitest/expect": "1.6.0", "@vitest/runner": "1.6.0", @@ -2755,137 +3555,15 @@ } } }, - "node_modules/vitest/node_modules/execa": { - "version": "8.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/vitest/node_modules/get-stream": { - "version": "8.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vitest/node_modules/human-signals": { - "version": "5.0.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/vitest/node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vitest/node_modules/mimic-fn": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vitest/node_modules/npm-run-path": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vitest/node_modules/onetime": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vitest/node_modules/path-key": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vitest/node_modules/signal-exit": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/vitest/node_modules/strip-final-newline": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/whatwg-url": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -2893,7 +3571,8 @@ }, "node_modules/which": { "version": "2.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dependencies": { "isexe": "^2.0.0" }, @@ -2906,8 +3585,9 @@ }, "node_modules/why-is-node-running": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", "dev": true, - "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -2919,10 +3599,36 @@ "node": ">=8" } }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2935,6 +3641,60 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/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==" + }, + "node_modules/wrap-ansi-cjs/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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -2943,8 +3703,9 @@ }, "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 f637879..522e8c7 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,8 @@ "devDependencies": { "@eslint/js": "^9.2.0", "@types/js-yaml": "^4.0.9", + "@types/node-fetch": "^2.6.11", + "@types/semver": "^7.5.8", "eslint": "^8.57.0", "globals": "^15.2.0", "prettier": "^3.2.5", From 77669eb6d41bbb609dacce4135c0e6a6b4c6a127 Mon Sep 17 00:00:00 2001 From: Kim T Date: Sun, 19 May 2024 21:46:47 -0700 Subject: [PATCH 06/10] v2 registry code with id and version --- eslint.config.js | 8 +-- package-lock.json | 14 ++--- package.json | 4 +- src/main.ts | 129 +++++++++++++++++++++++++++++++---------- src/sources/github.ts | 31 +++++----- src/sources/local.ts | 12 ++-- src/sources/owlplug.ts | 9 +-- src/types/Plugin.ts | 44 -------------- tests/main.test.ts | 14 ++++- tsconfig.json | 2 +- 10 files changed, 143 insertions(+), 124 deletions(-) delete mode 100644 src/types/Plugin.ts diff --git a/eslint.config.js b/eslint.config.js index d51e609..59877b0 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,9 +1,9 @@ -import globals from "globals"; -import pluginJs from "@eslint/js"; -import tseslint from "typescript-eslint"; +import globals from 'globals'; +import pluginJs from '@eslint/js'; +import tseslint from 'typescript-eslint'; export default [ - {languageOptions: { globals: globals.browser }}, + { languageOptions: { globals: globals.browser } }, pluginJs.configs.recommended, ...tseslint.configs.recommended, ]; diff --git a/package-lock.json b/package-lock.json index 5b91db9..5993f56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@studiorack/core": "^1.2.6", + "@studiorack/core": "^1.2.8", "graphql-request": "^6.1.0", "js-yaml": "^4.1.0", "semver": "^7.6.0" @@ -830,9 +830,9 @@ "dev": true }, "node_modules/@studiorack/core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.6.tgz", - "integrity": "sha512-sqOtkTNDp4CIaJGvNhGL1YG1AjY+dUGuXqCW0o2doiu1EbnqLVW7VTxQEzb6nhSaYm+hWM2BPdYuXn6U017p6A==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.8.tgz", + "integrity": "sha512-tdmVSs1wyiadlRXHe2TaeKg6Zdc5EVIslM1Mf0ccE2D2/i+OVr2ooVxX1cCby3PAF6m3lYYNrHzI+IRlHbuaIQ==", "dependencies": { "@vscode/sudo-prompt": "^9.3.1", "adm-zip": "^0.4.16", @@ -858,9 +858,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz", - "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==", + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" diff --git a/package.json b/package.json index 522e8c7..ef12dfc 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "build:release": "npm run clean && tsc -p tsconfig.release.json", "lint": "eslint ./**/*.ts", "test": "vitest run ./tests", - "format": "prettier ./**/*.ts --write", + "format": "prettier . --write", "test:watch": "vitest ./tests" }, "repository": { @@ -40,7 +40,7 @@ "node": ">= 20.9 < 21" }, "dependencies": { - "@studiorack/core": "^1.2.6", + "@studiorack/core": "^1.2.8", "graphql-request": "^6.1.0", "js-yaml": "^4.1.0", "semver": "^7.6.0" diff --git a/src/main.ts b/src/main.ts index bd43283..8e56ca5 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,9 +1,16 @@ -import { dirCreate, fileJsonCreate } from '@studiorack/core'; import { + dirCreate, + fileJsonCreate, + pluginLatest, PluginEntry, PluginInterface, + PluginFile, + PluginFiles, + pluginFileUrl, + PluginPack, PluginRegistry, -} from './types/Plugin.js'; + PluginLicense, +} from '@studiorack/core'; import { githubGetPack } from './sources/github.js'; import { localGetPack } from './sources/local.js'; @@ -13,49 +20,107 @@ const REGISTRY_OUT_EFFECTS: string = 'effects.json'; const REGISTRY_OUT_INSTRUMENTS: string = 'instruments.json'; const REGISTRY_OUT_SFZ: string = 'sfz.json'; -export function registryNew(type: string): PluginRegistry { +export function registryNew(type: string, version: string, path = ''): PluginRegistry { return { name: `StudioRack Registry - ${type}`, - url: `https://studiorack.github.io/studiorack-registry/${type}.json`, - version: '2.0.0', + url: `https://studiorack.github.io/studiorack-registry/${path}${type}.json`, + version, objects: {}, }; } -async function registrySave(path: string, file: PluginRegistry) { +export function registrySave(path: string, file: PluginRegistry) { dirCreate(DIST_PATH); fileJsonCreate(path, file); } -async function run() { - const registry: PluginRegistry = registryNew('registry'); - registry.objects = Object.assign(registry.objects, await githubGetPack()); - registry.objects = Object.assign(registry.objects, localGetPack()); - - // Create separate registries for Effects and Instruments - const effects: PluginRegistry = registryNew('effects'); - const index: PluginRegistry = registryNew('index'); - const instruments: PluginRegistry = registryNew('instruments'); - const sfz: PluginRegistry = registryNew('sfz'); - for (const pluginId in registry.objects) { - const pluginEntry: PluginEntry = registry.objects[pluginId]; - const plugin: PluginInterface = pluginEntry.versions[pluginEntry.version]; - // Check if tags include Effect/Fx - if (plugin.tags.includes('Effect') || plugin.tags.includes('Fx')) { - effects.objects[pluginId] = pluginEntry; - } - if (plugin.tags.includes('Instrument')) { - instruments.objects[pluginId] = pluginEntry; +export function registryPackAdd(registry: PluginRegistry, pluginPack: PluginPack) { + registry.objects = Object.assign(registry.objects, pluginPack); +} + +export function registryPackClean(pack: PluginPack) { + // Remove legacy attributes from plugins + Object.keys(pack).forEach((entryId: string) => { + const pluginEntry: PluginEntry = pack[entryId]; + Object.keys(pluginEntry.versions).forEach((versionId: string) => { + const plugin: PluginInterface = pluginEntry.versions[versionId]; + Object.keys(plugin.files).forEach((fileId: string) => { + const file: PluginFile = plugin.files[fileId as keyof PluginFiles]; + file.name = pluginFileUrl(plugin, fileId as keyof PluginFiles); + }); + console.log('before', plugin.id, plugin.license); + if (plugin.license && typeof plugin.license !== 'string' && plugin.license.key) + plugin.license = plugin.license.key as unknown as PluginLicense; + console.log('after', plugin.id, plugin.license); + // @ts-expect-error Types need to be updated in core package + delete plugin.release; + }); + // @ts-expect-error Types need to be updated in core package + delete pluginEntry.id; + // @ts-expect-error Types need to be updated in core package + delete pluginEntry.license; + }); + return pack; +} + +export function registryPackFilter(pack: PluginPack, tag: string, version: string) { + const packFiltered: PluginPack = {}; + for (const pluginId in pack) { + const pluginEntry: PluginEntry = pack[pluginId]; + let plugin: PluginInterface = pluginEntry.versions[pluginEntry.version]; + if (version === '1.0.0') { + plugin = pluginLatest(pluginEntry); } - if (plugin.tags.includes('sfz')) { - sfz.objects[pluginId] = pluginEntry; + if (plugin.tags.includes(tag) || (tag === 'Effect' && plugin.tags.includes('Fx'))) { + packFiltered[pluginId] = pluginEntry; } - index.objects[pluginId] = pluginEntry; } - registrySave(`${DIST_PATH}/${REGISTRY_OUT}`, index); - registrySave(`${DIST_PATH}/${REGISTRY_OUT_EFFECTS}`, effects); - registrySave(`${DIST_PATH}/${REGISTRY_OUT_INSTRUMENTS}`, instruments); - registrySave(`${DIST_PATH}/${REGISTRY_OUT_SFZ}`, sfz); + return packFiltered; +} + +export function registryVersion(registry: PluginRegistry, path = '') { + // Create directory + if (path !== '') dirCreate(`${DIST_PATH}/${path}`); + + // All plugins + const index: PluginRegistry = registryNew('index', registry.version, path); + const indexPack: PluginPack = registry.objects; + registryPackAdd(index, indexPack); + registrySave(`${DIST_PATH}/${path}${REGISTRY_OUT}`, index); + + // Effects + const effects: PluginRegistry = registryNew('effects', registry.version, path); + const effectsPack: PluginPack = registryPackFilter(registry.objects, 'Effect', registry.version); + registryPackAdd(effects, effectsPack); + registrySave(`${DIST_PATH}/${path}${REGISTRY_OUT_EFFECTS}`, effects); + + // Instruments + const instruments: PluginRegistry = registryNew('instruments', registry.version, path); + const instrumentsPack: PluginPack = registryPackFilter(registry.objects, 'Instrument', registry.version); + registryPackAdd(instruments, instrumentsPack); + registrySave(`${DIST_PATH}/${path}${REGISTRY_OUT_INSTRUMENTS}`, instruments); + + // Sfz + const sfz: PluginRegistry = registryNew('sfz', registry.version, path); + const sfzPack: PluginPack = registryPackFilter(registry.objects, 'sfz', registry.version); + registryPackAdd(sfz, sfzPack); + registrySave(`${DIST_PATH}/${path}${REGISTRY_OUT_SFZ}`, sfz); +} + +export async function run() { + const githubPack: PluginPack = await githubGetPack(); + const localPack: PluginPack = localGetPack(); + + // Registry v1 + const registryV1: PluginRegistry = registryNew('registry', '1.0.0'); + registryPackAdd(registryV1, githubPack); + registryVersion(registryV1); + + // Registry v2 + const registryV2: PluginRegistry = registryNew('registry', '2.0.0'); + registryPackAdd(registryV2, registryPackClean(githubPack)); + registryPackAdd(registryV2, localPack); + registryVersion(registryV2, 'v2/'); } run(); diff --git a/src/sources/github.ts b/src/sources/github.ts index 34b0a2f..a4f3430 100644 --- a/src/sources/github.ts +++ b/src/sources/github.ts @@ -1,8 +1,7 @@ import * as semver from 'semver'; -import { PluginLocal, pluginValidateSchema, safeSlug } from '@studiorack/core'; +import { PluginLocal, PluginPack, PluginInterface, pluginValidateSchema, safeSlug } from '@studiorack/core'; import fetch from 'node-fetch'; import { gql, GraphQLClient, RequestDocument } from 'graphql-request'; -import { PluginPack, PluginRelease } from '../types/Plugin.js'; // Plugins need to have a topic `studiorack-plugin` to appear in the results // https://github.com/topics/studiorack-plugin @@ -39,14 +38,12 @@ async function githubGetPack(): Promise { await githubGetRelease(pluginPack, repo, release); } } - console.log(pluginPack); return pluginPack; } async function githubSearchRepos(url: string): Promise { const headers: any = {}; - if (process.env.GITHUB_TOKEN) - headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`; + if (process.env.GITHUB_TOKEN) headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`; const graphQLClient = new GraphQLClient(url, { headers }); const query: RequestDocument = gql` { @@ -70,28 +67,27 @@ async function githubSearchRepos(url: string): Promise { return graphQLClient.request(query); } -async function githubGetRelease( - pluginPack: PluginPack, - repo: GitHubRepository, - release: GitHubRelease, -) { +async function githubGetRelease(pluginPack: PluginPack, repo: GitHubRepository, release: GitHubRelease) { const pluginsJsonList = await githubGetPlugins( `https://github.com/${repo.nameWithOwner}/releases/download/${release.tagName}/plugins.json`, ); - pluginsJsonList.plugins.forEach((plugin: PluginRelease) => { + pluginsJsonList.plugins.forEach((plugin: PluginInterface) => { // For each plugin sanitize the id and add to registry - const pluginId = safeSlug(`${repo.nameWithOwner}/${safeSlug(plugin.id)}`); + const pluginId = safeSlug(`${repo.nameWithOwner}/${plugin.id}`); const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; console.log('github', pluginId, pluginVersion); if (!pluginPack[pluginId]) { pluginPack[pluginId] = { + id: pluginId, + license: repo.licenseInfo?.key, version: pluginVersion, versions: {}, }; } - // TODO update plugins.json to not need these fields - delete plugin.id; - delete plugin.version; + // Ensure all plugins have these legacy attributes. + plugin.id = pluginId; + plugin.release = release.tagName; + plugin.version = pluginVersion; pluginPack[pluginId].versions[pluginVersion] = plugin; // If plugin version is greater than the current, set as latest version if (semver.gt(pluginVersion, pluginPack[pluginId].version)) { @@ -102,11 +98,12 @@ async function githubGetRelease( } async function githubGetPlugins(url: string) { - const pluginsValid: PluginRelease[] = []; + const pluginsValid: PluginInterface[] = []; const pluginsJson = await getJSONSafe(url); - pluginsJson.plugins.forEach((plugin: PluginRelease) => { + pluginsJson.plugins.forEach((plugin: PluginInterface) => { const error = pluginValidateSchema(plugin as unknown as PluginLocal); if (error === false) { + plugin.id = safeSlug(plugin.id || ''); pluginsValid.push(plugin); } else { console.log(error, plugin); diff --git a/src/sources/local.ts b/src/sources/local.ts index 1112977..59261f7 100644 --- a/src/sources/local.ts +++ b/src/sources/local.ts @@ -1,8 +1,7 @@ import yaml from 'js-yaml'; import path from 'path'; import * as semver from 'semver'; -import { dirRead, fileReadString, safeSlug } from '@studiorack/core'; -import { PluginInterface, PluginPack } from '../types/Plugin.js'; +import { PluginInterface, PluginPack, dirRead, fileReadString, safeSlug } from '@studiorack/core'; const LOCAL_DIR: string = path.join('src', 'plugins'); const LOCAL_EXT: string = '.yaml'; @@ -13,14 +12,11 @@ export function localGetPack() { const filepaths: string[] = dirRead(LOCAL_REG); filepaths.forEach((filepath: string) => { // TODO update studiorack/core to handle these strings - const parts: string[] = filepath - .replace(LOCAL_DIR, '') - .replace(LOCAL_EXT, '') - .substring(1) - .split(path.sep); + const parts: string[] = filepath.replace(LOCAL_DIR, '').replace(LOCAL_EXT, '').substring(1).split(path.sep); const id = safeSlug(`${parts[0]}/${parts[1]}`); const version = parts[2]; if (!pack[id]) { + // @ts-ignore pack[id] = { version, versions: {}, @@ -28,6 +24,8 @@ export function localGetPack() { } // Release is different from version and can vary per version const plugin: PluginInterface = localGetFile(filepath); + plugin.id = id; + plugin.version = version; pack[id].versions[version] = plugin; // If plugin version is greater than the current, set as latest version if (semver.gt(version, pack[id].version)) { diff --git a/src/sources/owlplug.ts b/src/sources/owlplug.ts index a17b5f8..b84068f 100644 --- a/src/sources/owlplug.ts +++ b/src/sources/owlplug.ts @@ -1,12 +1,5 @@ import * as semver from 'semver'; -import { - fileReadJson, - pathGetId, - pathGetVersion, - PluginInterface, - PluginPack, - safeSlug, -} from '@studiorack/core'; +import { fileReadJson, pathGetId, pathGetVersion, PluginInterface, PluginPack, safeSlug } from '@studiorack/core'; const REGISTRY_URL = 'https://central.owlplug.com/store'; diff --git a/src/types/Plugin.ts b/src/types/Plugin.ts deleted file mode 100644 index 099b353..0000000 --- a/src/types/Plugin.ts +++ /dev/null @@ -1,44 +0,0 @@ -export interface PluginRegistry { - name: string; - url: string; - version: string; - objects: PluginPack; -} - -export interface PluginPack { - [property: string]: PluginEntry; -} - -export interface PluginEntry { - version: string; - versions: { [version: string]: PluginInterface }; -} - -interface PluginFile { - url: string; - size: number; -} - -interface PluginFiles { - audio: PluginFile; - image: PluginFile; - linux: PluginFile; - mac: PluginFile; - win: PluginFile; -} - -export interface PluginInterface { - author: string; - date: string; - description: string; - homepage: string; - name: string; - files: PluginFiles; - license: string; - tags: string[]; -} - -export interface PluginRelease extends PluginInterface { - id: string; - version: string; -} diff --git a/tests/main.test.ts b/tests/main.test.ts index 44ed59e..fd4965a 100644 --- a/tests/main.test.ts +++ b/tests/main.test.ts @@ -1,5 +1,15 @@ import { expect, test } from 'vitest'; +import { registryNew } from '../src/main'; +import { PluginRegistry } from '../src/types/Plugin'; -test('adds 1 + 2 to equal 3', () => { - expect(1 + 2).toBe(3); +const PLUGIN_REGISTRY: PluginRegistry = { + name: `StudioRack Registry - registry`, + url: `https://studiorack.github.io/studiorack-registry/v3/registry.json`, + version: '1.2.3', + objects: {}, +}; + +test('Create a new registry', () => { + const registry: PluginRegistry = registryNew('registry', '1.2.3', 'v3/'); + expect(registry).toEqual(PLUGIN_REGISTRY); }); diff --git a/tsconfig.json b/tsconfig.json index 8a52fee..a5e80c7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "esModuleInterop": true, "skipLibCheck": true, "moduleResolution": "node16", - "outDir": "build", + "outDir": "build" }, "include": ["src/**/*.ts"], "exclude": ["tests/**/*.ts", "node_modules"] From fac65bc10828f15b51c4804430ee85c234a75957 Mon Sep 17 00:00:00 2001 From: Kim T Date: Mon, 20 May 2024 22:08:06 -0700 Subject: [PATCH 07/10] Migrate to use new core package code --- package.json | 4 +++- src/main.ts | 19 +++++++++---------- src/sources/github.ts | 13 +++++-------- src/sources/local.ts | 6 +++--- src/sources/owlplug.ts | 34 +++++++++++++++------------------- tsconfig.json | 5 +++-- 6 files changed, 38 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index ef12dfc..57167b6 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,8 @@ "version": "1.0.0", "description": "Audio plugin registry with searchable plugin list, metadata and download urls", "type": "module", + "main": "./build/main.js", + "exports": "./build/main.js", "scripts": { "copy": "cp -r ./src/plugins ./build/src", "start": "node build/src/main.js", @@ -37,7 +39,7 @@ }, "homepage": "https://github.com/studiorack/studiorack-registry#readme", "engines": { - "node": ">= 20.9 < 21" + "node": ">=18" }, "dependencies": { "@studiorack/core": "^1.2.8", diff --git a/src/main.ts b/src/main.ts index 8e56ca5..22a8803 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,13 +3,12 @@ import { fileJsonCreate, pluginLatest, PluginEntry, - PluginInterface, PluginFile, PluginFiles, pluginFileUrl, PluginPack, PluginRegistry, - PluginLicense, + PluginVersion, } from '@studiorack/core'; import { githubGetPack } from './sources/github.js'; import { localGetPack } from './sources/local.js'; @@ -43,14 +42,14 @@ export function registryPackClean(pack: PluginPack) { Object.keys(pack).forEach((entryId: string) => { const pluginEntry: PluginEntry = pack[entryId]; Object.keys(pluginEntry.versions).forEach((versionId: string) => { - const plugin: PluginInterface = pluginEntry.versions[versionId]; + const plugin: PluginVersion = pluginEntry.versions[versionId]; Object.keys(plugin.files).forEach((fileId: string) => { const file: PluginFile = plugin.files[fileId as keyof PluginFiles]; - file.name = pluginFileUrl(plugin, fileId as keyof PluginFiles); + file.url = pluginFileUrl(plugin, fileId as keyof PluginFiles); }); console.log('before', plugin.id, plugin.license); - if (plugin.license && typeof plugin.license !== 'string' && plugin.license.key) - plugin.license = plugin.license.key as unknown as PluginLicense; + // if (plugin.license && typeof plugin.license !== 'string' && plugin.license.key) + // plugin.license = plugin.license.key as unknown as PluginLicense; console.log('after', plugin.id, plugin.license); // @ts-expect-error Types need to be updated in core package delete plugin.release; @@ -67,7 +66,7 @@ export function registryPackFilter(pack: PluginPack, tag: string, version: strin const packFiltered: PluginPack = {}; for (const pluginId in pack) { const pluginEntry: PluginEntry = pack[pluginId]; - let plugin: PluginInterface = pluginEntry.versions[pluginEntry.version]; + let plugin: PluginVersion = pluginEntry.versions[pluginEntry.version]; if (version === '1.0.0') { plugin = pluginLatest(pluginEntry); } @@ -108,17 +107,17 @@ export function registryVersion(registry: PluginRegistry, path = '') { } export async function run() { - const githubPack: PluginPack = await githubGetPack(); + // const githubPack: PluginPack = await githubGetPack(); const localPack: PluginPack = localGetPack(); // Registry v1 const registryV1: PluginRegistry = registryNew('registry', '1.0.0'); - registryPackAdd(registryV1, githubPack); + // registryPackAdd(registryV1, githubPack); registryVersion(registryV1); // Registry v2 const registryV2: PluginRegistry = registryNew('registry', '2.0.0'); - registryPackAdd(registryV2, registryPackClean(githubPack)); + // registryPackAdd(registryV2, registryPackClean(githubPack)); registryPackAdd(registryV2, localPack); registryVersion(registryV2, 'v2/'); } diff --git a/src/sources/github.ts b/src/sources/github.ts index a4f3430..efb7e3c 100644 --- a/src/sources/github.ts +++ b/src/sources/github.ts @@ -1,5 +1,5 @@ import * as semver from 'semver'; -import { PluginLocal, PluginPack, PluginInterface, pluginValidateSchema, safeSlug } from '@studiorack/core'; +import { PluginPack, PluginVersion, PluginVersionLocal, pluginValidateSchema, safeSlug } from '@studiorack/core'; import fetch from 'node-fetch'; import { gql, GraphQLClient, RequestDocument } from 'graphql-request'; @@ -71,22 +71,19 @@ async function githubGetRelease(pluginPack: PluginPack, repo: GitHubRepository, const pluginsJsonList = await githubGetPlugins( `https://github.com/${repo.nameWithOwner}/releases/download/${release.tagName}/plugins.json`, ); - pluginsJsonList.plugins.forEach((plugin: PluginInterface) => { + pluginsJsonList.plugins.forEach((plugin: PluginVersion) => { // For each plugin sanitize the id and add to registry const pluginId = safeSlug(`${repo.nameWithOwner}/${plugin.id}`); const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; console.log('github', pluginId, pluginVersion); if (!pluginPack[pluginId]) { pluginPack[pluginId] = { - id: pluginId, - license: repo.licenseInfo?.key, version: pluginVersion, versions: {}, }; } // Ensure all plugins have these legacy attributes. plugin.id = pluginId; - plugin.release = release.tagName; plugin.version = pluginVersion; pluginPack[pluginId].versions[pluginVersion] = plugin; // If plugin version is greater than the current, set as latest version @@ -98,10 +95,10 @@ async function githubGetRelease(pluginPack: PluginPack, repo: GitHubRepository, } async function githubGetPlugins(url: string) { - const pluginsValid: PluginInterface[] = []; + const pluginsValid: PluginVersion[] = []; const pluginsJson = await getJSONSafe(url); - pluginsJson.plugins.forEach((plugin: PluginInterface) => { - const error = pluginValidateSchema(plugin as unknown as PluginLocal); + pluginsJson.plugins.forEach((plugin: PluginVersion) => { + const error = pluginValidateSchema(plugin as PluginVersionLocal); if (error === false) { plugin.id = safeSlug(plugin.id || ''); pluginsValid.push(plugin); diff --git a/src/sources/local.ts b/src/sources/local.ts index 59261f7..3725393 100644 --- a/src/sources/local.ts +++ b/src/sources/local.ts @@ -1,7 +1,7 @@ import yaml from 'js-yaml'; import path from 'path'; import * as semver from 'semver'; -import { PluginInterface, PluginPack, dirRead, fileReadString, safeSlug } from '@studiorack/core'; +import { PluginPack, PluginVersion, dirRead, fileReadString, safeSlug } from '@studiorack/core'; const LOCAL_DIR: string = path.join('src', 'plugins'); const LOCAL_EXT: string = '.yaml'; @@ -23,7 +23,7 @@ export function localGetPack() { }; } // Release is different from version and can vary per version - const plugin: PluginInterface = localGetFile(filepath); + const plugin: PluginVersion = localGetFile(filepath); plugin.id = id; plugin.version = version; pack[id].versions[version] = plugin; @@ -37,5 +37,5 @@ export function localGetPack() { export function localGetFile(path: string) { const file: string = fileReadString(path); - return yaml.load(file) as PluginInterface; + return yaml.load(file) as PluginVersion; } diff --git a/src/sources/owlplug.ts b/src/sources/owlplug.ts index b84068f..cf6db66 100644 --- a/src/sources/owlplug.ts +++ b/src/sources/owlplug.ts @@ -1,19 +1,17 @@ import * as semver from 'semver'; -import { fileReadJson, pathGetId, pathGetVersion, PluginInterface, PluginPack, safeSlug } from '@studiorack/core'; +import { fileReadJson, pathGetId, PluginPack, PluginVersion, safeSlug } from '@studiorack/core'; const REGISTRY_URL = 'https://central.owlplug.com/store'; interface OwlPluginInterface { name: string; creator: string; + license: string; screenshotUrl: string; description: string; pageUrl: string; donateUrl: string; - version: string; - technicalUid: string; type: string; - stage: string; tags: string[]; bundles: OwlPluginFiles[]; } @@ -23,6 +21,7 @@ interface OwlPluginFiles { targets: string[]; format: string; downloadUrl: string; + downloadSha256: string; fileSize: number; } @@ -30,7 +29,7 @@ async function getOwlplugPack(): Promise { const pluginPack: PluginPack = {}; const registry = await fileReadJson(REGISTRY_URL); registry.products.forEach((product: OwlPluginInterface) => { - const plugin: PluginInterface = { + const plugin: PluginVersion = { author: product.creator, date: new Date().toISOString(), description: product.description, @@ -38,38 +37,35 @@ async function getOwlplugPack(): Promise { id: pathGetId(product.screenshotUrl), name: product.name, files: { - audio: { name: '', size: 0 }, - image: { name: product.screenshotUrl, size: 0 }, - linux: { name: '', size: 0 }, - mac: { name: '', size: 0 }, - win: { name: '', size: 0 }, + audio: { url: '', size: 0 }, + image: { url: product.screenshotUrl, size: 0 }, + linux: { url: '', size: 0 }, + mac: { url: '', size: 0 }, + win: { url: '', size: 0 }, }, - release: `v${registry.version}`, - repo: 'owlplug/central', + license: product.license, tags: product.tags, - version: pathGetVersion(product.version || '0.0.0'), + version: '0.0.0', }; product.bundles.forEach((bundle: OwlPluginFiles) => { if (bundle.targets.includes('linux')) { - plugin.files.linux.name = bundle.downloadUrl; + plugin.files.linux.url = bundle.downloadUrl; plugin.files.linux.size = bundle.fileSize; } if (bundle.targets.includes('osx')) { - plugin.files.mac.name = bundle.downloadUrl; + plugin.files.mac.url = bundle.downloadUrl; plugin.files.mac.size = bundle.fileSize; } else if (bundle.targets.includes('win64')) { - plugin.files.win.name = bundle.downloadUrl; + plugin.files.win.url = bundle.downloadUrl; plugin.files.win.size = bundle.fileSize; } }); // For each plugin sanitize the id and add to registry - const pluginId = safeSlug(`${plugin.repo}/${plugin.id}`); + const pluginId = safeSlug(plugin.id || ''); const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; console.log('owlplug', pluginId, pluginVersion); if (!pluginPack[pluginId]) { pluginPack[pluginId] = { - id: pluginId, - license: '', version: pluginVersion, versions: {}, }; diff --git a/tsconfig.json b/tsconfig.json index a5e80c7..37a9a51 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,8 +7,9 @@ "esModuleInterop": true, "skipLibCheck": true, "moduleResolution": "node16", - "outDir": "build" + "outDir": "build", + "declaration": true }, "include": ["src/**/*.ts"], - "exclude": ["tests/**/*.ts", "node_modules"] + "exclude": ["coverage", "build", "node_modules", "tests"] } From 7105d1538fa2c217829fca81e7632e1cb6ab0483 Mon Sep 17 00:00:00 2001 From: Kim T Date: Thu, 23 May 2024 21:43:21 -0700 Subject: [PATCH 08/10] Updated core library with backwards compatible types and validation --- package-lock.json | 78 ++++++++++--------------------------------- package.json | 4 +-- src/main.ts | 18 +++++----- src/sources/github.ts | 57 +++++++++++++++++-------------- src/sources/local.ts | 41 +++++++++++++++-------- tests/main.test.ts | 2 +- 6 files changed, 88 insertions(+), 112 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5993f56..dda268d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "studiorack-registry", - "version": "1.0.0", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "studiorack-registry", - "version": "1.0.0", + "version": "2.0.0", "license": "MIT", "dependencies": { - "@studiorack/core": "^1.2.8", + "@studiorack/core": "^2.0.1", "graphql-request": "^6.1.0", "js-yaml": "^4.1.0", "semver": "^7.6.0" @@ -29,7 +29,7 @@ "vitest": "^1.6.0" }, "engines": { - "node": ">= 20.9 < 21" + "node": ">=18" } }, "node_modules/@esbuild/aix-ppc64": { @@ -830,19 +830,21 @@ "dev": true }, "node_modules/@studiorack/core": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-1.2.8.tgz", - "integrity": "sha512-tdmVSs1wyiadlRXHe2TaeKg6Zdc5EVIslM1Mf0ccE2D2/i+OVr2ooVxX1cCby3PAF6m3lYYNrHzI+IRlHbuaIQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-2.0.1.tgz", + "integrity": "sha512-Mbg8Pi4teKqBwtNAezHUzZu6Uxcjz12ZF4r5i4RxjEOgGec5HfXYwGVsOk5xWQuhh2tW0FCauaDDiNVuMGTxSQ==", + "license": "MIT", "dependencies": { "@vscode/sudo-prompt": "^9.3.1", "adm-zip": "^0.4.16", - "fs-extra": "^10.1.0", "glob": "^10.3.6", "node-fetch": "^2.6.1", - "nodejs-fs-utils": "^1.2.5", "readline-sync": "^1.4.10", "semver": "^7.3.4", - "slugify": "^1.4.6" + "slugify": "^1.6.6" + }, + "engines": { + "node": ">=18" } }, "node_modules/@types/estree": { @@ -1196,7 +1198,8 @@ "node_modules/@vscode/sudo-prompt": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz", - "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==" + "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==", + "license": "MIT" }, "node_modules/acorn": { "version": "8.11.3", @@ -1232,6 +1235,7 @@ "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "license": "MIT", "engines": { "node": ">=0.3.0" } @@ -1969,19 +1973,6 @@ "node": ">= 6" } }, - "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==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2122,11 +2113,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==" - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -2338,17 +2324,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -2527,11 +2502,6 @@ "ufo": "^1.5.3" } }, - "node_modules/module-require": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/module-require/-/module-require-1.4.5.tgz", - "integrity": "sha512-ksEXPs62btutKsbJKph7rLhdu7A6JIIHXTqvr3uhOP1mViI8JeHkNzYHJnVlHVCaRCuHa7XMBnKmxc23YZGl6Q==" - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2581,14 +2551,6 @@ } } }, - "node_modules/nodejs-fs-utils": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/nodejs-fs-utils/-/nodejs-fs-utils-1.2.6.tgz", - "integrity": "sha512-uDIfV3Qvjrtis2jOhHYzvUTAReqtnBXCVm0efjAYDgrCgZZBDxMQcZE7SsDAui4zzQ7GpqYUFUwoOpOoQD4vpA==", - "dependencies": { - "module-require": "*" - } - }, "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -2910,6 +2872,7 @@ "version": "1.4.10", "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -3078,6 +3041,7 @@ "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -3396,14 +3360,6 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 57167b6..73ca932 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "studiorack-registry", - "version": "1.0.0", + "version": "2.0.0", "description": "Audio plugin registry with searchable plugin list, metadata and download urls", "type": "module", "main": "./build/main.js", @@ -42,7 +42,7 @@ "node": ">=18" }, "dependencies": { - "@studiorack/core": "^1.2.8", + "@studiorack/core": "^2.0.1", "graphql-request": "^6.1.0", "js-yaml": "^4.1.0", "semver": "^7.6.0" diff --git a/src/main.ts b/src/main.ts index 22a8803..553811b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -47,16 +47,14 @@ export function registryPackClean(pack: PluginPack) { const file: PluginFile = plugin.files[fileId as keyof PluginFiles]; file.url = pluginFileUrl(plugin, fileId as keyof PluginFiles); }); - console.log('before', plugin.id, plugin.license); - // if (plugin.license && typeof plugin.license !== 'string' && plugin.license.key) - // plugin.license = plugin.license.key as unknown as PluginLicense; - console.log('after', plugin.id, plugin.license); - // @ts-expect-error Types need to be updated in core package + if (plugin.license && typeof plugin.license !== 'string' && plugin.license.key) + plugin.license = plugin.license.key; + delete plugin.id; delete plugin.release; + delete plugin.repo; + delete plugin.version; }); - // @ts-expect-error Types need to be updated in core package delete pluginEntry.id; - // @ts-expect-error Types need to be updated in core package delete pluginEntry.license; }); return pack; @@ -107,17 +105,17 @@ export function registryVersion(registry: PluginRegistry, path = '') { } export async function run() { - // const githubPack: PluginPack = await githubGetPack(); + const githubPack: PluginPack = await githubGetPack(); const localPack: PluginPack = localGetPack(); // Registry v1 const registryV1: PluginRegistry = registryNew('registry', '1.0.0'); - // registryPackAdd(registryV1, githubPack); + registryPackAdd(registryV1, githubPack); registryVersion(registryV1); // Registry v2 const registryV2: PluginRegistry = registryNew('registry', '2.0.0'); - // registryPackAdd(registryV2, registryPackClean(githubPack)); + registryPackAdd(registryV2, registryPackClean(githubPack)); registryPackAdd(registryV2, localPack); registryVersion(registryV2, 'v2/'); } diff --git a/src/sources/github.ts b/src/sources/github.ts index efb7e3c..640b27c 100644 --- a/src/sources/github.ts +++ b/src/sources/github.ts @@ -1,5 +1,12 @@ import * as semver from 'semver'; -import { PluginPack, PluginVersion, PluginVersionLocal, pluginValidateSchema, safeSlug } from '@studiorack/core'; +import { + PluginPack, + PluginVersion, + PluginVersionLocal, + pluginLicense, + pluginValidateSchema, + safeSlug, +} from '@studiorack/core'; import fetch from 'node-fetch'; import { gql, GraphQLClient, RequestDocument } from 'graphql-request'; @@ -10,15 +17,20 @@ const GITHUB_TOPIC: string = 'studiorack-plugin'; const GITHUB_REPO_PAGINATION: number = 100; const GITHUB_RELEASES_PAGINATION: number = 100; +export interface GitHubLicense { + key: string; + name: string; + url: string; + same: boolean; +} + interface GitHubRelease { tagName: string; } interface GitHubRepository { nameWithOwner: string; - licenseInfo: { - key: string; - }; + licenseInfo: GitHubLicense; releases: { nodes: GitHubRelease[]; }; @@ -68,23 +80,33 @@ async function githubSearchRepos(url: string): Promise { } async function githubGetRelease(pluginPack: PluginPack, repo: GitHubRepository, release: GitHubRelease) { - const pluginsJsonList = await githubGetPlugins( + const pluginsJsonList = await getJSONSafe( `https://github.com/${repo.nameWithOwner}/releases/download/${release.tagName}/plugins.json`, ); pluginsJsonList.plugins.forEach((plugin: PluginVersion) => { // For each plugin sanitize the id and add to registry - const pluginId = safeSlug(`${repo.nameWithOwner}/${plugin.id}`); - const pluginVersion = semver.coerce(plugin.version)?.version || '0.0.0'; + const pluginId: string = safeSlug(`${repo.nameWithOwner}/${plugin.id}`); + const pluginVersion: string = semver.coerce(plugin.version)?.version || '0.0.0'; + + if (plugin.id) plugin.id = safeSlug(plugin.id); + plugin.version = pluginVersion; + plugin.release = release.tagName; + plugin.license = pluginLicense(repo.licenseInfo?.key || 'other'); + plugin.repo = safeSlug(repo.nameWithOwner); console.log('github', pluginId, pluginVersion); + + // Ensure plugin has valid fields. + const error = pluginValidateSchema(plugin as PluginVersionLocal); + if (error) return console.log(error); + if (!pluginPack[pluginId]) { pluginPack[pluginId] = { + id: pluginId, + license: repo.licenseInfo?.key || 'other', version: pluginVersion, versions: {}, }; } - // Ensure all plugins have these legacy attributes. - plugin.id = pluginId; - plugin.version = pluginVersion; pluginPack[pluginId].versions[pluginVersion] = plugin; // If plugin version is greater than the current, set as latest version if (semver.gt(pluginVersion, pluginPack[pluginId].version)) { @@ -94,21 +116,6 @@ async function githubGetRelease(pluginPack: PluginPack, repo: GitHubRepository, return pluginPack; } -async function githubGetPlugins(url: string) { - const pluginsValid: PluginVersion[] = []; - const pluginsJson = await getJSONSafe(url); - pluginsJson.plugins.forEach((plugin: PluginVersion) => { - const error = pluginValidateSchema(plugin as PluginVersionLocal); - if (error === false) { - plugin.id = safeSlug(plugin.id || ''); - pluginsValid.push(plugin); - } else { - console.log(error, plugin); - } - }); - return { plugins: pluginsValid }; -} - async function getJSONSafe(url: string): Promise { console.log('⤓', url); try { diff --git a/src/sources/local.ts b/src/sources/local.ts index 3725393..545952e 100644 --- a/src/sources/local.ts +++ b/src/sources/local.ts @@ -1,7 +1,15 @@ import yaml from 'js-yaml'; import path from 'path'; import * as semver from 'semver'; -import { PluginPack, PluginVersion, dirRead, fileReadString, safeSlug } from '@studiorack/core'; +import { + PluginPack, + PluginVersion, + PluginVersionLocal, + dirRead, + fileReadString, + pluginValidateSchema, + safeSlug, +} from '@studiorack/core'; const LOCAL_DIR: string = path.join('src', 'plugins'); const LOCAL_EXT: string = '.yaml'; @@ -13,23 +21,30 @@ export function localGetPack() { filepaths.forEach((filepath: string) => { // TODO update studiorack/core to handle these strings const parts: string[] = filepath.replace(LOCAL_DIR, '').replace(LOCAL_EXT, '').substring(1).split(path.sep); - const id = safeSlug(`${parts[0]}/${parts[1]}`); - const version = parts[2]; - if (!pack[id]) { + const pluginId: string = safeSlug(`${parts[0]}/${parts[1]}`); + const pluginVersion: string = parts[2]; + + // Get plugin from yaml files. + const plugin: PluginVersion = localGetFile(filepath); + if (typeof plugin.date === 'object') plugin.date = (plugin.date as Date).toISOString(); + console.log('local', pluginId, pluginVersion); + + // Ensure plugin has valid fields. + const error = pluginValidateSchema(plugin as PluginVersionLocal); + if (error) return console.log(error); + + // Add plugin to the plugin pack. + if (!pack[pluginId]) { // @ts-ignore - pack[id] = { - version, + pack[pluginId] = { + version: pluginVersion, versions: {}, }; } - // Release is different from version and can vary per version - const plugin: PluginVersion = localGetFile(filepath); - plugin.id = id; - plugin.version = version; - pack[id].versions[version] = plugin; + pack[pluginId].versions[pluginVersion] = plugin; // If plugin version is greater than the current, set as latest version - if (semver.gt(version, pack[id].version)) { - pack[id].version = version; + if (semver.gt(pluginVersion, pack[pluginId].version)) { + pack[pluginId].version = pluginVersion; } }); return pack; diff --git a/tests/main.test.ts b/tests/main.test.ts index fd4965a..206d351 100644 --- a/tests/main.test.ts +++ b/tests/main.test.ts @@ -1,6 +1,6 @@ import { expect, test } from 'vitest'; import { registryNew } from '../src/main'; -import { PluginRegistry } from '../src/types/Plugin'; +import { PluginRegistry } from '@studiorack/core'; const PLUGIN_REGISTRY: PluginRegistry = { name: `StudioRack Registry - registry`, From f3246ea113c443aa4f041a4c5c18bfa381c44170 Mon Sep 17 00:00:00 2001 From: Kim T Date: Thu, 23 May 2024 21:51:08 -0700 Subject: [PATCH 09/10] Use fixed core package --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dda268d..b0e3198 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.0", "license": "MIT", "dependencies": { - "@studiorack/core": "^2.0.1", + "@studiorack/core": "^2.0.2", "graphql-request": "^6.1.0", "js-yaml": "^4.1.0", "semver": "^7.6.0" @@ -830,9 +830,9 @@ "dev": true }, "node_modules/@studiorack/core": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-2.0.1.tgz", - "integrity": "sha512-Mbg8Pi4teKqBwtNAezHUzZu6Uxcjz12ZF4r5i4RxjEOgGec5HfXYwGVsOk5xWQuhh2tW0FCauaDDiNVuMGTxSQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@studiorack/core/-/core-2.0.2.tgz", + "integrity": "sha512-XN7eXku8bfQwPCKi34IOHw+dz8w8MFKe8QRSYMu1yVcB4fkei42s9tmR4WX5/tLrIqt/ic15upRGbjNd1u+JMg==", "license": "MIT", "dependencies": { "@vscode/sudo-prompt": "^9.3.1", diff --git a/package.json b/package.json index 73ca932..69fcf19 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "node": ">=18" }, "dependencies": { - "@studiorack/core": "^2.0.1", + "@studiorack/core": "^2.0.2", "graphql-request": "^6.1.0", "js-yaml": "^4.1.0", "semver": "^7.6.0" From a979111469aa863034894bedf2be9979118c3c20 Mon Sep 17 00:00:00 2001 From: Kim T Date: Thu, 23 May 2024 21:54:50 -0700 Subject: [PATCH 10/10] Add types and files config to package.json --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 69fcf19..06cca8f 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,13 @@ "type": "module", "main": "./build/main.js", "exports": "./build/main.js", + "types": "./build/main.d.ts", + "files": [ + "build" + ], "scripts": { "copy": "cp -r ./src/plugins ./build/src", - "start": "node build/src/main.js", + "start": "node ./build/main.js", "clean": "rimraf coverage build tmp", "prebuild": "npm run lint", "build": "tsc -p tsconfig.json && npm run copy",