diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 404aa596e..000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - }, - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:solid/typescript", - ], - overrides: [ - { - env: { - node: true, - }, - files: [".eslintrc.{js,cjs}"], - parserOptions: { - sourceType: "script", - }, - }, - ], - parser: "@typescript-eslint/parser", - parserOptions: { - ecmaVersion: "latest", - sourceType: "module", - }, - plugins: ["@typescript-eslint", "solid"], - rules: { - quotes: ["error", "double"], - semi: "warn", - }, -}; diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 000000000..306d0c245 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,45 @@ +{ + "ignorePatterns": ["node_modules/", "dist/"], + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:solid/typescript" + ], + "overrides": [ + { + "env": { + "node": true + }, + "files": [".eslintrc.{js,cjs}"], + "parserOptions": { + "sourceType": "script" + } + } + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": ["@typescript-eslint", "solid"], + "rules": { + "quotes": ["error", "double"], + "semi": "warn", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "ignoreRestSiblings": true + } + ] + } +} diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml new file mode 100644 index 000000000..ebf813ff7 --- /dev/null +++ b/.github/workflows/static_checks.yml @@ -0,0 +1,71 @@ +name: 🔍 Lint / Type Checks + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + setup: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + - run: pnpm i + - uses: actions/cache/save@v4 + with: + path: | + node_modules + ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + + typecheck: + needs: setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + - uses: actions/cache/restore@v4 + with: + path: | + node_modules + ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + - name: Generate virtual modules + run: pnpm sync + - name: TypeScript check + run: pnpm check:types + + lint: + needs: setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "pnpm" + - uses: actions/cache/restore@v4 + with: + path: | + node_modules + ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + - name: ESLint check + run: pnpm check:lint diff --git a/app.config.ts b/app.config.ts index aebf26861..eb6af5d81 100644 --- a/app.config.ts +++ b/app.config.ts @@ -58,6 +58,7 @@ export default defineConfig({ crawlLinks: true, autoSubfolderIndex: false, failOnError: true, + // eslint-disable-next-line no-useless-escape ignore: [/\{\getPath}/, /.*?emojiSvg\(.*/], }, }, @@ -67,7 +68,7 @@ export default defineConfig({ docsData(), vinxiMdx.withImports({})({ define: { - "import.meta.env": `'import.meta.env'`, + "import.meta.env": "'import.meta.env'", }, jsx: true, jsxImportSource: "solid-js", diff --git a/package.json b/package.json index 2f06305ef..47626e398 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,9 @@ "start": "vinxi start", "e2e": "npx playwright test", "build:lunaria": "lunaria build", - "preview:lunaria": "lunaria preview" + "preview:lunaria": "lunaria preview", + "check:lint": "eslint .", + "check:types": "tsc --noEmit" }, "dependencies": { "@kobalte/core": "^0.13.6", @@ -47,17 +49,18 @@ "@orama/crawly": "^0.0.4", "@tailwindcss/typography": "^0.5.15", "@types/node": "^20.16.5", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", + "@typescript-eslint/eslint-plugin": "^8.7.0", + "@typescript-eslint/parser": "^8.7.0", "autoprefixer": "^10.4.20", - "eslint": "^8.57.0", + "eslint": "^8.57.1", "eslint-plugin-solid": "^0.13.2", "prettier": "3.2.5", "rehype-raw": "^7.0.0", "remark-expressive-code": "^0.33.5", "remark-frontmatter": "^5.0.0", "remark-gfm": "^3.0.0", - "tailwindcss": "^3.4.11" + "tailwindcss": "^3.4.11", + "typescript": "^5.6.2" }, "engines": { "node": ">=18", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fecd36d47..39d0f0253 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,7 +28,7 @@ importers: version: 0.14.5(solid-js@1.9.1) '@solidjs/start': specifier: ^1.0.6 - version: 1.0.6(rollup@4.22.2)(solid-js@1.9.1)(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0))(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)) + version: 1.0.6(rollup@4.22.2)(solid-js@1.9.1)(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0))(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)) '@vinxi/plugin-mdx': specifier: ^3.7.2 version: 3.7.2(@mdx-js/mdx@2.3.0) @@ -73,10 +73,10 @@ importers: version: 0.3.0(solid-js@1.9.1) solid-mdx: specifier: ^0.0.7 - version: 0.0.7(solid-js@1.9.1)(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)) + version: 0.0.7(solid-js@1.9.1)(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)) vinxi: specifier: ^0.4.3 - version: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0) + version: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0) zod: specifier: ^3.23.8 version: 3.23.8 @@ -97,16 +97,16 @@ importers: specifier: ^20.16.5 version: 20.16.5 '@typescript-eslint/eslint-plugin': - specifier: ^7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + specifier: ^8.7.0 + version: 8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) '@typescript-eslint/parser': - specifier: ^7.18.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.6.2) + specifier: ^8.7.0 + version: 8.7.0(eslint@8.57.1)(typescript@5.6.2) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) eslint: - specifier: ^8.57.0 + specifier: ^8.57.1 version: 8.57.1 eslint-plugin-solid: specifier: ^0.13.2 @@ -129,6 +129,9 @@ importers: tailwindcss: specifier: ^3.4.11 version: 3.4.12 + typescript: + specifier: ^5.6.2 + version: 5.6.2 packages: @@ -1004,81 +1007,161 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.22.5': + resolution: {integrity: sha512-SU5cvamg0Eyu/F+kLeMXS7GoahL+OoizlclVFX3l5Ql6yNlywJJ0OuqTzUx0v+aHhPHEB/56CT06GQrRrGNYww==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.22.2': resolution: {integrity: sha512-I+B1v0a4iqdS9DvYt1RJZ3W+Oh9EVWjbY6gp79aAYipIbxSLEoQtFQlZEnUuwhDXCqMxJ3hluxKAdPD+GiluFQ==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.22.5': + resolution: {integrity: sha512-S4pit5BP6E5R5C8S6tgU/drvgjtYW76FBuG6+ibG3tMvlD1h9LHVF9KmlmaUBQ8Obou7hEyS+0w+IR/VtxwNMQ==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.22.2': resolution: {integrity: sha512-BTHO7rR+LC67OP7I8N8GvdvnQqzFujJYWo7qCQ8fGdQcb8Gn6EQY+K1P+daQLnDCuWKbZ+gHAQZuKiQkXkqIYg==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.22.5': + resolution: {integrity: sha512-250ZGg4ipTL0TGvLlfACkIxS9+KLtIbn7BCZjsZj88zSg2Lvu3Xdw6dhAhfe/FjjXPVNCtcSp+WZjVsD3a/Zlw==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.22.2': resolution: {integrity: sha512-1esGwDNFe2lov4I6GsEeYaAMHwkqk0IbuGH7gXGdBmd/EP9QddJJvTtTF/jv+7R8ZTYPqwcdLpMTxK8ytP6k6Q==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.22.5': + resolution: {integrity: sha512-D8brJEFg5D+QxFcW6jYANu+Rr9SlKtTenmsX5hOSzNYVrK5oLAEMTUgKWYJP+wdKyCdeSwnapLsn+OVRFycuQg==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-linux-arm-gnueabihf@4.22.2': resolution: {integrity: sha512-GBHuY07x96OTEM3OQLNaUSUwrOhdMea/LDmlFHi/HMonrgF6jcFrrFFwJhhe84XtA1oK/Qh4yFS+VMREf6dobg==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.22.5': + resolution: {integrity: sha512-PNqXYmdNFyWNg0ma5LdY8wP+eQfdvyaBAojAXgO7/gs0Q/6TQJVXAXe8gwW9URjbS0YAammur0fynYGiWsKlXw==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.22.2': resolution: {integrity: sha512-Dbfa9Sc1G1lWxop0gNguXOfGhaXQWAGhZUcqA0Vs6CnJq8JW/YOw/KvyGtQFmz4yDr0H4v9X248SM7bizYj4yQ==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.22.5': + resolution: {integrity: sha512-kSSCZOKz3HqlrEuwKd9TYv7vxPYD77vHSUvM2y0YaTGnFc8AdI5TTQRrM1yIp3tXCKrSL9A7JLoILjtad5t8pQ==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.22.2': resolution: {integrity: sha512-Z1YpgBvFYhZIyBW5BoopwSg+t7yqEhs5HCei4JbsaXnhz/eZehT18DaXl957aaE9QK7TRGFryCAtStZywcQe1A==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.22.5': + resolution: {integrity: sha512-oTXQeJHRbOnwRnRffb6bmqmUugz0glXaPyspp4gbQOPVApdpRrY/j7KP3lr7M8kTfQTyrBUzFjj5EuHAhqH4/w==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.22.2': resolution: {integrity: sha512-66Zszr7i/JaQ0u/lefcfaAw16wh3oT72vSqubIMQqWzOg85bGCPhoeykG/cC5uvMzH80DQa2L539IqKht6twVA==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.22.5': + resolution: {integrity: sha512-qnOTIIs6tIGFKCHdhYitgC2XQ2X25InIbZFor5wh+mALH84qnFHvc+vmWUpyX97B0hNvwNUL4B+MB8vJvH65Fw==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.22.2': resolution: {integrity: sha512-HpJCMnlMTfEhwo19bajvdraQMcAq3FX08QDx3OfQgb+414xZhKNf3jNvLFYKbbDSGBBrQh5yNwWZrdK0g0pokg==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': + resolution: {integrity: sha512-TMYu+DUdNlgBXING13rHSfUc3Ky5nLPbWs4bFnT+R6Vu3OvXkTkixvvBKk8uO4MT5Ab6lC3U7x8S8El2q5o56w==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.22.2': resolution: {integrity: sha512-/egzQzbOSRef2vYCINKITGrlwkzP7uXRnL+xU2j75kDVp3iPdcF0TIlfwTRF8woBZllhk3QaxNOEj2Ogh3t9hg==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.22.5': + resolution: {integrity: sha512-PTQq1Kz22ZRvuhr3uURH+U/Q/a0pbxJoICGSprNLAoBEkyD3Sh9qP5I0Asn0y0wejXQBbsVMRZRxlbGFD9OK4A==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.22.2': resolution: {integrity: sha512-qgYbOEbrPfEkH/OnUJd1/q4s89FvNJQIUldx8X2F/UM5sEbtkqZpf2s0yly2jSCKr1zUUOY1hnTP2J1WOzMAdA==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.22.5': + resolution: {integrity: sha512-bR5nCojtpuMss6TDEmf/jnBnzlo+6n1UhgwqUvRoe4VIotC7FG1IKkyJbwsT7JDsF2jxR+NTnuOwiGv0hLyDoQ==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.22.2': resolution: {integrity: sha512-a0lkvNhFLhf+w7A95XeBqGQaG0KfS3hPFJnz1uraSdUe/XImkp/Psq0Ca0/UdD5IEAGoENVmnYrzSC9Y2a2uKQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.22.5': + resolution: {integrity: sha512-N0jPPhHjGShcB9/XXZQWuWBKZQnC1F36Ce3sDqWpujsGjDz/CQtOL9LgTrJ+rJC8MJeesMWrMWVLKKNR/tMOCA==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.22.2': resolution: {integrity: sha512-sSWBVZgzwtsuG9Dxi9kjYOUu/wKW+jrbzj4Cclabqnfkot8Z3VEHcIgyenA3lLn/Fu11uDviWjhctulkhEO60g==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.22.5': + resolution: {integrity: sha512-uBa2e28ohzNNwjr6Uxm4XyaA1M/8aTgfF2T7UIlElLaeXkgpmIJ2EitVNQxjO9xLLLy60YqAgKn/AqSpCUkE9g==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.22.2': resolution: {integrity: sha512-t/YgCbZ638R/r7IKb9yCM6nAek1RUvyNdfU0SHMDLOf6GFe/VG1wdiUAsxTWHKqjyzkRGg897ZfCpdo1bsCSsA==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.22.5': + resolution: {integrity: sha512-RXT8S1HP8AFN/Kr3tg4fuYrNxZ/pZf1HemC5Tsddc6HzgGnJm0+Lh5rAHJkDuW3StI0ynNXukidROMXYl6ew8w==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.22.2': resolution: {integrity: sha512-kTmX5uGs3WYOA+gYDgI6ITkZng9SP71FEMoHNkn+cnmb9Zuyyay8pf0oO5twtTwSjNGy1jlaWooTIr+Dw4tIbw==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.22.5': + resolution: {integrity: sha512-ElTYOh50InL8kzyUD6XsnPit7jYCKrphmddKAe1/Ytt74apOxDq5YEcbsiKs0fR3vff3jEneMM+3I7jbqaMyBg==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.22.2': resolution: {integrity: sha512-Yy8So+SoRz8I3NS4Bjh91BICPOSVgdompTIPYTByUqU66AXSIOgmW3Lv1ke3NORPqxdF+RdrZET+8vYai6f4aA==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.22.5': + resolution: {integrity: sha512-+lvL/4mQxSV8MukpkKyyvfwhH266COcWlXE/1qxwN08ajovta3459zrjLghYMgDerlzNwLAcFpvU+WWE5y6nAQ==} + cpu: [x64] + os: [win32] + '@shikijs/core@1.18.0': resolution: {integrity: sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==} @@ -1266,22 +1349,22 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.7.0': + resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.7.0': + resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: @@ -1291,15 +1374,14 @@ packages: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.7.0': + resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@8.7.0': + resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: @@ -1309,9 +1391,9 @@ packages: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.7.0': + resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@6.21.0': resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} @@ -1322,9 +1404,9 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.7.0': + resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1337,19 +1419,19 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.7.0': + resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 '@typescript-eslint/visitor-keys@6.21.0': resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.7.0': + resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -3520,6 +3602,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.22.5: + resolution: {integrity: sha512-WoinX7GeQOFMGznEcWA1WrTQCd/tpEbMkc3nuMs9BT0CPjMdSjPMTVClwWd4pgSQwJdP65SK9mTCNvItlr5o7w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -3820,6 +3907,11 @@ packages: engines: {node: '>=10'} hasBin: true + terser@5.34.0: + resolution: {integrity: sha512-y5NUX+U9HhVsK/zihZwoq4r9dICLyV2jXGOriDAVOeKhq3LKVjgJbGO90FisozXLlJfvjHqgckGmJFBb9KYoWQ==} + engines: {node: '>=10'} + hasBin: true + text-decoder@1.2.0: resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} @@ -4160,6 +4252,37 @@ packages: terser: optional: true + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vitefu@0.2.5: resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: @@ -5020,51 +5143,99 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.22.2': optional: true + '@rollup/rollup-android-arm-eabi@4.22.5': + optional: true + '@rollup/rollup-android-arm64@4.22.2': optional: true + '@rollup/rollup-android-arm64@4.22.5': + optional: true + '@rollup/rollup-darwin-arm64@4.22.2': optional: true + '@rollup/rollup-darwin-arm64@4.22.5': + optional: true + '@rollup/rollup-darwin-x64@4.22.2': optional: true + '@rollup/rollup-darwin-x64@4.22.5': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.22.2': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.22.5': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.22.2': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.22.5': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.22.2': optional: true + '@rollup/rollup-linux-arm64-gnu@4.22.5': + optional: true + '@rollup/rollup-linux-arm64-musl@4.22.2': optional: true + '@rollup/rollup-linux-arm64-musl@4.22.5': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.22.2': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.22.5': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.22.2': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.22.5': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.22.2': optional: true + '@rollup/rollup-linux-s390x-gnu@4.22.5': + optional: true + '@rollup/rollup-linux-x64-gnu@4.22.2': optional: true + '@rollup/rollup-linux-x64-gnu@4.22.5': + optional: true + '@rollup/rollup-linux-x64-musl@4.22.2': optional: true + '@rollup/rollup-linux-x64-musl@4.22.5': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.22.2': optional: true + '@rollup/rollup-win32-arm64-msvc@4.22.5': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.22.2': optional: true + '@rollup/rollup-win32-ia32-msvc@4.22.5': + optional: true + '@rollup/rollup-win32-x64-msvc@4.22.2': optional: true + '@rollup/rollup-win32-x64-msvc@4.22.5': + optional: true + '@shikijs/core@1.18.0': dependencies: '@shikijs/engine-javascript': 1.18.0 @@ -5165,11 +5336,11 @@ snapshots: dependencies: solid-js: 1.9.1 - '@solidjs/start@1.0.6(rollup@4.22.2)(solid-js@1.9.1)(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0))(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0))': + '@solidjs/start@1.0.6(rollup@4.22.2)(solid-js@1.9.1)(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0))(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0))': dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0)) - '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0)) - '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0)) + '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0)) + '@vinxi/server-components': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0)) + '@vinxi/server-functions': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0)) defu: 6.1.4 error-stack-parser: 2.1.4 glob: 10.4.5 @@ -5180,8 +5351,8 @@ snapshots: shikiji: 0.9.19 source-map-js: 1.2.1 terracotta: 1.0.6(solid-js@1.9.1) - vite-plugin-inspect: 0.7.42(rollup@4.22.2)(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)) - vite-plugin-solid: 2.10.2(solid-js@1.9.1)(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)) + vite-plugin-inspect: 0.7.42(rollup@4.22.2)(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)) + vite-plugin-solid: 2.10.2(solid-js@1.9.1)(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)) transitivePeerDependencies: - '@nuxt/kit' - '@testing-library/jest-dom' @@ -5301,14 +5472,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 @@ -5319,12 +5490,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.7 eslint: 8.57.1 optionalDependencies: @@ -5337,26 +5508,26 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/scope-manager@7.18.0': + '@typescript-eslint/scope-manager@8.7.0': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.7.0(eslint@8.57.1)(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) debug: 4.3.7 - eslint: 8.57.1 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: + - eslint - supports-color '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/types@7.18.0': {} + '@typescript-eslint/types@8.7.0': {} '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.2)': dependencies: @@ -5373,12 +5544,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 debug: 4.3.7 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -5402,12 +5573,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/utils@8.7.0(eslint@8.57.1)(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) eslint: 8.57.1 transitivePeerDependencies: - supports-color @@ -5418,9 +5589,9 @@ snapshots: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.18.0': + '@typescript-eslint/visitor-keys@8.7.0': dependencies: - '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/types': 8.7.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -5465,7 +5636,7 @@ snapshots: transitivePeerDependencies: - uWebSockets.js - '@vinxi/plugin-directives@0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0))': + '@vinxi/plugin-directives@0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0))': dependencies: '@babel/parser': 7.25.6 acorn: 8.12.1 @@ -5476,7 +5647,7 @@ snapshots: magicast: 0.2.11 recast: 0.23.9 tslib: 2.7.0 - vinxi: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0) + vinxi: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0) '@vinxi/plugin-mdx@3.7.2(@mdx-js/mdx@2.3.0)': dependencies: @@ -5487,27 +5658,27 @@ snapshots: unified: 9.2.2 vfile: 5.3.7 - '@vinxi/server-components@0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0))': + '@vinxi/server-components@0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0))': dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0)) + '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0)) acorn: 8.12.1 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.12.1) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 - vinxi: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0) + vinxi: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0) - '@vinxi/server-functions@0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0))': + '@vinxi/server-functions@0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0))': dependencies: - '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0)) + '@vinxi/plugin-directives': 0.4.3(vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0)) acorn: 8.12.1 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.12.1) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 - vinxi: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0) + vinxi: 0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0) '@vue/compiler-core@3.5.7': dependencies: @@ -8337,6 +8508,28 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.22.2 fsevents: 2.3.3 + rollup@4.22.5: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.22.5 + '@rollup/rollup-android-arm64': 4.22.5 + '@rollup/rollup-darwin-arm64': 4.22.5 + '@rollup/rollup-darwin-x64': 4.22.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.22.5 + '@rollup/rollup-linux-arm-musleabihf': 4.22.5 + '@rollup/rollup-linux-arm64-gnu': 4.22.5 + '@rollup/rollup-linux-arm64-musl': 4.22.5 + '@rollup/rollup-linux-powerpc64le-gnu': 4.22.5 + '@rollup/rollup-linux-riscv64-gnu': 4.22.5 + '@rollup/rollup-linux-s390x-gnu': 4.22.5 + '@rollup/rollup-linux-x64-gnu': 4.22.5 + '@rollup/rollup-linux-x64-musl': 4.22.5 + '@rollup/rollup-win32-arm64-msvc': 4.22.5 + '@rollup/rollup-win32-ia32-msvc': 4.22.5 + '@rollup/rollup-win32-x64-msvc': 4.22.5 + fsevents: 2.3.3 + run-applescript@5.0.0: dependencies: execa: 5.1.1 @@ -8484,10 +8677,10 @@ snapshots: '@corvu/utils': 0.4.1(solid-js@1.9.1) solid-js: 1.9.1 - solid-mdx@0.0.7(solid-js@1.9.1)(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)): + solid-mdx@0.0.7(solid-js@1.9.1)(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)): dependencies: solid-js: 1.9.1 - vite: 5.4.7(@types/node@20.16.5)(terser@5.33.0) + vite: 5.4.8(@types/node@20.16.5)(terser@5.34.0) solid-presence@0.1.8(solid-js@1.9.1): dependencies: @@ -8674,6 +8867,14 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + terser@5.34.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + optional: true + text-decoder@1.2.0: dependencies: b4a: 1.6.6 @@ -8987,7 +9188,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.33.0): + vinxi@0.4.3(@types/node@20.16.5)(ioredis@5.4.1)(terser@5.34.0): dependencies: '@babel/core': 7.25.2 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) @@ -9021,7 +9222,7 @@ snapshots: unctx: 2.3.1 unenv: 1.10.0 unstorage: 1.12.0(ioredis@5.4.1) - vite: 5.4.7(@types/node@20.16.5)(terser@5.33.0) + vite: 5.4.7(@types/node@20.16.5)(terser@5.34.0) zod: 3.23.8 transitivePeerDependencies: - '@azure/app-configuration' @@ -9056,7 +9257,7 @@ snapshots: - webpack-sources - xml2js - vite-plugin-inspect@0.7.42(rollup@4.22.2)(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)): + vite-plugin-inspect@0.7.42(rollup@4.22.2)(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.22.2) @@ -9066,12 +9267,12 @@ snapshots: open: 9.1.0 picocolors: 1.1.0 sirv: 2.0.4 - vite: 5.4.7(@types/node@20.16.5)(terser@5.33.0) + vite: 5.4.8(@types/node@20.16.5)(terser@5.34.0) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.10.2(solid-js@1.9.1)(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)): + vite-plugin-solid@2.10.2(solid-js@1.9.1)(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)): dependencies: '@babel/core': 7.25.2 '@types/babel__core': 7.20.5 @@ -9079,12 +9280,12 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.1 solid-refresh: 0.6.3(solid-js@1.9.1) - vite: 5.4.7(@types/node@20.16.5)(terser@5.33.0) - vitefu: 0.2.5(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)) + vite: 5.4.8(@types/node@20.16.5)(terser@5.34.0) + vitefu: 0.2.5(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)) transitivePeerDependencies: - supports-color - vite@5.4.7(@types/node@20.16.5)(terser@5.33.0): + vite@5.4.7(@types/node@20.16.5)(terser@5.34.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 @@ -9092,11 +9293,21 @@ snapshots: optionalDependencies: '@types/node': 20.16.5 fsevents: 2.3.3 - terser: 5.33.0 + terser: 5.34.0 + + vite@5.4.8(@types/node@20.16.5)(terser@5.34.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.22.5 + optionalDependencies: + '@types/node': 20.16.5 + fsevents: 2.3.3 + terser: 5.34.0 - vitefu@0.2.5(vite@5.4.7(@types/node@20.16.5)(terser@5.33.0)): + vitefu@0.2.5(vite@5.4.8(@types/node@20.16.5)(terser@5.34.0)): optionalDependencies: - vite: 5.4.7(@types/node@20.16.5)(terser@5.33.0) + vite: 5.4.8(@types/node@20.16.5)(terser@5.34.0) vue@3.5.7(typescript@5.6.2): dependencies: diff --git a/src/app.tsx b/src/app.tsx index 4b13b63d8..7ff676c24 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -20,8 +20,8 @@ export default function App() { createEffect(() => { const html = document.documentElement; html.classList.remove("light", "dark"); - html.classList.add(ctx.selectedTheme().value); - html.dataset.theme = ctx.selectedTheme().theme; + html.classList.add(ctx.selectedTheme()!.value); + html.dataset.theme = ctx.selectedTheme()!.theme; }); return ( diff --git a/src/data/get-nav.tsx b/src/data/get-nav.tsx index 1d3da9681..4e02c7a16 100644 --- a/src/data/get-nav.tsx +++ b/src/data/get-nav.tsx @@ -1,4 +1,4 @@ -import matter, { GrayMatterFile } from "gray-matter"; +import { GrayMatterFile } from "gray-matter"; export type Section = { type: "section"; diff --git a/src/data/page-state.tsx b/src/data/page-state.tsx index 815f0daa8..6fe360db1 100644 --- a/src/data/page-state.tsx +++ b/src/data/page-state.tsx @@ -1,17 +1,17 @@ -import { createEffect, createContext, ParentProps, useContext } from "solid-js"; -import { SetStoreFunction, StoreSetter, createStore } from "solid-js/store"; +import { createContext, ParentProps, useContext } from "solid-js"; +import { SetStoreFunction, createStore } from "solid-js/store"; -type ChildSection = { - text: string | undefined; +export type ChildSection = { + text?: string | null; id: string; level: number; }; -type ParentSection = { - text: string | undefined; +export type ParentSection = { + text?: string | null; id: string; level: number; - children: ChildSection[] | []; + children: ChildSection[]; }; type PageStateStore = { diff --git a/src/data/theme-provider.tsx b/src/data/theme-provider.tsx index e8f5c801d..929de6475 100644 --- a/src/data/theme-provider.tsx +++ b/src/data/theme-provider.tsx @@ -36,8 +36,8 @@ function getCookie(name: string, cookieString: string) { const ThemeCtx = createContext(); const getUserTheme = () => { if (isServer) { - const e = getRequestEvent(); - return getCookie("theme", e?.request.headers.get("cookie")!); + const e = getRequestEvent()!; + return getCookie("theme", e.request.headers.get("cookie")!); } return getCookie("theme", document.cookie); }; @@ -70,7 +70,7 @@ export const ThemeProvider = (props: ParentProps) => { }); createEffect(() => { if (selectedTheme()?.value) - document.cookie = `theme=${selectedTheme().value};path=/;max-age=${60 * 60 * 24 * 365}`; + document.cookie = `theme=${selectedTheme()!.value};path=/;max-age=${60 * 60 * 24 * 365}`; }); return ( , document.getElementById("app")); +mount(() => , document.getElementById("app")!); diff --git a/src/i18n/dictionaries/index.ts b/src/i18n/dictionaries/index.ts index 49c9014e3..479b664f0 100644 --- a/src/i18n/dictionaries/index.ts +++ b/src/i18n/dictionaries/index.ts @@ -1,5 +1,5 @@ import english from "./en/ui"; -import ptbr from "./pt-br/ui"; +// import ptbr from "./pt-br/ui"; export const dictionaries = { default: english, diff --git a/src/i18n/helpers.ts b/src/i18n/helpers.ts index e56e5571a..990e1ef00 100644 --- a/src/i18n/helpers.ts +++ b/src/i18n/helpers.ts @@ -1,8 +1,7 @@ -import { useLocation, useMatch } from "@solidjs/router"; +import { useLocation } from "@solidjs/router"; import { SUPPORTED_LOCALES } from "./config"; import { useCurrentRouteMetaData } from "~/utils/route-metadata-helper"; - export function getLocaleFromPathname(pathname: string) { return pathname.split("/")[1]; } @@ -10,9 +9,6 @@ export function getLocaleFromPathname(pathname: string) { export function isValidLocale( locale: string ): locale is (typeof SUPPORTED_LOCALES)[number] { - // TS is being annoying. - // we are actually narrowing string here. - // @ts-ignore return SUPPORTED_LOCALES.includes(locale); } @@ -22,7 +18,6 @@ export function getValidLocaleFromPathname(pathname: string) { return isValidLocale(locale) ? locale : null; } - export function getEntryFileName() { const pathname = useLocation().pathname; const currentRouteMetaData = useCurrentRouteMetaData(); diff --git a/src/i18n/translator.ts b/src/i18n/translator.ts index 01f3880a4..f31a0d193 100644 --- a/src/i18n/translator.ts +++ b/src/i18n/translator.ts @@ -4,11 +4,11 @@ import { SUPPORTED_LOCALES } from "./config"; export function createTranslator( locale: (typeof SUPPORTED_LOCALES)[number] | null ) { + // type overlap will only be 100% when translations are done + // so we're fine with `dictionaries[locale][key]` being implicit `any` + // @ts-expect-error: expected any here const dictionary = dictionaries[locale || "default"]; return (key: keyof (typeof dictionaries)["default"]) => { - // type overlap will only be 100% when translations are done - // so we're fine with `dictionaries[locale][key]` being implicit `any` - // @ts-ignore return dictionary[key] || dictionaries["default"][key]; }; } diff --git a/src/ui/eraser-link/index.tsx b/src/ui/eraser-link/index.tsx index e79eebe1d..95198b9d8 100644 --- a/src/ui/eraser-link/index.tsx +++ b/src/ui/eraser-link/index.tsx @@ -1,4 +1,5 @@ -import { ParentProps, createSignal } from "solid-js"; +/* eslint-disable solid/reactivity */ +import { ParentProps, Show, createSignal } from "solid-js"; import "./eraser-link.css"; const ERASER_TRACKING_PARAMS = ""; @@ -28,15 +29,14 @@ const getEraserLinkData = (href: string): EraserLinkData | null => { }; }; -const EraserLink = ({ - linkData, - children, -}: ParentProps<{ - linkData: EraserLinkData; -}>) => { - const workspaceUrl = `https://app.eraser.io/workspace/${linkData.workspaceId}`; - const elementParams = linkData.elementsId - ? `elements=${linkData.elementsId}` +const EraserLink = ( + props: ParentProps<{ + linkData: EraserLinkData; + }> +) => { + const workspaceUrl = `https://app.eraser.io/workspace/${props.linkData.workspaceId}`; + const elementParams = props.linkData.elementsId + ? `elements=${props.linkData.elementsId}` : ""; const linkUrl = elementParams @@ -46,22 +46,38 @@ const EraserLink = ({ const [isLoaded, setIsLoaded] = createSignal(false); // if there are no children or this was a right click-copy as markdown embed. - if ( - children === undefined || - (Array.isArray(children) && children[0] === "View on Eraser") - ) { - const imageUrl = elementParams - ? `${workspaceUrl}/preview?${elementParams}&type=embed` - : `${workspaceUrl}/preview`; - - return ( + return ( + + {props.children} + + } + > - {""} setIsLoaded(true)} /> + {""} setIsLoaded(true)} + /> {isLoaded() ? (