diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index a47f165..e6ac0ac 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -32,3 +32,38 @@ jobs: run: pnpm install --frozen-lockfile - name: Run tests run: pnpm test --coverage + + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Setup pnpm + uses: pnpm/action-setup@v6 + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Build + run: pnpm build + - name: Upload build artifact + uses: actions/upload-artifact@v7 + with: + name: dist + path: dist + + webext-linter: + name: Webext Linting + needs: build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: Setup pnpm + uses: pnpm/action-setup@v6 + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Download build artifact + uses: actions/download-artifact@v7 + with: + name: dist + path: dist + - name: Run webext-linter + run: pnpm lint:webext diff --git a/.gitignore b/.gitignore index 4e4b986..3235db9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,12 @@ node_modules dist coverage +# webext-linter caches +.schema-cache +.lib-mozilla-hash-db-cache +.lib-cdn-lookup-cache +.experiments-cache + # scripts and config deploy.sh diff --git a/package.json b/package.json index 48ca5ec..7950a1d 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "format:check": "prettier --check \"src/**/*.{js,vue,css}\" \"test/**/*.js\" vite.config.js vitest.config.js", "test": "vitest run", "test:watch": "vitest", - "test:coverage": "vitest run --coverage" + "test:coverage": "vitest run --coverage", + "lint:webext": "zip -q -r sca-source.zip . -x 'dist/*' -x 'node_modules/*' -x '.git/*' -x '*.sh' -x '*.xpi' -x '*.zip' -x 'coverage/*' -x 'test/*' -x '.schema-cache/*' -x '.lib-mozilla-hash-db-cache/*' -x '.lib-cdn-lookup-cache/*' -x '.experiments-cache/*' && webext-linter dist --sca-root sca-source.zip --checks-skip obfuscated-code" }, "packageManager": "pnpm@11.22.0", "dependencies": { @@ -22,6 +23,7 @@ "vue-i18n": "^11.4.8" }, "devDependencies": { + "@thunderbirdops/webext-linter": "github:thunderbird/webext-linter", "@vitejs/plugin-vue": "^6.0.8", "@vitest/coverage-v8": "^4.1.11", "oxlint": "^1.79.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e1d80b8..81290c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,9 +27,12 @@ importers: specifier: ^11.4.8 version: 11.4.8(vue@3.5.41) devDependencies: + '@thunderbirdops/webext-linter': + specifier: github:thunderbird/webext-linter + version: https://codeload.github.com/thunderbird/webext-linter/tar.gz/fb6bc3f387d99d693a9c15dd618b29de3dd2289d(supports-color@7.2.0) '@vitejs/plugin-vue': specifier: ^6.0.8 - version: 6.0.8(vite@8.2.2)(vue@3.5.41) + version: 6.0.8(vite@8.2.2(yaml@2.9.0))(vue@3.5.41) '@vitest/coverage-v8': specifier: ^4.1.11 version: 4.1.11(vitest@4.1.11) @@ -41,34 +44,140 @@ importers: version: 3.9.6 vite: specifier: ^8.2.2 - version: 8.2.2 + version: 8.2.2(yaml@2.9.0) vitest: specifier: ^4.1.11 - version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2) + version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(yaml@2.9.0)) packages: + '@anthropic-ai/sdk@0.110.0': + resolution: {integrity: sha512-hOP4bNYXDFHDxxiEgzlILXrxZIYCDnhe8sry0RDRKD/QnsEpvZcQpablCdm9X/WuD/YgOiSIkkqsL1mLLlTqJw==} + hasBin: true + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@babel/code-frame@8.0.0': + resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/generator@8.0.0': + resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-globals@8.0.0': + resolution: {integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@8.0.0': + resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.4': + resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/parser@7.29.8': resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@8.0.4': + resolution: {integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==} + engines: {node: ^22.18.0 || >=24.11.0} + hasBin: true + + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + engines: {node: '>=6.9.0'} + + '@babel/template@8.0.0': + resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/traverse@8.0.4': + resolution: {integrity: sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/types@7.29.8': resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} + '@babel/types@8.0.4': + resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==} + engines: {node: ^22.18.0 || >=24.11.0} + '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} + '@cacheable/memory@2.2.0': + resolution: {integrity: sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==} + + '@cacheable/utils@2.5.0': + resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/config-helpers@0.7.0': + resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/plugin-kit@0.7.3': + resolution: {integrity: sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + '@intlify/core-base@11.4.8': resolution: {integrity: sha512-A+Q7SKm5oEcy1E/cghqd7n/St4XjTqLhiiyDuieNcMrJcrHlkY5n0jp7Q9dD3txvVHzvsmBVV5M9wD5/s1zfzw==} engines: {node: '>= 22'} @@ -85,6 +194,17 @@ packages: resolution: {integrity: sha512-XbRgrv+XEuvDr7UCY55oibVrh+o4u+A0VB6nSL0F5Z8LcZxE/8j573LYG6bCrOigIcHdGpSNI7Rh5UpC5/B/eg==} engines: {node: '>= 22'} + '@javascript-obfuscator/escodegen@2.4.2': + resolution: {integrity: sha512-3N7EUdYxuldwvtOtZIlAxNwPW1qTUFwWt3PxNkik6hB1uSSXLXj9JMlSyUbTCXK3Osjn0Nu0s/aa4mbvkGouXQ==} + engines: {node: '>=6.0'} + + '@javascript-obfuscator/estraverse@5.4.0': + resolution: {integrity: sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==} + engines: {node: '>=4.0'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -95,6 +215,15 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@keyv/bigmap@1.3.1': + resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} + engines: {node: '>= 18'} + peerDependencies: + keyv: ^5.6.0 + + '@keyv/serialize@1.1.1': + resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} + '@kurkle/color@0.3.4': resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==} @@ -322,18 +451,36 @@ packages: '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@stablelib/base64@1.0.1': + resolution: {integrity: sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==} + '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@thunderbirdops/webext-linter@https://codeload.github.com/thunderbird/webext-linter/tar.gz/fb6bc3f387d99d693a9c15dd618b29de3dd2289d': + resolution: {gitHosted: true, integrity: sha512-/louu9lWGjQzp4iUaoIiQ9yv8uB0i+s/3PkXcTXVwoRC++huhWGMNGm/rwnlz48QntKV5AxdBwRHer1ZZ3DoZA==, tarball: https://codeload.github.com/thunderbird/webext-linter/tar.gz/fb6bc3f387d99d693a9c15dd618b29de3dd2289d} + version: 1.9.0 + engines: {node: '>=20'} + hasBin: true + '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@vitejs/plugin-vue@6.0.8': resolution: {integrity: sha512-0ZjgOg7oO6farnNGup7yvoM/YXZV84OZxHAwtflItNa/6zzQyVb5LNxyea3FEKEX2XlagIKzrlH7wwxkKgtiew==} engines: {node: ^20.19.0 || >=22.12.0} @@ -409,6 +556,26 @@ packages: '@vue/shared@3.5.41': resolution: {integrity: sha512-IOnwSCma8j+9xJT6b8H0dEYidC80NsYmNMlZxRsukYcSoGaDBohog5hDxzeUXdFeGWFA++vWvxqOmrr96VlqMA==} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.18.0: + resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} + engines: {node: '>=0.4.0'} + hasBin: true + + adm-zip@0.5.18: + resolution: {integrity: sha512-ufJnssQGbxzLNS1Ho9bCtX4rQKCCvoVuDLHoJyc3F9dOGDB4BkWs2Ci0kv53lqocAEQ/Cbi+I2XCsNYGqVYqng==} + engines: {node: '>=12.0'} + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -416,6 +583,17 @@ packages: ast-v8-to-istanbul@1.0.5: resolution: {integrity: sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} + + cacheable@2.5.0: + resolution: {integrity: sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==} + chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} @@ -435,15 +613,34 @@ packages: peerDependencies: chart.js: '>=3.0.0' + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} date-fns@4.4.0: resolution: {integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -452,19 +649,89 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} + entities@8.1.0: + resolution: {integrity: sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==} + engines: {node: '>=20.19.0'} + es-module-lexer@2.3.2: resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.10.0: + resolution: {integrity: sha512-NPXn6r5zl4uET1DAVPaOwzX3rut4c0wcmw3dWJAfOsTM5+TogXo0DDjz8pwm/hL8cyVNpHqeK4JpN0NjnyFFNw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + expect-type@1.4.0: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-sha256@1.3.0: + resolution: {integrity: sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==} + + fast-uri@3.1.7: + resolution: {integrity: sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -474,18 +741,70 @@ packages: picomatch: optional: true + file-entry-cache@11.1.5: + resolution: {integrity: sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flast@3.2.0: + resolution: {integrity: sha512-ONKlYE2oK7ye/v+9pH28eZLrcjCzWtBBE6sta6xws8woIyY8Coos257mlyWZs/ACVRcPWFRah58EKLoSVMQGhw==} + + flat-cache@6.1.23: + resolution: {integrity: sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==} + + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + + franc-min@6.2.0: + resolution: {integrity: sha512-1uDIEUSlUZgvJa2AKYR/dmJC66v/PvGQ9mWfI9nOr/kPpMFyvswK0gPXOwpYJYiYD008PpHLkGfG58SPjQJFxw==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + hashery@1.5.1: + resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} + engines: {node: '>=20'} + + hookified@1.15.1: + resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} + + hookified@2.2.0: + resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -501,6 +820,43 @@ packages: js-tokens@10.0.0: resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-schema-to-ts@3.1.1: + resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} + engines: {node: '>=16'} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + keyv@5.6.0: + resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} + + levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + lightningcss-android-arm64@1.33.0: resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==} engines: {node: '>= 12.0.0'} @@ -575,6 +931,10 @@ packages: resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==} engines: {node: '>= 12.0.0'} + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -585,15 +945,60 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + n-gram@2.0.2: + resolution: {integrity: sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==} + nanoid@3.3.18: resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + obfuscation-detector@3.1.1: + resolution: {integrity: sha512-cBSxvLTC+m0BBhhSzAyQW1Hfq81QWHuf4lzcMcKsEIlseP+7FY+Zj/wsoCJIOOOdNAWMGPzC73708xj+bzdLgw==} + hasBin: true + obug@2.1.4: resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} engines: {node: '>=12.20.0'} + openai@6.49.0: + resolution: {integrity: sha512-aYCc0C6L864eR6WSYIwQGyXriw/nIyZx0ObvhzOEVuk0zoBDpynjSbrionWI7q65B5H8jJX0DXR9snEzM6bfPg==} + peerDependencies: + '@aws-sdk/credential-provider-node': '>=3.972.0 <4' + '@smithy/hash-node': '>=4.3.0 <5' + '@smithy/signature-v4': '>=5.4.0 <6' + ws: ^8.18.0 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@aws-sdk/credential-provider-node': + optional: true + '@smithy/hash-node': + optional: true + '@smithy/signature-v4': + optional: true + ws: + optional: true + zod: + optional: true + + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + oxlint@1.79.0: resolution: {integrity: sha512-hVJ9hq9m2unPS+Of4eJJgCPdIeCC+3DHEUX3tkmrPJr3OK2hz7PhXwgC+ZP71ZcYu8cCDEtQrqLxWNvxBppBVg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -607,6 +1012,25 @@ packages: vite-plus: optional: true + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -617,15 +1041,38 @@ packages: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.26: resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==} engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + prettier@3.9.6: resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} engines: {node: '>=14'} hasBin: true + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qified@0.10.1: + resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} + engines: {node: '>=20'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + rolldown@1.2.5: resolution: {integrity: sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -636,6 +1083,14 @@ packages: engines: {node: '>=10'} hasBin: true + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -643,9 +1098,16 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + standardwebhooks@1.1.1: + resolution: {integrity: sha512-bCbX9ZEyFkWPsRz7Bl3NuQUJohmwGSev/yhr7vhaGPlc4AfIrspIRa6cPTBuI1ItmrTDJ4d/S2hCsfe4+vQGnQ==} + std-env@4.2.0: resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} @@ -668,6 +1130,23 @@ packages: resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==} engines: {node: '>=14.0.0'} + trigram-utils@2.0.1: + resolution: {integrity: sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ==} + + ts-algebra@2.0.0: + resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + vite@8.2.2: resolution: {integrity: sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -766,28 +1245,156 @@ packages: typescript: optional: true + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + snapshots: + '@anthropic-ai/sdk@0.110.0': + dependencies: + json-schema-to-ts: 3.1.1 + standardwebhooks: 1.1.1 + + '@babel/code-frame@8.0.0': + dependencies: + '@babel/helper-validator-identifier': 8.0.4 + js-tokens: 10.0.0 + + '@babel/generator@8.0.0': + dependencies: + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 + jsesc: 3.1.0 + + '@babel/helper-globals@8.0.0': {} + '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-string-parser@8.0.0': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-identifier@8.0.4': {} + '@babel/parser@7.29.8': dependencies: '@babel/types': 7.29.8 + '@babel/parser@8.0.4': + dependencies: + '@babel/types': 8.0.4 + + '@babel/runtime@7.29.7': {} + + '@babel/template@8.0.0': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + + '@babel/traverse@8.0.4': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-globals': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/template': 8.0.0 + '@babel/types': 8.0.4 + obug: 2.1.4 + '@babel/types@7.29.8': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 + '@babel/types@8.0.4': + dependencies: + '@babel/helper-string-parser': 8.0.0 + '@babel/helper-validator-identifier': 8.0.4 + '@bcoe/v8-coverage@1.0.2': {} + '@cacheable/memory@2.2.0': + dependencies: + '@cacheable/utils': 2.5.0 + '@keyv/bigmap': 1.3.1(keyv@5.6.0) + hookified: 1.15.1 + keyv: 5.6.0 + + '@cacheable/utils@2.5.0': + dependencies: + hashery: 1.5.1 + keyv: 5.6.0 + + '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(supports-color@7.2.0))': + dependencies: + eslint: 10.10.0(supports-color@7.2.0) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.23.5(supports-color@7.2.0)': + dependencies: + '@eslint/object-schema': 3.0.5 + debug: 4.4.3(supports-color@7.2.0) + minimatch: 10.2.6 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.7.0': + dependencies: + '@eslint/core': 1.2.1 + + '@eslint/core@1.2.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/object-schema@3.0.5': {} + + '@eslint/plugin-kit@0.7.3': + dependencies: + '@eslint/core': 1.2.1 + levn: 0.4.1 + + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + '@intlify/core-base@11.4.8': dependencies: '@intlify/devtools-types': 11.4.8 @@ -806,6 +1413,22 @@ snapshots: '@intlify/shared@11.4.8': {} + '@javascript-obfuscator/escodegen@2.4.2': + dependencies: + '@javascript-obfuscator/estraverse': 5.4.0 + esprima: 4.0.1 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + + '@javascript-obfuscator/estraverse@5.4.0': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/sourcemap-codec@1.5.5': {} @@ -815,6 +1438,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@keyv/bigmap@1.3.1(keyv@5.6.0)': + dependencies: + hashery: 1.5.1 + hookified: 1.15.1 + keyv: 5.6.0 + + '@keyv/serialize@1.1.1': {} + '@kurkle/color@0.3.4': {} '@oxc-project/types@0.146.0': {} @@ -923,8 +1554,37 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} + '@stablelib/base64@1.0.1': {} + '@standard-schema/spec@1.1.0': {} + '@thunderbirdops/webext-linter@https://codeload.github.com/thunderbird/webext-linter/tar.gz/fb6bc3f387d99d693a9c15dd618b29de3dd2289d(supports-color@7.2.0)': + dependencies: + '@anthropic-ai/sdk': 0.110.0 + '@babel/parser': 8.0.4 + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + adm-zip: 0.5.18 + ajv: 8.20.0 + eslint: 10.10.0(supports-color@7.2.0) + franc-min: 6.2.0 + json5: 2.2.3 + jsonc-parser: 3.3.1 + obfuscation-detector: 3.1.1 + openai: 6.49.0 + parse5: 8.0.1 + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + yaml: 2.9.0 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - '@smithy/hash-node' + - '@smithy/signature-v4' + - jiti + - supports-color + - ws + - zod + '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -932,12 +1592,18 @@ snapshots: '@types/deep-eql@4.0.2': {} + '@types/esrecurse@4.3.1': {} + '@types/estree@1.0.9': {} - '@vitejs/plugin-vue@6.0.8(vite@8.2.2)(vue@3.5.41)': + '@types/jsesc@2.5.1': {} + + '@types/json-schema@7.0.15': {} + + '@vitejs/plugin-vue@6.0.8(vite@8.2.2(yaml@2.9.0))(vue@3.5.41)': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.2.2 + vite: 8.2.2(yaml@2.9.0) vue: 3.5.41 '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': @@ -952,7 +1618,7 @@ snapshots: obug: 2.1.4 std-env: 4.2.0 tinyrainbow: 3.1.1 - vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2) + vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(yaml@2.9.0)) '@vitest/expect@4.1.11': dependencies: @@ -963,13 +1629,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.11(vite@8.2.2)': + '@vitest/mocker@4.1.11(vite@8.2.2(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.11 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.2 + vite: 8.2.2(yaml@2.9.0) '@vitest/pretty-format@4.1.11': dependencies: @@ -1051,6 +1717,28 @@ snapshots: '@vue/shared@3.5.41': {} + acorn-jsx@5.3.2(acorn@8.18.0): + dependencies: + acorn: 8.18.0 + + acorn@8.18.0: {} + + adm-zip@0.5.18: {} + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.7 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + assertion-error@2.0.1: {} ast-v8-to-istanbul@1.0.5: @@ -1059,6 +1747,20 @@ snapshots: estree-walker: 3.0.3 js-tokens: 10.0.0 + balanced-match@4.0.4: {} + + brace-expansion@5.0.9: + dependencies: + balanced-match: 4.0.4 + + cacheable@2.5.0: + dependencies: + '@cacheable/memory': 2.2.0 + '@cacheable/utils': 2.5.0 + hookified: 1.15.1 + keyv: 5.6.0 + qified: 0.10.1 + chai@6.2.2: {} chart.js@4.5.1: @@ -1074,37 +1776,184 @@ snapshots: dependencies: chart.js: 4.5.1 + collapse-white-space@2.1.0: {} + convert-source-map@2.0.0: {} + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + csstype@3.2.3: {} date-fns@4.4.0: {} + debug@4.4.3(supports-color@7.2.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 7.2.0 + + deep-is@0.1.4: {} + detect-libc@2.1.2: {} entities@7.0.1: {} + entities@8.1.0: {} + es-module-lexer@2.3.2: {} + escape-string-regexp@4.0.0: {} + + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.9 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@10.10.0(supports-color@7.2.0): + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(supports-color@7.2.0)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5(supports-color@7.2.0) + '@eslint/config-helpers': 0.7.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.3 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@7.2.0) + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 11.1.5 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.6 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@11.2.0: + dependencies: + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + eslint-visitor-keys: 5.0.1 + + esprima@4.0.1: {} + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + estree-walker@2.0.2: {} estree-walker@3.0.3: dependencies: '@types/estree': 1.0.9 + esutils@2.0.3: {} + expect-type@1.4.0: {} + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-sha256@1.3.0: {} + + fast-uri@3.1.7: {} + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: picomatch: 4.0.5 + file-entry-cache@11.1.5: + dependencies: + flat-cache: 6.1.23 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flast@3.2.0: + dependencies: + escodegen: '@javascript-obfuscator/escodegen@2.4.2' + eslint-scope: 9.1.2 + espree: 11.2.0 + + flat-cache@6.1.23: + dependencies: + cacheable: 2.5.0 + flatted: 3.4.4 + hookified: 1.15.1 + + flatted@3.4.4: {} + + franc-min@6.2.0: + dependencies: + trigram-utils: 2.0.1 + fsevents@2.3.3: optional: true + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + has-flag@4.0.0: {} + hashery@1.5.1: + dependencies: + hookified: 1.15.1 + + hookified@1.15.1: {} + + hookified@2.2.0: {} + html-escaper@2.0.2: {} + ignore@5.3.2: {} + + imurmurhash@0.1.4: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + isexe@2.0.0: {} + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -1120,6 +1969,37 @@ snapshots: js-tokens@10.0.0: {} + jsesc@3.1.0: {} + + json-schema-to-ts@3.1.1: + dependencies: + '@babel/runtime': 7.29.7 + ts-algebra: 2.0.0 + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonc-parser@3.3.1: {} + + keyv@5.6.0: + dependencies: + '@keyv/serialize': 1.1.1 + + levn@0.3.0: + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + lightningcss-android-arm64@1.33.0: optional: true @@ -1169,6 +2049,10 @@ snapshots: lightningcss-win32-arm64-msvc: 1.33.0 lightningcss-win32-x64-msvc: 1.33.0 + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -1183,10 +2067,44 @@ snapshots: dependencies: semver: 7.8.5 + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.9 + + ms@2.1.3: {} + + n-gram@2.0.2: {} + nanoid@3.3.18: {} + natural-compare@1.4.0: {} + + obfuscation-detector@3.1.1: + dependencies: + flast: 3.2.0 + obug@2.1.4: {} + openai@6.49.0: {} + + optionator@0.8.3: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + oxlint@1.79.0: optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.79.0 @@ -1209,20 +2127,50 @@ snapshots: '@oxlint/binding-win32-ia32-msvc': 1.79.0 '@oxlint/binding-win32-x64-msvc': 1.79.0 + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parse5@8.0.1: + dependencies: + entities: 8.1.0 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + pathe@2.0.3: {} picocolors@1.1.1: {} picomatch@4.0.5: {} + postcss-value-parser@4.2.0: {} + postcss@8.5.26: dependencies: nanoid: 3.3.18 picocolors: 1.1.1 source-map-js: 1.2.1 + prelude-ls@1.1.2: {} + + prelude-ls@1.2.1: {} + prettier@3.9.6: {} + punycode@2.3.1: {} + + qified@0.10.1: + dependencies: + hookified: 2.2.0 + + require-from-string@2.0.2: {} + rolldown@1.2.5: dependencies: '@oxc-project/types': 0.146.0 @@ -1246,12 +2194,26 @@ snapshots: semver@7.8.5: {} + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + siginfo@2.0.0: {} source-map-js@1.2.1: {} + source-map@0.6.1: + optional: true + stackback@0.0.2: {} + standardwebhooks@1.1.1: + dependencies: + '@stablelib/base64': 1.0.1 + fast-sha256: 1.3.0 + std-env@4.2.0: {} supports-color@7.2.0: @@ -1269,7 +2231,26 @@ snapshots: tinyrainbow@3.1.1: {} - vite@8.2.2: + trigram-utils@2.0.1: + dependencies: + collapse-white-space: 2.1.0 + n-gram: 2.0.2 + + ts-algebra@2.0.0: {} + + type-check@0.3.2: + dependencies: + prelude-ls: 1.1.2 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + vite@8.2.2(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -1278,11 +2259,12 @@ snapshots: tinyglobby: 0.2.17 optionalDependencies: fsevents: 2.3.3 + yaml: 2.9.0 - vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2): + vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.2(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.11 - '@vitest/mocker': 4.1.11(vite@8.2.2) + '@vitest/mocker': 4.1.11(vite@8.2.2(yaml@2.9.0)) '@vitest/pretty-format': 4.1.11 '@vitest/runner': 4.1.11 '@vitest/snapshot': 4.1.11 @@ -1299,7 +2281,7 @@ snapshots: tinyexec: 1.3.0 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.2.2 + vite: 8.2.2(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@vitest/coverage-v8': 4.1.11(vitest@4.1.11) @@ -1322,7 +2304,17 @@ snapshots: '@vue/server-renderer': 3.5.41 '@vue/shared': 3.5.41 + which@2.0.2: + dependencies: + isexe: 2.0.0 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + + word-wrap@1.2.5: {} + + yaml@2.9.0: {} + + yocto-queue@0.1.0: {} diff --git a/public/_locales/ca/messages.json b/public/_locales/ca/messages.json index 2584d02..23eba2c 100644 --- a/public/_locales/ca/messages.json +++ b/public/_locales/ca/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contacte", "dataCollected": "Dades recollides fa {0}", - "disclaimer": "ThirdStats no reclama la correcció de les dades mostrades.
En cas de possibles problemes, creeu un informe d'error.", + "disclaimer": "ThirdStats no reclama la correcció de les dades mostrades.", + "disclaimerCta": "En cas de possibles problemes, {link}.", + "disclaimerLink": "creeu un informe d'error", "folder": "Carpeta", "junkMails": "Correus brossa", "junkScore": "Puntuació no desitjada de {0}", @@ -253,4 +255,4 @@ }, "withinYears": "en {0} anys" } -} \ No newline at end of file +} diff --git a/public/_locales/cs/messages.json b/public/_locales/cs/messages.json index b7fe2f2..e210ba3 100644 --- a/public/_locales/cs/messages.json +++ b/public/_locales/cs/messages.json @@ -201,7 +201,9 @@ }, "contact": "Kontakt", "dataCollected": "Data získaná před {0}", - "disclaimer": "ThirdStats neposkytuje žádný nárok na správnost zobrazených dat.
V případě možných problémů prosím vytvořte hlášení o chybě.", + "disclaimer": "ThirdStats neposkytuje žádný nárok na správnost zobrazených dat.", + "disclaimerCta": "V případě možných problémů prosím {link}.", + "disclaimerLink": "vytvořte hlášení o chybě", "folder": "Složka", "junkMails": "Nevyžádaná pošta", "junkScore": "Nevyžádané skóre {0}", @@ -253,4 +255,4 @@ }, "withinYears": "během {0} let" } -} \ No newline at end of file +} diff --git a/public/_locales/de/messages.json b/public/_locales/de/messages.json index b0fa578..1868a75 100644 --- a/public/_locales/de/messages.json +++ b/public/_locales/de/messages.json @@ -201,7 +201,9 @@ }, "contact": "Kontakt", "dataCollected": "Daten vor {0} abgerufen", - "disclaimer": "ThirdStats erhebt keinen Anspruch auf Korrektheit der angezeigten Daten.
Bei möglichen Problemen bitte einen Fehlerbericht erstellen.", + "disclaimer": "ThirdStats erhebt keinen Anspruch auf Korrektheit der angezeigten Daten.", + "disclaimerCta": "Bei möglichen Problemen bitte {link}.", + "disclaimerLink": "einen Fehlerbericht erstellen", "folder": "Ordner", "junkMails": "Junk-Mails", "junkScore": "Junk-Score von {0}", @@ -253,4 +255,4 @@ }, "withinYears": "in {0} Jahren" } -} \ No newline at end of file +} diff --git a/public/_locales/en/messages.json b/public/_locales/en/messages.json index a5ad234..e5ba9f6 100644 --- a/public/_locales/en/messages.json +++ b/public/_locales/en/messages.json @@ -197,7 +197,9 @@ }, "contact": "Contact", "dataCollected": "Data collected {0} ago", - "disclaimer": "ThirdStats makes no claim to the correctness of the data displayed.
In case of possible problems, please create a bug report.", + "disclaimer": "ThirdStats makes no claim to the correctness of the data displayed.", + "disclaimerCta": "In case of possible problems, please {link}.", + "disclaimerLink": "create a bug report", "folder": "Folder", "junkMails": "Junk mails", "junkScore": "Junk score of {0}", diff --git a/public/_locales/es/messages.json b/public/_locales/es/messages.json index c24e98e..cb982f0 100644 --- a/public/_locales/es/messages.json +++ b/public/_locales/es/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contacto", "dataCollected": "Datos recogidos hace {0}", - "disclaimer": "ThirdStats no afirma la exactitud de los datos mostrados.
En caso de posibles problemas, cree un informe de errores.", + "disclaimer": "ThirdStats no afirma la exactitud de los datos mostrados.", + "disclaimerCta": "En caso de posibles problemas, {link}.", + "disclaimerLink": "cree un informe de errores", "folder": "Carpeta", "junkMails": "Correos basura", "junkScore": "Puntuación basura de {0}", @@ -253,4 +255,4 @@ }, "withinYears": "en {0} años" } -} \ No newline at end of file +} diff --git a/public/_locales/fi/messages.json b/public/_locales/fi/messages.json index 1ad2a4e..73301eb 100644 --- a/public/_locales/fi/messages.json +++ b/public/_locales/fi/messages.json @@ -201,7 +201,9 @@ }, "contact": "Ota yhteyttä", "dataCollected": "Kerätyt tiedot {0} sitten", - "disclaimer": "ThirdStats ei esitä väitteitä näyttämiensä tietojen tarkkuudesta.
Mahdollisten ongelmien ilmetessä voit luoda vikailmoituksen.", + "disclaimer": "ThirdStats ei esitä väitteitä näyttämiensä tietojen tarkkuudesta.", + "disclaimerCta": "Mahdollisten ongelmien ilmetessä voit {link}.", + "disclaimerLink": "luoda vikailmoituksen", "folder": "Kansio", "junkMails": "Roskapostiviestit", "junkScore": "Roskapostin pistemäärä on {0}", @@ -253,4 +255,4 @@ }, "withinYears": "{0} vuoden kuluessa" } -} \ No newline at end of file +} diff --git a/public/_locales/fr/messages.json b/public/_locales/fr/messages.json index ce67c5f..d147bf1 100644 --- a/public/_locales/fr/messages.json +++ b/public/_locales/fr/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contact", "dataCollected": "Données collectées il y a {0}", - "disclaimer": "ThirdStats ne prétend pas à l'exactitude des données affichées.
En cas de problèmes éventuels, veuillez créer un rapport de bug.", + "disclaimer": "ThirdStats ne prétend pas à l'exactitude des données affichées.", + "disclaimerCta": "En cas de problèmes éventuels, veuillez {link}.", + "disclaimerLink": "créer un rapport de bug", "folder": "Dossier", "junkMails": "Courriers indésirables", "junkScore": "Score indésirable de {0}", @@ -253,4 +255,4 @@ }, "withinYears": "en {0} ans" } -} \ No newline at end of file +} diff --git a/public/_locales/gl/messages.json b/public/_locales/gl/messages.json index f5ad863..d119b6d 100644 --- a/public/_locales/gl/messages.json +++ b/public/_locales/gl/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contacto", "dataCollected": "Datos recompilados hai {0}", - "disclaimer": "ThirdStats non reclama a exactitude dos datos amosados.
En caso de posibles problemas, crea un informe de erros.", + "disclaimer": "ThirdStats non reclama a exactitude dos datos amosados.", + "disclaimerCta": "En caso de posibles problemas, {link}.", + "disclaimerLink": "crea un informe de erros", "folder": "Cartafol", "junkMails": "Correo lixo", "junkScore": "Puntuación de lixo de {0}", @@ -253,4 +255,4 @@ }, "withinYears": "nos últimos {0} anos" } -} \ No newline at end of file +} diff --git a/public/_locales/hi/messages.json b/public/_locales/hi/messages.json index b865b92..e5dac07 100644 --- a/public/_locales/hi/messages.json +++ b/public/_locales/hi/messages.json @@ -201,7 +201,9 @@ }, "contact": "संपर्क", "dataCollected": "{0} पहले एकत्र किया गया डेटा", - "disclaimer": "थर्डस्टैट्स प्रदर्शित डेटा की शुद्धता का कोई दावा नहीं करता है।
संभावित समस्याओं के मामले में, कृपया बग रिपोर्ट बनाएं।", + "disclaimer": "थर्डस्टैट्स प्रदर्शित डेटा की शुद्धता का कोई दावा नहीं करता है।", + "disclaimerCta": "संभावित समस्याओं के मामले में, कृपया {link}।", + "disclaimerLink": "बग रिपोर्ट बनाएं", "folder": "फ़ोल्डर", "junkMails": "जंक मेल", "junkScore": "{0} का जंक स्कोर", @@ -253,4 +255,4 @@ }, "withinYears": "{0} साल के भीतर" } -} \ No newline at end of file +} diff --git a/public/_locales/hu/messages.json b/public/_locales/hu/messages.json index 10f06c9..8d6b9cc 100644 --- a/public/_locales/hu/messages.json +++ b/public/_locales/hu/messages.json @@ -201,7 +201,9 @@ }, "contact": "Névjegy", "dataCollected": "{0} ezelőtt gyűjtött adatok", - "disclaimer": "A ThirdStats nem hivatkozik a megjelenített adatok helyességére.
Lehetséges problémák esetén kérjük hozzon létre hibajelentést.", + "disclaimer": "A ThirdStats nem hivatkozik a megjelenített adatok helyességére.", + "disclaimerCta": "Lehetséges problémák esetén kérjük {link}.", + "disclaimerLink": "hozzon létre hibajelentést", "folder": "Mappa", "junkMails": "Levélszemetek", "junkScore": "{0} levélszemét pontszám", @@ -253,4 +255,4 @@ }, "withinYears": "{0} éven belül" } -} \ No newline at end of file +} diff --git a/public/_locales/id/messages.json b/public/_locales/id/messages.json index e78aa69..162d1b5 100644 --- a/public/_locales/id/messages.json +++ b/public/_locales/id/messages.json @@ -201,7 +201,9 @@ }, "contact": "Kontak", "dataCollected": "Data dikumpulkan {0} lalu", - "disclaimer": "ThirdStats tidak membuat klaim atas kebenaran data yang ditampilkan.
Jika terjadi masalah, silakan buat laporan bug.", + "disclaimer": "ThirdStats tidak membuat klaim atas kebenaran data yang ditampilkan.", + "disclaimerCta": "Jika terjadi masalah, silakan {link}.", + "disclaimerLink": "buat laporan bug", "folder": "Map", "junkMails": "Surat sampah", "junkScore": "Skor sampah {0}", @@ -253,4 +255,4 @@ }, "withinYears": "dalam {0} tahun" } -} \ No newline at end of file +} diff --git a/public/_locales/it/messages.json b/public/_locales/it/messages.json index a75eba4..9183794 100644 --- a/public/_locales/it/messages.json +++ b/public/_locales/it/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contatto", "dataCollected": "Dati raccolti {0} fa", - "disclaimer": "ThirdStats non rivendica la correttezza dei dati visualizzati.
In caso di possibili problemi, crea una segnalazione di bug.", + "disclaimer": "ThirdStats non rivendica la correttezza dei dati visualizzati.", + "disclaimerCta": "In caso di possibili problemi, {link}.", + "disclaimerLink": "crea una segnalazione di bug", "folder": "Cartella", "junkMails": "Posta indesiderata", "junkScore": "Punteggio spazzatura di {0}", @@ -253,4 +255,4 @@ }, "withinYears": "in {0} anni" } -} \ No newline at end of file +} diff --git a/public/_locales/ja/messages.json b/public/_locales/ja/messages.json index b290c28..31b378a 100644 --- a/public/_locales/ja/messages.json +++ b/public/_locales/ja/messages.json @@ -201,7 +201,9 @@ }, "contact": "コンタクト", "dataCollected": "{0}前に収集されたデータ", - "disclaimer": "ThirdStatsは、表示されたデータの正確性を主張しません。
問題が発生する可能性がある場合は、バグレポートを作成してください。", + "disclaimer": "ThirdStatsは、表示されたデータの正確性を主張しません。", + "disclaimerCta": "問題が発生する可能性がある場合は、{link}", + "disclaimerLink": "バグレポートを作成してください。", "folder": "フォルダー", "junkMails": "ジャンクメール", "junkScore": "{0}のジャンクスコア", @@ -253,4 +255,4 @@ }, "withinYears": "過去{0}年間" } -} \ No newline at end of file +} diff --git a/public/_locales/nl/messages.json b/public/_locales/nl/messages.json index 8a58570..6bc038d 100644 --- a/public/_locales/nl/messages.json +++ b/public/_locales/nl/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contactpersoon", "dataCollected": "Gegevens verzameld {0} geleden", - "disclaimer": "ThirdStats maakt geen aanspraak op de juistheid van de getoonde gegevens.
In geval van mogelijke problemen, gelieve een bug report aan te maken.", + "disclaimer": "ThirdStats maakt geen aanspraak op de juistheid van de getoonde gegevens.", + "disclaimerCta": "In geval van mogelijke problemen, gelieve {link} aan te maken.", + "disclaimerLink": "een bug report", "folder": "Map", "junkMails": "Ongewenste e-mail", "junkScore": "Rommel score van {0}", @@ -253,4 +255,4 @@ }, "withinYears": "binnen {0} jaar" } -} \ No newline at end of file +} diff --git a/public/_locales/pl/messages.json b/public/_locales/pl/messages.json index f2697ab..5f6772d 100644 --- a/public/_locales/pl/messages.json +++ b/public/_locales/pl/messages.json @@ -201,7 +201,9 @@ }, "contact": "Kontakt", "dataCollected": "Dane zebrane {0} temu", - "disclaimer": "ThirdStats nie rości sobie prawa do poprawności wyświetlanych danych.
W przypadku ewentualnych problemów prosimy o zgłaszanie błędów.", + "disclaimer": "ThirdStats nie rości sobie prawa do poprawności wyświetlanych danych.", + "disclaimerCta": "W przypadku ewentualnych problemów prosimy o {link}.", + "disclaimerLink": "zgłaszanie błędów", "folder": "Teczka", "junkMails": "Wiadomości-śmieci", "junkScore": "Wynik śmieci {0}", @@ -253,4 +255,4 @@ }, "withinYears": "z {0} lat" } -} \ No newline at end of file +} diff --git a/public/_locales/pt-BR/messages.json b/public/_locales/pt-BR/messages.json index dcde943..6aa7865 100644 --- a/public/_locales/pt-BR/messages.json +++ b/public/_locales/pt-BR/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contato", "dataCollected": "Dados coletados há {0}", - "disclaimer": "O ThirdStats não garante a exatidão dos dados exibidos.
Em caso de possíveis problemas, por favor, crie um relatório de erros.", + "disclaimer": "O ThirdStats não garante a exatidão dos dados exibidos.", + "disclaimerCta": "Em caso de possíveis problemas, por favor, {link}.", + "disclaimerLink": "crie um relatório de erros", "folder": "Pasta", "junkMails": "Lixo Eletrônico", "junkScore": "Placar de Lixo Eletrônico: {0}", @@ -253,4 +255,4 @@ }, "withinYears": "dentro de {0} anos" } -} \ No newline at end of file +} diff --git a/public/_locales/pt/messages.json b/public/_locales/pt/messages.json index 6877e9c..e0f9938 100644 --- a/public/_locales/pt/messages.json +++ b/public/_locales/pt/messages.json @@ -201,7 +201,9 @@ }, "contact": "Contato", "dataCollected": "Dados coletados há {0}", - "disclaimer": "ThirdStats não garante a exatidão dos dados exibidos.
Em caso de possíveis problemas, crie um relatório de erros .", + "disclaimer": "ThirdStats não garante a exatidão dos dados exibidos.", + "disclaimerCta": "Em caso de possíveis problemas, {link}.", + "disclaimerLink": "crie um relatório de erros", "folder": "Pasta", "junkMails": "Lixo Eletrônico", "junkScore": "Pontuação de lixo de {0}", @@ -253,4 +255,4 @@ }, "withinYears": "Dentro de {0} anos" } -} \ No newline at end of file +} diff --git a/public/_locales/ru/messages.json b/public/_locales/ru/messages.json index 9f1b8ee..b159847 100644 --- a/public/_locales/ru/messages.json +++ b/public/_locales/ru/messages.json @@ -201,7 +201,9 @@ }, "contact": "Контакт", "dataCollected": "Данные посчитаны {0} назад", - "disclaimer": "ThirdStats не гарантирует корректность отображаемых данных.
При обноружении ошибки, пожалуйста сообщите нам.", + "disclaimer": "ThirdStats не гарантирует корректность отображаемых данных.", + "disclaimerCta": "При обноружении ошибки, пожалуйста {link}.", + "disclaimerLink": "сообщите нам", "folder": "Папка", "junkMails": "Спам письма", "junkScore": "Спам оценка {0}", @@ -253,4 +255,4 @@ }, "withinYears": "за {0} лет" } -} \ No newline at end of file +} diff --git a/public/_locales/sk/messages.json b/public/_locales/sk/messages.json index 32120ff..8044d34 100644 --- a/public/_locales/sk/messages.json +++ b/public/_locales/sk/messages.json @@ -201,7 +201,9 @@ }, "contact": "Kontakt", "dataCollected": "Údaje zozbierané pred {0}", - "disclaimer": "ThirdStats si nerobí nárok na správnosť zobrazených údajov.
V prípade možných problémov, prosím vytvorte hlásenie o chybe.", + "disclaimer": "ThirdStats si nerobí nárok na správnosť zobrazených údajov.", + "disclaimerCta": "V prípade možných problémov, prosím {link}.", + "disclaimerLink": "vytvorte hlásenie o chybe", "folder": "Priečinok", "junkMails": "Nevyžiadaná pošta", "junkScore": "Skóre nevyžiadanej pošty {0}", @@ -253,4 +255,4 @@ }, "withinYears": "za {0} rokov" } -} \ No newline at end of file +} diff --git a/public/_locales/sv/messages.json b/public/_locales/sv/messages.json index 88c86ce..b58e1fd 100644 --- a/public/_locales/sv/messages.json +++ b/public/_locales/sv/messages.json @@ -201,7 +201,9 @@ }, "contact": "Kontakt", "dataCollected": "Data samlad {0} sen", - "disclaimer": "ThirdStats gör inget anspråk för korrektheten på de uppgifter som visas.
Vid eventuella problem, skapa en felrapport .", + "disclaimer": "ThirdStats gör inget anspråk för korrektheten på de uppgifter som visas.", + "disclaimerCta": "Vid eventuella problem, {link}.", + "disclaimerLink": "skapa en felrapport", "folder": "Mapp", "junkMails": "Skräppost", "junkScore": "Skräppoäng av {0}", @@ -253,4 +255,4 @@ }, "withinYears": "inom {0} år" } -} \ No newline at end of file +} diff --git a/public/_locales/th/messages.json b/public/_locales/th/messages.json index 279bf90..dc55b3f 100644 --- a/public/_locales/th/messages.json +++ b/public/_locales/th/messages.json @@ -201,7 +201,9 @@ }, "contact": "ติดต่อ", "dataCollected": "ข้อมูลที่เก็บรวบรวม {0} ที่ผ่านมา", - "disclaimer": "ThirdStats ไม่รับรองความถูกต้องของข้อมูลที่แสดง
ในกรณีที่มีปัญหาโปรด สร้างรายงานข้อผิดพลาด", + "disclaimer": "ThirdStats ไม่รับรองความถูกต้องของข้อมูลที่แสดง", + "disclaimerCta": "ในกรณีที่มีปัญหาโปรด {link}", + "disclaimerLink": "สร้างรายงานข้อผิดพลาด", "folder": "โฟลเดอร์", "junkMails": "อีเมลขยะ", "junkScore": "คะแนนขยะ {0}", @@ -253,4 +255,4 @@ }, "withinYears": "ภายใน {0} ปี" } -} \ No newline at end of file +} diff --git a/public/_locales/tr/messages.json b/public/_locales/tr/messages.json index 1c12dc5..211d84d 100644 --- a/public/_locales/tr/messages.json +++ b/public/_locales/tr/messages.json @@ -201,7 +201,9 @@ }, "contact": "Kişi", "dataCollected": "{0} önce toplanan veriler", - "disclaimer": "ThirdStats, görüntülenen verilerin doğruluğu konusunda hiçbir iddiada bulunmaz.
Olası sorunlar olması durumunda, lütfen bir hata raporu oluşturun.", + "disclaimer": "ThirdStats, görüntülenen verilerin doğruluğu konusunda hiçbir iddiada bulunmaz.", + "disclaimerCta": "Olası sorunlar olması durumunda, lütfen {link}.", + "disclaimerLink": "bir hata raporu oluşturun", "folder": "Klasör", "junkMails": "Önemsiz postalar", "junkScore": "Önemsiz puan {0}", @@ -253,4 +255,4 @@ }, "withinYears": "{0} yıl içersinde" } -} \ No newline at end of file +} diff --git a/public/_locales/uk/messages.json b/public/_locales/uk/messages.json index 9044c15..53bc7b5 100644 --- a/public/_locales/uk/messages.json +++ b/public/_locales/uk/messages.json @@ -201,7 +201,9 @@ }, "contact": "Контакт", "dataCollected": "Дані зібрано {0} тому", - "disclaimer": "ThirdStats не гарантує правильність згенерованих даних.
У разі можливих проблем створіть звіт про помилку.", + "disclaimer": "ThirdStats не гарантує правильність згенерованих даних.", + "disclaimerCta": "У разі можливих проблем {link}.", + "disclaimerLink": "створіть звіт про помилку", "folder": "Тека", "junkMails": "Небажані листи", "junkScore": "Оцінка небажаних листів {0}", @@ -253,4 +255,4 @@ }, "withinYears": "протягом {0} років" } -} \ No newline at end of file +} diff --git a/public/_locales/uz/messages.json b/public/_locales/uz/messages.json index eef8b0a..d504b04 100644 --- a/public/_locales/uz/messages.json +++ b/public/_locales/uz/messages.json @@ -201,7 +201,9 @@ }, "contact": "Контакт", "dataCollected": "Тўпланган маълумотлар {0} олдин", - "disclaimer": "ThirdStats кўрсатилган маълумотлар тўғрилигига ҳеч қандай даъво қилади.
Мумкин бўлган муаммолар бўлса, илтимос хато ҳақида ҳисобот яратинг.", + "disclaimer": "ThirdStats кўрсатилган маълумотлар тўғрилигига ҳеч қандай даъво қилади.", + "disclaimerCta": "Мумкин бўлган муаммолар бўлса, илтимос {link}.", + "disclaimerLink": "хато ҳақида ҳисобот яратинг", "folder": "Папка", "junkMails": "Арзимас хабарлар", "junkScore": "Арзимас балл{0}", @@ -253,4 +255,4 @@ }, "withinYears": "{0} йил ичида" } -} \ No newline at end of file +} diff --git a/public/_locales/zh-Hans-CN/messages.json b/public/_locales/zh-Hans-CN/messages.json index b8e68a8..615faaa 100644 --- a/public/_locales/zh-Hans-CN/messages.json +++ b/public/_locales/zh-Hans-CN/messages.json @@ -201,7 +201,9 @@ }, "contact": "联系人", "dataCollected": "数据收集于{0}年前", - "disclaimer": "第三方统计局对所显示的数据的正确性不作要求。
如果可能出现问题,请创建一个错误报告。", + "disclaimer": "第三方统计局对所显示的数据的正确性不作要求。", + "disclaimerCta": "如果可能出现问题,请{link}。", + "disclaimerLink": "创建一个错误报告", "folder": "文件夹", "junkMails": "垃圾邮件", "junkScore": "垃圾分数为{0}。", @@ -253,4 +255,4 @@ }, "withinYears": "{0} 年内" } -} \ No newline at end of file +} diff --git a/public/_locales/zh-Hant-TW/messages.json b/public/_locales/zh-Hant-TW/messages.json index 3239c3b..4454484 100644 --- a/public/_locales/zh-Hant-TW/messages.json +++ b/public/_locales/zh-Hant-TW/messages.json @@ -201,7 +201,9 @@ }, "contact": "分享聯絡人", "dataCollected": "{0}前收集的數據", - "disclaimer": "ThirdStats 不聲明所顯示數據的正確性。
如果可能出現問題,請創建錯誤報告。", + "disclaimer": "ThirdStats 不聲明所顯示數據的正確性。", + "disclaimerCta": "如果可能出現問題,請{link}。", + "disclaimerLink": "創建錯誤報告", "folder": "文件夾", "junkMails": "垃圾郵件", "junkScore": "垃圾分數 {0}", @@ -253,4 +255,4 @@ }, "withinYears": "{0} 年內" } -} \ No newline at end of file +} diff --git a/public/icon-dark.svg b/public/icon-dark.svg deleted file mode 100644 index 5444a6e..0000000 --- a/public/icon-dark.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/icon-light.svg b/public/icon-light.svg deleted file mode 100644 index e156172..0000000 --- a/public/icon-light.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/parts/LiveAge.vue b/src/parts/LiveAge.vue index c96fb9f..6ceec05 100644 --- a/src/parts/LiveAge.vue +++ b/src/parts/LiveAge.vue @@ -1,5 +1,7 @@ - diff --git a/src/sections/LeaderSection.vue b/src/sections/LeaderSection.vue index 8e31158..e06dbbb 100644 --- a/src/sections/LeaderSection.vue +++ b/src/sections/LeaderSection.vue @@ -21,7 +21,7 @@ -
+
{{ t('stats.charts.contactsReceived.empty') }}
-
+
{{ t('stats.charts.contactsSent.empty') }}
-
+
{{ t('stats.charts.contactsJunk.empty') }}
diff --git a/src/sections/TagsSection.vue b/src/sections/TagsSection.vue index e0e34ed..eef8e11 100644 --- a/src/sections/TagsSection.vue +++ b/src/sections/TagsSection.vue @@ -21,7 +21,7 @@ -
+
{{ t('stats.charts.tagsCount.empty') }}