diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10cda26..147ba91 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,6 +39,9 @@ jobs: - name: Check formatting run: pnpm run format --check + - name: Lint + run: pnpm run lint + - name: Build Prettier Plugin run: pnpm run build diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 0000000..fe6e24f --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://raw.githubusercontent.com/oxc-project/oxc/main/npm/oxlint/configuration_schema.json", + "rules": { + "typescript/unbound-method": "off" + } +} diff --git a/knip.json b/knip.json new file mode 100644 index 0000000..9b608a8 --- /dev/null +++ b/knip.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://unpkg.com/knip@5/schema.json", + "entry": ["scripts/*.js"], + "project": ["src/**/*.ts", "scripts/**/*.js", "tests/**/*.ts"], + "ignore": ["src/**/*.d.ts", "tests/fixtures/**"], + "ignoreDependencies": [ + "@ianvs/prettier-plugin-sort-imports", + "@prettier/plugin-hermes", + "@prettier/plugin-pug", + "@shopify/prettier-plugin-liquid", + "@trivago/prettier-plugin-sort-imports", + "@zackad/prettier-plugin-twig", + "prettier-plugin-astro", + "prettier-plugin-css-order", + "prettier-plugin-jsdoc", + "prettier-plugin-marko", + "prettier-plugin-multiline-arrays", + "prettier-plugin-organize-attributes", + "prettier-plugin-organize-imports", + "prettier-plugin-sort-imports", + "prettier-plugin-svelte", + "import-sort-style-module", + "marko", + "postcss", + "postcss-import" + ], + "rules": { + "exports": "off", + "types": "off" + } +} diff --git a/package.json b/package.json index d426cd8..c962dda 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "test": "vitest", "prepublishOnly": "npm run build && node scripts/copy-licenses.js", "format": "prettier \"src/**/*.ts\" \"scripts/**/*.js\" \"tests/*.ts\" --write --print-width 100 --single-quote --no-semi", + "lint": "knip && oxlint --type-aware src tests/*.ts", "release-channel": "node ./scripts/release-channel.js", "release-notes": "node ./scripts/release-notes.js" }, @@ -43,7 +44,6 @@ "@babel/types": "^7.28.2", "@ianvs/prettier-plugin-sort-imports": "^4.7.0", "@marko/compiler": "^5.39.49", - "@microsoft/api-extractor": "^7.52.10", "@prettier/plugin-hermes": "^0.1.2", "@prettier/plugin-oxc": "^0.1.2", "@prettier/plugin-pug": "^3.4.2", @@ -51,19 +51,19 @@ "@trivago/prettier-plugin-sort-imports": "^6.0.0", "@types/node": "^24.3.0", "@zackad/prettier-plugin-twig": "^0.16.0", - "ast-types": "^0.14.2", "clear-module": "^4.1.2", - "cpy-cli": "^6.0.0", "dedent": "^1.6.0", "enhanced-resolve": "^5.18.3", "escalade": "^3.2.0", "fast-glob": "^3.3.3", "import-sort-style-module": "^6.0.0", "jiti": "^2.6.0", - "jsesc": "^3.1.0", + "knip": "^5.83.0", "license-checker": "^25.0.1", "line-column": "^1.0.2", "marko": "^5.37.46", + "oxlint": "^1.43.0", + "oxlint-tsgolint": "^0.11.4", "postcss": "^8.5.6", "postcss-import": "^16.1.1", "prettier": "^3.7.3", @@ -77,9 +77,6 @@ "prettier-plugin-sort-imports": "^1.8.8", "prettier-plugin-svelte": "^3.4.0", "pug-lexer": "^5.0.1", - "recast": "0.20.5", - "resolve-from": "^5.0.0", - "rimraf": "^6.0.1", "svelte": "^5.38.2", "tailwindcss-v3": "npm:tailwindcss@^3.4.18", "tailwindcss-v4": "npm:tailwindcss@^4.1.14", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f66aecf..1fb6a2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: '@marko/compiler': specifier: ^5.39.49 version: 5.39.49 - '@microsoft/api-extractor': - specifier: ^7.52.10 - version: 7.56.0(@types/node@24.10.9) '@prettier/plugin-hermes': specifier: ^0.1.2 version: 0.1.3 @@ -41,15 +38,9 @@ importers: '@zackad/prettier-plugin-twig': specifier: ^0.16.0 version: 0.16.2 - ast-types: - specifier: ^0.14.2 - version: 0.14.2 clear-module: specifier: ^4.1.2 version: 4.1.2 - cpy-cli: - specifier: ^6.0.0 - version: 6.0.0 dedent: specifier: ^1.6.0 version: 1.7.1 @@ -68,9 +59,9 @@ importers: jiti: specifier: ^2.6.0 version: 2.6.1 - jsesc: - specifier: ^3.1.0 - version: 3.1.0 + knip: + specifier: ^5.83.0 + version: 5.83.0(@types/node@24.10.9)(typescript@5.8.2) license-checker: specifier: ^25.0.1 version: 25.0.1 @@ -80,6 +71,12 @@ importers: marko: specifier: ^5.37.46 version: 5.38.18 + oxlint: + specifier: ^1.43.0 + version: 1.43.0(oxlint-tsgolint@0.11.4) + oxlint-tsgolint: + specifier: ^0.11.4 + version: 0.11.4 postcss: specifier: ^8.5.6 version: 8.5.6 @@ -119,15 +116,6 @@ importers: pug-lexer: specifier: ^5.0.1 version: 5.0.1 - recast: - specifier: 0.20.5 - version: 0.20.5 - resolve-from: - specifier: ^5.0.0 - version: 5.0.0 - rimraf: - specifier: ^6.0.1 - version: 6.1.2 svelte: specifier: ^5.38.2 version: 5.49.1 @@ -139,7 +127,7 @@ importers: version: tailwindcss@4.1.18 tsdown: specifier: ^0.20.1 - version: 0.20.1(typescript@5.8.2) + version: 0.20.1(oxc-resolver@11.17.0)(typescript@5.8.2) vitest: specifier: ^3.2.4 version: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.9)(jiti@2.6.1) @@ -494,14 +482,6 @@ packages: prettier-plugin-ember-template-tag: optional: true - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -530,19 +510,6 @@ packages: resolution: {integrity: sha512-kowHXrmKuRd1vyMzawEeiHquUdHOv1tXT8z9AqvtIBnCKdWKqn2fd90zU8f2bbItqSj1d44Ek5JWPlifHomzJw==} engines: {node: 18 || 20 || >=22} - '@microsoft/api-extractor-model@7.32.2': - resolution: {integrity: sha512-Ussc25rAalc+4JJs9HNQE7TuO9y6jpYQX9nWD1DhqUzYPBr3Lr7O9intf+ZY8kD5HnIqeIRJX7ccCT0QyBy2Ww==} - - '@microsoft/api-extractor@7.56.0': - resolution: {integrity: sha512-H0V69QG5jIb9Ayx35NVBv2lOgFSS3q+Eab2oyGEy0POL3ovYPST+rCNPbwYoczOZXNG8IKjWUmmAMxmDTsXlQA==} - hasBin: true - - '@microsoft/tsdoc-config@0.18.0': - resolution: {integrity: sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==} - - '@microsoft/tsdoc@0.16.0': - resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} - '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} @@ -659,6 +626,188 @@ packages: '@oxc-project/types@0.99.0': resolution: {integrity: sha512-LLDEhXB7g1m5J+woRSgfKsFPS3LhR9xRhTeIoEBm5WrkwMxn6eZ0Ld0c0K5eHB57ChZX6I3uSmmLjZ8pcjlRcw==} + '@oxc-resolver/binding-android-arm-eabi@11.17.0': + resolution: {integrity: sha512-kVnY21v0GyZ/+LG6EIO48wK3mE79BUuakHUYLIqobO/Qqq4mJsjuYXMSn3JtLcKZpN1HDVit4UHpGJHef1lrlw==} + cpu: [arm] + os: [android] + + '@oxc-resolver/binding-android-arm64@11.17.0': + resolution: {integrity: sha512-Pf8e3XcsK9a8RHInoAtEcrwf2vp7V9bSturyUUYxw9syW6E7cGi7z9+6ADXxm+8KAevVfLA7pfBg8NXTvz/HOw==} + cpu: [arm64] + os: [android] + + '@oxc-resolver/binding-darwin-arm64@11.17.0': + resolution: {integrity: sha512-lVSgKt3biecofXVr8e1hnfX0IYMd4A6VCxmvOmHsFt5Zbmt0lkO4S2ap2bvQwYDYh5ghUNamC7M2L8K6vishhQ==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@11.17.0': + resolution: {integrity: sha512-+/raxVJE1bo7R4fA9Yp0wm3slaCOofTEeUzM01YqEGcRDLHB92WRGjRhagMG2wGlvqFuSiTp81DwSbBVo/g6AQ==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-freebsd-x64@11.17.0': + resolution: {integrity: sha512-x9Ks56n+n8h0TLhzA6sJXa2tGh3uvMGpBppg6PWf8oF0s5S/3p/J6k1vJJ9lIUtTmenfCQEGKnFokpRP4fLTLg==} + cpu: [x64] + os: [freebsd] + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.17.0': + resolution: {integrity: sha512-Wf3w07Ow9kXVJrS0zmsaFHKOGhXKXE8j1tNyy+qIYDsQWQ4UQZVx5SjlDTcqBnFerlp3Z3Is0RjmVzgoLG3qkA==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm-musleabihf@11.17.0': + resolution: {integrity: sha512-N0OKA1al1gQ5Gm7Fui1RWlXaHRNZlwMoBLn3TVtSXX+WbnlZoVyDqqOqFL8+pVEHhhxEA2LR8kmM0JO6FAk6dg==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@11.17.0': + resolution: {integrity: sha512-wdcQ7Niad9JpjZIGEeqKJnTvczVunqlZ/C06QzR5zOQNeLVRScQ9S5IesKWUAPsJQDizV+teQX53nTK+Z5Iy+g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-arm64-musl@11.17.0': + resolution: {integrity: sha512-65B2/t39HQN5AEhkLsC+9yBD1iRUkKOIhfmJEJ7g6wQ9kylra7JRmNmALFjbsj0VJsoSQkpM8K07kUZuNJ9Kxw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxc-resolver/binding-linux-ppc64-gnu@11.17.0': + resolution: {integrity: sha512-kExgm3TLK21dNMmcH+xiYGbc6BUWvT03PUZ2aYn8mUzGPeeORklBhg3iYcaBI3ZQHB25412X1Z6LLYNjt4aIaA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-riscv64-gnu@11.17.0': + resolution: {integrity: sha512-1utUJC714/ydykZQE8c7QhpEyM4SaslMfRXxN9G61KYazr6ndt85LaubK3EZCSD50vVEfF4PVwFysCSO7LN9uA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-riscv64-musl@11.17.0': + resolution: {integrity: sha512-mayiYOl3LMmtO2CLn4I5lhanfxEo0LAqlT/EQyFbu1ZN3RS+Xa7Q3JEM0wBpVIyfO/pqFrjvC5LXw/mHNDEL7A==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxc-resolver/binding-linux-s390x-gnu@11.17.0': + resolution: {integrity: sha512-Ow/yI+CrUHxIIhn/Y1sP/xoRKbCC3x9O1giKr3G/pjMe+TCJ5ZmfqVWU61JWwh1naC8X5Xa7uyLnbzyYqPsHfg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-x64-gnu@11.17.0': + resolution: {integrity: sha512-Z4J7XlPMQOLPANyu6y3B3V417Md4LKH5bV6bhqgaG99qLHmU5LV2k9ErV14fSqoRc/GU/qOpqMdotxiJqN/YWg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxc-resolver/binding-linux-x64-musl@11.17.0': + resolution: {integrity: sha512-0effK+8lhzXsgsh0Ny2ngdnTPF30v6QQzVFApJ1Ctk315YgpGkghkelvrLYYgtgeFJFrzwmOJ2nDvCrUFKsS2Q==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxc-resolver/binding-openharmony-arm64@11.17.0': + resolution: {integrity: sha512-kFB48dRUW6RovAICZaxHKdtZe+e94fSTNA2OedXokzMctoU54NPZcv0vUX5PMqyikLIKJBIlW7laQidnAzNrDA==} + cpu: [arm64] + os: [openharmony] + + '@oxc-resolver/binding-wasm32-wasi@11.17.0': + resolution: {integrity: sha512-a3elKSBLPT0OoRPxTkCIIc+4xnOELolEBkPyvdj01a6PSdSmyJ1NExWjWLaXnT6wBMblvKde5RmSwEi3j+jZpg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@11.17.0': + resolution: {integrity: sha512-4eszUsSDb9YVx0RtYkPWkxxtSZIOgfeiX//nG5cwRRArg178w4RCqEF1kbKPud9HPrp1rXh7gE4x911OhvTnPg==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-ia32-msvc@11.17.0': + resolution: {integrity: sha512-t946xTXMmR7yGH0KAe9rB055/X4EPIu93JUvjchl2cizR5QbuwkUV7vLS2BS6x6sfvDoQb6rWYnV1HCci6tBSg==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.17.0': + resolution: {integrity: sha512-pX6s2kMXLQg+hlqKk5UqOW09iLLxnTkvn8ohpYp2Mhsm2yzDPCx9dyOHiB/CQixLzTkLQgWWJykN4Z3UfRKW4Q==} + cpu: [x64] + os: [win32] + + '@oxlint-tsgolint/darwin-arm64@0.11.4': + resolution: {integrity: sha512-IhdhiC183s5wdFDZSQC8PaFFq1QROiVT5ahz7ysgEKVnkNDjy82ieM7ZKiUfm2ncXNX2RcFGSSZrQO6plR+VAQ==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@0.11.4': + resolution: {integrity: sha512-KJmBg10Z1uGpJqxDzETXOytYyeVrKUepo8rCXeVkRlZ2QzZqMElgalFN4BI3ccgIPkQpzzu4SVzWNFz7yiKavQ==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@0.11.4': + resolution: {integrity: sha512-P6I3dSSpoEnjFzTMlrbcBHNbErSxceZmcVUslBxrrIUH1NSVS1XfSz6S75vT2Gay7Jv6LI7zTTVAk4cSqkfe+w==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@0.11.4': + resolution: {integrity: sha512-G0eAW3S7cp/vP7Kx6e7+Ze7WfNgSt1tc/rOexfLKnnIi+9BelyOa2wF9bWFPpxk3n3AdkBwKttU1/adDZlD87Q==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@0.11.4': + resolution: {integrity: sha512-prgQEBiwp4TAxarh6dYbVOKw6riRJ6hB49vDD6DxQlOZQky7xHQ9qTec5/rf0JTUZ16YaJ9YfHycbJS3QVpTYw==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@0.11.4': + resolution: {integrity: sha512-5xXTzZIT/1meWMmS60Q+FYWvWncc6iTfC8tyQt7GDfPUoqQvE5WVgHm1QjDSJvxTD+6AHphpCqdhXq/KtxagRw==} + cpu: [x64] + os: [win32] + + '@oxlint/darwin-arm64@1.43.0': + resolution: {integrity: sha512-C/GhObv/pQZg34NOzB6Mk8x0wc9AKj8fXzJF8ZRKTsBPyHusC6AZ6bba0QG0TUufw1KWuD0j++oebQfWeiFXNw==} + cpu: [arm64] + os: [darwin] + + '@oxlint/darwin-x64@1.43.0': + resolution: {integrity: sha512-4NjfUtEEH8ewRQ2KlZGmm6DyrvypMdHwBnQT92vD0dLScNOQzr0V9O8Ua4IWXdeCNl/XMVhAV3h4/3YEYern5A==} + cpu: [x64] + os: [darwin] + + '@oxlint/linux-arm64-gnu@1.43.0': + resolution: {integrity: sha512-75tf1HvwdZ3ebk83yMbSB+moAEWK98mYqpXiaFAi6Zshie7r+Cx5PLXZFUEqkscenoZ+fcNXakHxfn94V6nf1g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/linux-arm64-musl@1.43.0': + resolution: {integrity: sha512-BHV4fb36T2p/7bpA9fiJ5ayt7oJbiYX10nklW5arYp4l9/9yG/FQC5J4G1evzbJ/YbipF9UH0vYBAm5xbqGrvw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/linux-x64-gnu@1.43.0': + resolution: {integrity: sha512-1l3nvnzWWse1YHibzZ4HQXdF/ibfbKZhp9IguElni3bBqEyPEyurzZ0ikWynDxKGXqZa+UNXTFuU1NRVX1RJ3g==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/linux-x64-musl@1.43.0': + resolution: {integrity: sha512-+jNYgLGRFTJxJuaSOZJBwlYo5M0TWRw0+3y5MHOL4ArrIdHyCthg6r4RbVWrsR1qUfUE1VSSHQ2bfbC99RXqMg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/win32-arm64@1.43.0': + resolution: {integrity: sha512-dvs1C/HCjCyGTURMagiHprsOvVTT3omDiSzi5Qw0D4QFJ1pEaNlfBhVnOUYgUfS6O7Mcmj4+G+sidRsQcWQ/kA==} + cpu: [arm64] + os: [win32] + + '@oxlint/win32-x64@1.43.0': + resolution: {integrity: sha512-bSuItSU8mTSDsvmmLTepTdCL2FkJI6dwt9tot/k0EmiYF+ArRzmsl4lXVLssJNRV5lJEc5IViyTrh7oiwrjUqA==} + cpu: [x64] + os: [win32] + '@prettier/plugin-hermes@0.1.3': resolution: {integrity: sha512-ok9xBeAKSBo5r5+wRkn+IRG8eGX1EcjsTmTn0VfKdRiSLE1OhyUSXQdXOEUs8a/VdpctGJ9GHTHyLVFcIMkccQ==} engines: {node: '>=14'} @@ -898,36 +1047,6 @@ packages: cpu: [x64] os: [win32] - '@rushstack/node-core-library@5.19.1': - resolution: {integrity: sha512-ESpb2Tajlatgbmzzukg6zyAhH+sICqJR2CNXNhXcEbz6UGCQfrKCtkxOpJTftWc8RGouroHG0Nud1SJAszvpmA==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/problem-matcher@0.1.1': - resolution: {integrity: sha512-Fm5XtS7+G8HLcJHCWpES5VmeMyjAKaWeyZU5qPzZC+22mPlJzAsOxymHiWIfuirtPckX3aptWws+K2d0BzniJA==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/rig-package@0.6.0': - resolution: {integrity: sha512-ZQmfzsLE2+Y91GF15c65L/slMRVhF6Hycq04D4TwtdGaUAbIXXg9c5pKA5KFU7M4QMaihoobp9JJYpYcaY3zOw==} - - '@rushstack/terminal@0.21.0': - resolution: {integrity: sha512-cLaI4HwCNYmknM5ns4G+drqdEB6q3dCPV423+d3TZeBusYSSm09+nR7CnhzJMjJqeRcdMAaLnrA4M/3xDz4R3w==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@5.1.7': - resolution: {integrity: sha512-Ugwl6flarZcL2nqH5IXFYk3UR3mBVDsVFlCQW/Oaqidvdb/5Ota6b/Z3JXWIdqV3rOR2/JrYoAHanWF5rgenXA==} - '@shopify/liquid-html-parser@2.9.0': resolution: {integrity: sha512-bkI4tLbU47YUxpgbMa9fgeJjFEMvRNEFL644Yk0ZKo5H1IRzU4pPyCQ6PkGvb0JJnt7OZ+RDGvb6ZLCnAR2Z/A==} @@ -936,10 +1055,6 @@ packages: peerDependencies: prettier: ^2.0.0 || ^3.0.0 - '@sindresorhus/merge-streams@4.0.0': - resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} - engines: {node: '>=18'} - '@sveltejs/acorn-typescript@1.0.8': resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==} peerDependencies: @@ -967,9 +1082,6 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -1046,28 +1158,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1096,8 +1186,8 @@ packages: argly@1.2.0: resolution: {integrity: sha512-+F3InkcH2XOGK7Jf/ZQis4cwZ4wbfmpBKo5J+SAA9bglT1gVd0e9hroHWarU076pJrAfs8JKuRPwDqwPBOKHnw==} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} @@ -1121,10 +1211,6 @@ packages: resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} engines: {node: '>=20.19.0'} - ast-types@0.14.2: - resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} - engines: {node: '>=4'} - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -1250,19 +1336,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - copy-file@11.1.0: - resolution: {integrity: sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==} - engines: {node: '>=18'} - - cpy-cli@6.0.0: - resolution: {integrity: sha512-q7GUqTDnRymCbScJ4Ph1IUM86wWdKG8JbgrvKLgvvehH4wrbRcVN+jRwOTlxJdwm7ykdXMKSp6IESksFeHa0eA==} - engines: {node: '>=20'} - hasBin: true - - cpy@12.1.0: - resolution: {integrity: sha512-3z9tP1rPBLG7pQYn9iRgl7JOSew0SMPuWmakaRfzhXpmFBHmRbp7JekpuqPkXbbWOdSeKSbInYEcdIZjov2fNQ==} - engines: {node: '>=20'} - css-declaration-sorter@7.3.1: resolution: {integrity: sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==} engines: {node: ^14 || ^16 || >=18} @@ -1404,11 +1477,6 @@ packages: esm-env@1.2.2: resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - esrap@2.2.2: resolution: {integrity: sha512-zA6497ha+qKvoWIK+WM9NAh5ni17sKZKhbS5B3PoYbBvaYHZWoS33zmFybmyqpn07RLUxSmn+RCls2/XF+d0oQ==} @@ -1422,9 +1490,6 @@ packages: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -1432,6 +1497,9 @@ packages: fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -1445,9 +1513,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - fs-extra@11.3.3: - resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} - engines: {node: '>=14.14'} + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} + hasBin: true fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -1483,18 +1552,10 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@13.0.0: - resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} - engines: {node: 20 || >=22} - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - globby@15.0.0: - resolution: {integrity: sha512-oB4vkQGqlMl682wL1IlWd02tXCbquGWM4voPEI85QmNKCaw8zGTm1f1rubFgkg3Eli2PtKlFgrnmUqasbQWlkw==} - engines: {node: '>=20'} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -1506,10 +1567,6 @@ packages: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -1538,14 +1595,6 @@ packages: htmljs-parser@5.7.4: resolution: {integrity: sha512-PCGI7/Z10oBkpKKqbQ9Wgd0GZjSQ/dV7QlBjOmaqD1FkBsHWk730BW9mJCbnXfRbtZCdLh8M8IA8YeKPu9tGaQ==} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - import-sort-style-module@6.0.0: resolution: {integrity: sha512-Oxd256EVt6TAgawhIDuKnNHWumzHMHFWhVncBBvlHVnx69B4GP/Gu4Xo+gjxtqSEKEvam5ajUkNvnsXLDMDjKg==} @@ -1608,15 +1657,16 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -1625,25 +1675,23 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - - junk@4.0.1: - resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} - engines: {node: '>=12.20'} - kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + knip@5.83.0: + resolution: {integrity: sha512-FfmaHMntpZB13B1oJQMSs1hTOZxd0TOn+FYB3oWEI02XlxTW3RH4H7d8z5Us3g0ziHCYyl7z0B1xi8ENP3QEKA==} + engines: {node: '>=18.18.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4 <7' + lasso-caching-fs@1.0.2: resolution: {integrity: sha512-mudop0s8U3tLm3Fn9lhiZsiELpLeJToEo6RlDLdph7vWRxL9Sz0o+9WUw1IwlpCYXv/P0CLsMYWFgPwIKWEYvg==} @@ -1679,17 +1727,9 @@ packages: loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} - lru-cache@11.2.5: - resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} - engines: {node: 20 || >=22} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - luxon@3.7.2: resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} engines: {node: '>=12'} @@ -1712,10 +1752,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1787,14 +1823,6 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - - minimatch@10.1.1: - resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} - engines: {node: 20 || >=22} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1805,10 +1833,6 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -1875,24 +1899,22 @@ packages: resolution: {integrity: sha512-MpS1lbd2vR0NZn1v0drpgu7RUFu3x9Rd0kxExObZc2+F+DIrV0BOMval/RO3BYGwssIOerII6iS8EbbpCCZQpQ==} engines: {node: ^20.19.0 || >=22.12.0} - p-event@6.0.1: - resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==} - engines: {node: '>=16.17'} - - p-filter@4.1.0: - resolution: {integrity: sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==} - engines: {node: '>=18'} + oxc-resolver@11.17.0: + resolution: {integrity: sha512-R5P2Tw6th+nQJdNcZGfuppBS/sM0x1EukqYffmlfX2xXLgLGCCPwu4ruEr9Sx29mrpkHgITc130Qps2JR90NdQ==} - p-map@7.0.4: - resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} - engines: {node: '>=18'} - - p-timeout@6.1.4: - resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} - engines: {node: '>=14.16'} + oxlint-tsgolint@0.11.4: + resolution: {integrity: sha512-VyQc+69TxQwUdsEPiVFN7vNZdDVO/FHaEcHltnWs3O6rvwxv67uADlknQQO714sbRdEahOjgO5dFf+K9ili0gg==} + hasBin: true - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + oxlint@1.43.0: + resolution: {integrity: sha512-xiqTCsKZch+R61DPCjyqUVP2MhkQlRRYxLRBeBDi+dtQJ90MOgdcjIktvDCgXz0bgtx94EQzHEndsizZjMX2OA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.11.2' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true parent-module@2.0.0: resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} @@ -1911,14 +1933,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@2.0.1: - resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} - engines: {node: 20 || >=22} - - path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} - engines: {node: '>=18'} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -2080,10 +2094,6 @@ packages: pug-lexer@5.0.1: resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - quansync@1.0.0: resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} @@ -2118,17 +2128,9 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recast@0.20.5: - resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==} - engines: {node: '>= 4'} - relative-import-path@1.0.0: resolution: {integrity: sha512-ZvbtoduKQmD4PZeJPfH6Ql21qUWhaMxiHkIsH+FUnZqKDwNIXBtGg5zRZyHWomiGYk8n5+KMBPK7Mi4D0XWfNg==} - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -2145,11 +2147,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@6.1.2: - resolution: {integrity: sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==} - engines: {node: 20 || >=22} - hasBin: true - rolldown-plugin-dts@0.21.9: resolution: {integrity: sha512-macIh4TtSv84N33YcI8SbULUPbMOgwPHDLweUKgzb+LV2OrVzrXihb2pC33xR0Hoh+hz07Un9/EuUeqMiPsePw==} engines: {node: '>=20.19.0'} @@ -2200,11 +2197,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.3: resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} @@ -2213,13 +2205,13 @@ packages: siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - slide@1.1.6: resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==} + smol-toml@1.6.0: + resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} + engines: {node: '>= 18'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -2252,9 +2244,6 @@ packages: spdx-satisfies@4.0.1: resolution: {integrity: sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -2264,13 +2253,9 @@ packages: std-env@3.10.0: resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} @@ -2287,10 +2272,6 @@ packages: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -2416,17 +2397,9 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} - engines: {node: '>=18'} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - unrun@0.2.26: resolution: {integrity: sha512-A3DQLBcDyTui4Hlaoojkldg+8x+CIR+tcSHY0wzW+CgB4X/DNyH58jJpXp1B/EkE+yG6tU8iH1mWsLtwFU3IQg==} engines: {node: '>=20.19.0'} @@ -2443,9 +2416,6 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -2528,6 +2498,10 @@ packages: jsdom: optional: true + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + warp10@2.1.0: resolution: {integrity: sha512-krhkqzJdUxAZv2Cx0Gz6dN1r7TTrG9RDewkDHBbJQIqbNTCdB5ZUHVh7VkA4DgrKW4ZXPPUQKCwmI/3btDse9A==} @@ -2542,12 +2516,12 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - zimmerframe@1.1.4: resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + snapshots: '@alloc/quick-lru@5.2.0': {} @@ -2888,12 +2862,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': - dependencies: - '@isaacs/balanced-match': 4.0.1 - '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -2951,42 +2919,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@microsoft/api-extractor-model@7.32.2(@types/node@24.10.9)': - dependencies: - '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@rushstack/node-core-library': 5.19.1(@types/node@24.10.9) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.56.0(@types/node@24.10.9)': - dependencies: - '@microsoft/api-extractor-model': 7.32.2(@types/node@24.10.9) - '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@rushstack/node-core-library': 5.19.1(@types/node@24.10.9) - '@rushstack/rig-package': 0.6.0 - '@rushstack/terminal': 0.21.0(@types/node@24.10.9) - '@rushstack/ts-command-line': 5.1.7(@types/node@24.10.9) - diff: 8.0.3 - lodash: 4.17.23 - minimatch: 10.0.3 - resolve: 1.22.11 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.8.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.18.0': - dependencies: - '@microsoft/tsdoc': 0.16.0 - ajv: 8.12.0 - jju: 1.4.0 - resolve: 1.22.11 - - '@microsoft/tsdoc@0.16.0': {} - '@napi-rs/wasm-runtime@1.1.1': dependencies: '@emnapi/core': 1.8.1 @@ -3057,6 +2989,110 @@ snapshots: '@oxc-project/types@0.99.0': {} + '@oxc-resolver/binding-android-arm-eabi@11.17.0': + optional: true + + '@oxc-resolver/binding-android-arm64@11.17.0': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.17.0': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.17.0': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.17.0': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.17.0': + optional: true + + '@oxc-resolver/binding-openharmony-arm64@11.17.0': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.17.0': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.17.0': + optional: true + + '@oxc-resolver/binding-win32-ia32-msvc@11.17.0': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.17.0': + optional: true + + '@oxlint-tsgolint/darwin-arm64@0.11.4': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.11.4': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.11.4': + optional: true + + '@oxlint-tsgolint/linux-x64@0.11.4': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.11.4': + optional: true + + '@oxlint-tsgolint/win32-x64@0.11.4': + optional: true + + '@oxlint/darwin-arm64@1.43.0': + optional: true + + '@oxlint/darwin-x64@1.43.0': + optional: true + + '@oxlint/linux-arm64-gnu@1.43.0': + optional: true + + '@oxlint/linux-arm64-musl@1.43.0': + optional: true + + '@oxlint/linux-x64-gnu@1.43.0': + optional: true + + '@oxlint/linux-x64-musl@1.43.0': + optional: true + + '@oxlint/win32-arm64@1.43.0': + optional: true + + '@oxlint/win32-x64@1.43.0': + optional: true + '@prettier/plugin-hermes@0.1.3': {} '@prettier/plugin-oxc@0.1.3': @@ -3190,45 +3226,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.57.1': optional: true - '@rushstack/node-core-library@5.19.1(@types/node@24.10.9)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 11.3.3 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.11 - semver: 7.5.4 - optionalDependencies: - '@types/node': 24.10.9 - - '@rushstack/problem-matcher@0.1.1(@types/node@24.10.9)': - optionalDependencies: - '@types/node': 24.10.9 - - '@rushstack/rig-package@0.6.0': - dependencies: - resolve: 1.22.11 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.21.0(@types/node@24.10.9)': - dependencies: - '@rushstack/node-core-library': 5.19.1(@types/node@24.10.9) - '@rushstack/problem-matcher': 0.1.1(@types/node@24.10.9) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 24.10.9 - - '@rushstack/ts-command-line@5.1.7(@types/node@24.10.9)': - dependencies: - '@rushstack/terminal': 0.21.0(@types/node@24.10.9) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@shopify/liquid-html-parser@2.9.0': dependencies: line-column: 1.0.2 @@ -3240,8 +3237,6 @@ snapshots: html-styles: 1.0.0 prettier: 3.8.1 - '@sindresorhus/merge-streams@4.0.0': {} - '@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)': dependencies: acorn: 8.15.0 @@ -3268,8 +3263,6 @@ snapshots: tslib: 2.8.1 optional: true - '@types/argparse@1.0.38': {} - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -3355,28 +3348,6 @@ snapshots: acorn@8.15.0: {} - ajv-draft-04@1.0.0(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv-formats@3.0.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -3398,9 +3369,7 @@ snapshots: argly@1.2.0: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 + argparse@2.0.1: {} aria-query@5.3.2: {} @@ -3418,10 +3387,6 @@ snapshots: estree-walker: 3.0.3 pathe: 2.0.3 - ast-types@0.14.2: - dependencies: - tslib: 2.8.1 - axobject-query@4.1.0: {} balanced-match@1.0.2: {} @@ -3544,25 +3509,6 @@ snapshots: convert-source-map@2.0.0: {} - copy-file@11.1.0: - dependencies: - graceful-fs: 4.2.11 - p-event: 6.0.1 - - cpy-cli@6.0.0: - dependencies: - cpy: 12.1.0 - meow: 13.2.0 - - cpy@12.1.0: - dependencies: - copy-file: 11.1.0 - globby: 15.0.0 - junk: 4.0.1 - micromatch: 4.0.8 - p-filter: 4.1.0 - p-map: 7.0.4 - css-declaration-sorter@7.3.1(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -3616,7 +3562,9 @@ snapshots: dlv@1.1.3: {} - dts-resolver@2.1.3: {} + dts-resolver@2.1.3(oxc-resolver@11.17.0): + optionalDependencies: + oxc-resolver: 11.17.0 dunder-proto@1.0.1: dependencies: @@ -3682,8 +3630,6 @@ snapshots: esm-env@1.2.2: {} - esprima@4.0.1: {} - esrap@2.2.2: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -3698,8 +3644,6 @@ snapshots: expect-type@1.3.0: {} - fast-deep-equal@3.1.3: {} - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3712,6 +3656,10 @@ snapshots: dependencies: reusify: 1.1.0 + fd-package-json@2.0.0: + dependencies: + walk-up-path: 4.0.0 + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -3720,11 +3668,9 @@ snapshots: dependencies: to-regex-range: 5.0.1 - fs-extra@11.3.3: + formatly@0.3.0: dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 + fd-package-json: 2.0.0 fs.realpath@1.0.0: {} @@ -3765,12 +3711,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@13.0.0: - dependencies: - minimatch: 10.1.1 - minipass: 7.1.2 - path-scurry: 2.0.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -3780,23 +3720,12 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - globby@15.0.0: - dependencies: - '@sindresorhus/merge-streams': 4.0.0 - fast-glob: 3.3.3 - ignore: 7.0.5 - path-type: 6.0.0 - slash: 5.1.0 - unicorn-magic: 0.3.0 - gopd@1.2.0: {} graceful-fs@4.2.11: {} has-flag@3.0.0: {} - has-flag@4.0.0: {} - has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -3817,10 +3746,6 @@ snapshots: htmljs-parser@5.7.4: {} - ignore@7.0.5: {} - - import-lazy@4.0.0: {} - import-sort-style-module@6.0.0: {} import-without-cache@0.2.5: {} @@ -3876,30 +3801,39 @@ snapshots: jiti@2.6.1: {} - jju@1.4.0: {} - js-tokens@4.0.0: {} js-tokens@9.0.1: {} + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + jsesc@3.1.0: {} json-parse-even-better-errors@2.3.1: {} - json-schema-traverse@1.0.0: {} - json5@2.2.3: {} - jsonfile@6.2.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - junk@4.0.1: {} - kleur@4.1.5: {} + knip@5.83.0(@types/node@24.10.9)(typescript@5.8.2): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@types/node': 24.10.9 + fast-glob: 3.3.3 + formatly: 0.3.0 + jiti: 2.6.1 + js-yaml: 4.1.1 + minimist: 1.2.8 + oxc-resolver: 11.17.0 + picocolors: 1.1.1 + picomatch: 4.0.3 + smol-toml: 1.6.0 + strip-json-comments: 5.0.3 + typescript: 5.8.2 + zod: 4.3.6 + lasso-caching-fs@1.0.2: dependencies: raptor-async: 1.1.3 @@ -3942,16 +3876,10 @@ snapshots: loupe@3.2.1: {} - lru-cache@11.2.5: {} - lru-cache@5.1.1: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - luxon@3.7.2: {} magic-string@0.30.21: @@ -4002,8 +3930,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - meow@13.2.0: {} - merge2@1.4.1: {} micromark-core-commonmark@2.0.3: @@ -4144,14 +4070,6 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - minimatch@10.0.3: - dependencies: - '@isaacs/brace-expansion': 5.0.0 - - minimatch@10.1.1: - dependencies: - '@isaacs/brace-expansion': 5.0.0 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -4162,8 +4080,6 @@ snapshots: minimist@1.2.8: {} - minipass@7.1.2: {} - mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -4237,19 +4153,49 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc': 0.99.0 '@oxc-parser/binding-win32-x64-msvc': 0.99.0 - p-event@6.0.1: - dependencies: - p-timeout: 6.1.4 - - p-filter@4.1.0: - dependencies: - p-map: 7.0.4 - - p-map@7.0.4: {} - - p-timeout@6.1.4: {} - - package-json-from-dist@1.0.1: {} + oxc-resolver@11.17.0: + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.17.0 + '@oxc-resolver/binding-android-arm64': 11.17.0 + '@oxc-resolver/binding-darwin-arm64': 11.17.0 + '@oxc-resolver/binding-darwin-x64': 11.17.0 + '@oxc-resolver/binding-freebsd-x64': 11.17.0 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.17.0 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.17.0 + '@oxc-resolver/binding-linux-arm64-gnu': 11.17.0 + '@oxc-resolver/binding-linux-arm64-musl': 11.17.0 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.17.0 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.17.0 + '@oxc-resolver/binding-linux-riscv64-musl': 11.17.0 + '@oxc-resolver/binding-linux-s390x-gnu': 11.17.0 + '@oxc-resolver/binding-linux-x64-gnu': 11.17.0 + '@oxc-resolver/binding-linux-x64-musl': 11.17.0 + '@oxc-resolver/binding-openharmony-arm64': 11.17.0 + '@oxc-resolver/binding-wasm32-wasi': 11.17.0 + '@oxc-resolver/binding-win32-arm64-msvc': 11.17.0 + '@oxc-resolver/binding-win32-ia32-msvc': 11.17.0 + '@oxc-resolver/binding-win32-x64-msvc': 11.17.0 + + oxlint-tsgolint@0.11.4: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 0.11.4 + '@oxlint-tsgolint/darwin-x64': 0.11.4 + '@oxlint-tsgolint/linux-arm64': 0.11.4 + '@oxlint-tsgolint/linux-x64': 0.11.4 + '@oxlint-tsgolint/win32-arm64': 0.11.4 + '@oxlint-tsgolint/win32-x64': 0.11.4 + + oxlint@1.43.0(oxlint-tsgolint@0.11.4): + optionalDependencies: + '@oxlint/darwin-arm64': 1.43.0 + '@oxlint/darwin-x64': 1.43.0 + '@oxlint/linux-arm64-gnu': 1.43.0 + '@oxlint/linux-arm64-musl': 1.43.0 + '@oxlint/linux-x64-gnu': 1.43.0 + '@oxlint/linux-x64-musl': 1.43.0 + '@oxlint/win32-arm64': 1.43.0 + '@oxlint/win32-x64': 1.43.0 + oxlint-tsgolint: 0.11.4 parent-module@2.0.0: dependencies: @@ -4265,13 +4211,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@2.0.1: - dependencies: - lru-cache: 11.2.5 - minipass: 7.1.2 - - path-type@6.0.0: {} - pathe@2.0.3: {} pathval@2.0.1: {} @@ -4407,8 +4346,6 @@ snapshots: is-expression: 4.0.0 pug-error: 2.1.0 - punycode@2.3.1: {} - quansync@1.0.0: {} queue-microtask@1.2.3: {} @@ -4452,17 +4389,8 @@ snapshots: dependencies: picomatch: 2.3.1 - recast@0.20.5: - dependencies: - ast-types: 0.14.2 - esprima: 4.0.1 - source-map: 0.6.1 - tslib: 2.8.1 - relative-import-path@1.0.0: {} - require-from-string@2.0.2: {} - resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -4475,19 +4403,14 @@ snapshots: reusify@1.1.0: {} - rimraf@6.1.2: - dependencies: - glob: 13.0.0 - package-json-from-dist: 1.0.1 - - rolldown-plugin-dts@0.21.9(rolldown@1.0.0-rc.1)(typescript@5.8.2): + rolldown-plugin-dts@0.21.9(oxc-resolver@11.17.0)(rolldown@1.0.0-rc.1)(typescript@5.8.2): dependencies: '@babel/generator': 8.0.0-rc.1 '@babel/parser': 8.0.0-rc.1 '@babel/types': 8.0.0-rc.1 ast-kit: 3.0.0-beta.1 birpc: 4.0.0 - dts-resolver: 2.1.3 + dts-resolver: 2.1.3(oxc-resolver@11.17.0) get-tsconfig: 4.13.1 obug: 2.1.1 rolldown: 1.0.0-rc.1 @@ -4562,18 +4485,14 @@ snapshots: semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - semver@7.7.3: {} siginfo@2.0.0: {} - slash@5.1.0: {} - slide@1.1.6: {} + smol-toml@1.6.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -4611,17 +4530,13 @@ snapshots: spdx-expression-parse: 3.0.1 spdx-ranges: 2.1.1 - sprintf-js@1.0.3: {} - stackback@0.0.2: {} stackframe@1.3.4: {} std-env@3.10.0: {} - string-argv@0.3.2: {} - - strip-json-comments@3.1.1: {} + strip-json-comments@5.0.3: {} strip-literal@3.1.0: dependencies: @@ -4645,10 +4560,6 @@ snapshots: dependencies: has-flag: 3.0.0 - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} svelte@5.49.1: @@ -4738,7 +4649,7 @@ snapshots: ts-interface-checker@0.1.13: {} - tsdown@0.20.1(typescript@5.8.2): + tsdown@0.20.1(oxc-resolver@11.17.0)(typescript@5.8.2): dependencies: ansis: 4.2.0 cac: 6.7.14 @@ -4749,7 +4660,7 @@ snapshots: obug: 2.1.1 picomatch: 4.0.3 rolldown: 1.0.0-rc.1 - rolldown-plugin-dts: 0.21.9(rolldown@1.0.0-rc.1)(typescript@5.8.2) + rolldown-plugin-dts: 0.21.9(oxc-resolver@11.17.0)(rolldown@1.0.0-rc.1)(typescript@5.8.2) semver: 7.7.3 tinyexec: 1.0.2 tinyglobby: 0.2.15 @@ -4765,7 +4676,8 @@ snapshots: - synckit - vue-tsc - tslib@2.8.1: {} + tslib@2.8.1: + optional: true type-detect@0.1.1: {} @@ -4790,14 +4702,10 @@ snapshots: undici-types@7.16.0: {} - unicorn-magic@0.3.0: {} - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - universalify@2.0.1: {} - unrun@0.2.26: dependencies: rolldown: 1.0.0-rc.1 @@ -4808,10 +4716,6 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - util-deprecate@1.0.2: {} util-extend@1.0.3: {} @@ -4897,6 +4801,8 @@ snapshots: - tsx - yaml + walk-up-path@4.0.0: {} + warp10@2.1.0: {} why-is-node-running@2.3.0: @@ -4908,6 +4814,6 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} - zimmerframe@1.1.4: {} + + zod@4.3.6: {} diff --git a/scripts/copy-licenses.js b/scripts/copy-licenses.js index 74ba967..4d84578 100644 --- a/scripts/copy-licenses.js +++ b/scripts/copy-licenses.js @@ -7,17 +7,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)) const pkg = JSON.parse(await fs.readFile(path.resolve(__dirname, '../package.json'), 'utf8')) -let exclude = [ - 'cpy-cli', - 'esbuild', - 'vitest', - 'license-checker', - 'prettier', - 'rimraf', - 'svelte', - 'tsup', - '@microsoft/api-extractor', -] +let exclude = ['vitest', 'license-checker', 'prettier', 'svelte', 'knip'] /** @type {checker.ModuleInfo} */ let packages = await new Promise((resolve, reject) => { diff --git a/src/create-plugin.ts b/src/create-plugin.ts index 1d89594..2dac6d4 100644 --- a/src/create-plugin.ts +++ b/src/create-plugin.ts @@ -33,7 +33,7 @@ export function createPlugin(transforms: TransformOptions[]) { } } - for (let [name, meta] of Object.entries(opts.printers ?? {})) { + for (let [name, _meta] of Object.entries(opts.printers ?? {})) { printers[name] = async () => { let plugin = await loadPlugins(opts.load ?? []) let original = plugin.printers?.[name] @@ -142,7 +142,9 @@ function createPrinter({ return printer } -async function loadPlugins(fns: string[]) { +type PluginLoad = string | Plugin + +async function loadPlugins(fns: PluginLoad[]) { let plugin: Plugin = { parsers: Object.create(null), printers: Object.create(null), @@ -152,17 +154,13 @@ async function loadPlugins(fns: string[]) { } for (let moduleName of fns) { - try { - let loaded = await loadIfExistsESM(moduleName) - Object.assign(plugin.parsers!, loaded.parsers ?? {}) - Object.assign(plugin.printers!, loaded.printers ?? {}) - Object.assign(plugin.options!, loaded.options ?? {}) - Object.assign(plugin.defaultOptions!, loaded.defaultOptions ?? {}) - - plugin.languages = [...(plugin.languages ?? []), ...(loaded.languages ?? [])] - } catch (err) { - throw err - } + let loaded = typeof moduleName === 'string' ? await loadIfExistsESM(moduleName) : moduleName + Object.assign(plugin.parsers!, loaded.parsers ?? {}) + Object.assign(plugin.printers!, loaded.printers ?? {}) + Object.assign(plugin.options!, loaded.options ?? {}) + Object.assign(plugin.defaultOptions!, loaded.defaultOptions ?? {}) + + plugin.languages = [...(plugin.languages ?? []), ...(loaded.languages ?? [])] } return plugin diff --git a/src/index.ts b/src/index.ts index 609219d..6803466 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,7 +9,7 @@ import * as prettierParserCss from 'prettier/plugins/postcss' import { createPlugin } from './create-plugin.js' import type { Matcher } from './options.js' import { sortClasses, sortClassList } from './sorting.js' -import { defineTransform, type TransformOptions } from './transform.js' +import { defineTransform } from './transform.js' import type { StringChange, TransformerEnv } from './types' import { spliceChangesIntoString, visit, type Path } from './utils.js' @@ -1077,7 +1077,7 @@ type CssNode = { } let css = defineTransform({ - load: ['prettier/plugins/postcss'], + load: [prettierParserCss], compatible: ['prettier-plugin-css-order'], parsers: { @@ -1106,10 +1106,10 @@ let js = defineTransform({ ], parsers: { - babel: { load: ['prettier/plugins/babel'] }, - 'babel-flow': { load: ['prettier/plugins/babel'] }, - 'babel-ts': { load: ['prettier/plugins/babel'] }, - __js_expression: { load: ['prettier/plugins/babel'] }, + babel: { load: [prettierParserBabel] }, + 'babel-flow': { load: [prettierParserBabel] }, + 'babel-ts': { load: [prettierParserBabel] }, + __js_expression: { load: [prettierParserBabel] }, typescript: { load: ['prettier/plugins/typescript'] }, meriyah: { load: ['prettier/plugins/meriyah'] }, acorn: { load: ['prettier/plugins/acorn'] }, diff --git a/src/resolve.ts b/src/resolve.ts index e106914..b8c2d16 100644 --- a/src/resolve.ts +++ b/src/resolve.ts @@ -43,7 +43,7 @@ export function maybeResolve(name: string) { try { modpath = resolveJsFrom(fileURLToPath(import.meta.url), name) resolveCache.set(name, modpath) - } catch (err) { + } catch { resolveCache.set(name, null) return null } @@ -66,7 +66,7 @@ export async function loadIfExists(name: string): Promise { export function resolveJsFrom(base: string, id: string): string { try { return esmResolver.resolveSync({}, base, id) || id - } catch (err) { + } catch { return cjsResolver.resolveSync({}, base, id) || id } } diff --git a/src/sorter.ts b/src/sorter.ts index 3a678bc..bb0ddd1 100644 --- a/src/sorter.ts +++ b/src/sorter.ts @@ -201,12 +201,12 @@ export async function getTailwindConfig(options: TailwindConfigOptions): Promise }) } -let resolvedModCache = expiringMap(10_000) +let resolvedModCache = expiringMap(10_000) async function resolveTailwindPath( options: { packageName?: string }, baseDir: string, -): Promise<[any | null, string | null]> { +): Promise<[any, string | null]> { let pkgName = options.packageName ?? 'tailwindcss' let makeKey = (dir: string) => `${pkgName}:${dir}` @@ -218,7 +218,7 @@ async function resolveTailwindPath( let resolve = async () => { let pkgDir: string | null = null - let mod: any | null = null + let mod: any = null try { let pkgPath = resolveJsFrom(baseDir, pkgName) @@ -228,7 +228,7 @@ async function resolveTailwindPath( pkgDir = path.dirname(pkgFile) } catch {} - return [mod, pkgDir] as [any | null, string | null] + return [mod, pkgDir] as [any, string | null] } let result = await resolve() diff --git a/src/transform.ts b/src/transform.ts index d802172..d0cf757 100644 --- a/src/transform.ts +++ b/src/transform.ts @@ -1,4 +1,4 @@ -import type { AstPath, ParserOptions } from 'prettier' +import type { AstPath, Plugin } from 'prettier' import type { TransformerEnv } from './types' export function defineTransform(opts: TransformOptions) { @@ -19,7 +19,7 @@ export interface TransformOptions { /** * Load the given plugins for the parsers and printers */ - load?: string[] + load?: Array> /** * A list of compatible, third-party plugins for this transformation step @@ -39,7 +39,7 @@ export interface TransformOptions { /** * Load the given plugins for the parsers and printers */ - load?: string[] + load?: Array> /** * Static attributes that are supported by default diff --git a/src/utils.bench.ts b/src/utils.bench.ts index aef80fd..77f6740 100644 --- a/src/utils.bench.ts +++ b/src/utils.bench.ts @@ -13,7 +13,7 @@ describe('spliceChangesIntoString', () => { function buildFixture(repeatCount: number, changeCount: number) { // A large set of changes across random places in the string let indxes = new Set( - Array.from({ length: changeCount }, (_, i) => Math.ceil(Math.random() * repeatCount)), + Array.from({ length: changeCount }, () => Math.ceil(Math.random() * repeatCount)), ) let changes: StringChange[] = Array.from(indxes).flatMap((idx) => { diff --git a/src/utils.test.ts b/src/utils.test.ts index 5d89c48..d472671 100644 --- a/src/utils.test.ts +++ b/src/utils.test.ts @@ -1,4 +1,4 @@ -import { bench, describe, test } from 'vitest' +import { describe, test } from 'vitest' import type { StringChange } from './types' import { spliceChangesIntoString } from './utils' diff --git a/src/utils.ts b/src/utils.ts index 770f3f9..bba1fc2 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -7,7 +7,7 @@ export function loadIfExists(name: string): any { if (require.resolve(name)) { return require(name) } - } catch (e) { + } catch { return null } } @@ -30,6 +30,10 @@ type Visitor> = ( type Visitors> = Record> +function isNodeLike(value: any): value is { type: string } { + return typeof value?.type === 'string' +} + // https://lihautan.com/manipulating-ast-with-javascript/ export function visit>( ast: T, @@ -51,7 +55,7 @@ export function visit>( const child = node[keys[i]] if (Array.isArray(child)) { for (let j = 0; j < child.length; j++) { - if (child[j] !== null) { + if (isNodeLike(child[j])) { let newMeta = { ...meta } let newPath = [ { @@ -67,7 +71,7 @@ export function visit>( _visit(child[j], newPath, newMeta) } } - } else if (typeof child?.type === 'string') { + } else if (isNodeLike(child)) { let newMeta = { ...meta } let newPath = [ { diff --git a/src/versions/v3.ts b/src/versions/v3.ts index fec9b15..0e9680e 100644 --- a/src/versions/v3.ts +++ b/src/versions/v3.ts @@ -1,11 +1,12 @@ // @ts-check import * as path from 'node:path' +import { pathToFileURL } from 'node:url' import clearModule from 'clear-module' +import { createJiti } from 'jiti' // @ts-ignore import { generateRules as generateRulesFallback } from 'tailwindcss-v3/lib/lib/generateRules' // @ts-ignore import { createContext as createContextFallback } from 'tailwindcss-v3/lib/lib/setupContextUtils' -import loadConfigFallback from 'tailwindcss-v3/loadConfig' import resolveConfigFallback from 'tailwindcss-v3/resolveConfig' import type { RequiredConfig } from 'tailwindcss-v3/types/config.js' import type { UnifiedApi } from '../types' @@ -36,7 +37,6 @@ export async function loadV3(pkgDir: string | null, jsConfig: string | null): Pr let createContext = createContextFallback let generateRules: GenerateRules = generateRulesFallback let resolveConfig = resolveConfigFallback - let loadConfig = loadConfigFallback let tailwindConfig: RequiredConfig = { content: [] } try { @@ -44,16 +44,21 @@ export async function loadV3(pkgDir: string | null, jsConfig: string | null): Pr resolveConfig = require(path.join(pkgDir, 'resolveConfig')) createContext = require(path.join(pkgDir, 'lib/lib/setupContextUtils')).createContext generateRules = require(path.join(pkgDir, 'lib/lib/generateRules')).generateRules - // Prior to `tailwindcss@3.3.0` this won't exist so we load it last - loadConfig = require(path.join(pkgDir, 'loadConfig')) } } catch {} try { if (jsConfig) { clearModule(jsConfig) - let loadedConfig = loadConfig(jsConfig) - tailwindConfig = loadedConfig.default ?? loadedConfig + let jiti = createJiti(import.meta.url, { + moduleCache: false, + fsCache: false, + interopDefault: true, + }) + let url = pathToFileURL(jsConfig) + url.searchParams.set('t', `${Date.now()}`) + let loadedConfig= await jiti.import<{ default: RequiredConfig }>(url.href, { default: true }) + tailwindConfig = loadedConfig?.default ?? loadedConfig } } catch (err) { console.error(`Unable to load your Tailwind CSS v3 config: ${jsConfig}`) diff --git a/tests/fixtures.test.ts b/tests/fixtures.test.ts index e810a39..5c8c9a6 100644 --- a/tests/fixtures.test.ts +++ b/tests/fixtures.test.ts @@ -61,6 +61,11 @@ let fixtures = [ dir: 'v3-2', ext: 'html', }, + { + name: 'v3: re-exported config with jiti', + dir: 'v3-jiti-reexport', + ext: 'html', + }, { name: 'plugins', dir: 'plugins', diff --git a/tests/fixtures/v3-jiti-reexport/index.html b/tests/fixtures/v3-jiti-reexport/index.html new file mode 100644 index 0000000..7593a7e --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/index.html @@ -0,0 +1 @@ +
diff --git a/tests/fixtures/v3-jiti-reexport/output.html b/tests/fixtures/v3-jiti-reexport/output.html new file mode 100644 index 0000000..04a62c8 --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/output.html @@ -0,0 +1 @@ +
diff --git a/tests/fixtures/v3-jiti-reexport/package-lock.json b/tests/fixtures/v3-jiti-reexport/package-lock.json new file mode 100644 index 0000000..426d04e --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/package-lock.json @@ -0,0 +1,32 @@ +{ + "name": "v3-jiti-reexport", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@repo/tailwind-config": "file:./packages/tailwind-config" + } + }, + "node_modules/@repo/tailwind-config": { + "resolved": "packages/tailwind-config", + "link": true + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "packages/tailwind-config": { + "name": "@repo/tailwind-config", + "version": "1.0.0", + "dependencies": { + "jiti": "^2.6.1" + } + } + } +} diff --git a/tests/fixtures/v3-jiti-reexport/package.json b/tests/fixtures/v3-jiti-reexport/package.json new file mode 100644 index 0000000..6dba3f6 --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "@repo/tailwind-config": "file:./packages/tailwind-config" + } +} diff --git a/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/dist/index.mjs b/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/dist/index.mjs new file mode 100644 index 0000000..7f166d0 --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/dist/index.mjs @@ -0,0 +1,11 @@ +import { createJiti } from 'jiti' + +const jiti = createJiti(import.meta.url, { + interopDefault: true, +}) + +const _module = await jiti.import(new URL('../src/index.ts', import.meta.url).href, { + default: true, +}) + +export default _module?.default ?? _module diff --git a/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/package.json b/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/package.json new file mode 100644 index 0000000..935c709 --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/package.json @@ -0,0 +1,17 @@ +{ + "name": "@repo/tailwind-config", + "version": "1.0.0", + "type": "module", + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.mjs", + "default": "./dist/index.mjs" + } + }, + "dependencies": { + "jiti": "^2.6.1" + } +} diff --git a/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/src/index.ts b/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/src/index.ts new file mode 100644 index 0000000..ac0103b --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/packages/tailwind-config/src/index.ts @@ -0,0 +1,3 @@ +export default { + content: ['./index.html'], +} diff --git a/tests/fixtures/v3-jiti-reexport/tailwind.config.mjs b/tests/fixtures/v3-jiti-reexport/tailwind.config.mjs new file mode 100644 index 0000000..fc0231e --- /dev/null +++ b/tests/fixtures/v3-jiti-reexport/tailwind.config.mjs @@ -0,0 +1 @@ +export { default } from '@repo/tailwind-config' diff --git a/tests/plugins.test.ts b/tests/plugins.test.ts index cdaeb7f..9c15329 100644 --- a/tests/plugins.test.ts +++ b/tests/plugins.test.ts @@ -1,6 +1,5 @@ import { createRequire } from 'node:module' import dedent from 'dedent' -import * as prettier from 'prettier' import { test } from 'vitest' import { javascript } from './tests.js' import type { TestEntry } from './utils.js' diff --git a/tests/tests.ts b/tests/tests.ts index 8df7da4..5789949 100644 --- a/tests/tests.ts +++ b/tests/tests.ts @@ -280,6 +280,6 @@ export let tests: Record = { acorn: javascript, meriyah: javascript, mdx: javascript - .filter((test) => !/^\/\*/.test(test[0]) && !/^\/\*/.test(test[1])) + .filter((test) => !test[0].startsWith('/*') && !test[1].startsWith('/*')) .map((test) => [test[0].replace(/^;/, ''), test[1].replace(/^;/, ''), test[2]]), }