diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index f62d39b..0000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,3429 +0,0 @@ -{ - "name": "notif", - "version": "0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "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/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "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.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", - "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/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "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.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "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/@polka/url": { - "version": "1.0.0-next.23", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", - "dev": true - }, - "node_modules/@skeletonlabs/skeleton": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@skeletonlabs/skeleton/-/skeleton-2.4.0.tgz", - "integrity": "sha512-8IVspCMarg1h4yMV6GFSaVqh9jIeQXV3XPNUnVONjkUofHkcKuLYTR4jGlR1ICF5CmIl+z746q3+Cj8rLAtAag==", - "dev": true, - "dependencies": { - "esm-env": "1.0.0" - }, - "peerDependencies": { - "svelte": "^3.56.0 || ^4.0.0" - } - }, - "node_modules/@skeletonlabs/tw-plugin": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@skeletonlabs/tw-plugin/-/tw-plugin-0.2.3.tgz", - "integrity": "sha512-sOavIPm6NlE0h4dmTZ4NDMe8ryqb1wh2hd59V9oP1qf2H1O6cwfKkiBUyLQLedw+suCey/FJ3MHpScTBMejNxQ==", - "dev": true, - "peerDependencies": { - "tailwindcss": ">=3.0.0" - } - }, - "node_modules/@sveltejs/adapter-auto": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.1.tgz", - "integrity": "sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==", - "dev": true, - "dependencies": { - "import-meta-resolve": "^4.0.0" - }, - "peerDependencies": { - "@sveltejs/kit": "^1.0.0" - } - }, - "node_modules/@sveltejs/kit": { - "version": "1.27.5", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.5.tgz", - "integrity": "sha512-+L1WPs/ZYNjXoBFoFARypD4aZOjkT51vFpRCtQI45+Fmmfi4Y0dH/8VFlmYD6VlGe89ViIPg7lgf/JpGQ2tr7A==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@sveltejs/vite-plugin-svelte": "^2.5.0", - "@types/cookie": "^0.5.1", - "cookie": "^0.5.0", - "devalue": "^4.3.1", - "esm-env": "^1.0.0", - "kleur": "^4.1.5", - "magic-string": "^0.30.0", - "mrmime": "^1.0.1", - "sade": "^1.8.1", - "set-cookie-parser": "^2.6.0", - "sirv": "^2.0.2", - "tiny-glob": "^0.2.9", - "undici": "~5.26.2" - }, - "bin": { - "svelte-kit": "svelte-kit.js" - }, - "engines": { - "node": "^16.14 || >=18" - }, - "peerDependencies": { - "svelte": "^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0", - "vite": "^4.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.2.tgz", - "integrity": "sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==", - "dev": true, - "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4", - "debug": "^4.3.4", - "deepmerge": "^4.3.1", - "kleur": "^4.1.5", - "magic-string": "^0.30.3", - "svelte-hmr": "^0.15.3", - "vitefu": "^0.2.4" - }, - "engines": { - "node": "^14.18.0 || >= 16" - }, - "peerDependencies": { - "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0", - "vite": "^4.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz", - "integrity": "sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": "^14.18.0 || >= 16" - }, - "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^2.2.0", - "svelte": "^3.54.0 || ^4.0.0", - "vite": "^4.0.0" - } - }, - "node_modules/@types/cookie": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.4.tgz", - "integrity": "sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==", - "dev": true - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "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.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/pug": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.9.tgz", - "integrity": "sha512-Yg4LkgFYvn1faISbDNWmcAC1XoDT8IoMUFspp5mnagKk+UvD2N0IWt5A7GRdMubsNWqgCLmrkf8rXkzNqb4szA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", - "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/type-utils": "6.11.0", - "@typescript-eslint/utils": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "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" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", - "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", - "debug": "^4.3.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" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", - "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", - "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/utils": "6.11.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "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" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", - "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", - "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.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/@typescript-eslint/utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", - "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", - "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.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.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/@typescript-eslint/visitor-keys": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", - "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.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/@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.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "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-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/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "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": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": 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 - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "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/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "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/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/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.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "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.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "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-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", - "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/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/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/code-red": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", - "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15", - "@types/estree": "^1.0.1", - "acorn": "^8.10.0", - "estree-walker": "^3.0.3", - "periscopic": "^3.1.0" - } - }, - "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/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "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/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "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/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "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/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/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/devalue": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", - "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", - "dev": true - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "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/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "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/electron-to-chromium": { - "version": "1.4.582", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.582.tgz", - "integrity": "sha512-89o0MGoocwYbzqUUjc+VNpeOFSOK9nIdC5wY4N+PVUarUK0MtjyTjks75AZS2bW4Kl8MdewdFsWaH0jLy+JNoA==", - "dev": true - }, - "node_modules/es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.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-compat-utils": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", - "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-svelte": { - "version": "2.35.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.35.0.tgz", - "integrity": "sha512-3WDFxNrkXaMlpqoNo3M1ZOQuoFLMO9+bdnN6oVVXaydXC7nzCJuGy9a0zqoNDHMSRPYt0Rqo6hIdHMEaI5sQnw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@jridgewell/sourcemap-codec": "^1.4.14", - "debug": "^4.3.1", - "eslint-compat-utils": "^0.1.2", - "esutils": "^2.0.3", - "known-css-properties": "^0.29.0", - "postcss": "^8.4.5", - "postcss-load-config": "^3.1.4", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", - "semver": "^7.5.3", - "svelte-eslint-parser": ">=0.33.0 <1.0.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0-0", - "svelte": "^3.37.0 || ^4.0.0" - }, - "peerDependenciesMeta": { - "svelte": { - "optional": true - } - } - }, - "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/esm-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", - "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", - "dev": true - }, - "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/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/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.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/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.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "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/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "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/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/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/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true - }, - "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/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "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.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "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-meta-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", - "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "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-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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-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-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "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/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "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/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-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/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": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/known-css-properties": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", - "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", - "dev": true - }, - "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/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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-character": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "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.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": "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/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "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/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "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 - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "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/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "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/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/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/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-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/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, - "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/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "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" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", - "dev": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-scss": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", - "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-scss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.4.29" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/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": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-svelte": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.10.1.tgz", - "integrity": "sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==", - "dev": true, - "peerDependencies": { - "prettier": "^1.16.4 || ^2.0.0", - "svelte": "^3.2.0 || ^4.0.0-next.0" - } - }, - "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/purgecss": { - "version": "6.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-6.0.0-alpha.0.tgz", - "integrity": "sha512-UC7d7uIyZsky+srEsSXny9BkbTcVn3ZtBCNX3rW3DsqJKhvUXFRpufA4ktcHzWF0+JLZgmsqjUm/8R82x9bHpw==", - "dev": true, - "dependencies": { - "commander": "^10.0.0", - "glob": "^8.0.3", - "postcss": "^8.4.4", - "postcss-selector-parser": "^6.0.7" - }, - "bin": { - "purgecss": "bin/purgecss.js" - } - }, - "node_modules/purgecss/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/purgecss/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/purgecss/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/purgecss/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "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/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.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-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/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": "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/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "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": [ - { - "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/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sander": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", - "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", - "dev": true, - "dependencies": { - "es6-promise": "^3.1.2", - "graceful-fs": "^4.1.3", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.2" - } - }, - "node_modules/sander/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "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/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dev": true, - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "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/sorcery": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", - "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.14", - "buffer-crc32": "^0.2.5", - "minimist": "^1.2.0", - "sander": "^0.5.0" - }, - "bin": { - "sorcery": "bin/sorcery" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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_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" - } - }, - "node_modules/svelte": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.3.tgz", - "integrity": "sha512-sqmG9KC6uUc7fb3ZuWoxXvqk6MI9Uu4ABA1M0fYDgTlFYu1k02xp96u6U9+yJZiVm84m9zge7rrA/BNZdFpOKw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@jridgewell/sourcemap-codec": "^1.4.15", - "@jridgewell/trace-mapping": "^0.3.18", - "acorn": "^8.9.0", - "aria-query": "^5.3.0", - "axobject-query": "^3.2.1", - "code-red": "^1.0.3", - "css-tree": "^2.3.1", - "estree-walker": "^3.0.3", - "is-reference": "^3.0.1", - "locate-character": "^3.0.0", - "magic-string": "^0.30.4", - "periscopic": "^3.1.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/svelte-check": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.0.tgz", - "integrity": "sha512-8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "chokidar": "^3.4.1", - "fast-glob": "^3.2.7", - "import-fresh": "^3.2.1", - "picocolors": "^1.0.0", - "sade": "^1.7.4", - "svelte-preprocess": "^5.1.0", - "typescript": "^5.0.3" - }, - "bin": { - "svelte-check": "bin/svelte-check" - }, - "peerDependencies": { - "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" - } - }, - "node_modules/svelte-eslint-parser": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz", - "integrity": "sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==", - "dev": true, - "dependencies": { - "eslint-scope": "^7.0.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "postcss": "^8.4.29", - "postcss-scss": "^4.0.8" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "svelte": "^3.37.0 || ^4.0.0" - }, - "peerDependenciesMeta": { - "svelte": { - "optional": true - } - } - }, - "node_modules/svelte-hmr": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", - "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==", - "dev": true, - "engines": { - "node": "^12.20 || ^14.13.1 || >= 16" - }, - "peerDependencies": { - "svelte": "^3.19.0 || ^4.0.0" - } - }, - "node_modules/svelte-preprocess": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.0.tgz", - "integrity": "sha512-EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@types/pug": "^2.0.6", - "detect-indent": "^6.1.0", - "magic-string": "^0.27.0", - "sorcery": "^0.11.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">= 14.10.0" - }, - "peerDependencies": { - "@babel/core": "^7.10.2", - "coffeescript": "^2.5.1", - "less": "^3.11.3 || ^4.0.0", - "postcss": "^7 || ^8", - "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", - "pug": "^3.0.0", - "sass": "^1.26.8", - "stylus": "^0.55.0", - "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", - "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "coffeescript": { - "optional": true - }, - "less": { - "optional": true - }, - "postcss": { - "optional": true - }, - "postcss-load-config": { - "optional": true - }, - "pug": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/svelte-preprocess/node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/tailwindcss": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", - "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.19.1", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/tailwindcss/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "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/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, - "dependencies": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, - "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, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "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" - } - }, - "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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", - "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", - "dev": true, - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "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 - }, - "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, - "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" - } - }, - "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, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", - "dev": true, - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-tailwind-purgecss": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/vite-plugin-tailwind-purgecss/-/vite-plugin-tailwind-purgecss-0.1.3.tgz", - "integrity": "sha512-VVz9fwKBEEFSbj/rKxtwtczvoSrIqbzbo6S+MT7gH0CsmKNwlx947VMoV8B085ocxGCuFlddOPRDszNXLi2nTQ==", - "dev": true, - "dependencies": { - "estree-walker": "^3.0.3", - "purgecss": "6.0.0-alpha.0" - }, - "peerDependencies": { - "vite": "^4.1.1" - } - }, - "node_modules/vitefu": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", - "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", - "dev": true, - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": 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" - } - }, - "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==", - "dev": true - }, - "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/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/node_modules/.vite/deps_temp_3b54e7de/package.json b/node_modules/.vite/deps_temp_3b54e7de/package.json deleted file mode 100644 index 3dbc1ca..0000000 --- a/node_modules/.vite/deps_temp_3b54e7de/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/node_modules/.vite/deps_temp_439f043c/package.json b/node_modules/.vite/deps_temp_439f043c/package.json deleted file mode 100644 index 3dbc1ca..0000000 --- a/node_modules/.vite/deps_temp_439f043c/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/node_modules/.vite/deps_temp_780c9006/package.json b/node_modules/.vite/deps_temp_780c9006/package.json deleted file mode 100644 index 3dbc1ca..0000000 --- a/node_modules/.vite/deps_temp_780c9006/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/node_modules/.vite/deps_temp_837e1255/package.json b/node_modules/.vite/deps_temp_837e1255/package.json deleted file mode 100644 index 3dbc1ca..0000000 --- a/node_modules/.vite/deps_temp_837e1255/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/node_modules/.vite/deps_temp_a82ad000/package.json b/node_modules/.vite/deps_temp_a82ad000/package.json deleted file mode 100644 index 3dbc1ca..0000000 --- a/node_modules/.vite/deps_temp_a82ad000/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/node_modules/@fastify/busboy/lib/utils/decodeText.js b/node_modules/@fastify/busboy/lib/utils/decodeText.js index be35d6b..ee37606 100644 --- a/node_modules/@fastify/busboy/lib/utils/decodeText.js +++ b/node_modules/@fastify/busboy/lib/utils/decodeText.js @@ -7,106 +7,18 @@ const textDecoders = new Map([ ['utf8', utf8Decoder] ]) -function getDecoder (charset) { - let lc - while (true) { - switch (charset) { - case 'utf-8': - case 'utf8': - return decoders.utf8 - case 'latin1': - case 'ascii': // TODO: Make these a separate, strict decoder? - case 'us-ascii': - case 'iso-8859-1': - case 'iso8859-1': - case 'iso88591': - case 'iso_8859-1': - case 'windows-1252': - case 'iso_8859-1:1987': - case 'cp1252': - case 'x-cp1252': - return decoders.latin1 - case 'utf16le': - case 'utf-16le': - case 'ucs2': - case 'ucs-2': - return decoders.utf16le - case 'base64': - return decoders.base64 - default: - if (lc === undefined) { - lc = true - charset = charset.toLowerCase() - continue - } - return decoders.other.bind(charset) - } - } -} - -const decoders = { - utf8: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.utf8Slice(0, data.length) - }, - - latin1: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - return data - } - return data.latin1Slice(0, data.length) - }, - - utf16le: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.ucs2Slice(0, data.length) - }, - - base64: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - return data.base64Slice(0, data.length) - }, - - other: (data, sourceEncoding) => { - if (data.length === 0) { - return '' - } - if (typeof data === 'string') { - data = Buffer.from(data, sourceEncoding) - } - - if (textDecoders.has(this.toString())) { +function decodeText (text, textEncoding, destEncoding) { + if (text) { + if (textDecoders.has(destEncoding)) { try { - return textDecoders.get(this).decode(data) + return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding)) + } catch (e) { } + } else { + try { + textDecoders.set(destEncoding, new TextDecoder(destEncoding)) + return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding)) } catch (e) { } } - return typeof data === 'string' - ? data - : data.toString() - } -} - -function decodeText (text, sourceEncoding, destEncoding) { - if (text) { - return getDecoder(destEncoding)(text, sourceEncoding) } return text } diff --git a/node_modules/@fastify/busboy/lib/utils/parseParams.js b/node_modules/@fastify/busboy/lib/utils/parseParams.js index 1698e62..f921418 100644 --- a/node_modules/@fastify/busboy/lib/utils/parseParams.js +++ b/node_modules/@fastify/busboy/lib/utils/parseParams.js @@ -1,130 +1,23 @@ -/* eslint-disable object-property-newline */ 'use strict' const decodeText = require('./decodeText') -const RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g +const RE_ENCODED = /%([a-fA-F0-9]{2})/g -const EncodedLookup = { - '%00': '\x00', '%01': '\x01', '%02': '\x02', '%03': '\x03', '%04': '\x04', - '%05': '\x05', '%06': '\x06', '%07': '\x07', '%08': '\x08', '%09': '\x09', - '%0a': '\x0a', '%0A': '\x0a', '%0b': '\x0b', '%0B': '\x0b', '%0c': '\x0c', - '%0C': '\x0c', '%0d': '\x0d', '%0D': '\x0d', '%0e': '\x0e', '%0E': '\x0e', - '%0f': '\x0f', '%0F': '\x0f', '%10': '\x10', '%11': '\x11', '%12': '\x12', - '%13': '\x13', '%14': '\x14', '%15': '\x15', '%16': '\x16', '%17': '\x17', - '%18': '\x18', '%19': '\x19', '%1a': '\x1a', '%1A': '\x1a', '%1b': '\x1b', - '%1B': '\x1b', '%1c': '\x1c', '%1C': '\x1c', '%1d': '\x1d', '%1D': '\x1d', - '%1e': '\x1e', '%1E': '\x1e', '%1f': '\x1f', '%1F': '\x1f', '%20': '\x20', - '%21': '\x21', '%22': '\x22', '%23': '\x23', '%24': '\x24', '%25': '\x25', - '%26': '\x26', '%27': '\x27', '%28': '\x28', '%29': '\x29', '%2a': '\x2a', - '%2A': '\x2a', '%2b': '\x2b', '%2B': '\x2b', '%2c': '\x2c', '%2C': '\x2c', - '%2d': '\x2d', '%2D': '\x2d', '%2e': '\x2e', '%2E': '\x2e', '%2f': '\x2f', - '%2F': '\x2f', '%30': '\x30', '%31': '\x31', '%32': '\x32', '%33': '\x33', - '%34': '\x34', '%35': '\x35', '%36': '\x36', '%37': '\x37', '%38': '\x38', - '%39': '\x39', '%3a': '\x3a', '%3A': '\x3a', '%3b': '\x3b', '%3B': '\x3b', - '%3c': '\x3c', '%3C': '\x3c', '%3d': '\x3d', '%3D': '\x3d', '%3e': '\x3e', - '%3E': '\x3e', '%3f': '\x3f', '%3F': '\x3f', '%40': '\x40', '%41': '\x41', - '%42': '\x42', '%43': '\x43', '%44': '\x44', '%45': '\x45', '%46': '\x46', - '%47': '\x47', '%48': '\x48', '%49': '\x49', '%4a': '\x4a', '%4A': '\x4a', - '%4b': '\x4b', '%4B': '\x4b', '%4c': '\x4c', '%4C': '\x4c', '%4d': '\x4d', - '%4D': '\x4d', '%4e': '\x4e', '%4E': '\x4e', '%4f': '\x4f', '%4F': '\x4f', - '%50': '\x50', '%51': '\x51', '%52': '\x52', '%53': '\x53', '%54': '\x54', - '%55': '\x55', '%56': '\x56', '%57': '\x57', '%58': '\x58', '%59': '\x59', - '%5a': '\x5a', '%5A': '\x5a', '%5b': '\x5b', '%5B': '\x5b', '%5c': '\x5c', - '%5C': '\x5c', '%5d': '\x5d', '%5D': '\x5d', '%5e': '\x5e', '%5E': '\x5e', - '%5f': '\x5f', '%5F': '\x5f', '%60': '\x60', '%61': '\x61', '%62': '\x62', - '%63': '\x63', '%64': '\x64', '%65': '\x65', '%66': '\x66', '%67': '\x67', - '%68': '\x68', '%69': '\x69', '%6a': '\x6a', '%6A': '\x6a', '%6b': '\x6b', - '%6B': '\x6b', '%6c': '\x6c', '%6C': '\x6c', '%6d': '\x6d', '%6D': '\x6d', - '%6e': '\x6e', '%6E': '\x6e', '%6f': '\x6f', '%6F': '\x6f', '%70': '\x70', - '%71': '\x71', '%72': '\x72', '%73': '\x73', '%74': '\x74', '%75': '\x75', - '%76': '\x76', '%77': '\x77', '%78': '\x78', '%79': '\x79', '%7a': '\x7a', - '%7A': '\x7a', '%7b': '\x7b', '%7B': '\x7b', '%7c': '\x7c', '%7C': '\x7c', - '%7d': '\x7d', '%7D': '\x7d', '%7e': '\x7e', '%7E': '\x7e', '%7f': '\x7f', - '%7F': '\x7f', '%80': '\x80', '%81': '\x81', '%82': '\x82', '%83': '\x83', - '%84': '\x84', '%85': '\x85', '%86': '\x86', '%87': '\x87', '%88': '\x88', - '%89': '\x89', '%8a': '\x8a', '%8A': '\x8a', '%8b': '\x8b', '%8B': '\x8b', - '%8c': '\x8c', '%8C': '\x8c', '%8d': '\x8d', '%8D': '\x8d', '%8e': '\x8e', - '%8E': '\x8e', '%8f': '\x8f', '%8F': '\x8f', '%90': '\x90', '%91': '\x91', - '%92': '\x92', '%93': '\x93', '%94': '\x94', '%95': '\x95', '%96': '\x96', - '%97': '\x97', '%98': '\x98', '%99': '\x99', '%9a': '\x9a', '%9A': '\x9a', - '%9b': '\x9b', '%9B': '\x9b', '%9c': '\x9c', '%9C': '\x9c', '%9d': '\x9d', - '%9D': '\x9d', '%9e': '\x9e', '%9E': '\x9e', '%9f': '\x9f', '%9F': '\x9f', - '%a0': '\xa0', '%A0': '\xa0', '%a1': '\xa1', '%A1': '\xa1', '%a2': '\xa2', - '%A2': '\xa2', '%a3': '\xa3', '%A3': '\xa3', '%a4': '\xa4', '%A4': '\xa4', - '%a5': '\xa5', '%A5': '\xa5', '%a6': '\xa6', '%A6': '\xa6', '%a7': '\xa7', - '%A7': '\xa7', '%a8': '\xa8', '%A8': '\xa8', '%a9': '\xa9', '%A9': '\xa9', - '%aa': '\xaa', '%Aa': '\xaa', '%aA': '\xaa', '%AA': '\xaa', '%ab': '\xab', - '%Ab': '\xab', '%aB': '\xab', '%AB': '\xab', '%ac': '\xac', '%Ac': '\xac', - '%aC': '\xac', '%AC': '\xac', '%ad': '\xad', '%Ad': '\xad', '%aD': '\xad', - '%AD': '\xad', '%ae': '\xae', '%Ae': '\xae', '%aE': '\xae', '%AE': '\xae', - '%af': '\xaf', '%Af': '\xaf', '%aF': '\xaf', '%AF': '\xaf', '%b0': '\xb0', - '%B0': '\xb0', '%b1': '\xb1', '%B1': '\xb1', '%b2': '\xb2', '%B2': '\xb2', - '%b3': '\xb3', '%B3': '\xb3', '%b4': '\xb4', '%B4': '\xb4', '%b5': '\xb5', - '%B5': '\xb5', '%b6': '\xb6', '%B6': '\xb6', '%b7': '\xb7', '%B7': '\xb7', - '%b8': '\xb8', '%B8': '\xb8', '%b9': '\xb9', '%B9': '\xb9', '%ba': '\xba', - '%Ba': '\xba', '%bA': '\xba', '%BA': '\xba', '%bb': '\xbb', '%Bb': '\xbb', - '%bB': '\xbb', '%BB': '\xbb', '%bc': '\xbc', '%Bc': '\xbc', '%bC': '\xbc', - '%BC': '\xbc', '%bd': '\xbd', '%Bd': '\xbd', '%bD': '\xbd', '%BD': '\xbd', - '%be': '\xbe', '%Be': '\xbe', '%bE': '\xbe', '%BE': '\xbe', '%bf': '\xbf', - '%Bf': '\xbf', '%bF': '\xbf', '%BF': '\xbf', '%c0': '\xc0', '%C0': '\xc0', - '%c1': '\xc1', '%C1': '\xc1', '%c2': '\xc2', '%C2': '\xc2', '%c3': '\xc3', - '%C3': '\xc3', '%c4': '\xc4', '%C4': '\xc4', '%c5': '\xc5', '%C5': '\xc5', - '%c6': '\xc6', '%C6': '\xc6', '%c7': '\xc7', '%C7': '\xc7', '%c8': '\xc8', - '%C8': '\xc8', '%c9': '\xc9', '%C9': '\xc9', '%ca': '\xca', '%Ca': '\xca', - '%cA': '\xca', '%CA': '\xca', '%cb': '\xcb', '%Cb': '\xcb', '%cB': '\xcb', - '%CB': '\xcb', '%cc': '\xcc', '%Cc': '\xcc', '%cC': '\xcc', '%CC': '\xcc', - '%cd': '\xcd', '%Cd': '\xcd', '%cD': '\xcd', '%CD': '\xcd', '%ce': '\xce', - '%Ce': '\xce', '%cE': '\xce', '%CE': '\xce', '%cf': '\xcf', '%Cf': '\xcf', - '%cF': '\xcf', '%CF': '\xcf', '%d0': '\xd0', '%D0': '\xd0', '%d1': '\xd1', - '%D1': '\xd1', '%d2': '\xd2', '%D2': '\xd2', '%d3': '\xd3', '%D3': '\xd3', - '%d4': '\xd4', '%D4': '\xd4', '%d5': '\xd5', '%D5': '\xd5', '%d6': '\xd6', - '%D6': '\xd6', '%d7': '\xd7', '%D7': '\xd7', '%d8': '\xd8', '%D8': '\xd8', - '%d9': '\xd9', '%D9': '\xd9', '%da': '\xda', '%Da': '\xda', '%dA': '\xda', - '%DA': '\xda', '%db': '\xdb', '%Db': '\xdb', '%dB': '\xdb', '%DB': '\xdb', - '%dc': '\xdc', '%Dc': '\xdc', '%dC': '\xdc', '%DC': '\xdc', '%dd': '\xdd', - '%Dd': '\xdd', '%dD': '\xdd', '%DD': '\xdd', '%de': '\xde', '%De': '\xde', - '%dE': '\xde', '%DE': '\xde', '%df': '\xdf', '%Df': '\xdf', '%dF': '\xdf', - '%DF': '\xdf', '%e0': '\xe0', '%E0': '\xe0', '%e1': '\xe1', '%E1': '\xe1', - '%e2': '\xe2', '%E2': '\xe2', '%e3': '\xe3', '%E3': '\xe3', '%e4': '\xe4', - '%E4': '\xe4', '%e5': '\xe5', '%E5': '\xe5', '%e6': '\xe6', '%E6': '\xe6', - '%e7': '\xe7', '%E7': '\xe7', '%e8': '\xe8', '%E8': '\xe8', '%e9': '\xe9', - '%E9': '\xe9', '%ea': '\xea', '%Ea': '\xea', '%eA': '\xea', '%EA': '\xea', - '%eb': '\xeb', '%Eb': '\xeb', '%eB': '\xeb', '%EB': '\xeb', '%ec': '\xec', - '%Ec': '\xec', '%eC': '\xec', '%EC': '\xec', '%ed': '\xed', '%Ed': '\xed', - '%eD': '\xed', '%ED': '\xed', '%ee': '\xee', '%Ee': '\xee', '%eE': '\xee', - '%EE': '\xee', '%ef': '\xef', '%Ef': '\xef', '%eF': '\xef', '%EF': '\xef', - '%f0': '\xf0', '%F0': '\xf0', '%f1': '\xf1', '%F1': '\xf1', '%f2': '\xf2', - '%F2': '\xf2', '%f3': '\xf3', '%F3': '\xf3', '%f4': '\xf4', '%F4': '\xf4', - '%f5': '\xf5', '%F5': '\xf5', '%f6': '\xf6', '%F6': '\xf6', '%f7': '\xf7', - '%F7': '\xf7', '%f8': '\xf8', '%F8': '\xf8', '%f9': '\xf9', '%F9': '\xf9', - '%fa': '\xfa', '%Fa': '\xfa', '%fA': '\xfa', '%FA': '\xfa', '%fb': '\xfb', - '%Fb': '\xfb', '%fB': '\xfb', '%FB': '\xfb', '%fc': '\xfc', '%Fc': '\xfc', - '%fC': '\xfc', '%FC': '\xfc', '%fd': '\xfd', '%Fd': '\xfd', '%fD': '\xfd', - '%FD': '\xfd', '%fe': '\xfe', '%Fe': '\xfe', '%fE': '\xfe', '%FE': '\xfe', - '%ff': '\xff', '%Ff': '\xff', '%fF': '\xff', '%FF': '\xff' +function encodedReplacer (match, byte) { + return String.fromCharCode(parseInt(byte, 16)) } -function encodedReplacer (match) { - return EncodedLookup[match] -} - -const STATE_KEY = 0 -const STATE_VALUE = 1 -const STATE_CHARSET = 2 -const STATE_LANG = 3 - function parseParams (str) { const res = [] - let state = STATE_KEY + let state = 'key' let charset = '' let inquote = false let escaping = false let p = 0 let tmp = '' - const len = str.length - for (var i = 0; i < len; ++i) { // eslint-disable-line no-var + for (var i = 0, len = str.length; i < len; ++i) { // eslint-disable-line no-var const char = str[i] if (char === '\\' && inquote) { if (escaping) { escaping = false } else { @@ -135,31 +28,29 @@ function parseParams (str) { if (!escaping) { if (inquote) { inquote = false - state = STATE_KEY + state = 'key' } else { inquote = true } continue } else { escaping = false } } else { if (escaping && inquote) { tmp += '\\' } escaping = false - if ((state === STATE_CHARSET || state === STATE_LANG) && char === "'") { - if (state === STATE_CHARSET) { - state = STATE_LANG + if ((state === 'charset' || state === 'lang') && char === "'") { + if (state === 'charset') { + state = 'lang' charset = tmp.substring(1) - } else { state = STATE_VALUE } + } else { state = 'value' } tmp = '' continue - } else if (state === STATE_KEY && + } else if (state === 'key' && (char === '*' || char === '=') && res.length) { - state = char === '*' - ? STATE_CHARSET - : STATE_VALUE + if (char === '*') { state = 'charset' } else { state = 'value' } res[p] = [tmp, undefined] tmp = '' continue } else if (!inquote && char === ';') { - state = STATE_KEY + state = 'key' if (charset) { if (tmp.length) { tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), diff --git a/node_modules/@fastify/busboy/package.json b/node_modules/@fastify/busboy/package.json index 4be895c..3288ee0 100644 --- a/node_modules/@fastify/busboy/package.json +++ b/node_modules/@fastify/busboy/package.json @@ -1,6 +1,6 @@ { "name": "@fastify/busboy", - "version": "2.1.0", + "version": "2.0.0", "private": false, "author": "Brian White ", "contributors": [ @@ -17,7 +17,6 @@ ], "description": "A streaming parser for HTML form data for node.js", "main": "lib/main", - "type": "commonjs", "types": "lib/main.d.ts", "scripts": { "bench:busboy": "cd benchmarks && npm install && npm run benchmark-fastify", @@ -27,7 +26,7 @@ "lint:everything": "npm run lint && npm run test:types", "lint:fix": "standard --fix", "lint:standard": "standard --verbose | snazzy", - "test:mocha": "tap", + "test:mocha": "mocha test", "test:types": "tsd", "test:coverage": "nyc npm run test", "test": "npm run test:mocha" @@ -38,11 +37,15 @@ "devDependencies": { "@types/node": "^20.1.0", "busboy": "^1.0.0", + "chai": "^4.3.6", + "eslint": "^8.23.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-n": "^16.0.0", + "mocha": "^10.0.0", + "nyc": "^15.1.0", "photofinish": "^1.8.0", "snazzy": "^9.0.0", "standard": "^17.0.0", - "tap": "^16.3.8", - "tinybench": "^2.5.1", "tsd": "^0.29.0", "typescript": "^5.0.2" }, diff --git a/node_modules/@polka/url/build.js b/node_modules/@polka/url/build.js index 33dfc56..7fdee87 100644 --- a/node_modules/@polka/url/build.js +++ b/node_modules/@polka/url/build.js @@ -1,42 +1,47 @@ -const qs = require('querystring'); - -/** - * @typedef ParsedURL - * @type {import('.').ParsedURL} - */ - -/** - * @typedef Request - * @property {string} url - * @property {ParsedURL} _parsedUrl - */ - -/** - * @param {Request} req - * @returns {ParsedURL|void} - */ -function parse(req) { - let raw = req.url; - if (raw == null) return; - - let prev = req._parsedUrl; - if (prev && prev.raw === raw) return prev; +function parse(str) { + let out={}, arr=str.split('&'); + for (let i=0, k, v; i < arr.length; i++) { + [k, v=''] = arr[i].split('='); + out[k] = out[k] !== void 0 ? [].concat(out[k], v) : v; + } + return out; +} - let pathname=raw, search='', query; +module.exports = function (req, toDecode) { + let url = req.url; + if (url == null) return; + + let obj = req._parsedUrl; + if (obj && obj._raw === url) return obj; + + obj = { + path: url, + pathname: url, + search: null, + query: null, + href: url, + _raw: url + }; + + if (url.length > 1) { + if (toDecode && !req._decoded && !!~url.indexOf('%', 1)) { + let nxt = url; + try { nxt = decodeURIComponent(url) } catch (e) {/* bad */} + url = req.url = obj.href = obj.path = obj.pathname = obj._raw = nxt; + req._decoded = true; + } - if (raw.length > 1) { - let idx = raw.indexOf('?', 1); + let idx = url.indexOf('?', 1); if (idx !== -1) { - search = raw.substring(idx); - pathname = raw.substring(0, idx); - if (search.length > 1) { - query = qs.parse(search.substring(1)); + obj.search = url.substring(idx); + obj.query = obj.search.substring(1); + obj.pathname = url.substring(0, idx); + if (toDecode && obj.query.length > 0) { + obj.query = parse(obj.query); } } } - return req._parsedUrl = { pathname, search, query, raw }; + return (req._parsedUrl = obj); } - -exports.parse = parse; \ No newline at end of file diff --git a/node_modules/@polka/url/build.mjs b/node_modules/@polka/url/build.mjs index 9d5e7b9..f2114ab 100644 --- a/node_modules/@polka/url/build.mjs +++ b/node_modules/@polka/url/build.mjs @@ -1,40 +1,47 @@ -import * as qs from 'querystring'; - -/** - * @typedef ParsedURL - * @type {import('.').ParsedURL} - */ - -/** - * @typedef Request - * @property {string} url - * @property {ParsedURL} _parsedUrl - */ - -/** - * @param {Request} req - * @returns {ParsedURL|void} - */ -export function parse(req) { - let raw = req.url; - if (raw == null) return; - - let prev = req._parsedUrl; - if (prev && prev.raw === raw) return prev; +function parse(str) { + let out={}, arr=str.split('&'); + for (let i=0, k, v; i < arr.length; i++) { + [k, v=''] = arr[i].split('='); + out[k] = out[k] !== void 0 ? [].concat(out[k], v) : v; + } + return out; +} - let pathname=raw, search='', query; +export default function (req, toDecode) { + let url = req.url; + if (url == null) return; + + let obj = req._parsedUrl; + if (obj && obj._raw === url) return obj; + + obj = { + path: url, + pathname: url, + search: null, + query: null, + href: url, + _raw: url + }; + + if (url.length > 1) { + if (toDecode && !req._decoded && !!~url.indexOf('%', 1)) { + let nxt = url; + try { nxt = decodeURIComponent(url) } catch (e) {/* bad */} + url = req.url = obj.href = obj.path = obj.pathname = obj._raw = nxt; + req._decoded = true; + } - if (raw.length > 1) { - let idx = raw.indexOf('?', 1); + let idx = url.indexOf('?', 1); if (idx !== -1) { - search = raw.substring(idx); - pathname = raw.substring(0, idx); - if (search.length > 1) { - query = qs.parse(search.substring(1)); + obj.search = url.substring(idx); + obj.query = obj.search.substring(1); + obj.pathname = url.substring(0, idx); + if (toDecode && obj.query.length > 0) { + obj.query = parse(obj.query); } } } - return req._parsedUrl = { pathname, search, query, raw }; + return (req._parsedUrl = obj); } diff --git a/node_modules/@polka/url/index.d.ts b/node_modules/@polka/url/index.d.ts deleted file mode 100644 index 9b27c04..0000000 --- a/node_modules/@polka/url/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { IncomingMessage } from 'http'; - -export interface ParsedURL { - pathname: string; - search: string; - query: Record | void; - raw: string; -} - -export function parse(req: IncomingMessage): ParsedURL; diff --git a/node_modules/@polka/url/package.json b/node_modules/@polka/url/package.json index f934d0e..9c27135 100644 --- a/node_modules/@polka/url/package.json +++ b/node_modules/@polka/url/package.json @@ -1,22 +1,12 @@ { - "version": "1.0.0-next.23", + "version": "1.0.0-next.9", "name": "@polka/url", "repository": "lukeed/polka", "description": "Super fast, memoized `req.url` parser", "module": "build.mjs", - "types": "index.d.ts", "main": "build.js", "license": "MIT", - "exports": { - ".": { - "types": "./index.d.ts", - "import": "./build.mjs", - "require": "./build.js" - }, - "./package.json": "./package.json" - }, "files": [ - "*.d.ts", "build.*" ], "author": { @@ -26,5 +16,6 @@ }, "publishConfig": { "access": "public" - } -} \ No newline at end of file + }, + "gitHead": "5c8f314e57c1edb3132f2556ce13fb6c2b4e839b" +} diff --git a/node_modules/@polka/url/readme.md b/node_modules/@polka/url/readme.md index 69947a7..7739e8f 100644 --- a/node_modules/@polka/url/readme.md +++ b/node_modules/@polka/url/readme.md @@ -2,11 +2,11 @@ > Super fast, memoized `req.url` parser; _not_ limited to [Polka][polka]! -Parses the `url` from a [`IncomingMessage`](https://nodejs.org/api/http.html#http_class_http_incomingmessage) request. The returned object will always only contain the following keys: `search`, `query`, `pathname`, and `raw`. +Parses the `url` from a [`IncomingMessage`](https://nodejs.org/api/http.html#http_class_http_incomingmessage) request. The returned object will always only contain the following keys: `search`, `query`, `pathname`, `path`, `href`, and `_raw`. > **Note:** This library does not process `protocol`, `hostname`, `port`, etc.
This is because the incoming `req.url` value only begins with the path information. -Parsed requests will be mutated with a `_parsedUrl` key, containing the returned output. This is used for future memoization, avoiding the need to fully parse the same `url` value multiple times. +Parsed requests will be mutated with a `_parsedUrl` key, containing the returned output. This is used for future memoization, so as to avoid parsing the same `url` value multiple times. ## Install @@ -19,37 +19,58 @@ $ npm install --save @polka/url ```js const parse = require('@polka/url'); -let req = { - url: '/foo/bar?fizz=buzz' -}; -let output = parse(req); -//=> { +let req = { url: '/foo/bar?fizz=buzz' }; +let foo = parse(req); +//=> { search: '?fizz=buzz', +//=> query: 'fizz=buzz', //=> pathname: '/foo/bar', -//=> raw: '/foo/bar?fizz=buzz', -//=> search: '?fizz=buzz', -//=> query: { -//=> fizz: 'buzz' -//=> }, -//=> } +//=> path: '/foo/bar?fizz=buzz', +//=> href: '/foo/bar?fizz=buzz', +//=> _raw: '/foo/bar?fizz=buzz' } // Attaches result for future memoization -assert.deepEqual(output, req._parsedUrl); //=> true +assert.deepEqual(foo, req._parsedUrl); //=> true + +// Example with `toDecode` param +req = { url: '/f%C3%B8%C3%B8%C3%9F%E2%88%82r?phone=%2b8675309' }; +parse(req, true); +//=> { search: '?phone=+8675309', +//=> query: { phone: '+8675309' }, +//=> pathname: '/føøß∂r', +//=> path: '/føøß∂r?phone=+8675309', +//=> href: '/føøß∂r?phone=+8675309', +//=> _raw: '/føøß∂r?phone=+8675309' } + +// Attaches awareness key +assert(req._decoded); //=> true ``` ## API -### url(req) +### url(req, toDecode) Returns: `Object` or `undefined` > **Important:** The `req` must have a `url` key, otherwise `undefined` will be returned.
If no input is provided at all, a `TypeError` will be thrown. #### req -Type: `IncomingMessage` or `{ url: string }` +Type: `IncomingMessage` or `Object` The incoming HTTP request (`req`) or a plain `Object` with a `url` key. > **Note:** In Node.js servers, the [`req.url`](https://nodejs.org/api/http.html#http_message_url) begins with a pathname & does not include a `hash`. +#### toDecode +Type: `Boolean`
+Default: `false` + +If enabled, the `url` will be fully decoded (via [`decodeURIComponent`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent)) and the output keys will be slightly different: + +* `path`, `pathname`, `href`, `_raw` — will be the decoded strings +* `search` — if there is a value, will be decoded string, else remain `null` +* `query` — if there is a value, will be a decoded **object**, else remain `null` + +Additionally, the `req` is mutated with `req._decoded = true` so as to prevent repetitive decoding. + ## Benchmarks diff --git a/node_modules/@sveltejs/kit/package.json b/node_modules/@sveltejs/kit/package.json index 2503215..3c77987 100644 --- a/node_modules/@sveltejs/kit/package.json +++ b/node_modules/@sveltejs/kit/package.json @@ -1,6 +1,6 @@ { "name": "@sveltejs/kit", - "version": "1.27.5", + "version": "1.27.3", "description": "The fastest way to build Svelte apps", "repository": { "type": "git", @@ -11,7 +11,7 @@ "homepage": "https://kit.svelte.dev", "type": "module", "dependencies": { - "@sveltejs/vite-plugin-svelte": "^2.5.0", + "@sveltejs/vite-plugin-svelte": "^2.4.1", "@types/cookie": "^0.5.1", "cookie": "^0.5.0", "devalue": "^4.3.1", @@ -41,7 +41,7 @@ "vitest": "^0.34.5" }, "peerDependencies": { - "svelte": "^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0", + "svelte": "^3.54.0 || ^4.0.0-next.0", "vite": "^4.0.0" }, "bin": { diff --git a/node_modules/@sveltejs/kit/src/core/config/options.js b/node_modules/@sveltejs/kit/src/core/config/options.js index 2d0c928..7d73510 100644 --- a/node_modules/@sveltejs/kit/src/core/config/options.js +++ b/node_modules/@sveltejs/kit/src/core/config/options.js @@ -1,6 +1,6 @@ import { join } from 'node:path'; -/** @typedef {import('./types.js').Validator} Validator */ +/** @typedef {import('./types').Validator} Validator */ const directives = object({ 'child-src': string_array(), diff --git a/node_modules/@sveltejs/kit/src/core/sync/create_manifest_data/index.js b/node_modules/@sveltejs/kit/src/core/sync/create_manifest_data/index.js index 5d72686..9ca662b 100644 --- a/node_modules/@sveltejs/kit/src/core/sync/create_manifest_data/index.js +++ b/node_modules/@sveltejs/kit/src/core/sync/create_manifest_data/index.js @@ -444,7 +444,7 @@ function create_routes_and_nodes(cwd, config, fallback) { * @param {string} file * @param {string[]} component_extensions * @param {string[]} module_extensions - * @returns {import('./types.js').RouteFile} + * @returns {import('./types').RouteFile} */ function analyze(project_relative, file, component_extensions, module_extensions) { const component_extension = component_extensions.find((ext) => file.endsWith(ext)); diff --git a/node_modules/@sveltejs/kit/src/core/sync/utils.js b/node_modules/@sveltejs/kit/src/core/sync/utils.js index 9e75fc0..0e01813 100644 --- a/node_modules/@sveltejs/kit/src/core/sync/utils.js +++ b/node_modules/@sveltejs/kit/src/core/sync/utils.js @@ -1,6 +1,5 @@ import fs from 'node:fs'; import path from 'node:path'; -import { VERSION } from 'svelte/compiler'; import { mkdirp } from '../../utils/filesystem.js'; /** @type {Map} */ @@ -69,7 +68,3 @@ export function dedent(strings, ...values) { return str; } - -export function isSvelte5Plus() { - return Number(VERSION[0]) >= 5; -} diff --git a/node_modules/@sveltejs/kit/src/core/sync/write_client_manifest.js b/node_modules/@sveltejs/kit/src/core/sync/write_client_manifest.js index b8b920f..7e65baf 100644 --- a/node_modules/@sveltejs/kit/src/core/sync/write_client_manifest.js +++ b/node_modules/@sveltejs/kit/src/core/sync/write_client_manifest.js @@ -1,7 +1,7 @@ import path from 'node:path'; import { relative_path, resolve_entry } from '../../utils/filesystem.js'; import { s } from '../../utils/misc.js'; -import { dedent, isSvelte5Plus, write_if_changed } from './utils.js'; +import { dedent, write_if_changed } from './utils.js'; import colors from 'kleur'; /** @@ -143,7 +143,7 @@ export function write_client_manifest(kit, manifest_data, output, metadata) { }(({ error }) => { console.error(error) }), }; - export { default as root } from '../root.${isSvelte5Plus() ? 'js' : 'svelte'}'; + export { default as root } from '../root.svelte'; ` ); diff --git a/node_modules/@sveltejs/kit/src/core/sync/write_root.js b/node_modules/@sveltejs/kit/src/core/sync/write_root.js index a332664..04caa81 100644 --- a/node_modules/@sveltejs/kit/src/core/sync/write_root.js +++ b/node_modules/@sveltejs/kit/src/core/sync/write_root.js @@ -1,4 +1,4 @@ -import { dedent, isSvelte5Plus, write_if_changed } from './utils.js'; +import { dedent, write_if_changed } from './utils.js'; /** * @param {import('types').ManifestData} manifest_data @@ -89,15 +89,4 @@ export function write_root(manifest_data, output) { {/if} ` ); - - if (isSvelte5Plus()) { - write_if_changed( - `${output}/root.js`, - dedent` - import { asClassComponent } from 'svelte/legacy'; - import Root from './root.svelte'; - export default asClassComponent(Root); - ` - ); - } } diff --git a/node_modules/@sveltejs/kit/src/core/sync/write_server.js b/node_modules/@sveltejs/kit/src/core/sync/write_server.js index f3d29df..976417f 100644 --- a/node_modules/@sveltejs/kit/src/core/sync/write_server.js +++ b/node_modules/@sveltejs/kit/src/core/sync/write_server.js @@ -4,7 +4,7 @@ import { posixify, resolve_entry } from '../../utils/filesystem.js'; import { s } from '../../utils/misc.js'; import { load_error_page, load_template } from '../config/index.js'; import { runtime_directory } from '../utils.js'; -import { isSvelte5Plus, write_if_changed } from './utils.js'; +import { write_if_changed } from './utils.js'; import colors from 'kleur'; /** @@ -25,7 +25,7 @@ const server_template = ({ template, error_page }) => ` -import root from '../root.${isSvelte5Plus() ? 'js' : 'svelte'}'; +import root from '../root.svelte'; import { set_building } from '__sveltekit/environment'; import { set_assets } from '__sveltekit/paths'; import { set_private_env, set_public_env } from '${runtime_directory}/shared-server.js'; diff --git a/node_modules/@sveltejs/kit/src/core/sync/write_tsconfig.js b/node_modules/@sveltejs/kit/src/core/sync/write_tsconfig.js index 871117b..9f3a083 100644 --- a/node_modules/@sveltejs/kit/src/core/sync/write_tsconfig.js +++ b/node_modules/@sveltejs/kit/src/core/sync/write_tsconfig.js @@ -88,7 +88,6 @@ export function get_tsconfig(kit, include_base_url) { const include = new Set([ 'ambient.d.ts', './types/**/$types.d.ts', - config_relative('vite.config.js'), config_relative('vite.config.ts') ]); // TODO(v2): find a better way to include all src files. We can't just use routes/lib only because diff --git a/node_modules/@sveltejs/kit/src/exports/vite/build/build_server.js b/node_modules/@sveltejs/kit/src/exports/vite/build/build_server.js index f13c298..cebe5f7 100644 --- a/node_modules/@sveltejs/kit/src/exports/vite/build/build_server.js +++ b/node_modules/@sveltejs/kit/src/exports/vite/build/build_server.js @@ -10,7 +10,7 @@ import { normalizePath } from 'vite'; * @param {import('types').ManifestData} manifest_data * @param {import('vite').Manifest} server_manifest * @param {import('vite').Manifest | null} client_manifest - * @param {import('vite').Rollup.OutputAsset[] | null} css + * @param {import('rollup').OutputAsset[] | null} css */ export function build_server_nodes(out, kit, manifest_data, server_manifest, client_manifest, css) { mkdirp(`${out}/server/nodes`); diff --git a/node_modules/@sveltejs/kit/src/exports/vite/graph_analysis/index.js b/node_modules/@sveltejs/kit/src/exports/vite/graph_analysis/index.js index 6dc6860..63d8076 100644 --- a/node_modules/@sveltejs/kit/src/exports/vite/graph_analysis/index.js +++ b/node_modules/@sveltejs/kit/src/exports/vite/graph_analysis/index.js @@ -25,7 +25,7 @@ export function is_illegal(id, dirs) { /** * Creates a guard that checks that no id imports a module that is not allowed to be imported into client-side code. - * @param {import('vite').Rollup.PluginContext} context + * @param {import('rollup').PluginContext} context * @param {{ cwd: string; lib: string }} paths */ export function module_guard(context, { cwd, lib }) { diff --git a/node_modules/@sveltejs/kit/src/exports/vite/index.js b/node_modules/@sveltejs/kit/src/exports/vite/index.js index a7a886d..ddaa9e4a 100644 --- a/node_modules/@sveltejs/kit/src/exports/vite/index.js +++ b/node_modules/@sveltejs/kit/src/exports/vite/index.js @@ -24,13 +24,13 @@ import prerender from '../../core/postbuild/prerender.js'; import analyse from '../../core/postbuild/analyse.js'; import { s } from '../../utils/misc.js'; import { hash } from '../../runtime/hash.js'; -import { dedent, isSvelte5Plus } from '../../core/sync/utils.js'; +import { dedent } from '../../core/sync/utils.js'; export { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; const cwd = process.cwd(); -/** @type {import('./types.js').EnforcedConfig} */ +/** @type {import('./types').EnforcedConfig} */ const enforced_config = { appType: true, base: true, @@ -136,7 +136,7 @@ export async function sveltekit() { onwarn: svelte_config.onwarn, compilerOptions: { // @ts-expect-error SvelteKit requires hydratable true by default - hydratable: isSvelte5Plus() ? undefined : true, + hydratable: true, ...svelte_config.compilerOptions }, ...svelte_config.vitePlugin @@ -702,7 +702,7 @@ function kit({ svelte_config }) { secondary_build_started = true; - const { output } = /** @type {import('vite').Rollup.RollupOutput} */ ( + const { output } = /** @type {import('rollup').RollupOutput} */ ( await vite.build({ configFile: vite_config.configFile, // CLI args @@ -742,7 +742,7 @@ function kit({ svelte_config }) { }; const css = output.filter( - /** @type {(value: any) => value is import('vite').Rollup.OutputAsset} */ + /** @type {(value: any) => value is import('rollup').OutputAsset} */ (value) => value.type === 'asset' && value.fileName.endsWith('.css') ); @@ -863,7 +863,7 @@ function warn_overridden_config(config, resolved_config) { /** * @param {Record} config * @param {Record} resolved_config - * @param {import('./types.js').EnforcedConfig} enforced_config + * @param {import('./types').EnforcedConfig} enforced_config * @param {string} path * @param {string[]} out used locally to compute the return value */ diff --git a/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js b/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js index b6a8490..4453346 100644 --- a/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js +++ b/node_modules/@sveltejs/kit/src/exports/vite/preview/index.js @@ -15,7 +15,10 @@ import { not_found } from '../utils.js'; /** @typedef {(req: Req, res: Res, next: () => void) => void} Handler */ /** - * @param {{ middlewares: import('connect').Server }} vite + * @param {{ + * middlewares: import('connect').Server; + * httpServer: import('http').Server; + * }} vite * @param {import('vite').ResolvedConfig} vite_config * @param {import('types').ValidatedConfig} svelte_config */ diff --git a/node_modules/@sveltejs/kit/src/runtime/client/client.js b/node_modules/@sveltejs/kit/src/runtime/client/client.js index 80abcfd..6c7e723 100644 --- a/node_modules/@sveltejs/kit/src/runtime/client/client.js +++ b/node_modules/@sveltejs/kit/src/runtime/client/client.js @@ -22,8 +22,7 @@ import { get_link_info, get_router_options, is_external_url, - scroll_state, - origin + scroll_state } from './utils.js'; import { base } from '__sveltekit/paths'; @@ -56,9 +55,9 @@ function update_scroll_positions(index) { } /** - * @param {import('./types.js').SvelteKitApp} app + * @param {import('./types').SvelteKitApp} app * @param {HTMLElement} target - * @returns {import('./types.js').Client} + * @returns {import('./types').Client} */ export function create_client(app, target) { const routes = parse(app); @@ -83,7 +82,7 @@ export function create_client(app, target) { */ const components = []; - /** @type {{id: string, promise: Promise} | null} */ + /** @type {{id: string, promise: Promise} | null} */ let load_cache = null; const callbacks = { @@ -97,7 +96,7 @@ export function create_client(app, target) { after_navigate: [] }; - /** @type {import('./types.js').NavigationState} */ + /** @type {import('./types').NavigationState} */ let current = { branch: [], error: null, @@ -248,7 +247,7 @@ export function create_client(app, target) { }); } - /** @param {import('./types.js').NavigationIntent} intent */ + /** @param {import('./types').NavigationIntent} intent */ async function preload_data(intent) { load_cache = { id: intent.id, @@ -275,7 +274,7 @@ export function create_client(app, target) { await Promise.all(promises); } - /** @param {import('./types.js').NavigationFinished} result */ + /** @param {import('./types').NavigationFinished} result */ function initialize(result) { if (DEV && result.state.error && document.querySelector('vite-error-overlay')) return; @@ -316,7 +315,7 @@ export function create_client(app, target) { * @param {{ * url: URL; * params: Record; - * branch: Array; + * branch: Array; * status: number; * error: App.Error | null; * route: import('types').CSRRoute | null; @@ -341,7 +340,7 @@ export function create_client(app, target) { // eslint-disable-next-line url.search = url.search; // turn `/?` into `/` - /** @type {import('./types.js').NavigationFinished} */ + /** @type {import('./types').NavigationFinished} */ const result = { type: 'loaded', state: { @@ -418,9 +417,9 @@ export function create_client(app, target) { * url: URL; * params: Record; * route: { id: string | null }; - * server_data_node: import('./types.js').DataNode | null; + * server_data_node: import('./types').DataNode | null; * }} options - * @returns {Promise} + * @returns {Promise} */ async function load_node({ loader, parent, url, params, route, server_data_node }) { /** @type {Record | null} */ @@ -590,8 +589,8 @@ export function create_client(app, target) { /** * @param {import('types').ServerDataNode | import('types').ServerDataSkippedNode | null} node - * @param {import('./types.js').DataNode | null} [previous] - * @returns {import('./types.js').DataNode | null} + * @param {import('./types').DataNode | null} [previous] + * @returns {import('./types').DataNode | null} */ function create_data_node(node, previous) { if (node?.type === 'data') return node; @@ -600,8 +599,8 @@ export function create_client(app, target) { } /** - * @param {import('./types.js').NavigationIntent} intent - * @returns {Promise} + * @param {import('./types').NavigationIntent} intent + * @returns {Promise} */ async function load_route({ id, invalidating, url, params, route }) { if (load_cache?.id === id) { @@ -665,7 +664,7 @@ export function create_client(app, target) { const branch_promises = loaders.map(async (loader, i) => { if (!loader) return; - /** @type {import('./types.js').BranchNode | undefined} */ + /** @type {import('./types').BranchNode | undefined} */ const previous = current.branch[i]; const server_data_node = server_data_nodes?.[i]; @@ -708,7 +707,7 @@ export function create_client(app, target) { // if we don't do this, rejections will be unhandled for (const p of branch_promises) p.catch(() => {}); - /** @type {Array} */ + /** @type {Array} */ const branch = []; for (let i = 0; i < loaders.length; i += 1) { @@ -782,9 +781,9 @@ export function create_client(app, target) { /** * @param {number} i Start index to backtrack from - * @param {Array} branch Branch to backtrack + * @param {Array} branch Branch to backtrack * @param {Array} errors All error pages for this branch - * @returns {Promise<{idx: number; node: import('./types.js').BranchNode} | undefined>} + * @returns {Promise<{idx: number; node: import('./types').BranchNode} | undefined>} */ async function load_nearest_error_page(i, branch, errors) { while (i--) { @@ -816,7 +815,7 @@ export function create_client(app, target) { * url: URL; * route: { id: string | null } * }} opts - * @returns {Promise} + * @returns {Promise} */ async function load_root_error_page({ status, error, url, route }) { /** @type {Record} */ @@ -844,7 +843,7 @@ export function create_client(app, target) { } catch { // at this point we have no choice but to fall back to the server, if it wouldn't // bring us right back here, turning this into an endless loop - if (url.origin !== origin || url.pathname !== location.pathname || hydrated) { + if (url.origin !== location.origin || url.pathname !== location.pathname || hydrated) { await native_navigation(url); } } @@ -859,7 +858,7 @@ export function create_client(app, target) { server_data_node: create_data_node(server_data_node) }); - /** @type {import('./types.js').BranchNode} */ + /** @type {import('./types').BranchNode} */ const root_error = { node: await default_error_loader(), loader: default_error_loader, @@ -892,7 +891,7 @@ export function create_client(app, target) { if (params) { const id = url.pathname + url.search; - /** @type {import('./types.js').NavigationIntent} */ + /** @type {import('./types').NavigationIntent} */ const intent = { id, invalidating, route, params: decode_params(params), url }; return intent; } @@ -908,7 +907,7 @@ export function create_client(app, target) { * @param {{ * url: URL; * type: import('@sveltejs/kit').Navigation["type"]; - * intent?: import('./types.js').NavigationIntent; + * intent?: import('./types').NavigationIntent; * delta?: number; * }} opts */ @@ -1171,10 +1170,10 @@ export function create_client(app, target) { * @param {{ id: string | null }} route * @param {App.Error} error * @param {number} status - * @returns {Promise} + * @returns {Promise} */ async function server_fallback(url, route, error, status) { - if (url.origin === origin && url.pathname === location.pathname && !hydrated) { + if (url.origin === location.origin && url.pathname === location.pathname && !hydrated) { // We would reload the same page we're currently on, which isn't hydrated, // which means no SSR, which means we would end up in an endless loop return await load_root_error_page({ @@ -1766,7 +1765,7 @@ export function create_client(app, target) { ({ params = {}, route = { id: null } } = get_navigation_intent(url, false) || {}); } - /** @type {import('./types.js').NavigationFinished | undefined} */ + /** @type {import('./types').NavigationFinished | undefined} */ let result; try { @@ -1793,7 +1792,7 @@ export function create_client(app, target) { }); }); - /** @type {Array} */ + /** @type {Array} */ const branch = await Promise.all(branch_promises); const parsed_route = routes.find(({ id }) => id === route.id); @@ -2019,8 +2018,8 @@ function reset_focus() { } /** - * @param {import('./types.js').NavigationState} current - * @param {import('./types.js').NavigationIntent | undefined} intent + * @param {import('./types').NavigationState} current + * @param {import('./types').NavigationIntent | undefined} intent * @param {URL | null} url * @param {Exclude} type */ diff --git a/node_modules/@sveltejs/kit/src/runtime/client/parse.js b/node_modules/@sveltejs/kit/src/runtime/client/parse.js index 5abf1a7..d148b28 100644 --- a/node_modules/@sveltejs/kit/src/runtime/client/parse.js +++ b/node_modules/@sveltejs/kit/src/runtime/client/parse.js @@ -1,7 +1,7 @@ import { exec, parse_route_id } from '../../utils/routing.js'; /** - * @param {import('./types.js').SvelteKitApp} app + * @param {import('./types').SvelteKitApp} app * @returns {import('types').CSRRoute[]} */ export function parse({ nodes, server_loads, dictionary, matchers }) { diff --git a/node_modules/@sveltejs/kit/src/runtime/client/singletons.js b/node_modules/@sveltejs/kit/src/runtime/client/singletons.js index e6bf580..2d2d150 100644 --- a/node_modules/@sveltejs/kit/src/runtime/client/singletons.js +++ b/node_modules/@sveltejs/kit/src/runtime/client/singletons.js @@ -2,12 +2,12 @@ import { writable } from 'svelte/store'; import { create_updated_store, notifiable_store } from './utils.js'; import { BROWSER } from 'esm-env'; -/** @type {import('./types.js').Client} */ +/** @type {import('./types').Client} */ export let client; /** * @param {{ - * client: import('./types.js').Client; + * client: import('./types').Client; * }} opts */ export function init(opts) { diff --git a/node_modules/@sveltejs/kit/src/runtime/client/start.js b/node_modules/@sveltejs/kit/src/runtime/client/start.js index 0ef12e6..70e0d73 100644 --- a/node_modules/@sveltejs/kit/src/runtime/client/start.js +++ b/node_modules/@sveltejs/kit/src/runtime/client/start.js @@ -3,9 +3,9 @@ import { create_client } from './client.js'; import { init } from './singletons.js'; /** - * @param {import('./types.js').SvelteKitApp} app + * @param {import('./types').SvelteKitApp} app * @param {HTMLElement} target - * @param {Parameters[0]} [hydrate] + * @param {Parameters[0]} [hydrate] */ export async function start(app, target, hydrate) { if (DEV && target === document.body) { diff --git a/node_modules/@sveltejs/kit/src/runtime/client/types.d.ts b/node_modules/@sveltejs/kit/src/runtime/client/types.d.ts index 6466bd9..2517eb8 100644 --- a/node_modules/@sveltejs/kit/src/runtime/client/types.d.ts +++ b/node_modules/@sveltejs/kit/src/runtime/client/types.d.ts @@ -1,4 +1,4 @@ -import { applyAction } from '../app/forms.js'; +import { applyAction } from '../app/forms'; import { afterNavigate, beforeNavigate, @@ -8,7 +8,7 @@ import { invalidateAll, preloadCode, preloadData -} from '../app/navigation.js'; +} from '../app/navigation'; import { SvelteComponent } from 'svelte'; import { ClientHooks, CSRPageNode, CSRPageNodeLoader, CSRRoute, TrailingSlash, Uses } from 'types'; import { Page, ParamMatcher } from '@sveltejs/kit'; @@ -90,8 +90,7 @@ export type NavigationFinished = { type: 'loaded'; state: NavigationState; props: { - constructors: Array; - components?: Array; + components: Array; page?: Page; form?: Record | null; [key: `data_${number}`]: Record; diff --git a/node_modules/@sveltejs/kit/src/runtime/client/utils.js b/node_modules/@sveltejs/kit/src/runtime/client/utils.js index d330ff8..8af6102 100644 --- a/node_modules/@sveltejs/kit/src/runtime/client/utils.js +++ b/node_modules/@sveltejs/kit/src/runtime/client/utils.js @@ -6,8 +6,6 @@ import { PRELOAD_PRIORITIES } from './constants.js'; /* global __SVELTEKIT_APP_VERSION_FILE__, __SVELTEKIT_APP_VERSION_POLL_INTERVAL__ */ -export const origin = BROWSER ? location.origin : ''; - /** @param {HTMLDocument} doc */ export function get_base_uri(doc) { let baseURI = doc.baseURI; @@ -137,7 +135,7 @@ export function get_link_info(a, base) { is_external_url(url, base) || (a.getAttribute('rel') || '').split(/\s+/).includes('external'); - const download = url?.origin === origin && a.hasAttribute('download'); + const download = url?.origin === location.origin && a.hasAttribute('download'); return { url, external, target, download }; } @@ -292,5 +290,5 @@ export function create_updated_store() { * @param {string} base */ export function is_external_url(url, base) { - return url.origin !== origin || !url.pathname.startsWith(base); + return url.origin !== location.origin || !url.pathname.startsWith(base); } diff --git a/node_modules/@sveltejs/kit/src/runtime/server/cookie.js b/node_modules/@sveltejs/kit/src/runtime/server/cookie.js index 90fb9e7..644e41b 100644 --- a/node_modules/@sveltejs/kit/src/runtime/server/cookie.js +++ b/node_modules/@sveltejs/kit/src/runtime/server/cookie.js @@ -27,7 +27,7 @@ export function get_cookies(request, url, trailing_slash) { // Emulate browser-behavior: if the cookie is set at '/foo/bar', its path is '/foo' const default_path = normalized_url.split('/').slice(0, -1).join('/') || '/'; - /** @type {Record} */ + /** @type {Record} */ const new_cookies = {}; /** @type {import('cookie').CookieSerializeOptions} */ @@ -232,7 +232,7 @@ export function path_matches(path, constraint) { /** * @param {Headers} headers - * @param {import('./page/types.js').Cookie[]} cookies + * @param {import('./page/types').Cookie[]} cookies */ export function add_cookies_to_headers(headers, cookies) { for (const new_cookie of cookies) { diff --git a/node_modules/@sveltejs/kit/src/runtime/server/page/csp.js b/node_modules/@sveltejs/kit/src/runtime/server/page/csp.js index a1a530d..77cde16 100644 --- a/node_modules/@sveltejs/kit/src/runtime/server/page/csp.js +++ b/node_modules/@sveltejs/kit/src/runtime/server/page/csp.js @@ -223,8 +223,8 @@ export class Csp { report_only_provider; /** - * @param {import('./types.js').CspConfig} config - * @param {import('./types.js').CspOpts} opts + * @param {import('./types').CspConfig} config + * @param {import('./types').CspOpts} opts */ constructor({ mode, directives, reportOnly }, { prerender }) { const use_hashes = mode === 'hash' || (mode === 'auto' && prerender); diff --git a/node_modules/@sveltejs/kit/src/runtime/server/page/index.js b/node_modules/@sveltejs/kit/src/runtime/server/page/index.js index dbc3b29..6ba9841 100644 --- a/node_modules/@sveltejs/kit/src/runtime/server/page/index.js +++ b/node_modules/@sveltejs/kit/src/runtime/server/page/index.js @@ -96,10 +96,10 @@ export async function render_page(event, page, options, manifest, state, resolve // inherit the prerender option of the page state.prerender_default = should_prerender; - /** @type {import('./types.js').Fetched[]} */ + /** @type {import('./types').Fetched[]} */ const fetched = []; - if (get_option(nodes, 'ssr') === false && !state.prerendering) { + if (get_option(nodes, 'ssr') === false) { return await render_response({ branch: [], fetched, diff --git a/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js b/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js index 1dbabbe..bcc2443 100644 --- a/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js +++ b/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js @@ -144,7 +144,7 @@ export async function load_server_data({ * Calls the user's `load` function. * @param {{ * event: import('@sveltejs/kit').RequestEvent; - * fetched: import('./types.js').Fetched[]; + * fetched: import('./types').Fetched[]; * node: import('types').SSRNode | undefined; * parent: () => Promise>; * resolve_opts: import('types').RequiredResolveOptions; @@ -192,7 +192,7 @@ export async function load_data({ /** * @param {Pick} event * @param {import('types').SSRState} state - * @param {import('./types.js').Fetched[]} fetched + * @param {import('./types').Fetched[]} fetched * @param {boolean} csr * @param {Pick, 'filterSerializedResponseHeaders'>} resolve_opts */ diff --git a/node_modules/@sveltejs/kit/src/runtime/server/page/render.js b/node_modules/@sveltejs/kit/src/runtime/server/page/render.js index dbc5581..102a612 100644 --- a/node_modules/@sveltejs/kit/src/runtime/server/page/render.js +++ b/node_modules/@sveltejs/kit/src/runtime/server/page/render.js @@ -26,8 +26,8 @@ const encoder = new TextEncoder(); /** * Creates the HTML response. * @param {{ - * branch: Array; - * fetched: Array; + * branch: Array; + * fetched: Array; * options: import('types').SSROptions; * manifest: import('@sveltejs/kit').SSRManifest; * state: import('types').SSRState; diff --git a/node_modules/@sveltejs/kit/src/runtime/server/page/respond_with_error.js b/node_modules/@sveltejs/kit/src/runtime/server/page/respond_with_error.js index 59e3697..f1475cc 100644 --- a/node_modules/@sveltejs/kit/src/runtime/server/page/respond_with_error.js +++ b/node_modules/@sveltejs/kit/src/runtime/server/page/respond_with_error.js @@ -33,7 +33,7 @@ export async function respond_with_error({ return static_error_page(options, status, /** @type {Error} */ (error).message); } - /** @type {import('./types.js').Fetched[]} */ + /** @type {import('./types').Fetched[]} */ const fetched = []; try { diff --git a/node_modules/@sveltejs/kit/src/runtime/server/respond.js b/node_modules/@sveltejs/kit/src/runtime/server/respond.js index 44b0e19..7967658 100644 --- a/node_modules/@sveltejs/kit/src/runtime/server/respond.js +++ b/node_modules/@sveltejs/kit/src/runtime/server/respond.js @@ -134,7 +134,7 @@ export async function respond(request, options, manifest, state) { /** @type {Record} */ const headers = {}; - /** @type {Record} */ + /** @type {Record} */ let cookies_to_add = {}; /** @type {import('@sveltejs/kit').RequestEvent} */ diff --git a/node_modules/@sveltejs/kit/src/types/internal.d.ts b/node_modules/@sveltejs/kit/src/types/internal.d.ts index ea30232..84ffcd4 100644 --- a/node_modules/@sveltejs/kit/src/types/internal.d.ts +++ b/node_modules/@sveltejs/kit/src/types/internal.d.ts @@ -414,5 +414,5 @@ export type ValidatedConfig = RecursiveRequired; export type ValidatedKitConfig = RecursiveRequired; -export * from '../exports/index.js'; +export * from '../exports/index'; export * from './private.js'; diff --git a/node_modules/@sveltejs/kit/src/version.js b/node_modules/@sveltejs/kit/src/version.js index 94d45d2..00f34d1 100644 --- a/node_modules/@sveltejs/kit/src/version.js +++ b/node_modules/@sveltejs/kit/src/version.js @@ -1,4 +1,4 @@ // generated during release, do not modify /** @type {string} */ -export const VERSION = '1.27.5'; +export const VERSION = '1.27.3'; diff --git a/node_modules/@sveltejs/vite-plugin-svelte/package.json b/node_modules/@sveltejs/vite-plugin-svelte/package.json index 74e7ed3..c903578 100644 --- a/node_modules/@sveltejs/vite-plugin-svelte/package.json +++ b/node_modules/@sveltejs/vite-plugin-svelte/package.json @@ -1,6 +1,6 @@ { "name": "@sveltejs/vite-plugin-svelte", - "version": "2.5.2", + "version": "2.4.6", "license": "MIT", "author": "dominikg", "files": [ @@ -43,7 +43,7 @@ "vitefu": "^0.2.4" }, "peerDependencies": { - "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0", + "svelte": "^3.54.0 || ^4.0.0", "vite": "^4.0.0" }, "devDependencies": { diff --git a/node_modules/@sveltejs/vite-plugin-svelte/src/index.d.ts b/node_modules/@sveltejs/vite-plugin-svelte/src/index.d.ts index e5aa5e5..52feb0a 100644 --- a/node_modules/@sveltejs/vite-plugin-svelte/src/index.d.ts +++ b/node_modules/@sveltejs/vite-plugin-svelte/src/index.d.ts @@ -170,16 +170,6 @@ interface ExperimentalOptions { * @default false */ disableSvelteResolveWarnings?: boolean; - /** - * Options for compiling Svelte JS/TS modules - */ - compileModule?: CompileModuleOptions; -} - -interface CompileModuleOptions { - extensions?: string[]; - include?: Arrayable; - exclude?: Arrayable; } type ModuleFormat = NonNullable<'esm'>; diff --git a/node_modules/@sveltejs/vite-plugin-svelte/src/index.js b/node_modules/@sveltejs/vite-plugin-svelte/src/index.js index 97d4c59..a08be0b 100644 --- a/node_modules/@sveltejs/vite-plugin-svelte/src/index.js +++ b/node_modules/@sveltejs/vite-plugin-svelte/src/index.js @@ -1,6 +1,5 @@ import fs from 'node:fs'; import { version as viteVersion } from 'vite'; -import * as svelteCompiler from 'svelte/compiler'; import { svelteInspector } from '@sveltejs/vite-plugin-svelte-inspector'; @@ -8,7 +7,7 @@ import { isDepExcluded } from 'vitefu'; import { handleHotUpdate } from './handle-hot-update.js'; import { log, logCompilerWarnings } from './utils/log.js'; import { createCompileSvelte } from './utils/compile.js'; -import { buildIdParser, buildModuleIdParser } from './utils/id.js'; +import { buildIdParser } from './utils/id.js'; import { buildExtraViteConfig, validateInlineOptions, @@ -25,7 +24,7 @@ import { saveSvelteMetadata } from './utils/optimizer.js'; import { VitePluginSvelteCache } from './utils/vite-plugin-svelte-cache.js'; import { loadRaw } from './utils/load-raw.js'; import { FAQ_LINK_CONFLICTS_IN_SVELTE_RESOLVE } from './utils/constants.js'; -import { isSvelte3, isSvelte5 } from './utils/svelte-version.js'; +import { isSvelte3 } from './utils/svelte-version.js'; const isVite4_0 = viteVersion.startsWith('4.0'); @@ -39,8 +38,6 @@ export function svelte(inlineOptions) { // updated in configResolved hook /** @type {import('./types/id.d.ts').IdParser} */ let requestParser; - /** @type {import('./types/id.d.ts').ModuleIdParser} */ - let moduleRequestParser; /** @type {import('./types/options.d.ts').ResolvedOptions} */ let options; /** @type {import('vite').ResolvedConfig} */ @@ -271,45 +268,9 @@ export function svelte(inlineOptions) { ); } } - } + }, + svelteInspector() ]; - - if (!isSvelte5) { - plugins.push(svelteInspector()); // TODO reenable once svelte5 has support - } - if (isSvelte5) { - log.warn( - 'svelte 5 support in v-p-s is experimental, breaking changes can occur in any release until this notice is removed' - ); - log.warn('svelte 5 does not support svelte-inspector yet, disabling it'); - // TODO move to separate file - plugins.push({ - name: 'vite-plugin-svelte-module', - enforce: 'post', - async configResolved() { - moduleRequestParser = buildModuleIdParser(options); - }, - async transform(code, id, opts) { - const ssr = !!opts?.ssr; - const moduleRequest = moduleRequestParser(id, ssr); - if (!moduleRequest) { - return; - } - try { - // @ts-ignore doesn't exist in Svelte 4 - const compileResult = await svelteCompiler.compileModule(code, { - generate: ssr ? 'server' : 'client', - filename: moduleRequest.filename - }); - logCompilerWarnings(moduleRequest, compileResult.warnings, options); - return compileResult.js; - } catch (e) { - throw toRollupError(e, options); - } - } - }); - } - return plugins; } diff --git a/node_modules/@sveltejs/vite-plugin-svelte/src/types/id.d.ts b/node_modules/@sveltejs/vite-plugin-svelte/src/types/id.d.ts index c6b2e32..205afd8 100644 --- a/node_modules/@sveltejs/vite-plugin-svelte/src/types/id.d.ts +++ b/node_modules/@sveltejs/vite-plugin-svelte/src/types/id.d.ts @@ -28,19 +28,4 @@ export interface SvelteRequest { raw: boolean; } -export interface SvelteModuleRequest { - id: string; - filename: string; - normalizedFilename: string; - query: RequestQuery; - timestamp: number; - ssr: boolean; -} - export type IdParser = (id: string, ssr: boolean, timestamp?: number) => SvelteRequest | undefined; - -export type ModuleIdParser = ( - id: string, - ssr: boolean, - timestamp?: number -) => SvelteModuleRequest | undefined; diff --git a/node_modules/@sveltejs/vite-plugin-svelte/src/utils/compile.js b/node_modules/@sveltejs/vite-plugin-svelte/src/utils/compile.js index 3ac3087..dc9dfd4 100644 --- a/node_modules/@sveltejs/vite-plugin-svelte/src/utils/compile.js +++ b/node_modules/@sveltejs/vite-plugin-svelte/src/utils/compile.js @@ -1,4 +1,4 @@ -import * as svelte from 'svelte/compiler'; +import { compile, preprocess, walk } from 'svelte/compiler'; // @ts-ignore import { createMakeHot } from 'svelte-hmr'; import { safeBase64Hash } from './hash.js'; @@ -9,7 +9,7 @@ import { mapToRelative } from './sourcemaps.js'; const scriptLangRE = /${newLine}`); } const { span } = change; - const virtualRange = (0, utils_2$i.convertRange)(snapshot, span); + const virtualRange = (0, utils_2$h.convertRange)(snapshot, span); let range; const isNewImport = isImport && virtualRange.start.character === 0; if (isNewImport && virtualRange.start.line > 1) { @@ -91923,8 +90799,8 @@ class CompletionsProviderImpl { } if (range.start.line === -1 || (range.start.line === 0 && range.start.character <= 1 && span.length === 0) || - !(0, utils_2$i.isInScript)(range.start, snapshot)) { - range = (0, utils_2$i.convertRange)(doc, { + !(0, utils_2$h.isInScript)(range.start, snapshot)) { + range = (0, utils_2$h.convertRange)(doc, { start: (0, documents_1$k.isInTag)(originalTriggerPosition, doc.scriptInfo) ? snapshot.scriptInfo?.start || scriptTagInfo.start : (0, documents_1$k.isInTag)(originalTriggerPosition, doc.moduleScriptInfo) @@ -91958,7 +90834,7 @@ class CompletionsProviderImpl { if (is$typeImport && importText.trim().startsWith('import ')) { return importText.replace(/(['"])(.+?)['"]/, (_match, quote, path) => `${quote}./$types${path.endsWith('.js') ? '.js' : ''}${quote}`); } - const changedName = (0, utils_2$i.changeSvelteComponentName)(importText); + const changedName = (0, utils_2$h.changeSvelteComponentName)(importText); if (importText !== changedName || !actionTriggeredInScript) { return changedName.replace(' type ', ' '); } @@ -91985,7 +90861,7 @@ const svelte2tsxTypes = new Set([ 'SvelteStore' ]); const startsWithUppercase = /^[A-Z]/; -function createIsValidCompletion(document, position, hasParserError) { +function isValidCompletion(document, position, hasParserError) { const isAtStartTag = !(0, documents_1$k.isInTag)(position, document.scriptInfo) && /<\w*$/.test(document.getText(vscode_languageserver_1$l.Range.create(position.line, 0, position.line, position.character))); const noWrongCompletionAtStartTag = isAtStartTag && hasParserError @@ -92004,15 +90880,54 @@ function createIsValidCompletion(document, position, hasParserError) { return (value) => isNoSvelte2tsxCompletion(value) && noWrongCompletionAtStartTag(value); } +var FindFileReferencesProvider = {}; + +Object.defineProperty(FindFileReferencesProvider, "__esModule", { value: true }); +FindFileReferencesProvider.FindFileReferencesProviderImpl = void 0; +const vscode_languageserver_1$k = main$5; +const vscode_uri_1 = require$$1$1; +const utils_1$v = utils$2; +const utils_2$g = requireUtils(); +const utils_3$9 = utils$4; +class FindFileReferencesProviderImpl { + constructor(lsAndTsDocResolver) { + this.lsAndTsDocResolver = lsAndTsDocResolver; + } + async fileReferences(uri) { + const u = vscode_uri_1.URI.parse(uri); + const fileName = u.fsPath; + const lang = await this.getLSForPath(fileName); + const tsDoc = await this.getSnapshotForPath(fileName); + const references = lang.getFileReferences(fileName); + if (!references) { + return null; + } + const snapshots = new utils_2$g.SnapshotMap(this.lsAndTsDocResolver); + snapshots.set(tsDoc.filePath, tsDoc); + const locations = await Promise.all(references.map(async (ref) => { + const snapshot = await snapshots.retrieve(ref.fileName); + return vscode_languageserver_1$k.Location.create((0, utils_3$9.pathToUrl)(ref.fileName), (0, utils_1$v.convertToLocationRange)(snapshot, ref.textSpan)); + })); + return locations.filter(utils_1$v.hasNonZeroRange); + } + async getLSForPath(path) { + return this.lsAndTsDocResolver.getLSForPath(path); + } + async getSnapshotForPath(path) { + return this.lsAndTsDocResolver.getSnapshot(path); + } +} +FindFileReferencesProvider.FindFileReferencesProviderImpl = FindFileReferencesProviderImpl; + var FindComponentReferencesProvider = {}; Object.defineProperty(FindComponentReferencesProvider, "__esModule", { value: true }); FindComponentReferencesProvider.FindComponentReferencesProviderImpl = void 0; -const vscode_languageserver_1$k = main$5; +const vscode_languageserver_1$j = main$5; const utils_1$u = utils$4; -const DocumentSnapshot_1$2 = DocumentSnapshot; -const utils_2$h = utils$2; -const utils_3$9 = requireUtils(); +const DocumentSnapshot_1$4 = DocumentSnapshot; +const utils_2$f = utils$2; +const utils_3$8 = requireUtils(); class FindComponentReferencesProviderImpl { constructor(lsAndTsDocResolver) { this.lsAndTsDocResolver = lsAndTsDocResolver; @@ -92024,28 +90939,28 @@ class FindComponentReferencesProviderImpl { } const lang = await this.lsAndTsDocResolver.getLSForPath(fileName); const tsDoc = await this.lsAndTsDocResolver.getSnapshot(fileName); - if (!(tsDoc instanceof DocumentSnapshot_1$2.SvelteDocumentSnapshot)) { + if (!(tsDoc instanceof DocumentSnapshot_1$4.SvelteDocumentSnapshot)) { return null; } - const references = lang.findReferences(tsDoc.filePath, (0, utils_2$h.offsetOfGeneratedComponentExport)(tsDoc)); + const references = lang.findReferences(tsDoc.filePath, (0, utils_2$f.offsetOfGeneratedComponentExport)(tsDoc)); if (!references) { return null; } - const snapshots = new utils_3$9.SnapshotMap(this.lsAndTsDocResolver); + const snapshots = new utils_3$8.SnapshotMap(this.lsAndTsDocResolver); snapshots.set(tsDoc.filePath, tsDoc); const locations = await Promise.all((0, utils_1$u.flatten)(references.map((ref) => ref.references)).map(async (ref) => { if (ref.isDefinition) { return null; } const snapshot = await snapshots.retrieve(ref.fileName); - if ((0, utils_3$9.isTextSpanInGeneratedCode)(snapshot.getFullText(), ref.textSpan)) { + if ((0, utils_3$8.isTextSpanInGeneratedCode)(snapshot.getFullText(), ref.textSpan)) { return null; } - const refLocation = vscode_languageserver_1$k.Location.create((0, utils_1$u.pathToUrl)(ref.fileName), (0, utils_2$h.convertToLocationRange)(snapshot, ref.textSpan)); + const refLocation = vscode_languageserver_1$j.Location.create((0, utils_1$u.pathToUrl)(ref.fileName), (0, utils_2$f.convertToLocationRange)(snapshot, ref.textSpan)); if (this.isEndTag(refLocation, snapshot)) { return null; } - if (!(0, utils_2$h.hasNonZeroRange)(refLocation)) { + if (!(0, utils_2$f.hasNonZeroRange)(refLocation)) { return null; } return refLocation; @@ -92053,10 +90968,10 @@ class FindComponentReferencesProviderImpl { return locations.filter(utils_1$u.isNotNullOrUndefined); } isEndTag(element, snapshot) { - if (!(snapshot instanceof DocumentSnapshot_1$2.SvelteDocumentSnapshot)) { + if (!(snapshot instanceof DocumentSnapshot_1$4.SvelteDocumentSnapshot)) { return false; } - const testEndTagRange = vscode_languageserver_1$k.Range.create(vscode_languageserver_1$k.Position.create(element.range.start.line, element.range.start.character - 1), element.range.end); + const testEndTagRange = vscode_languageserver_1$j.Range.create(vscode_languageserver_1$j.Position.create(element.range.start.line, element.range.start.character - 1), element.range.end); const text = snapshot.getOriginalText(testEndTagRange); if (text.substring(0, 1) == '/') { return true; @@ -92066,55 +90981,16 @@ class FindComponentReferencesProviderImpl { } FindComponentReferencesProvider.FindComponentReferencesProviderImpl = FindComponentReferencesProviderImpl; -var FindFileReferencesProvider = {}; - -Object.defineProperty(FindFileReferencesProvider, "__esModule", { value: true }); -FindFileReferencesProvider.FindFileReferencesProviderImpl = void 0; -const vscode_languageserver_1$j = main$5; -const vscode_uri_1 = require$$1$2; -const utils_1$t = utils$2; -const utils_2$g = requireUtils(); -const utils_3$8 = utils$4; -class FindFileReferencesProviderImpl { - constructor(lsAndTsDocResolver) { - this.lsAndTsDocResolver = lsAndTsDocResolver; - } - async fileReferences(uri) { - const u = vscode_uri_1.URI.parse(uri); - const fileName = u.fsPath; - const lang = await this.getLSForPath(fileName); - const tsDoc = await this.getSnapshotForPath(fileName); - const references = lang.getFileReferences(fileName); - if (!references) { - return null; - } - const snapshots = new utils_2$g.SnapshotMap(this.lsAndTsDocResolver); - snapshots.set(tsDoc.filePath, tsDoc); - const locations = await Promise.all(references.map(async (ref) => { - const snapshot = await snapshots.retrieve(ref.fileName); - return vscode_languageserver_1$j.Location.create((0, utils_3$8.pathToUrl)(ref.fileName), (0, utils_1$t.convertToLocationRange)(snapshot, ref.textSpan)); - })); - return locations.filter(utils_1$t.hasNonZeroRange); - } - async getLSForPath(path) { - return this.lsAndTsDocResolver.getLSForPath(path); - } - async getSnapshotForPath(path) { - return this.lsAndTsDocResolver.getSnapshot(path); - } -} -FindFileReferencesProvider.FindFileReferencesProviderImpl = FindFileReferencesProviderImpl; - var FindReferencesProvider = {}; -var __importDefault$d = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { +var __importDefault$e = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(FindReferencesProvider, "__esModule", { value: true }); FindReferencesProvider.FindReferencesProviderImpl = void 0; -const typescript_1$b = __importDefault$d(ts); -const utils_1$s = utils$4; -const utils_2$f = utils$2; +const typescript_1$c = __importDefault$e(ts); +const utils_1$t = utils$4; +const utils_2$e = utils$2; const utils_3$7 = requireUtils(); class FindReferencesProviderImpl { constructor(lsAndTsDocResolver, componentReferencesProvider) { @@ -92133,17 +91009,17 @@ class FindReferencesProviderImpl { } const snapshots = new utils_3$7.SnapshotMap(this.lsAndTsDocResolver); snapshots.set(tsDoc.filePath, tsDoc); - if (rawReferences.some((ref) => ref.definition.kind === typescript_1$b.default.ScriptElementKind.alias)) { + if (rawReferences.some((ref) => ref.definition.kind === typescript_1$c.default.ScriptElementKind.alias)) { const componentReferences = await this.checkIfHasAliasedComponentReference(offset, tsDoc, lang); if (componentReferences?.length) { return componentReferences; } } - const references = (0, utils_1$s.flatten)(rawReferences.map((ref) => ref.references)); + const references = (0, utils_1$t.flatten)(rawReferences.map((ref) => ref.references)); references.push(...(await this.getStoreReferences(references, tsDoc, snapshots, lang))); const locations = await Promise.all(references.map(async (ref) => this.mapReference(ref, context, snapshots))); return (locations - .filter(utils_1$s.isNotNullOrUndefined) + .filter(utils_1$t.isNotNullOrUndefined) .sort(sortLocationByFileAndRange)); } isScriptStartOrEndTag(position, document) { @@ -92162,7 +91038,7 @@ class FindReferencesProviderImpl { (0, utils_3$7.is$storeVariableIn$storeDeclaration)(tsDoc.getFullText(), ref.textSpan.start)); if (storeReference) { const additionalReferences = lang.findReferences(tsDoc.filePath, (0, utils_3$7.getStoreOffsetOf$storeDeclaration)(tsDoc.getFullText(), storeReference.textSpan.start)) || []; - storeReferences = (0, utils_1$s.flatten)(additionalReferences.map((ref) => ref.references)); + storeReferences = (0, utils_1$t.flatten)(additionalReferences.map((ref) => ref.references)); } const $storeReferences = []; for (const ref of [...references, ...storeReferences]) { @@ -92175,7 +91051,7 @@ class FindReferencesProviderImpl { continue; } const additionalReferences = lang.findReferences(snapshot.filePath, (0, utils_3$7.get$storeOffsetOf$storeDeclaration)(snapshot.getFullText(), ref.textSpan.start)) || []; - $storeReferences.push(...(0, utils_1$s.flatten)(additionalReferences.map((ref) => ref.references))); + $storeReferences.push(...(0, utils_1$t.flatten)(additionalReferences.map((ref) => ref.references))); } return [...storeReferences, ...$storeReferences]; } @@ -92184,9 +91060,9 @@ class FindReferencesProviderImpl { if (!definitions?.length) { return null; } - const nonAliasDefinitions = definitions.filter((definition) => (0, utils_2$f.isGeneratedSvelteComponentName)(definition.name)); - const references = await Promise.all(nonAliasDefinitions.map((definition) => this.componentReferencesProvider.findComponentReferences((0, utils_1$s.pathToUrl)(definition.fileName)))); - return (0, utils_1$s.flatten)(references.filter(utils_1$s.isNotNullOrUndefined)); + const nonAliasDefinitions = definitions.filter((definition) => (0, utils_2$e.isGeneratedSvelteComponentName)(definition.name)); + const references = await Promise.all(nonAliasDefinitions.map((definition) => this.componentReferencesProvider.findComponentReferences((0, utils_1$t.pathToUrl)(definition.fileName)))); + return (0, utils_1$t.flatten)(references.filter(utils_1$t.isNotNullOrUndefined)); } async mapReference(ref, context, snapshots) { if (!context.includeDeclaration && ref.isDefinition) { @@ -92196,8 +91072,8 @@ class FindReferencesProviderImpl { if ((0, utils_3$7.isTextSpanInGeneratedCode)(snapshot.getFullText(), ref.textSpan)) { return null; } - const location = (0, utils_2$f.convertToLocationForReferenceOrDefinition)(snapshot, ref.textSpan); - if (!(0, utils_2$f.hasNonZeroRange)(location)) { + const location = (0, utils_2$e.convertToLocationForReferenceOrDefinition)(snapshot, ref.textSpan); + if (!(0, utils_2$e.hasNonZeroRange)(location)) { return null; } return location; @@ -92215,256 +91091,72 @@ function sortLocationByFileAndRange(l1, l2) { : localeCompare; } -var FoldingRangeProvider = {}; +var getDirectiveCommentCompletions = {}; -var __importDefault$c = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(FoldingRangeProvider, "__esModule", { value: true }); -FoldingRangeProvider.FoldingRangeProviderImpl = void 0; -const typescript_1$a = __importDefault$c(ts); -const vscode_languageserver_1$i = main$5; -const documents_1$j = documents; -const utils_1$r = utils$4; -const utils_2$e = utils$2; -const utils_3$6 = requireUtils(); -const indentFolding_1$1 = indentFolding; -const svelte_ast_utils_1$2 = svelteAstUtils; -class FoldingRangeProviderImpl { - constructor(lsAndTsDocResolver, configManager) { - this.lsAndTsDocResolver = lsAndTsDocResolver; - this.configManager = configManager; - this.foldEndPairCharacters = ['}', ']', ')', '`', '>']; - } - async getFoldingRanges(document) { - const { lang, tsDoc } = await this.lsAndTsDocResolver.getLsForSyntheticOperations(document); - const foldingRanges = tsDoc.parserError && !document.moduleScriptInfo && !document.scriptInfo - ? [] - : lang.getOutliningSpans(tsDoc.filePath); - const lineFoldingOnly = !!this.configManager.getClientCapabilities()?.textDocument?.foldingRange - ?.lineFoldingOnly; - const result = foldingRanges - .filter((span) => !(0, utils_3$6.isTextSpanInGeneratedCode)(tsDoc.getFullText(), span.textSpan)) - .map((span) => ({ - originalRange: this.mapToOriginalRange(tsDoc, span.textSpan, document), - span - })) - .map(({ originalRange, span }) => this.convertOutliningSpan(span, document, originalRange, lineFoldingOnly)) - .filter(utils_1$r.isNotNullOrUndefined) - .concat(this.collectSvelteBlockFolding(document, tsDoc, lineFoldingOnly)) - .concat(this.getSvelteTagFoldingIfParserError(document, tsDoc)) - .filter((r) => (lineFoldingOnly ? r.startLine < r.endLine : r.startLine <= r.endLine)); - return result; - } - mapToOriginalRange(tsDoc, textSpan, document) { - const range = (0, documents_1$j.mapRangeToOriginal)(tsDoc, (0, utils_2$e.convertRange)(tsDoc, textSpan)); - const startOffset = document.offsetAt(range.start); - if (range.start.line < 0 || range.end.line < 0 || range.start.line > range.end.line) { - return; - } - if ((0, documents_1$j.isInTag)(range.start, document.scriptInfo) || - (0, documents_1$j.isInTag)(range.start, document.moduleScriptInfo)) { - return range; - } - const endOffset = document.offsetAt(range.end); - const originalText = document.getText().slice(startOffset, endOffset); - if (originalText.length === 0) { - return; - } - const generatedText = tsDoc.getText(textSpan.start, textSpan.start + textSpan.length); - const oneToOne = originalText.trim() === generatedText.trim(); - if (oneToOne) { - return range; - } - } - collectSvelteBlockFolding(document, tsDoc, lineFoldingOnly) { - if (tsDoc.parserError) { - return []; - } - const ranges = []; - const provider = this; - const enter = function (node, parent, key) { - if (key === 'attributes') { - this.skip(); - } - if (!node.type.endsWith('Block') || node.type === 'AwaitBlock') { - return; - } - if (node.type === 'IfBlock') { - provider.getIfBlockFolding(node, document, ranges); - return; - } - if ((0, svelte_ast_utils_1$2.isElseBlockWithElseIf)(node)) { - return; - } - if ((node.type === 'CatchBlock' || node.type === 'ThenBlock') && (0, svelte_ast_utils_1$2.isAwaitBlock)(parent)) { - const expressionEnd = (node.type === 'CatchBlock' ? parent.error?.end : parent.value?.end) ?? - document.getText().indexOf('}', node.start); - const beforeBlockStartTagEnd = document.getText().indexOf('}', expressionEnd); - if (beforeBlockStartTagEnd == -1) { - return; - } - ranges.push(provider.createFoldingRange(document, beforeBlockStartTagEnd + 1, node.end)); - return; - } - if ((0, svelte_ast_utils_1$2.isEachBlock)(node)) { - const start = document.getText().indexOf('}', (node.key ?? node.expression).end); - const elseStart = node.else - ? (0, svelte_ast_utils_1$2.findElseBlockTagStart)(document.getText(), node.else) - : -1; - ranges.push(provider.createFoldingRange(document, start, elseStart === -1 ? node.end : elseStart)); - return; - } - if ('expression' in node && node.expression && typeof node.expression === 'object') { - const start = provider.getStartForNodeWithExpression(node, document); - const end = node.end; - ranges.push(provider.createFoldingRange(document, start, end)); - return; - } - if (node.start != null && node.end != null) { - const start = node.start; - const end = node.end; - ranges.push(provider.createFoldingRange(document, start, end)); - } - }; - tsDoc.walkSvelteAst({ - enter - }); - if (lineFoldingOnly) { - return ranges.map((r) => ({ - startLine: r.startLine, - endLine: this.previousLineOfEndLine(r.startLine, r.endLine) - })); - } - return ranges; - } - getIfBlockFolding(node, document, ranges) { - const typed = node; - const documentText = document.getText(); - const start = this.getStartForNodeWithExpression(typed, document); - const end = (0, svelte_ast_utils_1$2.hasElseBlock)(typed) - ? (0, svelte_ast_utils_1$2.findElseBlockTagStart)(documentText, typed.else) - : (0, svelte_ast_utils_1$2.findIfBlockEndTagStart)(documentText, typed); - ranges.push(this.createFoldingRange(document, start, end)); - } - getStartForNodeWithExpression(node, document) { - return document.getText().indexOf('}', node.expression.end) + 1; - } - createFoldingRange(document, start, end) { - const range = (0, documents_1$j.toRange)(document.getText(), start, end); - return { - startLine: range.start.line, - startCharacter: range.start.character, - endLine: range.end.line, - endCharacter: range.end.character - }; - } - convertOutliningSpan(span, document, originalRange, lineFoldingOnly) { - if (!originalRange) { - return null; - } - const end = lineFoldingOnly - ? this.adjustFoldingEndToNotHideEnd(originalRange, document) - : originalRange.end; - const result = { - startLine: originalRange.start.line, - endLine: end.line, - kind: this.getFoldingRangeKind(span), - startCharacter: lineFoldingOnly ? undefined : originalRange.start.character, - endCharacter: lineFoldingOnly ? undefined : end.character - }; - return result; - } - getFoldingRangeKind(span) { - switch (span.kind) { - case typescript_1$a.default.OutliningSpanKind.Comment: - return vscode_languageserver_1$i.FoldingRangeKind.Comment; - case typescript_1$a.default.OutliningSpanKind.Region: - return vscode_languageserver_1$i.FoldingRangeKind.Region; - case typescript_1$a.default.OutliningSpanKind.Imports: - return vscode_languageserver_1$i.FoldingRangeKind.Imports; - case typescript_1$a.default.OutliningSpanKind.Code: - default: - return undefined; - } - } - adjustFoldingEndToNotHideEnd(range, document) { - if (range.end.character > 0) { - const text = document.getText(); - const offsetBeforeEnd = document.offsetAt({ - line: range.end.line, - character: range.end.character - 1 - }); - const foldEndCharacter = text[offsetBeforeEnd]; - if (this.foldEndPairCharacters.includes(foldEndCharacter)) { - return { line: this.previousLineOfEndLine(range.start.line, range.end.line) }; - } - } - return range.end; - } - getSvelteTagFoldingIfParserError(document, tsDoc) { - if (!tsDoc.parserError) { - return []; - } - const htmlTemplateRanges = this.getHtmlTemplateRangesForChecking(document); - return (0, indentFolding_1$1.indentBasedFoldingRange)({ - document, - skipFold: (_, lineContent) => { - return !/{\s*(#|\/|:)/.test(lineContent); - }, - ranges: htmlTemplateRanges - }); - } - getHtmlTemplateRangesForChecking(document) { - const ranges = []; - const excludeTags = [ - document.templateInfo, - document.moduleScriptInfo, - document.scriptInfo, - document.styleInfo - ] - .filter(utils_1$r.isNotNullOrUndefined) - .map((info) => ({ - startLine: document.positionAt(info.container.start).line, - endLine: document.positionAt(info.container.end).line - })) - .sort((a, b) => a.startLine - b.startLine); - if (excludeTags.length === 0) { - return [{ startLine: 0, endLine: document.lineCount - 1 }]; - } - if (excludeTags[0].startLine > 0) { - ranges.push({ - startLine: 0, - endLine: excludeTags[0].startLine - 1 - }); - } - for (let index = 0; index < excludeTags.length; index++) { - const element = excludeTags[index]; - const next = excludeTags[index + 1]; - ranges.push({ - startLine: element.endLine + 1, - endLine: next ? next.startLine - 1 : document.lineCount - 1 - }); - } - return ranges; - } - previousLineOfEndLine(startLine, endLine) { - return Math.max(endLine - 1, startLine); - } -} -FoldingRangeProvider.FoldingRangeProviderImpl = FoldingRangeProviderImpl; +(function (exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getDirectiveCommentCompletions = exports.tsDirectives = void 0; + const documents_1 = documents; + const vscode_languageserver_1 = main$5; + exports.tsDirectives = [ + { + value: '@ts-check', + description: 'Enables semantic checking in a JavaScript file. Must be at the top of a file.' + }, + { + value: '@ts-nocheck', + description: 'Disables semantic checking in a JavaScript file. Must be at the top of a file.' + }, + { + value: '@ts-ignore', + description: 'Suppresses @ts-check errors on the next line of a file.' + }, + { + value: '@ts-expect-error', + description: 'Suppresses @ts-check errors on the next line of a file, expecting at least one to exist.' + } + ]; + function getDirectiveCommentCompletions(position, document, completionContext) { + if (completionContext?.triggerCharacter === '/') { + return null; + } + const inScript = (0, documents_1.isInTag)(position, document.scriptInfo); + const inModule = (0, documents_1.isInTag)(position, document.moduleScriptInfo); + if (!inModule && !inScript) { + return null; + } + const lineStart = document.offsetAt(vscode_languageserver_1.Position.create(position.line, 0)); + const offset = document.offsetAt(position); + const prefix = document.getText().slice(lineStart, offset); + const match = prefix.match(/^\s*\/\/+\s?(@[a-zA-Z-]*)?$/); + if (!match) { + return null; + } + const startCharacter = Math.max(0, position.character - (match[1]?.length ?? 0)); + const start = vscode_languageserver_1.Position.create(position.line, startCharacter); + const items = exports.tsDirectives.map(({ value, description }) => ({ + detail: description, + label: value, + kind: vscode_languageserver_1.CompletionItemKind.Snippet, + textEdit: vscode_languageserver_1.TextEdit.replace(vscode_languageserver_1.Range.create(start, vscode_languageserver_1.Position.create(start.line, start.character + value.length)), value) + })); + return vscode_languageserver_1.CompletionList.create(items, false); + } + exports.getDirectiveCommentCompletions = getDirectiveCommentCompletions; +} (getDirectiveCommentCompletions)); +getDefaultExportFromCjs(getDirectiveCommentCompletions); var HoverProvider = {}; -var __importDefault$b = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { +var __importDefault$d = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(HoverProvider, "__esModule", { value: true }); HoverProvider.HoverProviderImpl = void 0; -const typescript_1$9 = __importDefault$b(ts); -const documents_1$i = documents; +const typescript_1$b = __importDefault$d(ts); +const documents_1$j = documents; const previewer_1$1 = previewer; -const utils_1$q = utils$2; +const utils_1$s = utils$2; const utils_2$d = requireUtils(); class HoverProviderImpl { constructor(lsAndTsDocResolver) { @@ -92481,18 +91173,18 @@ class HoverProviderImpl { if (!info) { return null; } - const declaration = typescript_1$9.default.displayPartsToString(info.displayParts); + const declaration = typescript_1$b.default.displayPartsToString(info.displayParts); const documentation = (0, previewer_1$1.getMarkdownDocumentation)(info.documentation, info.tags); const contents = ['```typescript', declaration, '```'] .concat(documentation ? ['---', documentation] : []) .join('\n'); - return (0, documents_1$i.mapObjWithRangeToOriginal)(tsDoc, { - range: (0, utils_1$q.convertRange)(tsDoc, info.textSpan), + return (0, documents_1$j.mapObjWithRangeToOriginal)(tsDoc, { + range: (0, utils_1$s.convertRange)(tsDoc, info.textSpan), contents }); } getEventHoverInfo(lang, doc, tsDoc, originalPosition) { - const possibleEventName = (0, documents_1$i.getWordAt)(doc.getText(), doc.offsetAt(originalPosition), { + const possibleEventName = (0, documents_1$j.getWordAt)(doc.getText(), doc.offsetAt(originalPosition), { left: /\S+$/, right: /[\s=]/ }); @@ -92527,10 +91219,10 @@ var ImplementationProvider = {}; Object.defineProperty(ImplementationProvider, "__esModule", { value: true }); ImplementationProvider.ImplementationProviderImpl = void 0; -const documents_1$h = documents; -const utils_1$p = utils$4; +const documents_1$i = documents; +const utils_1$r = utils$4; const utils_2$c = utils$2; -const utils_3$5 = requireUtils(); +const utils_3$6 = requireUtils(); class ImplementationProviderImpl { constructor(lsAndTsDocResolver) { this.lsAndTsDocResolver = lsAndTsDocResolver; @@ -92539,43 +91231,42 @@ class ImplementationProviderImpl { const { tsDoc, lang } = await this.lsAndTsDocResolver.getLSAndTSDoc(document); const offset = tsDoc.offsetAt(tsDoc.getGeneratedPosition(position)); const implementations = lang.getImplementationAtPosition(tsDoc.filePath, offset); - const snapshots = new utils_3$5.SnapshotMap(this.lsAndTsDocResolver); + const snapshots = new utils_3$6.SnapshotMap(this.lsAndTsDocResolver); snapshots.set(tsDoc.filePath, tsDoc); if (!implementations) { return null; } const result = await Promise.all(implementations.map(async (implementation) => { let snapshot = await snapshots.retrieve(implementation.fileName); - if ((0, utils_3$5.isTextSpanInGeneratedCode)(snapshot.getFullText(), implementation.textSpan)) { - if (!(0, utils_3$5.is$storeVariableIn$storeDeclaration)(snapshot.getFullText(), implementation.textSpan.start)) { + if ((0, utils_3$6.isTextSpanInGeneratedCode)(snapshot.getFullText(), implementation.textSpan)) { + if (!(0, utils_3$6.is$storeVariableIn$storeDeclaration)(snapshot.getFullText(), implementation.textSpan.start)) { return; } implementation = lang.getImplementationAtPosition(tsDoc.filePath, tsDoc.getFullText().indexOf(');', implementation.textSpan.start) - 1)[0]; snapshot = await snapshots.retrieve(implementation.fileName); } - const location = (0, documents_1$h.mapLocationToOriginal)(snapshot, (0, utils_2$c.convertRange)(snapshot, implementation.textSpan)); + const location = (0, documents_1$i.mapLocationToOriginal)(snapshot, (0, utils_2$c.convertRange)(snapshot, implementation.textSpan)); if (location.range.start.line >= 0 && location.range.end.line >= 0) { return location; } })); - return result.filter(utils_1$p.isNotNullOrUndefined); + return result.filter(utils_1$r.isNotNullOrUndefined); } } ImplementationProvider.ImplementationProviderImpl = ImplementationProviderImpl; var InlayHintProvider = {}; -var __importDefault$a = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { +var __importDefault$c = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(InlayHintProvider, "__esModule", { value: true }); InlayHintProvider.InlayHintProviderImpl = void 0; -const typescript_1$8 = __importDefault$a(ts); -const vscode_languageserver_types_1 = require$$1$3; -const documents_1$g = documents; +const typescript_1$a = __importDefault$c(ts); +const vscode_languageserver_types_1$1 = require$$3; +const documents_1$h = documents; const parseHtml_1$2 = requireParseHtml(); -const utils_1$o = requireUtils(); -const utils_2$b = utils$2; +const utils_1$q = requireUtils(); class InlayHintProviderImpl { constructor(lsAndTsDocResolver) { this.lsAndTsDocResolver = lsAndTsDocResolver; @@ -92592,26 +91283,25 @@ class InlayHintProviderImpl { if (!sourceFile) { return []; } - const renderFunction = (0, utils_1$o.findRenderFunction)(sourceFile); + const renderFunction = (0, utils_1$q.findRenderFunction)(sourceFile); const renderFunctionReturnTypeLocation = renderFunction && this.getTypeAnnotationPosition(renderFunction); - const snapshotMap = new utils_1$o.SnapshotMap(this.lsAndTsDocResolver); - snapshotMap.set(tsDoc.filePath, tsDoc); - const convertPromises = inlayHints - .filter((inlayHint) => !(0, utils_1$o.isInGeneratedCode)(tsDoc.getFullText(), inlayHint.position) && + const result = inlayHints + .filter((inlayHint) => !(0, utils_1$q.isInGeneratedCode)(tsDoc.getFullText(), inlayHint.position) && inlayHint.position !== renderFunctionReturnTypeLocation && !this.isSvelte2tsxFunctionHints(sourceFile, inlayHint) && !this.isGeneratedVariableTypeHint(sourceFile, inlayHint) && !this.isGeneratedFunctionReturnType(sourceFile, inlayHint)) - .map(async (inlayHint) => ({ - label: await this.convertInlayHintLabelParts(inlayHint, snapshotMap), + .map((inlayHint) => ({ + label: inlayHint.text, position: this.getOriginalPosition(document, tsDoc, inlayHint), kind: this.convertInlayHintKind(inlayHint.kind), paddingLeft: inlayHint.whitespaceBefore, paddingRight: inlayHint.whitespaceAfter - })); - return (await Promise.all(convertPromises)).filter((inlayHint) => inlayHint.position.line >= 0 && + })) + .filter((inlayHint) => inlayHint.position.line >= 0 && inlayHint.position.character >= 0 && !this.checkGeneratedFunctionHintWithSource(inlayHint, document)); + return result; } areInlayHintsEnabled(preferences) { return (preferences.includeInlayParameterNameHints === 'literals' || @@ -92634,34 +91324,9 @@ class InlayHintProviderImpl { length: end - start }; } - async convertInlayHintLabelParts(inlayHint, snapshotMap) { - if (!inlayHint.displayParts) { - return inlayHint.text; - } - const convertPromises = inlayHint.displayParts.map(async (part) => { - if (!part.file || !part.span) { - return { - value: part.text - }; - } - const snapshot = await snapshotMap.retrieve(part.file); - if (!snapshot) { - return { - value: part.text - }; - } - const originalLocation = (0, documents_1$g.mapLocationToOriginal)(snapshot, (0, utils_2$b.convertRange)(snapshot, part.span)); - return { - value: part.text, - location: originalLocation.range.start.line < 0 ? undefined : originalLocation - }; - }); - const parts = await Promise.all(convertPromises); - return parts; - } getOriginalPosition(document, tsDoc, inlayHint) { let originalPosition = tsDoc.getOriginalPosition(tsDoc.positionAt(inlayHint.position)); - if (inlayHint.kind === typescript_1$8.default.InlayHintKind.Type) { + if (inlayHint.kind === typescript_1$a.default.InlayHintKind.Type) { const originalOffset = document.offsetAt(originalPosition); const source = document.getText(); if (originalOffset < source.length && @@ -92674,9 +91339,9 @@ class InlayHintProviderImpl { convertInlayHintKind(kind) { switch (kind) { case 'Parameter': - return vscode_languageserver_types_1.InlayHintKind.Parameter; + return vscode_languageserver_types_1$1.InlayHintKind.Parameter; case 'Type': - return vscode_languageserver_types_1.InlayHintKind.Type; + return vscode_languageserver_types_1$1.InlayHintKind.Type; case 'Enum': return undefined; default: @@ -92684,10 +91349,10 @@ class InlayHintProviderImpl { } } isSvelte2tsxFunctionHints(sourceFile, inlayHint) { - if (inlayHint.kind !== typescript_1$8.default.InlayHintKind.Parameter) { + if (inlayHint.kind !== typescript_1$a.default.InlayHintKind.Parameter) { return false; } - const node = (0, utils_1$o.findClosestContainingNode)(sourceFile, { start: inlayHint.position, length: 0 }, typescript_1$8.default.isCallOrNewExpression); + const node = (0, utils_1$q.findClosestContainingNode)(sourceFile, { start: inlayHint.position, length: 0 }, typescript_1$a.default.isCallOrNewExpression); if (!node) { return false; } @@ -92699,40 +91364,40 @@ class InlayHintProviderImpl { expressionText.startsWith('$$_')); } isGeneratedVariableTypeHint(sourceFile, inlayHint) { - if (inlayHint.kind !== typescript_1$8.default.InlayHintKind.Type) { + if (inlayHint.kind !== typescript_1$a.default.InlayHintKind.Type) { return false; } - const declaration = (0, utils_1$o.findContainingNode)(sourceFile, { start: inlayHint.position, length: 0 }, typescript_1$8.default.isVariableDeclaration); + const declaration = (0, utils_1$q.findContainingNode)(sourceFile, { start: inlayHint.position, length: 0 }, typescript_1$a.default.isVariableDeclaration); if (!declaration) { return false; } - return ((0, utils_1$o.isInGeneratedCode)(sourceFile.text, declaration.pos) || + return ((0, utils_1$q.isInGeneratedCode)(sourceFile.text, declaration.pos) || declaration.name.getText().startsWith('$$')); } isGeneratedFunctionReturnType(sourceFile, inlayHint) { - if (inlayHint.kind !== typescript_1$8.default.InlayHintKind.Type) { + if (inlayHint.kind !== typescript_1$a.default.InlayHintKind.Type) { return false; } - const expression = (0, utils_1$o.findContainingNode)(sourceFile, { start: inlayHint.position, length: 0 }, (node) => typescript_1$8.default.isCallExpression(node) && typescript_1$8.default.isIdentifier(node.expression)); + const expression = (0, utils_1$q.findContainingNode)(sourceFile, { start: inlayHint.position, length: 0 }, (node) => typescript_1$a.default.isCallExpression(node) && typescript_1$a.default.isIdentifier(node.expression)); if (!expression) { return false; } return (expression.expression.text === '__sveltets_2_invalidate' && - typescript_1$8.default.isArrowFunction(expression.arguments[0]) && + typescript_1$a.default.isArrowFunction(expression.arguments[0]) && this.getTypeAnnotationPosition(expression.arguments[0]) === inlayHint.position); } getTypeAnnotationPosition(decl) { - const closeParenToken = (0, utils_1$o.findChildOfKind)(decl, typescript_1$8.default.SyntaxKind.CloseParenToken); + const closeParenToken = (0, utils_1$q.findChildOfKind)(decl, typescript_1$a.default.SyntaxKind.CloseParenToken); if (closeParenToken) { return closeParenToken.end; } return decl.parameters.end; } checkGeneratedFunctionHintWithSource(inlayHint, document) { - if ((0, documents_1$g.isInTag)(inlayHint.position, document.moduleScriptInfo)) { + if ((0, documents_1$h.isInTag)(inlayHint.position, document.moduleScriptInfo)) { return false; } - if ((0, documents_1$g.isInTag)(inlayHint.position, document.scriptInfo)) { + if ((0, documents_1$h.isInTag)(inlayHint.position, document.scriptInfo)) { return document .getText() .slice(document.offsetAt(inlayHint.position)) @@ -92755,18 +91420,18 @@ InlayHintProvider.InlayHintProviderImpl = InlayHintProviderImpl; var RenameProvider = {}; -var __importDefault$9 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { +var __importDefault$b = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(RenameProvider, "__esModule", { value: true }); RenameProvider.RenameProviderImpl = void 0; -const vscode_languageserver_1$h = main$5; -const documents_1$f = documents; -const utils_1$n = utils$4; -const DocumentSnapshot_1$1 = DocumentSnapshot; -const utils_2$a = utils$2; -const typescript_1$7 = __importDefault$9(ts); -const utils_3$4 = requireUtils(); +const vscode_languageserver_1$i = main$5; +const documents_1$g = documents; +const utils_1$p = utils$4; +const DocumentSnapshot_1$3 = DocumentSnapshot; +const utils_2$b = utils$2; +const typescript_1$9 = __importDefault$b(ts); +const utils_3$5 = requireUtils(); const svelte_ast_utils_1$1 = svelteAstUtils; class RenameProviderImpl { constructor(lsAndTsDocResolver, configManager) { @@ -92793,7 +91458,7 @@ class RenameProviderImpl { if (!renameLocations) { return null; } - const docs = new utils_3$4.SnapshotMap(this.lsAndTsDocResolver); + const docs = new utils_3$5.SnapshotMap(this.lsAndTsDocResolver); docs.set(tsDoc.filePath, tsDoc); let convertedRenameLocations = await this.mapAndFilterRenameLocations(renameLocations, docs, renameInfo.isStore ? `$${newName}` : undefined); convertedRenameLocations.push(...(await this.enhanceRenamesInCaseOf$Store(renameLocations, newName, docs, lang))); @@ -92808,8 +91473,8 @@ class RenameProviderImpl { ...additionalRenameForPropRenameInsideComponentWithProp, ...additionalRenamesForPropRenameOutsideComponentWithProp ]; - return (0, utils_1$n.unique)(convertedRenameLocations.filter((loc) => loc.range.start.line >= 0 && loc.range.end.line >= 0)).reduce((acc, loc) => { - const uri = (0, utils_1$n.pathToUrl)(loc.fileName); + return (0, utils_1$p.unique)(convertedRenameLocations.filter((loc) => loc.range.start.line >= 0 && loc.range.end.line >= 0)).reduce((acc, loc) => { + const uri = (0, utils_1$p.pathToUrl)(loc.fileName); if (!acc.changes[uri]) { acc.changes[uri] = []; } @@ -92829,12 +91494,12 @@ class RenameProviderImpl { }); if (!renameInfo.canRename || renameInfo.fullDisplayName?.includes('JSX.IntrinsicElements') || - (renameInfo.kind === typescript_1$7.default.ScriptElementKind.jsxAttribute && - !(0, utils_3$4.isComponentAtPosition)(doc, tsDoc, originalPosition))) { + (renameInfo.kind === typescript_1$9.default.ScriptElementKind.jsxAttribute && + !(0, utils_3$5.isComponentAtPosition)(doc, tsDoc, originalPosition))) { return null; } const svelteNode = tsDoc.svelteNodeAt(originalPosition); - if ((0, documents_1$f.isInHTMLTagRange)(doc.html, doc.offsetAt(originalPosition)) || + if ((0, documents_1$g.isInHTMLTagRange)(doc.html, doc.offsetAt(originalPosition)) || (0, svelte_ast_utils_1$1.isAttributeName)(svelteNode, 'Element') || (0, svelte_ast_utils_1$1.isEventHandler)(svelteNode, 'Element')) { return null; @@ -92842,7 +91507,7 @@ class RenameProviderImpl { if (tsDoc.getFullText().charAt(renameInfo.triggerSpan.start) === '$') { const definition = lang.getDefinitionAndBoundSpan(tsDoc.filePath, generatedOffset) ?.definitions?.[0]; - if (definition && (0, utils_3$4.isTextSpanInGeneratedCode)(tsDoc.getFullText(), definition.textSpan)) { + if (definition && (0, utils_3$5.isTextSpanInGeneratedCode)(tsDoc.getFullText(), definition.textSpan)) { renameInfo.triggerSpan.start++; renameInfo.triggerSpan.length--; renameInfo.isStore = true; @@ -92853,13 +91518,13 @@ class RenameProviderImpl { async enhanceRenamesInCaseOf$Store(renameLocations, newName, docs, lang) { for (const loc of renameLocations) { const snapshot = await docs.retrieve(loc.fileName); - if ((0, utils_3$4.isTextSpanInGeneratedCode)(snapshot.getFullText(), loc.textSpan)) { - if ((0, utils_3$4.isStoreVariableIn$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start)) { - const storeRenameLocations = lang.findRenameLocations(snapshot.filePath, (0, utils_3$4.get$storeOffsetOf$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start), false, false, true); + if ((0, utils_3$5.isTextSpanInGeneratedCode)(snapshot.getFullText(), loc.textSpan)) { + if ((0, utils_3$5.isStoreVariableIn$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start)) { + const storeRenameLocations = lang.findRenameLocations(snapshot.filePath, (0, utils_3$5.get$storeOffsetOf$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start), false, false, true); return await this.mapAndFilterRenameLocations(storeRenameLocations, docs, `$${newName}`); } - else if ((0, utils_3$4.is$storeVariableIn$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start)) { - const storeRenameLocations = lang.findRenameLocations(snapshot.filePath, (0, utils_3$4.getStoreOffsetOf$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start), false, false, true); + else if ((0, utils_3$5.is$storeVariableIn$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start)) { + const storeRenameLocations = lang.findRenameLocations(snapshot.filePath, (0, utils_3$5.getStoreOffsetOf$storeDeclaration)(snapshot.getFullText(), loc.textSpan.start), false, false, true); return await this.mapAndFilterRenameLocations(storeRenameLocations, docs); } } @@ -92868,7 +91533,7 @@ class RenameProviderImpl { } async getAdditionLocationsForRenameOfPropInsideComponentWithProp(document, tsDoc, position, convertedRenameLocations, snapshots, lang, newName) { const regex = new RegExp(`export\\s+let\\s+${this.getVariableAtPosition(tsDoc, lang, position)}($|\\s|;|:|\/\*|\/\/)`); - const isRenameInsideComponentWithProp = regex.test((0, documents_1$f.getLineAtPosition)(position, document.getText())); + const isRenameInsideComponentWithProp = regex.test((0, documents_1$g.getLineAtPosition)(position, document.getText())); if (!isRenameInsideComponentWithProp) { return []; } @@ -92896,17 +91561,17 @@ class RenameProviderImpl { return location; } const snapshot = snapshots.get(location.fileName); - if (!(snapshot instanceof DocumentSnapshot_1$1.SvelteDocumentSnapshot)) { + if (!(snapshot instanceof DocumentSnapshot_1$3.SvelteDocumentSnapshot)) { return location; } const { parent } = snapshot; let rangeStart = parent.offsetAt(location.range.start); let suffixText = location.suffixText?.trimStart(); - if (!suffixText?.startsWith(':') || !(0, documents_1$f.getNodeIfIsInStartTag)(parent.html, rangeStart)) { + if (!suffixText?.startsWith(':') || !(0, documents_1$g.getNodeIfIsInStartTag)(parent.html, rangeStart)) { return location; } const original = parent.getText({ - start: vscode_languageserver_1$h.Position.create(location.range.start.line, location.range.start.character - bind.length), + start: vscode_languageserver_1$i.Position.create(location.range.start.line, location.range.start.character - bind.length), end: location.range.end }); if (original.startsWith(bind)) { @@ -92937,7 +91602,7 @@ class RenameProviderImpl { if (!updatePropLocation) { return []; } - const getCanonicalFileName = (0, utils_1$n.createGetCanonicalFileName)(typescript_1$7.default.sys.useCaseSensitiveFileNames); + const getCanonicalFileName = (0, utils_1$p.createGetCanonicalFileName)(typescript_1$9.default.sys.useCaseSensitiveFileNames); if (getCanonicalFileName(updatePropLocation.fileName) === getCanonicalFileName(requestedFileName)) { return []; @@ -92965,19 +91630,19 @@ class RenameProviderImpl { return; } const snapshot = snapshots.get(loc.fileName); - if (!(snapshot instanceof DocumentSnapshot_1$1.SvelteDocumentSnapshot)) { + if (!(snapshot instanceof DocumentSnapshot_1$3.SvelteDocumentSnapshot)) { return false; } return this.isInSvelte2TsxPropLine(snapshot, loc); }); } isInSvelte2TsxPropLine(snapshot, loc) { - return (0, utils_3$4.isAfterSvelte2TsxPropsReturn)(snapshot.getFullText(), loc.textSpan.start); + return (0, utils_3$5.isAfterSvelte2TsxPropsReturn)(snapshot.getFullText(), loc.textSpan.start); } async mapAndFilterRenameLocations(renameLocations, snapshots, newName) { const mappedLocations = await Promise.all(renameLocations.map(async (loc) => { const snapshot = await snapshots.retrieve(loc.fileName); - if (!(0, utils_3$4.isTextSpanInGeneratedCode)(snapshot.getFullText(), loc.textSpan)) { + if (!(0, utils_3$5.isTextSpanInGeneratedCode)(snapshot.getFullText(), loc.textSpan)) { return { ...loc, range: this.mapRangeToOriginal(snapshot, loc.textSpan), @@ -92985,12 +91650,12 @@ class RenameProviderImpl { }; } })); - return this.filterWrongRenameLocations(mappedLocations.filter(utils_1$n.isNotNullOrUndefined)); + return this.filterWrongRenameLocations(mappedLocations.filter(utils_1$p.isNotNullOrUndefined)); } filterWrongRenameLocations(mappedLocations) { - return (0, utils_1$n.filterAsync)(mappedLocations, async (loc) => { + return (0, utils_1$p.filterAsync)(mappedLocations, async (loc) => { const snapshot = await this.getSnapshot(loc.fileName); - if (!(snapshot instanceof DocumentSnapshot_1$1.SvelteDocumentSnapshot)) { + if (!(snapshot instanceof DocumentSnapshot_1$3.SvelteDocumentSnapshot)) { return true; } const content = snapshot.getText(0, snapshot.getLength()); @@ -93003,7 +91668,7 @@ class RenameProviderImpl { }); } mapRangeToOriginal(snapshot, textSpan) { - const range = (0, documents_1$f.mapRangeToOriginal)(snapshot, (0, utils_2$a.convertRange)(snapshot, textSpan)); + const range = (0, documents_1$g.mapRangeToOriginal)(snapshot, (0, utils_2$b.convertRange)(snapshot, textSpan)); if (range.end.character - range.start.character < textSpan.length) { range.end.character++; } @@ -93031,7 +91696,7 @@ class RenameProviderImpl { return location; } const snapshot = snapshots.get(location.fileName); - if (!(snapshot instanceof DocumentSnapshot_1$1.SvelteDocumentSnapshot)) { + if (!(snapshot instanceof DocumentSnapshot_1$3.SvelteDocumentSnapshot)) { return location; } const { parent } = snapshot; @@ -93039,11 +91704,11 @@ class RenameProviderImpl { let prefixText = location.prefixText?.trimRight(); if (!prefixText) { const original = parent.getText({ - start: vscode_languageserver_1$h.Position.create(location.range.start.line, location.range.start.character - bind.length), + start: vscode_languageserver_1$i.Position.create(location.range.start.line, location.range.start.character - bind.length), end: location.range.end }); if (original.startsWith(bind) && - (0, documents_1$f.getNodeIfIsInHTMLStartTag)(parent.html, rangeStart)) { + (0, documents_1$g.getNodeIfIsInHTMLStartTag)(parent.html, rangeStart)) { return { ...location, prefixText: original.slice(bind.length) + '={', @@ -93054,10 +91719,10 @@ class RenameProviderImpl { if (!prefixText || prefixText.slice(-1) !== ':') { return location; } - if (!(0, documents_1$f.getNodeIfIsInStartTag)(parent.html, rangeStart) || + if (!(0, documents_1$g.getNodeIfIsInStartTag)(parent.html, rangeStart) || (parent.getText().charAt(rangeStart - 1) !== ':' && !/[^{]\s+{$/.test(parent.getText({ - start: vscode_languageserver_1$h.Position.create(0, 0), + start: vscode_languageserver_1$i.Position.create(0, 0), end: location.range.start })))) { return location; @@ -93086,23 +91751,23 @@ var SelectionRangeProvider = {}; Object.defineProperty(SelectionRangeProvider, "__esModule", { value: true }); SelectionRangeProvider.SelectionRangeProviderImpl = void 0; -const vscode_languageserver_1$g = main$5; -const documents_1$e = documents; -const utils_1$m = utils$2; +const vscode_languageserver_1$h = main$5; +const documents_1$f = documents; +const utils_1$o = utils$2; class SelectionRangeProviderImpl { constructor(lsAndTsDocResolver) { this.lsAndTsDocResolver = lsAndTsDocResolver; } async getSelectionRange(document, position) { - const { tsDoc, lang } = await this.lsAndTsDocResolver.getLsForSyntheticOperations(document); + const { tsDoc, lang } = await this.lsAndTsDocResolver.getLSAndTSDoc(document); const tsSelectionRange = lang.getSmartSelectionRange(tsDoc.filePath, tsDoc.offsetAt(tsDoc.getGeneratedPosition(position))); const selectionRange = this.toSelectionRange(tsDoc, tsSelectionRange); - const mappedRange = (0, documents_1$e.mapSelectionRangeToParent)(tsDoc, selectionRange); + const mappedRange = (0, documents_1$f.mapSelectionRangeToParent)(tsDoc, selectionRange); return this.filterOutUnmappedRange(mappedRange); } toSelectionRange(snapshot, { textSpan, parent }) { return { - range: (0, utils_1$m.convertRange)(snapshot, textSpan), + range: (0, utils_1$o.convertRange)(snapshot, textSpan), parent: parent && this.toSelectionRange(snapshot, parent) }; } @@ -93114,7 +91779,7 @@ class SelectionRangeProviderImpl { } let result; for (const selectionRange of filtered) { - result = vscode_languageserver_1$g.SelectionRange.create(selectionRange, result); + result = vscode_languageserver_1$h.SelectionRange.create(selectionRange, result); } return result ?? null; } @@ -93132,16 +91797,16 @@ SelectionRangeProvider.SelectionRangeProviderImpl = SelectionRangeProviderImpl; var SemanticTokensProvider = {}; -var __importDefault$8 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { +var __importDefault$a = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(SemanticTokensProvider, "__esModule", { value: true }); SemanticTokensProvider.SemanticTokensProviderImpl = void 0; -const typescript_1$6 = __importDefault$8(ts); -const vscode_languageserver_1$f = main$5; -const documents_1$d = documents; -const utils_1$l = utils$2; -const utils_2$9 = requireUtils(); +const typescript_1$8 = __importDefault$a(ts); +const vscode_languageserver_1$g = main$5; +const documents_1$e = documents; +const utils_1$n = utils$2; +const utils_2$a = requireUtils(); const CONTENT_LENGTH_LIMIT = 50000; class SemanticTokensProviderImpl { constructor(lsAndTsDocResolver) { @@ -93157,7 +91822,7 @@ class SemanticTokensProviderImpl { return null; } const textSpan = range - ? (0, utils_1$l.convertToTextSpan)(range, tsDoc) + ? (0, utils_1$n.convertToTextSpan)(range, tsDoc) : { start: 0, length: tsDoc.parserError @@ -93165,7 +91830,7 @@ class SemanticTokensProviderImpl { : tsDoc.getFullText().lastIndexOf('return { props:') || tsDoc.getLength() }; - const { spans } = lang.getEncodedSemanticClassifications(tsDoc.filePath, textSpan, typescript_1$6.default.SemanticClassificationFormat.TwentyTwenty); + const { spans } = lang.getEncodedSemanticClassifications(tsDoc.filePath, textSpan, typescript_1$8.default.SemanticClassificationFormat.TwentyTwenty); const data = []; let index = 0; while (index < spans.length) { @@ -93192,13 +91857,13 @@ class SemanticTokensProviderImpl { const [lineB, charB] = b; return lineA - lineB || charA - charB; }); - const builder = new vscode_languageserver_1$f.SemanticTokensBuilder(); + const builder = new vscode_languageserver_1$g.SemanticTokensBuilder(); sorted.forEach((tokenData) => builder.push(...tokenData)); return builder.build(); } mapToOrigin(document, snapshot, generatedOffset, generatedLength, token) { const text = snapshot.getFullText(); - if ((0, utils_2$9.isInGeneratedCode)(text, generatedOffset, generatedOffset + generatedLength) || + if ((0, utils_2$a.isInGeneratedCode)(text, generatedOffset, generatedOffset + generatedLength) || (token === 2817 && text.substring(generatedOffset, generatedOffset + generatedLength) === 'render')) { return; @@ -93207,7 +91872,7 @@ class SemanticTokensProviderImpl { start: snapshot.positionAt(generatedOffset), end: snapshot.positionAt(generatedOffset + generatedLength) }; - const { start: startPosition, end: endPosition } = (0, documents_1$d.mapRangeToOriginal)(snapshot, range); + const { start: startPosition, end: endPosition } = (0, documents_1$e.mapRangeToOriginal)(snapshot, range); if (startPosition.line < 0 || endPosition.line < 0) { return; } @@ -93226,13 +91891,13 @@ SemanticTokensProvider.SemanticTokensProviderImpl = SemanticTokensProviderImpl; var SignatureHelpProvider = {}; -var __importDefault$7 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { +var __importDefault$9 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(SignatureHelpProvider, "__esModule", { value: true }); SignatureHelpProvider.SignatureHelpProviderImpl = void 0; -const typescript_1$5 = __importDefault$7(ts); -const vscode_languageserver_1$e = main$5; +const typescript_1$7 = __importDefault$9(ts); +const vscode_languageserver_1$f = main$5; const previewer_1 = previewer; class SignatureHelpProviderImpl { constructor(lsAndTsDocResolver) { @@ -93267,7 +91932,7 @@ class SignatureHelpProviderImpl { } toTsTriggerReason(context) { switch (context?.triggerKind) { - case vscode_languageserver_1$e.SignatureHelpTriggerKind.TriggerCharacter: + case vscode_languageserver_1$f.SignatureHelpTriggerKind.TriggerCharacter: if (context.triggerCharacter) { if (this.isReTrigger(context.isRetrigger, context.triggerCharacter)) { return { kind: 'retrigger', triggerCharacter: context.triggerCharacter }; @@ -93280,9 +91945,9 @@ class SignatureHelpProviderImpl { } } return { kind: 'invoked' }; - case vscode_languageserver_1$e.SignatureHelpTriggerKind.ContentChange: + case vscode_languageserver_1$f.SignatureHelpTriggerKind.ContentChange: return context.isRetrigger ? { kind: 'retrigger' } : { kind: 'invoked' }; - case vscode_languageserver_1$e.SignatureHelpTriggerKind.Invoked: + case vscode_languageserver_1$f.SignatureHelpTriggerKind.Invoked: default: return { kind: 'invoked' }; } @@ -93292,18 +91957,18 @@ class SignatureHelpProviderImpl { item.prefixDisplayParts, item.separatorDisplayParts, item.suffixDisplayParts - ].map(typescript_1$5.default.displayPartsToString); + ].map(typescript_1$7.default.displayPartsToString); let textIndex = prefixLabel.length; let signatureLabel = ''; const parameters = []; const lastIndex = item.parameters.length - 1; item.parameters.forEach((parameter, index) => { - const label = typescript_1$5.default.displayPartsToString(parameter.displayParts); + const label = typescript_1$7.default.displayPartsToString(parameter.displayParts); const startIndex = textIndex; const endIndex = textIndex + label.length; - const doc = typescript_1$5.default.displayPartsToString(parameter.documentation); + const doc = typescript_1$7.default.displayPartsToString(parameter.documentation); signatureLabel += label; - parameters.push(vscode_languageserver_1$e.ParameterInformation.create([startIndex, endIndex], doc)); + parameters.push(vscode_languageserver_1$f.ParameterInformation.create([startIndex, endIndex], doc)); if (index < lastIndex) { textIndex = endIndex + separatorLabel.length; signatureLabel += separatorLabel; @@ -93315,7 +91980,7 @@ class SignatureHelpProviderImpl { documentation: signatureDocumentation ? { value: signatureDocumentation, - kind: vscode_languageserver_1$e.MarkupKind.Markdown + kind: vscode_languageserver_1$f.MarkupKind.Markdown } : undefined, parameters @@ -93333,10 +91998,10 @@ var TypeDefinitionProvider = {}; Object.defineProperty(TypeDefinitionProvider, "__esModule", { value: true }); TypeDefinitionProvider.TypeDefinitionProviderImpl = void 0; -const documents_1$c = documents; -const utils_1$k = utils$4; -const utils_2$8 = utils$2; -const utils_3$3 = requireUtils(); +const documents_1$d = documents; +const utils_1$m = utils$4; +const utils_2$9 = utils$2; +const utils_3$4 = requireUtils(); class TypeDefinitionProviderImpl { constructor(lsAndTsDocResolver) { this.lsAndTsDocResolver = lsAndTsDocResolver; @@ -93345,46 +92010,46 @@ class TypeDefinitionProviderImpl { const { tsDoc, lang } = await this.lsAndTsDocResolver.getLSAndTSDoc(document); const offset = tsDoc.offsetAt(tsDoc.getGeneratedPosition(position)); const typeDefs = lang.getTypeDefinitionAtPosition(tsDoc.filePath, offset); - const snapshots = new utils_3$3.SnapshotMap(this.lsAndTsDocResolver); + const snapshots = new utils_3$4.SnapshotMap(this.lsAndTsDocResolver); snapshots.set(tsDoc.filePath, tsDoc); if (!typeDefs) { return null; } const result = await Promise.all(typeDefs.map(async (typeDef) => { const snapshot = await snapshots.retrieve(typeDef.fileName); - if ((0, utils_3$3.isTextSpanInGeneratedCode)(snapshot.getFullText(), typeDef.textSpan)) { + if ((0, utils_3$4.isTextSpanInGeneratedCode)(snapshot.getFullText(), typeDef.textSpan)) { return; } - const location = (0, documents_1$c.mapLocationToOriginal)(snapshot, (0, utils_2$8.convertRange)(snapshot, typeDef.textSpan)); + const location = (0, documents_1$d.mapLocationToOriginal)(snapshot, (0, utils_2$9.convertRange)(snapshot, typeDef.textSpan)); if (location.range.start.line >= 0 && location.range.end.line >= 0) { return location; } })); - return result.filter(utils_1$k.isNotNullOrUndefined); + return result.filter(utils_1$m.isNotNullOrUndefined); } } TypeDefinitionProvider.TypeDefinitionProviderImpl = TypeDefinitionProviderImpl; var UpdateImportsProvider = {}; -var __importDefault$6 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { +var __importDefault$8 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(UpdateImportsProvider, "__esModule", { value: true }); UpdateImportsProvider.UpdateImportsProviderImpl = void 0; -const path_1$6 = __importDefault$6(path$a); -const vscode_languageserver_1$d = main$5; -const documents_1$b = documents; -const utils_1$j = utils$4; -const utils_2$7 = utils$2; -const utils_3$2 = requireUtils(); +const path_1$8 = __importDefault$8(path$a); +const vscode_languageserver_1$e = main$5; +const documents_1$c = documents; +const utils_1$l = utils$4; +const utils_2$8 = utils$2; +const utils_3$3 = requireUtils(); class UpdateImportsProviderImpl { constructor(lsAndTsDocResolver) { this.lsAndTsDocResolver = lsAndTsDocResolver; } async updateImports(fileRename) { - const oldPath = (0, utils_1$j.urlToPath)(fileRename.oldUri); - const newPath = (0, utils_1$j.urlToPath)(fileRename.newUri); + const oldPath = (0, utils_1$l.urlToPath)(fileRename.oldUri); + const newPath = (0, utils_1$l.urlToPath)(fileRename.newUri); if (!oldPath || !newPath) { return null; } @@ -93401,7 +92066,7 @@ class UpdateImportsProviderImpl { !change.fileName.startsWith(oldPathTsProgramCasing))); const updateImportsChanges = fileChanges .filter((change) => { - if ((0, utils_3$2.isKitTypePath)(change.fileName)) { + if ((0, utils_3$3.isKitTypePath)(change.fileName)) { return false; } if (!editInOldPath || !editInNewPath) { @@ -93416,16 +92081,16 @@ class UpdateImportsProviderImpl { change.fileName = change.fileName.replace(oldPathTsProgramCasing, newPath); } change.textChanges = change.textChanges.filter((textChange) => - !(0, utils_3$2.isKitTypePath)(textChange.newText) || - !path_1$6.default.basename(change.fileName).startsWith('+')); + !(0, utils_3$3.isKitTypePath)(textChange.newText) || + !path_1$8.default.basename(change.fileName).startsWith('+')); return change; }); - const docs = new utils_3$2.SnapshotMap(this.lsAndTsDocResolver); + const docs = new utils_3$3.SnapshotMap(this.lsAndTsDocResolver); const documentChanges = await Promise.all(updateImportsChanges.map(async (change) => { const snapshot = await docs.retrieve(change.fileName); - return vscode_languageserver_1$d.TextDocumentEdit.create(vscode_languageserver_1$d.OptionalVersionedTextDocumentIdentifier.create(snapshot.getURL(), null), change.textChanges.map((edit) => { - const range = (0, documents_1$b.mapRangeToOriginal)(snapshot, (0, utils_2$7.convertRange)(snapshot, edit.span)); - return vscode_languageserver_1$d.TextEdit.replace(range, edit.newText); + return vscode_languageserver_1$e.TextDocumentEdit.create(vscode_languageserver_1$e.OptionalVersionedTextDocumentIdentifier.create(snapshot.getURL(), null), change.textChanges.map((edit) => { + const range = (0, documents_1$c.mapRangeToOriginal)(snapshot, (0, utils_2$8.convertRange)(snapshot, edit.span)); + return vscode_languageserver_1$e.TextEdit.replace(range, edit.newText); })); })); return { documentChanges }; @@ -93436,60 +92101,551 @@ class UpdateImportsProviderImpl { } UpdateImportsProvider.UpdateImportsProviderImpl = UpdateImportsProviderImpl; -var getDirectiveCommentCompletions = {}; +var SnapshotManager$1 = {}; -(function (exports) { - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getDirectiveCommentCompletions = exports.tsDirectives = void 0; - const documents_1 = documents; - const vscode_languageserver_1 = main$5; - exports.tsDirectives = [ - { - value: '@ts-check', - description: 'Enables semantic checking in a JavaScript file. Must be at the top of a file.' - }, - { - value: '@ts-nocheck', - description: 'Disables semantic checking in a JavaScript file. Must be at the top of a file.' - }, - { - value: '@ts-ignore', - description: 'Suppresses @ts-check errors on the next line of a file.' - }, - { - value: '@ts-expect-error', - description: 'Suppresses @ts-check errors on the next line of a file, expecting at least one to exist.' - } - ]; - function getDirectiveCommentCompletions(position, document, completionContext) { - if (completionContext?.triggerCharacter === '/') { - return null; - } - const inScript = (0, documents_1.isInTag)(position, document.scriptInfo); - const inModule = (0, documents_1.isInTag)(position, document.moduleScriptInfo); - if (!inModule && !inScript) { - return null; - } - const lineStart = document.offsetAt(vscode_languageserver_1.Position.create(position.line, 0)); - const offset = document.offsetAt(position); - const prefix = document.getText().slice(lineStart, offset); - const match = prefix.match(/^\s*\/\/+\s?(@[a-zA-Z-]*)?$/); - if (!match) { - return null; - } - const startCharacter = Math.max(0, position.character - (match[1]?.length ?? 0)); - const start = vscode_languageserver_1.Position.create(position.line, startCharacter); - const items = exports.tsDirectives.map(({ value, description }) => ({ - detail: description, - label: value, - kind: vscode_languageserver_1.CompletionItemKind.Snippet, - textEdit: vscode_languageserver_1.TextEdit.replace(vscode_languageserver_1.Range.create(start, vscode_languageserver_1.Position.create(start.line, start.character + value.length)), value) - })); - return vscode_languageserver_1.CompletionList.create(items, false); - } - exports.getDirectiveCommentCompletions = getDirectiveCommentCompletions; -} (getDirectiveCommentCompletions)); -getDefaultExportFromCjs(getDirectiveCommentCompletions); +var __importDefault$7 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(SnapshotManager$1, "__esModule", { value: true }); +SnapshotManager$1.ignoredBuildDirectories = SnapshotManager$1.SnapshotManager = SnapshotManager$1.GlobalSnapshotsManager = void 0; +const typescript_1$6 = __importDefault$7(ts); +const DocumentSnapshot_1$2 = DocumentSnapshot; +const logger_1$7 = logger; +const utils_1$k = utils$4; +const events_1 = require$$0$4; +const fileCollection_1$3 = fileCollection; +const path_1$7 = path$a; +class GlobalSnapshotsManager { + constructor(tsSystem, watchPackageJson = false) { + this.tsSystem = tsSystem; + this.emitter = new events_1.EventEmitter(); + this.documents = new fileCollection_1$3.FileMap(tsSystem.useCaseSensitiveFileNames); + this.getCanonicalFileName = (0, utils_1$k.createGetCanonicalFileName)(tsSystem.useCaseSensitiveFileNames); + this.packageJsonCache = new PackageJsonCache(tsSystem, watchPackageJson, this.getCanonicalFileName, this.updateSnapshotsInDirectory.bind(this)); + } + get(fileName) { + fileName = (0, utils_1$k.normalizePath)(fileName); + return this.documents.get(fileName); + } + getByPrefix(path) { + path = this.getCanonicalFileName((0, utils_1$k.normalizePath)(path)); + return Array.from(this.documents.entries()) + .filter((doc) => doc[0].startsWith(path)) + .map((doc) => doc[1]); + } + set(fileName, document) { + fileName = (0, utils_1$k.normalizePath)(fileName); + this.documents.set(fileName, document); + this.emitter.emit('change', fileName, document); + } + delete(fileName) { + fileName = (0, utils_1$k.normalizePath)(fileName); + this.documents.delete(fileName); + this.emitter.emit('change', fileName, undefined); + } + updateTsOrJsFile(fileName, changes) { + fileName = (0, utils_1$k.normalizePath)(fileName); + const previousSnapshot = this.get(fileName); + if (changes) { + if (!(previousSnapshot instanceof DocumentSnapshot_1$2.JSOrTSDocumentSnapshot)) { + return; + } + previousSnapshot.update(changes); + this.emitter.emit('change', fileName, previousSnapshot); + return previousSnapshot; + } + else { + const newSnapshot = DocumentSnapshot_1$2.DocumentSnapshot.fromNonSvelteFilePath(fileName, this.tsSystem); + if (previousSnapshot) { + newSnapshot.version = previousSnapshot.version + 1; + } + else { + newSnapshot.version += 1; + } + this.set(fileName, newSnapshot); + return newSnapshot; + } + } + onChange(listener) { + this.emitter.on('change', listener); + } + removeChangeListener(listener) { + this.emitter.off('change', listener); + } + getPackageJson(path) { + return this.packageJsonCache.getPackageJson(path); + } + updateSnapshotsInDirectory(dir) { + this.getByPrefix(dir).forEach((snapshot) => { + this.updateTsOrJsFile(snapshot.filePath); + }); + } +} +SnapshotManager$1.GlobalSnapshotsManager = GlobalSnapshotsManager; +class SnapshotManager { + constructor(globalSnapshotsManager, fileSpec, workspaceRoot, projectFiles, useCaseSensitiveFileNames = typescript_1$6.default.sys.useCaseSensitiveFileNames) { + this.globalSnapshotsManager = globalSnapshotsManager; + this.fileSpec = fileSpec; + this.workspaceRoot = workspaceRoot; + this.lastLogged = new Date(new Date().getTime() - 60001); + this.watchExtensions = [ + typescript_1$6.default.Extension.Dts, + typescript_1$6.default.Extension.Js, + typescript_1$6.default.Extension.Jsx, + typescript_1$6.default.Extension.Ts, + typescript_1$6.default.Extension.Tsx, + typescript_1$6.default.Extension.Json + ]; + this.onSnapshotChange = this.onSnapshotChange.bind(this); + this.globalSnapshotsManager.onChange(this.onSnapshotChange); + this.documents = new fileCollection_1$3.FileMap(useCaseSensitiveFileNames); + this.projectFileToOriginalCasing = new Map(); + this.getCanonicalFileName = (0, utils_1$k.createGetCanonicalFileName)(useCaseSensitiveFileNames); + projectFiles.forEach((originalCasing) => this.projectFileToOriginalCasing.set(this.getCanonicalFileName(originalCasing), originalCasing)); + } + onSnapshotChange(fileName, document) { + if (!document) { + this.documents.delete(fileName); + this.projectFileToOriginalCasing.delete(this.getCanonicalFileName(fileName)); + } + else if (this.documents.has(fileName)) { + this.documents.set(fileName, document); + } + } + updateProjectFiles() { + const { include, exclude } = this.fileSpec; + if (include?.length === 0) { + return; + } + const projectFiles = typescript_1$6.default.sys + .readDirectory(this.workspaceRoot, this.watchExtensions, exclude, include) + .map(utils_1$k.normalizePath); + projectFiles.forEach((projectFile) => this.projectFileToOriginalCasing.set(this.getCanonicalFileName(projectFile), projectFile)); + } + updateTsOrJsFile(fileName, changes) { + const snapshot = this.globalSnapshotsManager.updateTsOrJsFile(fileName, changes); + if (snapshot) { + this.documents.set((0, utils_1$k.normalizePath)(fileName), snapshot); + } + } + has(fileName) { + fileName = (0, utils_1$k.normalizePath)(fileName); + return (this.projectFileToOriginalCasing.has(this.getCanonicalFileName(fileName)) || + this.documents.has(fileName)); + } + set(fileName, snapshot) { + this.globalSnapshotsManager.set(fileName, snapshot); + this.documents.set((0, utils_1$k.normalizePath)(fileName), snapshot); + this.logStatistics(); + } + get(fileName) { + fileName = (0, utils_1$k.normalizePath)(fileName); + let snapshot = this.documents.get(fileName); + if (!snapshot) { + snapshot = this.globalSnapshotsManager.get(fileName); + if (snapshot) { + this.documents.set(fileName, snapshot); + } + } + return snapshot; + } + delete(fileName) { + fileName = (0, utils_1$k.normalizePath)(fileName); + this.globalSnapshotsManager.delete(fileName); + } + getClientFileNames() { + return Array.from(this.documents.values()) + .filter((doc) => doc.isOpenedInClient()) + .map((doc) => doc.filePath); + } + getProjectFileNames() { + return Array.from(this.projectFileToOriginalCasing.values()); + } + logStatistics() { + const date = new Date(); + if (date.getTime() - this.lastLogged.getTime() > 60000) { + this.lastLogged = date; + const allFiles = Array.from(new Set([...this.projectFileToOriginalCasing.keys(), ...this.documents.keys()])); + logger_1$7.Logger.log('SnapshotManager File Statistics:\n' + + `Project files: ${this.projectFileToOriginalCasing.size}\n` + + `Svelte files: ${allFiles.filter((name) => name.endsWith('.svelte')).length}\n` + + `From node_modules: ${allFiles.filter((name) => name.includes('node_modules')).length}\n` + + `Total: ${allFiles.length}`); + } + } + dispose() { + this.globalSnapshotsManager.removeChangeListener(this.onSnapshotChange); + } +} +SnapshotManager$1.SnapshotManager = SnapshotManager; +SnapshotManager$1.ignoredBuildDirectories = ['__sapper__', '.svelte-kit']; +class PackageJsonCache { + constructor(tsSystem, watchPackageJson, getCanonicalFileName, updateSnapshotsInDirectory) { + this.tsSystem = tsSystem; + this.watchPackageJson = watchPackageJson; + this.getCanonicalFileName = getCanonicalFileName; + this.updateSnapshotsInDirectory = updateSnapshotsInDirectory; + this.packageJsonCache = new fileCollection_1$3.FileMap(); + this.watchers = new fileCollection_1$3.FileMap(tsSystem.useCaseSensitiveFileNames); + } + getPackageJson(path) { + if (!this.packageJsonCache.has(path)) { + this.packageJsonCache.set(path, this.initWatcherAndRead(path)); + } + return this.packageJsonCache.get(path); + } + initWatcherAndRead(path) { + if (this.watchPackageJson) { + this.tsSystem.watchFile?.(path, this.onPackageJsonWatchChange.bind(this), 3000); + } + const exist = this.tsSystem.fileExists(path); + if (!exist) { + return undefined; + } + return this.readPackageJson(path); + } + readPackageJson(path) { + return { + text: this.tsSystem.readFile(path) ?? '', + modifiedTime: this.tsSystem.getModifiedTime?.(path)?.valueOf() + }; + } + onPackageJsonWatchChange(path, onWatchChange) { + const dir = (0, path_1$7.dirname)(path); + if (onWatchChange === typescript_1$6.default.FileWatcherEventKind.Deleted) { + this.packageJsonCache.delete(path); + this.watchers.get(path)?.close(); + this.watchers.delete(path); + } + else { + this.packageJsonCache.set(path, this.readPackageJson(path)); + } + if (!path.includes('node_modules')) { + return; + } + setTimeout(() => { + this.updateSnapshotsInDirectory(dir); + const realPath = this.tsSystem.realpath && + this.getCanonicalFileName((0, utils_1$k.normalizePath)(this.tsSystem.realpath?.(dir))); + if (realPath && realPath !== dir) { + this.updateSnapshotsInDirectory(realPath); + } + }, 500); + } +} + +var CallHierarchyProvider = {}; + +var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault$6 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(CallHierarchyProvider, "__esModule", { value: true }); +CallHierarchyProvider.CallHierarchyProviderImpl = void 0; +const path_1$6 = __importStar(path$a); +const typescript_1$5 = __importDefault$6(ts); +const vscode_languageserver_1$d = main$5; +const vscode_languageserver_types_1 = require$$3; +const documents_1$b = documents; +const utils_1$j = utils$4; +const DocumentSnapshot_1$1 = DocumentSnapshot; +const utils_2$7 = utils$2; +const utils_3$2 = requireUtils(); +const ENSURE_COMPONENT_HELPER = '__sveltets_2_ensureComponent'; +class CallHierarchyProviderImpl { + constructor(lsAndTsDocResolver, workspaceUris) { + this.lsAndTsDocResolver = lsAndTsDocResolver; + this.workspaceUris = workspaceUris; + } + async prepareCallHierarchy(document, position, cancellationToken) { + const { lang, tsDoc } = await this.lsAndTsDocResolver.getLSAndTSDoc(document); + if (cancellationToken?.isCancellationRequested) { + return null; + } + const offset = tsDoc.offsetAt(tsDoc.getGeneratedPosition(position)); + const items = lang.prepareCallHierarchy(tsDoc.filePath, offset); + const itemsArray = Array.isArray(items) ? items : items ? [items] : []; + const snapshots = new utils_3$2.SnapshotMap(this.lsAndTsDocResolver); + snapshots.set(tsDoc.filePath, tsDoc); + const program = lang.getProgram(); + const result = await Promise.all(itemsArray.map((item) => this.convertCallHierarchyItem(snapshots, item, program))); + return result.filter(utils_1$j.isNotNullOrUndefined); + } + isSourceFileItem(item) { + return (item.kind === typescript_1$5.default.ScriptElementKind.scriptElement || + (item.kind === typescript_1$5.default.ScriptElementKind.moduleElement && item.selectionSpan.start === 0)); + } + async convertCallHierarchyItem(snapshots, item, program) { + const snapshot = await snapshots.retrieve(item.file); + const redirectedCallHierarchyItem = this.redirectCallHierarchyItem(snapshot, program, item); + if (redirectedCallHierarchyItem) { + return redirectedCallHierarchyItem; + } + const { name, detail } = this.getNameAndDetailForItem(this.isSourceFileItem(item), item); + const selectionRange = (0, documents_1$b.mapRangeToOriginal)(snapshot, (0, utils_2$7.convertRange)(snapshot, item.selectionSpan)); + if (selectionRange.start.line < 0 || selectionRange.end.line < 0) { + return null; + } + const range = (0, documents_1$b.mapRangeToOriginal)(snapshot, (0, utils_2$7.convertRange)(snapshot, item.span)); + if (range.start.line < 0 || range.end.line < 0) { + return null; + } + return { + kind: (0, utils_2$7.symbolKindFromString)(item.kind), + name, + range, + selectionRange, + uri: (0, utils_1$j.pathToUrl)(item.file), + detail, + tags: item.kindModifiers?.includes('deprecated') ? [vscode_languageserver_1$d.SymbolTag.Deprecated] : undefined + }; + } + getNameAndDetailForItem(useFileName, item) { + const nearestRootUri = (0, utils_2$7.getNearestWorkspaceUri)(this.workspaceUris, item.file, (0, utils_1$j.createGetCanonicalFileName)(typescript_1$5.default.sys.useCaseSensitiveFileNames)); + const nearestRoot = nearestRootUri && ((0, utils_1$j.urlToPath)(nearestRootUri) ?? undefined); + const name = useFileName ? (0, path_1$6.basename)(item.file) : item.name; + const detail = useFileName + ? nearestRoot && path_1$6.default.relative(nearestRoot, (0, path_1$6.dirname)(item.file)) + : item.containerName; + return { name, detail }; + } + async getIncomingCalls(previousItem, cancellationToken) { + const prepareResult = await this.prepareFurtherCalls(previousItem, cancellationToken); + if (!prepareResult) { + return null; + } + const { lang, filePath, program, snapshots, isComponentModulePosition, tsDoc, getNonComponentOffset } = prepareResult; + const componentExportOffset = isComponentModulePosition && tsDoc instanceof DocumentSnapshot_1$1.SvelteDocumentSnapshot + ? (0, utils_2$7.offsetOfGeneratedComponentExport)(tsDoc) + : -1; + const offset = componentExportOffset >= 0 ? componentExportOffset : getNonComponentOffset(); + const incomingCalls = lang + .provideCallHierarchyIncomingCalls(filePath, offset) + .concat(this.getInComingCallsForComponent(lang, program, filePath, offset) ?? []); + const result = await Promise.all(incomingCalls.map(async (item) => { + const snapshot = await snapshots.retrieve(item.from.file); + const from = await this.convertCallHierarchyItem(snapshots, item.from, program); + if (!from) { + return null; + } + return { + from, + fromRanges: this.convertFromRanges(snapshot, item.fromSpans) + }; + })); + return result.filter(utils_1$j.isNotNullOrUndefined); + } + async getOutgoingCalls(previousItem, cancellationToken) { + const prepareResult = await this.prepareFurtherCalls(previousItem, cancellationToken); + if (!prepareResult) { + return null; + } + const { lang, filePath, program, snapshots, isComponentModulePosition, tsDoc, getNonComponentOffset } = prepareResult; + const sourceFile = program?.getSourceFile(filePath); + const renderFunctionOffset = isComponentModulePosition && tsDoc instanceof DocumentSnapshot_1$1.SvelteDocumentSnapshot && sourceFile + ? sourceFile.statements + .find((statement) => typescript_1$5.default.isFunctionDeclaration(statement) && + statement.name?.getText() === 'render') + ?.name?.getStart() + : -1; + const offset = renderFunctionOffset != null && renderFunctionOffset >= 0 + ? renderFunctionOffset + : getNonComponentOffset(); + const outgoingCalls = lang + .provideCallHierarchyOutgoingCalls(filePath, offset) + .concat(isComponentModulePosition + ? this.getOutgoingCallsForComponent(program, filePath) ?? [] + : []); + const result = await Promise.all(outgoingCalls.map(async (item) => { + if (item.to.name.startsWith('__sveltets') || + item.to.containerName === 'svelteHTML') { + return null; + } + const to = await this.convertCallHierarchyItem(snapshots, item.to, program); + if (!to) { + return null; + } + return { + to, + fromRanges: this.convertFromRanges(tsDoc, item.fromSpans) + }; + })); + return result.filter(utils_1$j.isNotNullOrUndefined).filter((item) => item.fromRanges.length); + } + async prepareFurtherCalls(item, cancellationToken) { + const filePath = (0, utils_1$j.urlToPath)(item.uri); + if (!filePath) { + return null; + } + const lang = await this.lsAndTsDocResolver.getLSForPath(filePath); + const tsDoc = await this.lsAndTsDocResolver.getSnapshot(filePath); + if (cancellationToken?.isCancellationRequested) { + return null; + } + const program = lang.getProgram(); + const snapshots = new utils_3$2.SnapshotMap(this.lsAndTsDocResolver); + snapshots.set(tsDoc.filePath, tsDoc); + const isComponentModulePosition = (0, utils_2$7.isSvelteFilePath)(item.name) && + item.selectionRange.start.line === 0 && + item.range.start.line === 0; + return { + snapshots, + filePath, + program, + tsDoc, + lang, + isComponentModulePosition, + getNonComponentOffset: () => tsDoc.offsetAt(tsDoc.getGeneratedPosition(item.selectionRange.start)) + }; + } + redirectCallHierarchyItem(snapshot, program, item) { + if (!(0, utils_2$7.isSvelteFilePath)(item.file) || + !program || + !(snapshot instanceof DocumentSnapshot_1$1.SvelteDocumentSnapshot)) { + return null; + } + const sourceFile = program.getSourceFile(item.file); + if (!sourceFile) { + return null; + } + if ((0, utils_2$7.isGeneratedSvelteComponentName)(item.name)) { + return this.toComponentCallHierarchyItem(snapshot, item); + } + if (item.name === 'render') { + const end = item.selectionSpan.start + item.selectionSpan.length; + const renderFunction = sourceFile.statements.find((statement) => statement.getStart() <= item.selectionSpan.start && statement.getEnd() >= end); + if (!renderFunction || !sourceFile.statements.includes(renderFunction)) { + return null; + } + return this.toComponentCallHierarchyItem(snapshot, item); + } + return null; + } + toComponentCallHierarchyItem(snapshot, item) { + const fileStartPosition = vscode_languageserver_types_1.Position.create(0, 0); + const fileRange = vscode_languageserver_1$d.Range.create(fileStartPosition, snapshot.parent.positionAt(snapshot.parent.getTextLength())); + return { + ...this.getNameAndDetailForItem(true, item), + kind: vscode_languageserver_1$d.SymbolKind.Module, + range: fileRange, + selectionRange: vscode_languageserver_1$d.Range.create(fileStartPosition, fileStartPosition), + uri: (0, utils_1$j.pathToUrl)(item.file) + }; + } + convertFromRanges(snapshot, spans) { + return spans + .map((item) => (0, documents_1$b.mapRangeToOriginal)(snapshot, (0, utils_2$7.convertRange)(snapshot, item))) + .filter((range) => range.start.line >= 0 && range.end.line >= 0); + } + getInComingCallsForComponent(lang, program, filePath, offset) { + if (!program || !(0, utils_2$7.isSvelteFilePath)(filePath)) { + return null; + } + const groups = lang + .findReferences(filePath, offset) + ?.map((entry) => [ + entry.definition.fileName, + entry.references + .map((ref) => this.getComponentStartTagFromReference(program, ref)) + .filter(utils_1$j.isNotNullOrUndefined) + ]) + .filter(([_, group]) => group.length); + return (groups?.map(([file, group]) => ({ + from: { + file, + kind: typescript_1$5.default.ScriptElementKind.scriptElement, + name: (0, utils_2$7.toGeneratedSvelteComponentName)(''), + selectionSpan: { start: 0, length: 0 }, + span: { start: 0, length: 0 } + }, + fromSpans: group.map((g) => g.textSpan) + })) ?? null); + } + getComponentStartTagFromReference(program, ref) { + const sourceFile = program.getSourceFile(ref.fileName); + if (!sourceFile) { + return null; + } + const node = (0, utils_3$2.findNodeAtSpan)(sourceFile, ref.textSpan, this.isComponentStartTag); + if (node) { + return ref; + } + return null; + } + isComponentStartTag(node) { + return (!!node && + node.parent && + typescript_1$5.default.isCallExpression(node.parent) && + typescript_1$5.default.isIdentifier(node.parent.expression) && + node.parent.expression.text === ENSURE_COMPONENT_HELPER && + typescript_1$5.default.isIdentifier(node) && + node === node.parent.arguments[0]); + } + getOutgoingCallsForComponent(program, filePath) { + const sourceFile = program?.getSourceFile(filePath); + if (!program || !sourceFile) { + return null; + } + const groups = new Map(); + const startTags = (0, utils_3$2.gatherDescendants)(sourceFile, this.isComponentStartTag); + const typeChecker = program.getTypeChecker(); + for (const startTag of startTags) { + const type = typeChecker.getTypeAtLocation(startTag); + const symbol = type.aliasSymbol ?? type.symbol; + const declaration = symbol?.valueDeclaration ?? symbol?.declarations?.[0]; + if (!declaration || !typescript_1$5.default.isClassDeclaration(declaration)) { + continue; + } + let group = groups.get(declaration); + if (!group) { + group = []; + groups.set(declaration, group); + } + group.push({ start: startTag.getStart(), length: startTag.getWidth() }); + } + return (Array.from(groups).map(([declaration, group]) => { + const file = declaration.getSourceFile().fileName; + const name = declaration.name?.getText() ?? (0, path_1$6.basename)(file); + const span = { start: declaration.getStart(), length: declaration.getWidth() }; + const selectionSpan = declaration.name + ? { start: declaration.name.getStart(), length: declaration.name.getWidth() } + : span; + return { + to: { + file, + kind: typescript_1$5.default.ScriptElementKind.classElement, + name, + selectionSpan, + span + }, + fromSpans: group + }; + }) ?? null); + } +} +CallHierarchyProvider.CallHierarchyProviderImpl = CallHierarchyProviderImpl; var __importDefault$5 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; @@ -93500,15 +92656,13 @@ const typescript_1$4 = __importDefault$5(ts); const vscode_languageserver_1$c = main$5; const documents_1$a = documents; const utils_1$i = utils$4; -const SnapshotManager_1$2 = SnapshotManager$1; -const CallHierarchyProvider_1 = CallHierarchyProvider; const CodeActionsProvider_1$1 = CodeActionsProvider; const CompletionProvider_1 = CompletionProvider; const DiagnosticsProvider_1 = DiagnosticsProvider; -const FindComponentReferencesProvider_1 = FindComponentReferencesProvider; const FindFileReferencesProvider_1 = FindFileReferencesProvider; +const FindComponentReferencesProvider_1 = FindComponentReferencesProvider; const FindReferencesProvider_1 = FindReferencesProvider; -const FoldingRangeProvider_1 = FoldingRangeProvider; +const getDirectiveCommentCompletions_1 = getDirectiveCommentCompletions; const HoverProvider_1 = HoverProvider; const ImplementationProvider_1 = ImplementationProvider; const InlayHintProvider_1 = InlayHintProvider; @@ -93518,10 +92672,11 @@ const SemanticTokensProvider_1 = SemanticTokensProvider; const SignatureHelpProvider_1 = SignatureHelpProvider; const TypeDefinitionProvider_1 = TypeDefinitionProvider; const UpdateImportsProvider_1 = UpdateImportsProvider; -const getDirectiveCommentCompletions_1 = getDirectiveCommentCompletions; const utils_2$6 = requireUtils(); +const SnapshotManager_1$2 = SnapshotManager$1; const svelte_ast_utils_1 = svelteAstUtils; const utils_3$1 = utils$2; +const CallHierarchyProvider_1 = CallHierarchyProvider; class TypeScriptPlugin { constructor(configManager, lsAndTsDocResolver, workspaceUris) { this.__name = 'ts'; @@ -93543,7 +92698,6 @@ class TypeScriptPlugin { this.typeDefinitionProvider = new TypeDefinitionProvider_1.TypeDefinitionProviderImpl(this.lsAndTsDocResolver); this.inlayHintProvider = new InlayHintProvider_1.InlayHintProviderImpl(this.lsAndTsDocResolver); this.callHierarchyProvider = new CallHierarchyProvider_1.CallHierarchyProviderImpl(this.lsAndTsDocResolver, workspaceUris); - this.foldingRangeProvider = new FoldingRangeProvider_1.FoldingRangeProviderImpl(this.lsAndTsDocResolver, configManager); } async getDiagnostics(document, cancellationToken) { if (!this.featureEnabled('diagnostics')) { @@ -93561,7 +92715,7 @@ class TypeScriptPlugin { if (!this.featureEnabled('documentSymbols')) { return []; } - const { lang, tsDoc } = await this.lsAndTsDocResolver.getLsForSyntheticOperations(document); + const { lang, tsDoc } = await this.getLSAndTSDoc(document); if (cancellationToken?.isCancellationRequested) { return []; } @@ -93638,7 +92792,7 @@ class TypeScriptPlugin { return this.completionProvider.resolveCompletion(document, completionItem, cancellationToken); } async getDefinitions(document, position) { - const { lang, tsDoc } = await this.lsAndTsDocResolver.getLSAndTSDoc(document); + const { lang, tsDoc } = await this.getLSAndTSDoc(document); const defs = lang.getDefinitionAndBoundSpan(tsDoc.filePath, tsDoc.offsetAt(tsDoc.getGeneratedPosition(position))); if (!defs || !defs.definitions) { return []; @@ -93777,8 +92931,8 @@ class TypeScriptPlugin { async getOutgoingCalls(item, cancellationToken) { return this.callHierarchyProvider.getOutgoingCalls(item, cancellationToken); } - async getFoldingRanges(document) { - return this.foldingRangeProvider.getFoldingRanges(document); + async getLSAndTSDoc(document) { + return this.lsAndTsDocResolver.getLSAndTSDoc(document); } getSnapshotManager(fileName) { return this.lsAndTsDocResolver.getSnapshotManager(fileName); @@ -93804,28 +92958,16 @@ const utils_1$h = utils$2; const fileCollection_1$2 = fileCollection; function createSvelteSys(tsSystem) { const fileExistsCache = new fileCollection_1$2.FileMap(); - function svelteFileExists(path) { - if ((0, utils_1$h.isVirtualSvelteFilePath)(path)) { - const sveltePath = (0, utils_1$h.toRealSvelteFilePath)(path); - const sveltePathExists = fileExistsCache.get(sveltePath) ?? tsSystem.fileExists(sveltePath); - fileExistsCache.set(sveltePath, sveltePathExists); - return sveltePathExists; - } - else { - return false; - } - } const svelteSys = { ...tsSystem, - svelteFileExists, fileExists(path) { - const sveltePathExists = svelteFileExists(path); - const exists = sveltePathExists || (fileExistsCache.get(path) ?? tsSystem.fileExists(path)); + path = (0, utils_1$h.ensureRealSvelteFilePath)(path); + const exists = fileExistsCache.get(path) ?? tsSystem.fileExists(path); fileExistsCache.set(path, exists); return exists; }, readFile(path) { - return tsSystem.readFile(svelteFileExists(path) ? (0, utils_1$h.toRealSvelteFilePath)(path) : path); + return tsSystem.readFile((0, utils_1$h.ensureRealSvelteFilePath)(path)); }, readDirectory(path, extensions, exclude, include, depth) { const extensionsWithSvelte = extensions ? [...extensions, '.svelte'] : undefined; @@ -93833,18 +92975,16 @@ function createSvelteSys(tsSystem) { }, deleteFile(path) { fileExistsCache.delete((0, utils_1$h.ensureRealSvelteFilePath)(path)); - fileExistsCache.delete(path); return tsSystem.deleteFile?.(path); }, deleteFromCache(path) { fileExistsCache.delete((0, utils_1$h.ensureRealSvelteFilePath)(path)); - fileExistsCache.delete(path); } }; if (tsSystem.realpath) { const realpath = tsSystem.realpath; svelteSys.realpath = function (path) { - if (svelteFileExists(path)) { + if ((0, utils_1$h.isVirtualSvelteFilePath)(path)) { return realpath((0, utils_1$h.toRealSvelteFilePath)(path)) + '.ts'; } return realpath(path); @@ -93958,7 +93098,6 @@ function createSvelteModuleLoader(getSnapshot, compilerOptions, tsSystem, tsModu const failedPathToContainingFile = new fileCollection_1$1.FileMap(); const failedLocationInvalidated = new fileCollection_1$1.FileSet(); return { - svelteFileExists: svelteSys.svelteFileExists, fileExists: svelteSys.fileExists, readFile: svelteSys.readFile, readDirectory: svelteSys.readDirectory, @@ -93998,7 +93137,7 @@ function createSvelteModuleLoader(getSnapshot, compilerOptions, tsSystem, tsModu const mode = impliedNodeFormatResolver.resolve(name, index, containingSourceFile, compilerOptions); const tsResolvedModuleWithFailedLookup = tsModule.resolveModuleName(name, containingFile, compilerOptions, typescript_1$3.default.sys, tsModuleCache, undefined, mode); const tsResolvedModule = tsResolvedModuleWithFailedLookup.resolvedModule; - if (tsResolvedModule) { + if (tsResolvedModule && !(0, utils_2$5.isVirtualSvelteFilePath)(tsResolvedModule.resolvedFileName)) { return tsResolvedModuleWithFailedLookup; } const svelteResolvedModuleWithFailedLookup = tsModule.resolveModuleName(name, containingFile, compilerOptions, svelteSys, undefined, undefined, mode); @@ -94147,9 +93286,6 @@ async function createLanguageService(tsconfigPath, workspacePath, docContext) { svelteTsPath = __dirname; } const sveltePackageInfo = (0, importPackage_1$4.getPackageInfo)('svelte', tsconfigPath || workspacePath); - const svelteCompiler = sveltePackageInfo.version.major >= 5 - ? (0, importPackage_1$4.importSvelte)(tsconfigPath || workspacePath) - : undefined; const isSvelte3 = sveltePackageInfo.version.major === 3; const svelteHtmlDeclaration = isSvelte3 ? undefined @@ -94186,7 +93322,6 @@ async function createLanguageService(tsconfigPath, workspacePath, docContext) { }; let languageService = typescript_1$2.default.createLanguageService(host); const transformationConfig = { - parse: svelteCompiler?.parse, transformOnTemplateError: docContext.transformOnTemplateError, typingsNamespace: raw?.svelteOptions?.namespace || 'svelteHTML' }; @@ -94258,19 +93393,19 @@ async function createLanguageService(tsconfigPath, workspacePath, docContext) { return newSnapshot; } function getSnapshotIfExists(fileName) { - const svelteFileName = (0, utils_2$4.ensureRealSvelteFilePath)(fileName); - let doc = snapshotManager.get(fileName) ?? snapshotManager.get(svelteFileName); + fileName = (0, utils_2$4.ensureRealSvelteFilePath)(fileName); + let doc = snapshotManager.get(fileName); if (doc) { return doc; } if (!svelteModuleLoader.fileExists(fileName)) { return undefined; } - return createSnapshot(svelteModuleLoader.svelteFileExists(fileName) ? svelteFileName : fileName, doc); + return createSnapshot(fileName, doc); } function getSnapshot(fileName) { - const svelteFileName = (0, utils_2$4.ensureRealSvelteFilePath)(fileName); - let doc = snapshotManager.get(fileName) ?? snapshotManager.get(svelteFileName); + fileName = (0, utils_2$4.ensureRealSvelteFilePath)(fileName); + let doc = snapshotManager.get(fileName); if (doc) { return doc; } @@ -94681,10 +93816,204 @@ var getCodeActions$1 = {}; var getQuickfixes = {}; +var estreeWalker = {exports: {}}; + +estreeWalker.exports; +(function (module, exports) { + (function (global, factory) { + factory(exports) ; + }(commonjsGlobal, (function (exports) { // @ts-check + class WalkerBase { + constructor() { + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + this.context = { + skip: () => (this.should_skip = true), + remove: () => (this.should_remove = true), + replace: (node) => (this.replacement = node) + }; + } + replace(parent, prop, index, node) { + if (parent) { + if (index !== null) { + parent[prop][index] = node; + } else { + parent[prop] = node; + } + } + } + remove(parent, prop, index) { + if (parent) { + if (index !== null) { + parent[prop].splice(index, 1); + } else { + delete parent[prop]; + } + } + } + } + // @ts-check + class SyncWalker extends WalkerBase { + constructor(enter, leave) { + super(); + this.enter = enter; + this.leave = leave; + } + visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + this.enter.call(this.context, node, parent, prop, index); + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + if (this.should_remove) { + this.remove(parent, prop, index); + } + const skipped = this.should_skip; + const removed = this.should_remove; + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + if (skipped) return node; + if (removed) return null; + } + for (const key in node) { + const value = node[key]; + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!this.visit(value[i], node, key, i)) { + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + this.visit(value, node, key, null); + } + } + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + this.leave.call(this.context, node, parent, prop, index); + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + if (this.should_remove) { + this.remove(parent, prop, index); + } + const removed = this.should_remove; + this.replacement = _replacement; + this.should_remove = _should_remove; + if (removed) return null; + } + } + return node; + } + } + // @ts-check + class AsyncWalker extends WalkerBase { + constructor(enter, leave) { + super(); + this.enter = enter; + this.leave = leave; + } + async visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + await this.enter.call(this.context, node, parent, prop, index); + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + if (this.should_remove) { + this.remove(parent, prop, index); + } + const skipped = this.should_skip; + const removed = this.should_remove; + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + if (skipped) return node; + if (removed) return null; + } + for (const key in node) { + const value = node[key]; + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!(await this.visit(value[i], node, key, i))) { + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + await this.visit(value, node, key, null); + } + } + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + await this.leave.call(this.context, node, parent, prop, index); + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + if (this.should_remove) { + this.remove(parent, prop, index); + } + const removed = this.should_remove; + this.replacement = _replacement; + this.should_remove = _should_remove; + if (removed) return null; + } + } + return node; + } + } + // @ts-check + function walk(ast, { enter, leave }) { + const instance = new SyncWalker(enter, leave); + return instance.visit(ast, null); + } + async function asyncWalk(ast, { enter, leave }) { + const instance = new AsyncWalker(enter, leave); + return await instance.visit(ast, null); + } + exports.asyncWalk = asyncWalk; + exports.walk = walk; + Object.defineProperty(exports, '__esModule', { value: true }); + }))); +} (estreeWalker, estreeWalker.exports)); +var estreeWalkerExports = estreeWalker.exports; +getDefaultExportFromCjs(estreeWalkerExports); + Object.defineProperty(getQuickfixes, "__esModule", { value: true }); getQuickfixes.isIgnorableSvelteDiagnostic = getQuickfixes.getQuickfixActions = void 0; const estree_walker_1$1 = estreeWalkerExports; -const os_1$1 = require$$1$4; +const os_1$1 = require$$1$2; const vscode_languageserver_1$b = main$5; const documents_1$9 = documents; const utils_1$d = utils$4; @@ -94990,13 +94319,6 @@ When used around components, this will cause them to be reinstantiated and reini \`{#key expression}...{/key}\`\\ \\ https://svelte.dev/docs#template-syntax-key -`, - snippet: `\`{#snippet identifier(parameter)}...{/snippet}\`\\ -Snippets allow you to create reusable UI blocks you can render with the {@render ...} tag. -They also function as slot props for components. -`, - render: `\`{@render ...}\`\\ -Renders a snippet with the given parameters. `, html: `\`{@html ...}\`\\ In a text expression, characters like < and > are escaped; however, ` + @@ -95023,11 +94345,9 @@ It accepts a comma-separated list of variable names (not arbitrary expressions). https://svelte.dev/docs#template-syntax-debug `, const: `\`{@const ...}\`\\ -Defines a local constant}\\ +TODO #### Usage: \`{@const a = b + c}\`\\ -\\ -https://svelte.dev/docs/special-tags#const ` }; function getLatestOpeningTag(svelteDoc, offset) { @@ -95039,8 +94359,7 @@ function getLatestOpeningTag(svelteDoc, offset) { idxOfLastOpeningTag(content, 'each'), idxOfLastOpeningTag(content, 'if'), idxOfLastOpeningTag(content, 'await'), - idxOfLastOpeningTag(content, 'key'), - idxOfLastOpeningTag(content, 'snippet') + idxOfLastOpeningTag(content, 'key') ]; const lastIdx = lastIdxs.sort((i1, i2) => i2.lastIdx - i1.lastIdx); return lastIdx[0].lastIdx === -1 ? null : lastIdx[0].tag; @@ -95132,7 +94451,7 @@ utils.attributeCanHaveEventModifier = attributeCanHaveEventModifier; Object.defineProperty(getCompletions$1, "__esModule", { value: true }); getCompletions$1.getCompletions = void 0; -const os_1 = require$$1$4; +const os_1 = require$$1$2; const vscode_languageserver_1$8 = main$5; const SvelteTags_1$1 = SvelteTags; const documents_1$8 = documents; @@ -95210,8 +94529,7 @@ function getCompletionsWithRegardToTriggerCharacter(triggerCharacter, svelteDoc, return createCompletionItems([ { tag: 'html', label: 'html' }, { tag: 'debug', label: 'debug' }, - { tag: 'const', label: 'const' }, - { tag: 'render', label: 'render' } + { tag: 'const', label: 'const' } ]); } if (triggerCharacter === '#') { @@ -95228,8 +94546,7 @@ function getCompletionsWithRegardToTriggerCharacter(triggerCharacter, svelteDoc, label: 'await then', insertText: 'await $1 then $2}\n\t$3\n{/await' }, - { tag: 'key', label: 'key', insertText: 'key $1}\n\t$2\n{/key' }, - { tag: 'snippet', label: 'snippet', insertText: 'snippet $1($2)}\n\t$3\n{/snippet' } + { tag: 'key', label: 'key', insertText: 'key $1}\n\t$2\n{/key' } ]); } if (triggerCharacter === ':') { @@ -95277,8 +94594,6 @@ function showCompletionWithRegardsToOpenedTags(on, svelteDoc, offset) { return on.awaitOpen; case 'key': return on?.keyOpen ?? null; - case 'snippet': - return on.snippetOpen ?? null; default: return null; } @@ -95609,7 +94924,7 @@ async function tryGetDiagnostics(document, svelteDoc, settings) { const transpiled = await svelteDoc.getTranspiled(); try { const res = await svelteDoc.getCompiled(); - return (res.stats?.warnings || res.warnings || []) + return (res.stats.warnings || res.warnings || []) .filter((warning) => settings[warning.code] !== 'ignore') .map((warning) => { const start = warning.start || { line: 1, column: 0 }; @@ -95870,11 +95185,9 @@ const tagPossibilities = [ { tag: 'each', values: ['#each', '/each'] }, { tag: 'await', values: ['#await', '/await', ':then', ':catch'] }, { tag: 'key', values: ['#key', '/key'] }, - { tag: 'snippet', values: ['#snippet', '/snippet'] }, { tag: 'html', values: ['@html'] }, { tag: 'debug', values: ['@debug'] }, { tag: 'const', values: ['@const'] }, - { tag: 'render', values: ['@render'] }, { tag: ':else', values: [':else'] } ]; const tagRegexp = new RegExp(`[\\s\\S]*{\\s*(${(0, utils_1$8.flatten)(tagPossibilities.map((p) => p.values)).join('|')})(\\s|})`); @@ -102297,7 +101610,7 @@ getDefaultExportFromCjs(webCustomDataExports); Object.defineProperty(dataProvider, "__esModule", { value: true }); dataProvider.svelteHtmlDataProvider = void 0; -const vscode_html_languageservice_1$1 = require$$1$1; +const vscode_html_languageservice_1$1 = require$$1; const webCustomData_1 = webCustomDataExports; const utils_1$6 = utils$4; const svelteEvents = [ @@ -102695,7 +102008,7 @@ var __importDefault$1 = (commonjsGlobal && commonjsGlobal.__importDefault) || fu Object.defineProperty(HTMLPlugin$1, "__esModule", { value: true }); HTMLPlugin$1.HTMLPlugin = void 0; const emmet_helper_1 = require$$0; -const vscode_html_languageservice_1 = require$$1$1; +const vscode_html_languageservice_1 = require$$1; const vscode_languageserver_1$4 = main$5; const documents_1$3 = documents; const dataProvider_1 = dataProvider; @@ -102704,15 +102017,13 @@ const utils_2$1 = utils$4; const importPackage_1$1 = importPackage; const path_1$2 = __importDefault$1(path$a); const logger_1$3 = logger; -const indentFolding_1 = indentFolding; class HTMLPlugin { constructor(docManager, configManager) { this.configManager = configManager; this.__name = 'html'; this.lang = (0, vscode_html_languageservice_1.getLanguageService)({ customDataProviders: this.getCustomDataProviders(), - useDefaultDataProvider: false, - clientCapabilities: this.configManager.getClientCapabilities() + useDefaultDataProvider: false }); this.documents = new WeakMap(); this.styleScriptTemplate = new Set(['template', 'style', 'script']); @@ -102913,57 +102224,6 @@ class HTMLPlugin { } return { ranges }; } - getFoldingRanges(document) { - const result = this.lang.getFoldingRanges(document); - const templateRange = document.templateInfo - ? (0, indentFolding_1.indentBasedFoldingRangeForTag)(document, document.templateInfo) - : []; - const ARROW = '=>'; - if (!document.getText().includes(ARROW)) { - return result.concat(templateRange); - } - const byEnd = new Map(); - for (const fold of result) { - byEnd.set(fold.endLine, (byEnd.get(fold.endLine) ?? []).concat(fold)); - } - let startIndex = 0; - while (startIndex < document.getTextLength()) { - const index = document.getText().indexOf(ARROW, startIndex); - startIndex = index + ARROW.length; - if (index === -1) { - break; - } - const position = document.positionAt(index); - const isInStyleOrScript = (0, documents_1$3.isInTag)(position, document.styleInfo) || - (0, documents_1$3.isInTag)(position, document.scriptInfo) || - (0, documents_1$3.isInTag)(position, document.moduleScriptInfo); - if (isInStyleOrScript) { - continue; - } - const tag = document.html.findNodeAt(index); - if (!tag.startTagEnd || index > tag.startTagEnd) { - continue; - } - const tagStartPosition = document.positionAt(tag.start); - const range = byEnd - .get(position.line) - ?.find((r) => r.startLine === tagStartPosition.line); - const newEndLine = document.positionAt(tag.end).line - 1; - if (newEndLine <= tagStartPosition.line) { - continue; - } - if (range) { - range.endLine = newEndLine; - } - else { - result.push({ - startLine: tagStartPosition.line, - endLine: newEndLine - }); - } - } - return result.concat(templateRange); - } isRenameAtTag(node, offset) { if (!node.tag) { return false; @@ -103000,7 +102260,7 @@ var PluginHost$1 = {}; Object.defineProperty(PluginHost$1, "__esModule", { value: true }); PluginHost$1.PluginHost = void 0; const lodash_1$1 = lodashExports; -const perf_hooks_1 = require$$1$5; +const perf_hooks_1 = require$$1$4; const vscode_languageserver_1$3 = main$5; const documents_1$2 = documents; const logger_1$2 = logger; @@ -103215,11 +102475,6 @@ class PluginHost { getOutgoingCalls(item, cancellationToken) { return this.execute('getOutgoingCalls', [item, cancellationToken], ExecuteMode.FirstNonNull, 'high'); } - async getFoldingRanges(textDocument) { - const document = this.getDocument(textDocument.uri); - const result = (0, lodash_1$1.flatten)(await this.execute('getFoldingRanges', [document], ExecuteMode.Collect, 'high')); - return result; - } onWatchFileChanges(onWatchFileChangesParas) { for (const support of this.plugins) { support.onWatchFileChanges?.(onWatchFileChangesParas); @@ -103406,7 +102661,7 @@ Object.defineProperty(FileSystemProvider$1, "__esModule", { value: true }); FileSystemProvider$1.FileSystemProvider = void 0; const fs_1 = require$$0$3; const util_1 = require$$0$1; -const vscode_css_languageservice_1 = require$$2; +const vscode_css_languageservice_1 = require$$2$1; const utils_1$2 = utils$4; class FileSystemProvider { constructor() { @@ -103669,8 +102924,7 @@ function startServer(options) { implementationProvider: true, typeDefinitionProvider: true, inlayHintProvider: true, - callHierarchyProvider: true, - foldingRangeProvider: true + callHierarchyProvider: true } }; }); @@ -103759,7 +103013,6 @@ function startServer(options) { connection.onSelectionRanges((evt) => pluginHost.getSelectionRanges(evt.textDocument, evt.positions)); connection.onImplementation((evt) => pluginHost.getImplementation(evt.textDocument, evt.position)); connection.onTypeDefinition((evt) => pluginHost.getTypeDefinition(evt.textDocument, evt.position)); - connection.onFoldingRanges((evt) => pluginHost.getFoldingRanges(evt.textDocument)); const diagnosticsManager = new DiagnosticsManager_1.DiagnosticsManager(connection.sendDiagnostics, docManager, pluginHost.getDiagnostics.bind(pluginHost)); const refreshSemanticTokens = (0, utils_1$1.debounceThrottle)(() => { if (configManager?.getClientCapabilities()?.workspace?.semanticTokens?.refreshSupport) { diff --git a/node_modules/svelte-check/package.json b/node_modules/svelte-check/package.json index 4079d35..1643805 100644 --- a/node_modules/svelte-check/package.json +++ b/node_modules/svelte-check/package.json @@ -1,7 +1,7 @@ { "name": "svelte-check", "description": "Svelte Code Checker Terminal Interface", - "version": "3.6.0", + "version": "3.5.2", "main": "./dist/src/index.js", "bin": "./bin/svelte-check", "author": "The Svelte Community", @@ -29,11 +29,11 @@ "import-fresh": "^3.2.1", "picocolors": "^1.0.0", "sade": "^1.7.4", - "svelte-preprocess": "^5.1.0", + "svelte-preprocess": "^5.0.4", "typescript": "^5.0.3" }, "peerDependencies": { - "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" + "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0" }, "devDependencies": { "@rollup/plugin-commonjs": "^24.0.0", diff --git a/node_modules/svelte-preprocess/dist/transformers/typescript.js b/node_modules/svelte-preprocess/dist/transformers/typescript.js index 21ec449..261ac07 100644 --- a/node_modules/svelte-preprocess/dist/transformers/typescript.js +++ b/node_modules/svelte-preprocess/dist/transformers/typescript.js @@ -82,7 +82,6 @@ function createSourceMapChain({ filename, content, compilerOptions, }) { function injectVarsToCode({ content, markup, filename, attributes, sourceMapChain, }) { if (!markup) return content; - // @ts-ignore different in Svelte 5 const { vars } = (0, compiler_1.compile)((0, markup_1.stripTags)(markup), { generate: false, varsReport: 'full', @@ -324,11 +323,9 @@ const transformer = async ({ content, filename, markup, options = {}, attributes filename = (0, path_1.isAbsolute)(filename) ? filename : (0, path_1.resolve)(basePath, filename); const compilerOptions = getCompilerOptions({ filename, options, basePath }); const versionParts = package_json_1.default.version.split('.'); - const canUseMixedImportsTranspiler = +versionParts[0] === 4 || - (+versionParts[0] === 3 && +versionParts[1] >= 39); + const canUseMixedImportsTranspiler = +versionParts[0] > 3 || (+versionParts[0] === 3 && +versionParts[1] >= 39); if (!canUseMixedImportsTranspiler && options.handleMixedImports) { - throw new Error('You need at least Svelte 3.39 and at most Svelte 4.x to use the handleMixedImports option. ' + - 'The option is no longer available for Svelte 5 and beyond. Use the verbatimModuleSyntax TypeScript option instead.'); + throw new Error('You need at least Svelte 3.39 to use the handleMixedImports option'); } const handleMixedImports = !compilerOptions.preserveValueImports && !compilerOptions.verbatimModuleSyntax && diff --git a/node_modules/svelte-preprocess/dist/types/index.d.ts b/node_modules/svelte-preprocess/dist/types/index.d.ts index 71b4c13..9a0ef36 100644 --- a/node_modules/svelte-preprocess/dist/types/index.d.ts +++ b/node_modules/svelte-preprocess/dist/types/index.d.ts @@ -9,7 +9,7 @@ export type TransformerArgs = { attributes?: Record; map?: string | object; markup?: string; - diagnostics?: unknown[]; + dianostics?: unknown[]; options?: T; }; /** diff --git a/node_modules/svelte-preprocess/package.json b/node_modules/svelte-preprocess/package.json index 4cdc08f..72af063 100644 --- a/node_modules/svelte-preprocess/package.json +++ b/node_modules/svelte-preprocess/package.json @@ -1,142 +1,140 @@ -{ - "name": "svelte-preprocess", - "version": "5.1.0", - "license": "MIT", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "description": "A Svelte preprocessor wrapper with baked-in support for commonly used preprocessors", - "author": "Christian Kaisermann ", - "repository": "https://github.com/sveltejs/svelte-preprocess", - "keywords": [ - "svelte", - "preprocess", - "less", - "stylus", - "sass", - "scss", - "pug", - "coffeescript" - ], - "engines": { - "node": ">= 14.10.0" - }, - "volta": { - "node": "14.19.2" - }, - "files": [ - "dist/" - ], - "scripts": { - "prebuild": "node scripts.js rmrf ./dist", - "build": "tsc --build tsconfig.build.json", - "dev": "pnpm build -w", - "test": "jest", - "lint": "eslint --ext js,ts .", - "format": "prettier --write \"**/*.{ts,js,json}\"", - "postinstall": "echo \"[svelte-preprocess] Don't forget to install the preprocessors packages that will be used: sass, stylus, less, postcss & postcss-load-config, coffeescript, pug, etc...\"", - "version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1 && git add CHANGELOG.md", - "patch": "npm version patch -m 'chore(release): %s'", - "minor": "npm version minor -m 'chore(release): %s'", - "major": "npm version major -m 'chore(release): %s'", - "prepublishOnly": "pnpm test && pnpm build", - "prepare": "husky install" - }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "lint-staged": { - "*.{ts,js,tsx,jsx}": [ - "eslint --fix", - "prettier --write" - ], - "*.json": [ - "prettier --write" - ] - }, - "devDependencies": { - "@babel/core": "^7.20.5", - "@babel/preset-env": "^7.20.2", - "@commitlint/cli": "^11.0.0", - "@commitlint/config-conventional": "^11.0.0", - "@kiwi/eslint-config": "^2.0.2", - "@kiwi/prettier-config": "^2.0.2", - "@types/babel__core": "^7.1.20", - "@types/jest": "^27.5.2", - "@types/node": "^14.18.34", - "@types/stylus": "^0.48.38", - "autoprefixer": "^9.8.8", - "babel-minify": "^0.5.2", - "coffeescript": "^2.7.0", - "conventional-changelog-cli": "^2.2.2", - "eslint": "^8.29.0", - "husky": "^8.0.2", - "jest": "^29.5.0", - "less": "^3.13.1", - "lint-staged": "^10.5.4", - "postcss": "^8.4.19", - "postcss-easy-import": "^3.0.0", - "postcss-load-config": "^3.1.4", - "prettier": "^2.8.1", - "pug": "^3.0.2", - "sass": "^1.56.2", - "stylus": "^0.55.0", - "sugarss": "^4.0.0", - "svelte": "^3.54.0", - "ts-jest": "^29.0.5", - "typescript": "^5.0.2" - }, - "dependencies": { - "@types/pug": "^2.0.6", - "detect-indent": "^6.1.0", - "magic-string": "^0.27.0", - "sorcery": "^0.11.0", - "strip-indent": "^3.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.10.2", - "coffeescript": "^2.5.1", - "less": "^3.11.3 || ^4.0.0", - "postcss": "^7 || ^8", - "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", - "pug": "^3.0.0", - "sass": "^1.26.8", - "stylus": "^0.55.0", - "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", - "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "coffeescript": { - "optional": true - }, - "less": { - "optional": true - }, - "postcss": { - "optional": true - }, - "postcss-load-config": { - "optional": true - }, - "pug": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "typescript": { - "optional": true - } - } -} +{ + "name": "svelte-preprocess", + "version": "5.0.4", + "license": "MIT", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "description": "A Svelte preprocessor wrapper with baked-in support for commonly used preprocessors", + "author": "Christian Kaisermann ", + "repository": "https://github.com/sveltejs/svelte-preprocess", + "keywords": [ + "svelte", + "preprocess", + "less", + "stylus", + "sass", + "scss", + "pug", + "coffeescript" + ], + "engines": { + "node": ">= 14.10.0" + }, + "volta": { + "node": "14.19.2" + }, + "files": [ + "dist/" + ], + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "lint-staged": { + "*.{ts,js,tsx,jsx}": [ + "eslint --fix", + "prettier --write" + ], + "*.json": [ + "prettier --write" + ] + }, + "devDependencies": { + "@babel/core": "^7.20.5", + "@babel/preset-env": "^7.20.2", + "@commitlint/cli": "^11.0.0", + "@commitlint/config-conventional": "^11.0.0", + "@kiwi/eslint-config": "^2.0.2", + "@kiwi/prettier-config": "^2.0.2", + "@types/babel__core": "^7.1.20", + "@types/jest": "^27.5.2", + "@types/node": "^14.18.34", + "@types/stylus": "^0.48.38", + "autoprefixer": "^9.8.8", + "babel-minify": "^0.5.2", + "coffeescript": "^2.7.0", + "conventional-changelog-cli": "^2.2.2", + "eslint": "^8.29.0", + "husky": "^8.0.2", + "jest": "^29.5.0", + "less": "^3.13.1", + "lint-staged": "^10.5.4", + "postcss": "^8.4.19", + "postcss-easy-import": "^3.0.0", + "postcss-load-config": "^3.1.4", + "prettier": "^2.8.1", + "pug": "^3.0.2", + "sass": "^1.56.2", + "stylus": "^0.55.0", + "sugarss": "^4.0.0", + "svelte": "^3.54.0", + "ts-jest": "^29.0.5", + "typescript": "^5.0.2" + }, + "dependencies": { + "@types/pug": "^2.0.6", + "detect-indent": "^6.1.0", + "magic-string": "^0.27.0", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0", + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + }, + "scripts": { + "prebuild": "node scripts.js rmrf ./dist", + "build": "tsc --build tsconfig.build.json", + "dev": "pnpm build -w", + "test": "jest", + "lint": "eslint --ext js,ts .", + "format": "prettier --write \"**/*.{ts,js,json}\"", + "postinstall": "echo \"[svelte-preprocess] Don't forget to install the preprocessors packages that will be used: sass, stylus, less, postcss & postcss-load-config, coffeescript, pug, etc...\"", + "version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1 && git add CHANGELOG.md", + "patch": "npm version patch -m 'chore(release): %s'", + "minor": "npm version minor -m 'chore(release): %s'", + "major": "npm version major -m 'chore(release): %s'" + } +} \ No newline at end of file diff --git a/node_modules/svelte/compiler.cjs b/node_modules/svelte/compiler.cjs index 1f00ec3..7225293 100644 --- a/node_modules/svelte/compiler.cjs +++ b/node_modules/svelte/compiler.cjs @@ -15558,7 +15558,7 @@ var compiler_warnings = { a11y_click_events_have_key_events: { code: 'a11y-click-events-have-key-events', message: - 'A11y: visible, non-interactive elements with an on:click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as