diff --git a/.gitignore b/.gitignore index 1aaf63e6..387a4427 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,5 @@ opensrc/ examples/stripe-app/*/stripe-app.json examples/stripe-app/*/.build examples/stripe-app/*/yarn.lock + +.types diff --git a/apps/web/.oxlintrc.json b/apps/web/.oxlintrc.json new file mode 100644 index 00000000..b36d89bc --- /dev/null +++ b/apps/web/.oxlintrc.json @@ -0,0 +1,255 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["nextjs", "react", "typescript"], + "categories": { + "correctness": "off" + }, + "env": { + "serviceworker": true + }, + "ignorePatterns": [ + ".source/**", + ".next/**", + "out/**", + "build/**", + "next-env.d.ts", + "dist/**" + ], + "rules": { + "for-direction": "error", + "nextjs/google-font-display": "warn", + "nextjs/google-font-preconnect": "warn", + "nextjs/inline-script-id": "error", + "nextjs/next-script-for-ga": "warn", + "nextjs/no-assign-module-variable": "error", + "nextjs/no-async-client-component": "warn", + "nextjs/no-before-interactive-script-outside-document": "warn", + "nextjs/no-css-tags": "warn", + "nextjs/no-document-import-in-page": "error", + "nextjs/no-duplicate-head": "error", + "nextjs/no-head-element": "warn", + "nextjs/no-head-import-in-document": "error", + "nextjs/no-html-link-for-pages": "error", + "nextjs/no-img-element": "warn", + "nextjs/no-page-custom-font": "warn", + "nextjs/no-script-component-in-head": "error", + "nextjs/no-styled-jsx-in-document": "warn", + "nextjs/no-sync-scripts": "error", + "nextjs/no-title-in-document-head": "warn", + "nextjs/no-typos": "warn", + "nextjs/no-unwanted-polyfillio": "warn", + "no-array-constructor": "error", + "no-async-promise-executor": "error", + "no-case-declarations": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": ["error", "except-parens"], + "no-constant-binary-expression": "error", + "no-constant-condition": [ + "error", + { + "checkLoops": "allExceptWhileTrue" + } + ], + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-else-if": "error", + "no-duplicate-case": "error", + "no-empty": [ + "error", + { + "allowEmptyCatch": false + } + ], + "no-empty-character-class": "error", + "no-empty-pattern": [ + "error", + { + "allowObjectPatternsAsParameters": false + } + ], + "no-empty-static-block": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": ["error", {}], + "no-fallthrough": [ + "error", + { + "allowEmptyCase": false, + "reportUnusedFallthroughComment": false + } + ], + "no-global-assign": [ + "error", + { + "exceptions": [] + } + ], + "no-invalid-regexp": ["error", {}], + "no-irregular-whitespace": [ + "error", + { + "skipComments": false, + "skipJSXText": false, + "skipRegExps": false, + "skipStrings": true, + "skipTemplates": false + } + ], + "no-loss-of-precision": "error", + "no-misleading-character-class": [ + "error", + { + "allowEscape": false + } + ], + "no-nonoctal-decimal-escape": "error", + "no-prototype-builtins": "error", + "no-regex-spaces": "error", + "no-self-assign": [ + "error", + { + "props": true + } + ], + "no-shadow-restricted-names": [ + "error", + { + "reportGlobalThis": false + } + ], + "no-sparse-arrays": "error", + "no-unsafe-finally": "error", + "no-unsafe-optional-chaining": [ + "error", + { + "disallowArithmeticOperators": false + } + ], + "no-unused-expressions": [ + "error", + { + "allowShortCircuit": false, + "allowTaggedTemplates": false, + "allowTernary": false + } + ], + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-unused-vars": "error", + "no-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": [ + "error", + { + "allowRegexCharacters": [] + } + ], + "no-var": "error", + "prefer-const": [ + "error", + { + "destructuring": "any", + "ignoreReadBeforeAssign": false + } + ], + "prefer-rest-params": "error", + "prefer-spread": "error", + "react/display-name": "error", + "react/exhaustive-deps": "warn", + "react/jsx-key": "error", + "react/jsx-no-comment-textnodes": "error", + "react/jsx-no-duplicate-props": "error", + "react/jsx-no-target-blank": "error", + "react/jsx-no-undef": "error", + "react/no-children-prop": "error", + "react/no-danger-with-children": "error", + "react/no-direct-mutation-state": "error", + "react/no-find-dom-node": "error", + "react/no-is-mounted": "error", + "react/no-render-return-value": "error", + "react/no-string-refs": "error", + "react/no-unescaped-entities": "error", + "react/no-unknown-property": "error", + "react/require-render-return": "error", + "react/rules-of-hooks": "error", + "require-yield": "error", + "typescript/ban-ts-comment": "error", + "typescript/no-duplicate-enum-values": "error", + "typescript/no-empty-object-type": "error", + "typescript/no-explicit-any": "error", + "typescript/no-extra-non-null-assertion": "error", + "typescript/no-misused-new": "error", + "typescript/no-namespace": "error", + "typescript/no-non-null-asserted-optional-chain": "error", + "typescript/no-require-imports": "error", + "typescript/no-this-alias": "error", + "typescript/no-unnecessary-type-constraint": "error", + "typescript/no-unsafe-declaration-merging": "error", + "typescript/no-unsafe-function-type": "error", + "typescript/no-wrapper-object-types": "error", + "typescript/prefer-as-const": "error", + "typescript/prefer-namespace-keyword": "error", + "typescript/triple-slash-reference": "error", + "use-isnan": [ + "error", + { + "enforceForIndexOf": false, + "enforceForSwitchCase": true + } + ], + "valid-typeof": [ + "error", + { + "requireStringLiterals": false + } + ] + }, + "overrides": [ + { + "files": ["**/*.js", "**/*.mjs", "**/*.cjs"], + "rules": { + "constructor-super": "error", + "getter-return": [ + "error", + { + "allowImplicit": false + } + ], + "no-class-assign": "error", + "no-const-assign": "error", + "no-dupe-class-members": "error", + "no-dupe-keys": "error", + "no-func-assign": "error", + "no-import-assign": "error", + "no-new-native-nonconstructor": "error", + "no-obj-calls": "error", + "no-redeclare": [ + "error", + { + "builtinGlobals": true + } + ], + "no-setter-return": "error", + "no-this-before-super": "error", + "no-undef": [ + "error", + { + "typeof": false + } + ], + "no-unreachable": "error", + "no-unsafe-negation": [ + "error", + { + "enforceForOrderingRelations": false + } + ], + "no-var": "off", + "no-with": "error", + "prefer-const": "off", + "prefer-rest-params": "off", + "prefer-spread": "off" + } + } + ] +} diff --git a/apps/web/eslint.config.js b/apps/web/eslint.config.js deleted file mode 100644 index 304c3275..00000000 --- a/apps/web/eslint.config.js +++ /dev/null @@ -1,13 +0,0 @@ -import { nextJsConfig } from "@internal/eslint-config/next-js"; - -/** @type {import("eslint").Linter.Config[]} */ -export default [ - { ignores: [".source/**"] }, - ...nextJsConfig, - { - rules: { - // Disable prop-types - we use TypeScript for type checking - "react/prop-types": "off", - }, - }, -]; diff --git a/apps/web/package.json b/apps/web/package.json index 0608fe97..ede72117 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,7 +12,7 @@ "build": "next build", "start": "next start", "test:routes": "node scripts/test-routes.mjs", - "lint": "eslint --max-warnings 0", + "lint": "oxlint --deny-warnings", "check-types": "fumadocs-mdx && next typegen && tsc --noEmit" }, "dependencies": { @@ -61,17 +61,16 @@ "zod": "^4.3.6" }, "devDependencies": { - "@internal/eslint-config": "workspace:*", "@internal/typescript-config": "workspace:*", "@tailwindcss/postcss": "^4.1.18", "@types/mdx": "^2.0.13", "@types/node": "^22.15.3", "@types/react": "19.2.3", "@types/react-dom": "19.2.3", - "eslint": "^9.39.1", + "oxlint": "^1.91.0", "postcss": "^8.5.6", "tailwindcss": "^4.1.18", "tw-animate-css": "^1.4.0", - "typescript": "5.9.2" + "typescript": "7.0.2" } } diff --git a/package.json b/package.json index 8855e969..af5d8d8d 100644 --- a/package.json +++ b/package.json @@ -42,11 +42,13 @@ "prettier": "^3.7.4", "react": "^19.2.4", "react-dom": "^19.2.4", + "rolldown": "1.2.16", + "rolldown-plugin-dts": "0.29.0", "satori": "0.25.0", "solid-js": "^1.9.11", "svelte": "^5.0.0", "turbo": "^2.9.7", - "typescript": "5.9.2", + "typescript": "7.0.2", "vite-plugin-solid": "^2.11.10", "vitest": "^4.0.17" }, diff --git a/packages/chat/package.json b/packages/chat/package.json index c9ac5d2f..5b1e5d24 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -42,7 +42,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -59,7 +59,7 @@ "@internal/typescript-config": "workspace:*", "chat": "^4.43.0", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.0.0" } } diff --git a/packages/chat/tsconfig.build.json b/packages/chat/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/chat/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/chat/tsup.config.ts b/packages/chat/tsup.config.ts index 0304d99f..3860d119 100644 --- a/packages/chat/tsup.config.ts +++ b/packages/chat/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core", "chat", "zod"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/codegen/package.json b/packages/codegen/package.json index 5dc98c0d..08d04b34 100644 --- a/packages/codegen/package.json +++ b/packages/codegen/package.json @@ -37,7 +37,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -46,6 +46,6 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" } } diff --git a/packages/codegen/tsconfig.build.json b/packages/codegen/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/codegen/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/codegen/tsup.config.ts b/packages/codegen/tsup.config.ts index 06d25034..ebc21389 100644 --- a/packages/codegen/tsup.config.ts +++ b/packages/codegen/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/core/package.json b/packages/core/package.json index ed646d03..e08f6a3b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -46,7 +46,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc -p tsconfig.check.json", "typecheck": "tsc --noEmit" }, @@ -56,7 +56,7 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" }, "peerDependencies": { "zod": "^4.0.0" diff --git a/packages/core/tsconfig.build.json b/packages/core/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/core/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index feb8dfb2..6d98c468 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/store-utils.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["zod"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/devtools-react/package.json b/packages/devtools-react/package.json index 44d56865..a6efb120 100644 --- a/packages/devtools-react/package.json +++ b/packages/devtools-react/package.json @@ -39,7 +39,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -51,7 +51,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" }, "peerDependencies": { "react": "^19.2.3" diff --git a/packages/devtools-react/tsconfig.build.json b/packages/devtools-react/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/devtools-react/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/devtools-react/tsup.config.ts b/packages/devtools-react/tsup.config.ts index f527251c..9a668a63 100644 --- a/packages/devtools-react/tsup.config.ts +++ b/packages/devtools-react/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.tsx"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -14,4 +14,9 @@ export default defineConfig({ "react", "react-dom", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/devtools-solid/package.json b/packages/devtools-solid/package.json index b6069c84..9de6b004 100644 --- a/packages/devtools-solid/package.json +++ b/packages/devtools-solid/package.json @@ -40,7 +40,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -53,7 +53,7 @@ "esbuild-plugin-solid": "^0.6.0", "solid-js": "^1.9.0", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" }, "peerDependencies": { "solid-js": "^1.9.0" diff --git a/packages/devtools-solid/tsconfig.build.json b/packages/devtools-solid/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/devtools-solid/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/devtools-solid/tsup.config.ts b/packages/devtools-solid/tsup.config.ts index bf603f5a..830747db 100644 --- a/packages/devtools-solid/tsup.config.ts +++ b/packages/devtools-solid/tsup.config.ts @@ -1,10 +1,10 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; import { solidPlugin } from "esbuild-plugin-solid"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.tsx"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, esbuildPlugins: [solidPlugin({ solid: { generate: "dom" } })], @@ -15,4 +15,9 @@ export default defineConfig({ "@json-render/devtools", "@json-render/solid", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/devtools-vue/package.json b/packages/devtools-vue/package.json index d06e91bd..28d568bc 100644 --- a/packages/devtools-vue/package.json +++ b/packages/devtools-vue/package.json @@ -39,7 +39,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -50,7 +50,7 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "vue": "^3.5.0" }, "peerDependencies": { diff --git a/packages/devtools-vue/tsconfig.build.json b/packages/devtools-vue/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/devtools-vue/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/devtools-vue/tsup.config.ts b/packages/devtools-vue/tsup.config.ts index 61ef5fc0..ec78baa9 100644 --- a/packages/devtools-vue/tsup.config.ts +++ b/packages/devtools-vue/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -13,4 +13,9 @@ export default defineConfig({ "@json-render/vue", "vue", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/devtools/package.json b/packages/devtools/package.json index 0ace2f16..4c550f2b 100644 --- a/packages/devtools/package.json +++ b/packages/devtools/package.json @@ -38,7 +38,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -47,6 +47,6 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" } } diff --git a/packages/devtools/tsconfig.build.json b/packages/devtools/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/devtools/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/devtools/tsup.config.ts b/packages/devtools/tsup.config.ts index 09461712..5f6edd3b 100644 --- a/packages/devtools/tsup.config.ts +++ b/packages/devtools/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core", "@json-render/core/store-utils"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/directives/package.json b/packages/directives/package.json index 810a1535..3842778f 100644 --- a/packages/directives/package.json +++ b/packages/directives/package.json @@ -38,7 +38,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit", "test": "vitest run" }, @@ -48,7 +48,7 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "vitest": "^4.0.17", "zod": "^4.3.6" }, diff --git a/packages/directives/tsconfig.build.json b/packages/directives/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/directives/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/directives/tsup.config.ts b/packages/directives/tsup.config.ts index a3d9c360..3b32b98f 100644 --- a/packages/directives/tsup.config.ts +++ b/packages/directives/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core", "zod"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/image/package.json b/packages/image/package.json index 037abda2..a5d0d3a4 100644 --- a/packages/image/package.json +++ b/packages/image/package.json @@ -57,7 +57,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -69,7 +69,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.5.1", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/image/tsconfig.build.json b/packages/image/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/image/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/image/tsup.config.ts b/packages/image/tsup.config.ts index 55115a93..8f3d7add 100644 --- a/packages/image/tsup.config.ts +++ b/packages/image/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/server.ts", "src/catalog.ts", "src/render.tsx"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -14,4 +14,9 @@ export default defineConfig({ "react", "react/jsx-runtime", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/ink/package.json b/packages/ink/package.json index 5732339b..8e9dbe42 100644 --- a/packages/ink/package.json +++ b/packages/ink/package.json @@ -56,7 +56,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -69,7 +69,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/ink/tsconfig.build.json b/packages/ink/tsconfig.build.json new file mode 100644 index 00000000..f8d0d9c8 --- /dev/null +++ b/packages/ink/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./.types", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/ink/tsup.config.ts b/packages/ink/tsup.config.ts index f72696ff..6d015212 100644 --- a/packages/ink/tsup.config.ts +++ b/packages/ink/tsup.config.ts @@ -1,11 +1,20 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/schema.ts", "src/catalog.ts", "src/server.ts"], format: ["cjs", "esm"], - dts: { resolve: ["@internal/react-state"] }, sourcemap: true, clean: true, noExternal: ["@internal/react-state"], external: ["react", "ink", "@json-render/core", "zod"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + bundle: { + entries: ["index", "schema", "catalog", "server"], + resolve: ["@internal/react-state"], + }, + }); + }, +})); diff --git a/packages/jotai/package.json b/packages/jotai/package.json index a1c020b6..f2b5924d 100644 --- a/packages/jotai/package.json +++ b/packages/jotai/package.json @@ -36,7 +36,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit" }, "dependencies": { @@ -49,6 +49,6 @@ "@internal/typescript-config": "workspace:*", "jotai": "^2.18.0", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" } } diff --git a/packages/jotai/tsconfig.build.json b/packages/jotai/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/jotai/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/jotai/tsup.config.ts b/packages/jotai/tsup.config.ts index 5446bd27..7f47cafd 100644 --- a/packages/jotai/tsup.config.ts +++ b/packages/jotai/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core", "@json-render/core/store-utils", "jotai"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 41942fe2..9579e9be 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -54,7 +54,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -66,7 +66,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" }, "peerDependencies": { "react": "^19.0.0", diff --git a/packages/mcp/tsconfig.build.json b/packages/mcp/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/mcp/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/mcp/tsup.config.ts b/packages/mcp/tsup.config.ts index 37a7c364..a240aaaf 100644 --- a/packages/mcp/tsup.config.ts +++ b/packages/mcp/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/app.ts", "src/build-app-html-entry.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -14,4 +14,9 @@ export default defineConfig({ "@modelcontextprotocol/sdk", "@modelcontextprotocol/ext-apps", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/next/package.json b/packages/next/package.json index 6858c8eb..998dd71b 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -49,7 +49,7 @@ ], "scripts": { "build": "rm -rf dist && tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -62,7 +62,7 @@ "@types/react": "19.2.14", "next": "16.2.1", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" }, "peerDependencies": { "next": "^16.2.0", diff --git a/packages/next/tsconfig.build.json b/packages/next/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/next/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/next/tsup.config.ts b/packages/next/tsup.config.ts index ecf9aab5..51cc861e 100644 --- a/packages/next/tsup.config.ts +++ b/packages/next/tsup.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; const sharedExternal = [ "react", @@ -10,23 +11,26 @@ const sharedExternal = [ "@json-render/react", ]; -export default defineConfig([ +export default defineConfig((options) => [ { entry: { index: "src/index.ts", "page-renderer-client": "src/page-renderer-client.tsx", }, format: ["cjs", "esm"], - dts: true, sourcemap: true, splitting: true, banner: { js: '"use client";' }, external: sharedExternal, + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, }, { entry: { server: "src/server.ts" }, format: ["cjs", "esm"], - dts: true, sourcemap: true, splitting: false, external: [...sharedExternal, /page-renderer-client/], diff --git a/packages/react-email/package.json b/packages/react-email/package.json index 5844e6d2..4f0d07ae 100644 --- a/packages/react-email/package.json +++ b/packages/react-email/package.json @@ -55,7 +55,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -68,7 +68,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.0.0" }, "peerDependencies": { diff --git a/packages/react-email/tsconfig.build.json b/packages/react-email/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/react-email/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/react-email/tsup.config.ts b/packages/react-email/tsup.config.ts index e9c786b4..f1763625 100644 --- a/packages/react-email/tsup.config.ts +++ b/packages/react-email/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/server.ts", "src/catalog.ts", "src/render.tsx"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -13,4 +13,9 @@ export default defineConfig({ "@react-email/render", "zod", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/react-native/package.json b/packages/react-native/package.json index f74c814a..87974d23 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -51,7 +51,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -64,7 +64,7 @@ "@types/react": "19.2.3", "react-native": "0.83.1", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/react-native/tsconfig.build.json b/packages/react-native/tsconfig.build.json new file mode 100644 index 00000000..f8d0d9c8 --- /dev/null +++ b/packages/react-native/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./.types", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/react-native/tsup.config.ts b/packages/react-native/tsup.config.ts index b87233de..b364e227 100644 --- a/packages/react-native/tsup.config.ts +++ b/packages/react-native/tsup.config.ts @@ -1,11 +1,20 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/schema.ts", "src/catalog.ts"], format: ["cjs", "esm"], - dts: { resolve: ["@internal/react-state"] }, sourcemap: true, clean: true, noExternal: ["@internal/react-state"], external: ["react", "react-native", "@json-render/core", "zod"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + bundle: { + entries: ["index", "schema", "catalog"], + resolve: ["@internal/react-state"], + }, + }); + }, +})); diff --git a/packages/react-pdf/package.json b/packages/react-pdf/package.json index 22bba796..72b3a43b 100644 --- a/packages/react-pdf/package.json +++ b/packages/react-pdf/package.json @@ -55,7 +55,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -68,7 +68,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/react-pdf/tsconfig.build.json b/packages/react-pdf/tsconfig.build.json new file mode 100644 index 00000000..f8d0d9c8 --- /dev/null +++ b/packages/react-pdf/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./.types", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/react-pdf/tsup.config.ts b/packages/react-pdf/tsup.config.ts index daf3a03b..c8b22505 100644 --- a/packages/react-pdf/tsup.config.ts +++ b/packages/react-pdf/tsup.config.ts @@ -1,11 +1,20 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/server.ts", "src/catalog.ts", "src/render.tsx"], format: ["cjs", "esm"], - dts: { resolve: ["@internal/react-state"] }, sourcemap: true, clean: true, noExternal: ["@internal/react-state"], external: ["react", "@json-render/core", "@react-pdf/renderer", "zod"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + bundle: { + entries: ["index", "server", "catalog", "render"], + resolve: ["@internal/react-state"], + }, + }); + }, +})); diff --git a/packages/react-state/package.json b/packages/react-state/package.json index 8ac8086e..7c242697 100644 --- a/packages/react-state/package.json +++ b/packages/react-state/package.json @@ -19,7 +19,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "test": "vitest run" }, @@ -33,7 +33,7 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0" diff --git a/packages/react-state/tsconfig.build.json b/packages/react-state/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/react-state/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/react-state/tsup.config.ts b/packages/react-state/tsup.config.ts index f40e9146..6392db8f 100644 --- a/packages/react-state/tsup.config.ts +++ b/packages/react-state/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.tsx"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core", "@json-render/core/store-utils", "react"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/react-three-fiber/package.json b/packages/react-three-fiber/package.json index df68e48e..315f00df 100644 --- a/packages/react-three-fiber/package.json +++ b/packages/react-three-fiber/package.json @@ -50,7 +50,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -67,7 +67,7 @@ "@types/three": "^0.183.1", "three": "^0.183.2", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/react-three-fiber/tsconfig.build.json b/packages/react-three-fiber/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/react-three-fiber/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/react-three-fiber/tsup.config.ts b/packages/react-three-fiber/tsup.config.ts index 0db1f2f4..6c0c632e 100644 --- a/packages/react-three-fiber/tsup.config.ts +++ b/packages/react-three-fiber/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/catalog.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -16,4 +16,9 @@ export default defineConfig({ "three", "zod", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/react/package.json b/packages/react/package.json index 5a4983c9..55d7dfa0 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -46,7 +46,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -57,7 +57,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/react/tsconfig.build.json b/packages/react/tsconfig.build.json new file mode 100644 index 00000000..f8d0d9c8 --- /dev/null +++ b/packages/react/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./.types", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/react/tsup.config.ts b/packages/react/tsup.config.ts index 2eb9cb39..e172f803 100644 --- a/packages/react/tsup.config.ts +++ b/packages/react/tsup.config.ts @@ -1,11 +1,20 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/schema.ts"], format: ["cjs", "esm"], - dts: { resolve: ["@internal/react-state"] }, sourcemap: true, clean: true, noExternal: ["@internal/react-state"], external: ["react", "react-dom", "@json-render/core"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + bundle: { + entries: ["index", "schema"], + resolve: ["@internal/react-state"], + }, + }); + }, +})); diff --git a/packages/redux/package.json b/packages/redux/package.json index 18de8bdf..ed3e53e8 100644 --- a/packages/redux/package.json +++ b/packages/redux/package.json @@ -36,7 +36,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit" }, "dependencies": { @@ -59,6 +59,6 @@ "@internal/typescript-config": "workspace:*", "redux": "^5.0.1", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^7.0.2" } } diff --git a/packages/redux/tsconfig.build.json b/packages/redux/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/redux/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/redux/tsup.config.ts b/packages/redux/tsup.config.ts index 8b3728a9..0b4fc30d 100644 --- a/packages/redux/tsup.config.ts +++ b/packages/redux/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -12,4 +12,9 @@ export default defineConfig({ "redux", "@reduxjs/toolkit", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/remotion/package.json b/packages/remotion/package.json index 1d116769..17d54809 100644 --- a/packages/remotion/package.json +++ b/packages/remotion/package.json @@ -46,7 +46,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -58,7 +58,7 @@ "@types/react": "19.2.3", "remotion": "4.0.418", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/remotion/tsconfig.build.json b/packages/remotion/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/remotion/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/remotion/tsup.config.ts b/packages/remotion/tsup.config.ts index ca9d75e5..512fc1e3 100644 --- a/packages/remotion/tsup.config.ts +++ b/packages/remotion/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/server.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["react", "react-dom", "remotion", "@json-render/core", "zod"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/shadcn/package.json b/packages/shadcn/package.json index 34f40847..9297ee41 100644 --- a/packages/shadcn/package.json +++ b/packages/shadcn/package.json @@ -49,7 +49,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -68,7 +68,7 @@ "@internal/typescript-config": "workspace:*", "@types/react": "19.2.3", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/shadcn/tsconfig.build.json b/packages/shadcn/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/shadcn/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/shadcn/tsup.config.ts b/packages/shadcn/tsup.config.ts index 36d04bc7..d2b94c88 100644 --- a/packages/shadcn/tsup.config.ts +++ b/packages/shadcn/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/catalog.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -13,4 +13,9 @@ export default defineConfig({ "@json-render/react", "zod", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/solid/package.json b/packages/solid/package.json index 6ad59c18..4180051d 100644 --- a/packages/solid/package.json +++ b/packages/solid/package.json @@ -47,7 +47,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -59,7 +59,7 @@ "esbuild-plugin-solid": "^0.6.0", "solid-js": "^1.9.0", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/solid/src/contexts/repeat-scope.tsx b/packages/solid/src/contexts/repeat-scope.tsx index 5bb1ff29..262dcc20 100644 --- a/packages/solid/src/contexts/repeat-scope.tsx +++ b/packages/solid/src/contexts/repeat-scope.tsx @@ -1,4 +1,9 @@ -import { createContext, useContext, type ParentProps } from "solid-js"; +import { + createContext, + useContext, + type ParentProps, + type JSX, +} from "solid-js"; export interface RepeatScopeValue { item: unknown; @@ -8,7 +13,9 @@ export interface RepeatScopeValue { const RepeatScopeContext = createContext(null); -export function RepeatScopeProvider(props: ParentProps) { +export function RepeatScopeProvider( + props: ParentProps, +): JSX.Element { return ( ) { +export function StateProvider( + props: ParentProps, +): JSX.Element { let internalStore: StateStore | undefined; if (!props.store) { internalStore = createStateStore(props.initialState ?? {}); diff --git a/packages/solid/src/contexts/validation.tsx b/packages/solid/src/contexts/validation.tsx index f2077d19..68b433c3 100644 --- a/packages/solid/src/contexts/validation.tsx +++ b/packages/solid/src/contexts/validation.tsx @@ -6,6 +6,7 @@ import { createMemo, type Accessor, type ParentProps, + type JSX, } from "solid-js"; import { runValidation, @@ -92,7 +93,7 @@ function validationConfigEqual( export function ValidationProvider( props: ParentProps, -) { +): JSX.Element { const { getSnapshot } = useStateStore(); const customFunctions = () => props.customFunctions ?? {}; diff --git a/packages/solid/src/contexts/visibility.tsx b/packages/solid/src/contexts/visibility.tsx index c3ba48fa..1a5b82e6 100644 --- a/packages/solid/src/contexts/visibility.tsx +++ b/packages/solid/src/contexts/visibility.tsx @@ -1,4 +1,9 @@ -import { createContext, useContext, type ParentProps } from "solid-js"; +import { + createContext, + useContext, + type ParentProps, + type JSX, +} from "solid-js"; import { evaluateVisibility, type VisibilityCondition, @@ -15,7 +20,9 @@ const VisibilityContext = createContext(null); export type VisibilityProviderProps = ParentProps; -export function VisibilityProvider(props: VisibilityProviderProps) { +export function VisibilityProvider( + props: VisibilityProviderProps, +): JSX.Element { const stateStore = useStateStore(); const visibilityCtx: CoreVisibilityContext = { diff --git a/packages/solid/tsconfig.build.json b/packages/solid/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/solid/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/solid/tsup.config.ts b/packages/solid/tsup.config.ts index 1c529859..81061de7 100644 --- a/packages/solid/tsup.config.ts +++ b/packages/solid/tsup.config.ts @@ -1,12 +1,17 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; import { solidPlugin } from "esbuild-plugin-solid"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/schema.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, esbuildPlugins: [solidPlugin({ solid: { generate: "dom" } })], external: ["solid-js", "@json-render/core"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/tanstack-start/package.json b/packages/tanstack-start/package.json index b2f5d4b5..5b4ab70f 100644 --- a/packages/tanstack-start/package.json +++ b/packages/tanstack-start/package.json @@ -55,7 +55,7 @@ ], "scripts": { "build": "rm -rf dist && tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit", "typecheck": "tsc --noEmit" }, @@ -68,7 +68,7 @@ "@tanstack/react-router": "1.170.32", "@types/react": "19.2.14", "tsup": "^8.5.1", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zod": "^4.3.6" }, "peerDependencies": { diff --git a/packages/tanstack-start/tsconfig.build.json b/packages/tanstack-start/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/tanstack-start/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/tanstack-start/tsup.config.ts b/packages/tanstack-start/tsup.config.ts index 568509eb..3612aa21 100644 --- a/packages/tanstack-start/tsup.config.ts +++ b/packages/tanstack-start/tsup.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; const sharedExternal = [ "react", @@ -9,20 +10,23 @@ const sharedExternal = [ "zod", ]; -export default defineConfig([ +export default defineConfig((options) => [ { entry: { index: "src/index.ts" }, format: ["cjs", "esm"], - dts: true, sourcemap: true, splitting: false, banner: ({ format }) => (format === "cjs" ? { js: '"use client";' } : {}), external: sharedExternal, + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, }, { entry: { server: "src/server.ts", catalog: "src/catalog.ts" }, format: ["cjs", "esm"], - dts: true, sourcemap: true, splitting: false, external: sharedExternal, diff --git a/packages/ui/.oxlintrc.json b/packages/ui/.oxlintrc.json new file mode 100644 index 00000000..47af568e --- /dev/null +++ b/packages/ui/.oxlintrc.json @@ -0,0 +1,228 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["react", "typescript"], + "categories": { + "correctness": "off" + }, + "env": { + "serviceworker": true, + "browser": true + }, + "ignorePatterns": ["dist/**"], + "rules": { + "for-direction": "error", + "no-array-constructor": "error", + "no-async-promise-executor": "error", + "no-case-declarations": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": ["error", "except-parens"], + "no-constant-binary-expression": "error", + "no-constant-condition": [ + "error", + { + "checkLoops": "allExceptWhileTrue" + } + ], + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-else-if": "error", + "no-duplicate-case": "error", + "no-empty": [ + "error", + { + "allowEmptyCatch": false + } + ], + "no-empty-character-class": "error", + "no-empty-pattern": [ + "error", + { + "allowObjectPatternsAsParameters": false + } + ], + "no-empty-static-block": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": ["error", {}], + "no-fallthrough": [ + "error", + { + "allowEmptyCase": false, + "reportUnusedFallthroughComment": false + } + ], + "no-global-assign": [ + "error", + { + "exceptions": [] + } + ], + "no-invalid-regexp": ["error", {}], + "no-irregular-whitespace": [ + "error", + { + "skipComments": false, + "skipJSXText": false, + "skipRegExps": false, + "skipStrings": true, + "skipTemplates": false + } + ], + "no-loss-of-precision": "error", + "no-misleading-character-class": [ + "error", + { + "allowEscape": false + } + ], + "no-nonoctal-decimal-escape": "error", + "no-prototype-builtins": "error", + "no-regex-spaces": "error", + "no-self-assign": [ + "error", + { + "props": true + } + ], + "no-shadow-restricted-names": [ + "error", + { + "reportGlobalThis": false + } + ], + "no-sparse-arrays": "error", + "no-unsafe-finally": "error", + "no-unsafe-optional-chaining": [ + "error", + { + "disallowArithmeticOperators": false + } + ], + "no-unused-expressions": [ + "error", + { + "allowShortCircuit": false, + "allowTaggedTemplates": false, + "allowTernary": false + } + ], + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-unused-vars": "error", + "no-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": [ + "error", + { + "allowRegexCharacters": [] + } + ], + "no-var": "error", + "prefer-const": [ + "error", + { + "destructuring": "any", + "ignoreReadBeforeAssign": false + } + ], + "prefer-rest-params": "error", + "prefer-spread": "error", + "react/display-name": "error", + "react/exhaustive-deps": "warn", + "react/jsx-key": "error", + "react/jsx-no-comment-textnodes": "error", + "react/jsx-no-duplicate-props": "error", + "react/jsx-no-target-blank": "error", + "react/jsx-no-undef": "error", + "react/no-children-prop": "error", + "react/no-danger-with-children": "error", + "react/no-direct-mutation-state": "error", + "react/no-find-dom-node": "error", + "react/no-is-mounted": "error", + "react/no-render-return-value": "error", + "react/no-string-refs": "error", + "react/no-unescaped-entities": "error", + "react/no-unknown-property": "error", + "react/require-render-return": "error", + "react/rules-of-hooks": "error", + "require-yield": "error", + "typescript/ban-ts-comment": "error", + "typescript/no-duplicate-enum-values": "error", + "typescript/no-empty-object-type": "error", + "typescript/no-explicit-any": "error", + "typescript/no-extra-non-null-assertion": "error", + "typescript/no-misused-new": "error", + "typescript/no-namespace": "error", + "typescript/no-non-null-asserted-optional-chain": "error", + "typescript/no-require-imports": "error", + "typescript/no-this-alias": "error", + "typescript/no-unnecessary-type-constraint": "error", + "typescript/no-unsafe-declaration-merging": "error", + "typescript/no-unsafe-function-type": "error", + "typescript/no-wrapper-object-types": "error", + "typescript/prefer-as-const": "error", + "typescript/prefer-namespace-keyword": "error", + "typescript/triple-slash-reference": "error", + "use-isnan": [ + "error", + { + "enforceForIndexOf": false, + "enforceForSwitchCase": true + } + ], + "valid-typeof": [ + "error", + { + "requireStringLiterals": false + } + ] + }, + "overrides": [ + { + "files": ["**/*.js", "**/*.mjs", "**/*.cjs"], + "rules": { + "constructor-super": "error", + "getter-return": [ + "error", + { + "allowImplicit": false + } + ], + "no-class-assign": "error", + "no-const-assign": "error", + "no-dupe-class-members": "error", + "no-dupe-keys": "error", + "no-func-assign": "error", + "no-import-assign": "error", + "no-new-native-nonconstructor": "error", + "no-obj-calls": "error", + "no-redeclare": [ + "error", + { + "builtinGlobals": true + } + ], + "no-setter-return": "error", + "no-this-before-super": "error", + "no-undef": [ + "error", + { + "typeof": false + } + ], + "no-unreachable": "error", + "no-unsafe-negation": [ + "error", + { + "enforceForOrderingRelations": false + } + ], + "no-var": "off", + "no-with": "error", + "prefer-const": "off", + "prefer-rest-params": "off", + "prefer-spread": "off" + } + } + ] +} diff --git a/packages/ui/eslint.config.mjs b/packages/ui/eslint.config.mjs deleted file mode 100644 index 5b0a1305..00000000 --- a/packages/ui/eslint.config.mjs +++ /dev/null @@ -1,4 +0,0 @@ -import { config } from "@internal/eslint-config/react-internal"; - -/** @type {import("eslint").Linter.Config} */ -export default config; diff --git a/packages/ui/package.json b/packages/ui/package.json index 615aba2b..9f7e0189 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -7,18 +7,17 @@ "./*": "./src/*.tsx" }, "scripts": { - "lint": "eslint . --max-warnings 0", + "lint": "oxlint --deny-warnings", "generate:component": "turbo gen react-component", "check-types": "tsc --noEmit" }, "devDependencies": { - "@internal/eslint-config": "workspace:*", "@internal/typescript-config": "workspace:*", "@types/node": "^22.15.3", "@types/react": "19.2.3", "@types/react-dom": "19.2.3", - "eslint": "^9.39.1", - "typescript": "5.9.2" + "oxlint": "^1.91.0", + "typescript": "7.0.2" }, "dependencies": { "react": "19.2.3", diff --git a/packages/vue/package.json b/packages/vue/package.json index 342c47c1..d32853f9 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -46,7 +46,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit" }, "dependencies": { @@ -56,7 +56,7 @@ "@internal/typescript-config": "workspace:*", "@vue/test-utils": "^2.4.6", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "vue": "^3.5.0" }, "peerDependencies": { diff --git a/packages/vue/tsconfig.build.json b/packages/vue/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/vue/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/vue/tsup.config.ts b/packages/vue/tsup.config.ts index f5b66445..31a2e208 100644 --- a/packages/vue/tsup.config.ts +++ b/packages/vue/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts", "src/schema.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["vue", "@json-render/core"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/xstate/package.json b/packages/xstate/package.json index 6c9173f3..5c5de0ca 100644 --- a/packages/xstate/package.json +++ b/packages/xstate/package.json @@ -37,7 +37,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit" }, "dependencies": { @@ -49,7 +49,7 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "@xstate/store": "^3.0.0" } } diff --git a/packages/xstate/tsconfig.build.json b/packages/xstate/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/xstate/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/xstate/tsup.config.ts b/packages/xstate/tsup.config.ts index 723e8e60..93e4c163 100644 --- a/packages/xstate/tsup.config.ts +++ b/packages/xstate/tsup.config.ts @@ -1,9 +1,9 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: [ @@ -11,4 +11,9 @@ export default defineConfig({ "@json-render/core/store-utils", "@xstate/store", ], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/yaml/package.json b/packages/yaml/package.json index 82eaf192..e5694dc6 100644 --- a/packages/yaml/package.json +++ b/packages/yaml/package.json @@ -40,7 +40,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "typecheck": "tsc --noEmit", "test": "vitest run" }, @@ -52,7 +52,7 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "vitest": "^4.0.17", "zod": "^4.3.6" } diff --git a/packages/yaml/tsconfig.build.json b/packages/yaml/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/yaml/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/yaml/tsup.config.ts b/packages/yaml/tsup.config.ts index d94143eb..289a0805 100644 --- a/packages/yaml/tsup.config.ts +++ b/packages/yaml/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core", "yaml", "diff"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/packages/zustand/package.json b/packages/zustand/package.json index e945f325..c11aae76 100644 --- a/packages/zustand/package.json +++ b/packages/zustand/package.json @@ -36,7 +36,7 @@ ], "scripts": { "build": "tsup", - "dev": "tsup --watch", + "dev": "tsup --watch src", "check-types": "tsc --noEmit" }, "dependencies": { @@ -48,7 +48,7 @@ "devDependencies": { "@internal/typescript-config": "workspace:*", "tsup": "^8.0.2", - "typescript": "^5.4.5", + "typescript": "^7.0.2", "zustand": "^5.0.11" } } diff --git a/packages/zustand/tsconfig.build.json b/packages/zustand/tsconfig.build.json new file mode 100644 index 00000000..1ebdefdd --- /dev/null +++ b/packages/zustand/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "noEmit": false, + "emitDeclarationOnly": true, + "declarationMap": false + }, + "include": ["src"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts", "src/**/*.test.tsx"] +} diff --git a/packages/zustand/tsup.config.ts b/packages/zustand/tsup.config.ts index 658e72f1..fd36f645 100644 --- a/packages/zustand/tsup.config.ts +++ b/packages/zustand/tsup.config.ts @@ -1,10 +1,15 @@ import { defineConfig } from "tsup"; +import { emitTypes } from "../../scripts/emit-types.mjs"; -export default defineConfig({ +export default defineConfig((options) => ({ entry: ["src/index.ts"], format: ["cjs", "esm"], - dts: true, sourcemap: true, clean: true, external: ["@json-render/core", "@json-render/core/store-utils", "zustand"], -}); + onSuccess: async () => { + await emitTypes(__dirname, { + watch: Boolean(options.watch), + }); + }, +})); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a07ad03e..ee753ce1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: overrides: '@streamdown/code@1.0.2>shiki': 3.23.0 -packageExtensionsChecksum: sha256-nJbZNBEiYXlSOKDgGB1CuJFmrahg3AAn1PUJaodWia0= +packageExtensionsChecksum: sha256-afcHVOmG4Gq5YzKoAzRBI+tYiFyuH79AroZBFVJzD0Y= patchedDependencies: next@16.3.4: a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550 @@ -33,7 +33,7 @@ importers: version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@testing-library/svelte': specifier: ^5.2.0 - version: 5.3.1(svelte@5.53.5)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))(vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 5.3.1(svelte@5.53.5)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))(vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) '@types/react': specifier: ^19.2.3 version: 19.2.14 @@ -55,6 +55,12 @@ importers: react-dom: specifier: ^19.2.4 version: 19.2.4(react@19.2.4) + rolldown: + specifier: 1.2.16 + version: 1.2.16 + rolldown-plugin-dts: + specifier: 0.29.0 + version: 0.29.0(@volar/typescript@2.4.28)(@vue/language-core@3.2.5)(rolldown@1.2.16)(typescript@7.0.2)(vue-tsc@3.2.5(typescript@7.0.2)) satori: specifier: 0.25.0 version: 0.25.0 @@ -68,14 +74,14 @@ importers: specifier: ^2.9.7 version: 2.9.7 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 7.0.2 + version: 7.0.2 vite-plugin-solid: specifier: ^2.11.10 version: 2.11.10(solid-js@1.9.11)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.17 - version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) apps/web: dependencies: @@ -123,13 +129,13 @@ importers: version: 1.36.1 '@vercel/analytics': specifier: ^1.6.1 - version: 1.6.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@5.9.2)) + version: 1.6.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@7.0.2)) '@vercel/geistdocs': specifier: 2.7.5 - version: 2.7.5(acd6df1938ede189d62e02c942e2cf67) + version: 2.7.5(acf1d801867d1f397470a2431e532453) '@vercel/speed-insights': specifier: ^1.3.1 - version: 1.3.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@5.9.2)) + version: 1.3.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@7.0.2)) '@visual-json/react': specifier: 0.1.1 version: 0.1.1(react@19.2.3) @@ -209,9 +215,6 @@ importers: specifier: ^4.3.6 version: 4.3.6 devDependencies: - '@internal/eslint-config': - specifier: workspace:* - version: link:../../packages/eslint-config '@internal/typescript-config': specifier: workspace:* version: link:../../packages/typescript-config @@ -230,9 +233,9 @@ importers: '@types/react-dom': specifier: 19.2.3 version: 19.2.3(@types/react@19.2.3) - eslint: - specifier: ^9.39.1 - version: 9.39.2(jiti@2.7.0) + oxlint: + specifier: ^1.91.0 + version: 1.91.0 postcss: specifier: ^8.5.6 version: 8.5.6 @@ -243,8 +246,8 @@ importers: specifier: ^1.4.0 version: 1.4.0 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 7.0.2 + version: 7.0.2 examples/chat: dependencies: @@ -1909,10 +1912,10 @@ importers: version: 4.43.0(ai@6.0.94(zod@4.3.6))(zod@4.3.6) tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.0.0 version: 4.3.6 @@ -1928,10 +1931,10 @@ importers: version: link:../typescript-config tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/core: dependencies: @@ -1944,10 +1947,10 @@ importers: version: link:../typescript-config tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/devtools: dependencies: @@ -1960,10 +1963,10 @@ importers: version: link:../typescript-config tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/devtools-react: dependencies: @@ -1988,10 +1991,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/devtools-solid: dependencies: @@ -2016,10 +2019,10 @@ importers: version: 1.9.11 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/devtools-svelte: dependencies: @@ -2069,13 +2072,13 @@ importers: version: link:../typescript-config tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 vue: specifier: ^3.5.0 - version: 3.5.29(typescript@5.9.3) + version: 3.5.29(typescript@7.0.2) packages/directives: dependencies: @@ -2088,13 +2091,13 @@ importers: version: link:../typescript-config tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 vitest: specifier: ^4.0.17 - version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) zod: specifier: ^4.3.6 version: 4.3.6 @@ -2158,10 +2161,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2192,10 +2195,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2214,10 +2217,10 @@ importers: version: 2.18.0(@babel/core@7.29.0)(@babel/template@7.28.6)(@types/react@19.2.14)(react@19.2.4) tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/mcp: dependencies: @@ -2245,10 +2248,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/next: dependencies: @@ -2273,10 +2276,10 @@ importers: version: 16.2.1(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/react: dependencies: @@ -2298,10 +2301,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2329,10 +2332,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.0.0 version: 4.3.6 @@ -2360,10 +2363,10 @@ importers: version: 0.83.1(@babel/core@7.29.0)(@types/react@19.2.3)(react@19.2.4) tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2391,10 +2394,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2422,10 +2425,10 @@ importers: version: 19.2.4(react@19.2.4) tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/react-three-fiber: dependencies: @@ -2462,10 +2465,10 @@ importers: version: 0.183.2 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2487,10 +2490,10 @@ importers: version: 5.0.1 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/remotion: dependencies: @@ -2512,10 +2515,10 @@ importers: version: 4.0.418(react-dom@19.2.4(react@19.2.4))(react@19.2.4) tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2567,10 +2570,10 @@ importers: version: 19.2.3 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2656,10 +2659,10 @@ importers: version: 1.9.11 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2715,10 +2718,10 @@ importers: version: 19.2.14 tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zod: specifier: ^4.3.6 version: 4.3.6 @@ -2734,9 +2737,6 @@ importers: specifier: 19.2.3 version: 19.2.3(react@19.2.3) devDependencies: - '@internal/eslint-config': - specifier: workspace:* - version: link:../eslint-config '@internal/typescript-config': specifier: workspace:* version: link:../typescript-config @@ -2749,12 +2749,12 @@ importers: '@types/react-dom': specifier: 19.2.3 version: 19.2.3(@types/react@19.2.3) - eslint: - specifier: ^9.39.1 - version: 9.39.2(jiti@2.7.0) + oxlint: + specifier: ^1.91.0 + version: 1.91.0 typescript: - specifier: 5.9.2 - version: 5.9.2 + specifier: 7.0.2 + version: 7.0.2 packages/vue: dependencies: @@ -2773,13 +2773,13 @@ importers: version: 2.4.6 tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 vue: specifier: ^3.5.0 - version: 3.5.29(typescript@5.9.3) + version: 3.5.29(typescript@7.0.2) packages/xstate: dependencies: @@ -2795,10 +2795,10 @@ importers: version: 3.15.0(react@19.2.4)(solid-js@1.9.11) tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 packages/yaml: dependencies: @@ -2817,13 +2817,13 @@ importers: version: link:../typescript-config tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.8.2) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 vitest: specifier: ^4.0.17 - version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) zod: specifier: ^4.3.6 version: 4.3.6 @@ -2839,10 +2839,10 @@ importers: version: link:../typescript-config tsup: specifier: ^8.0.2 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0) typescript: - specifier: ^5.4.5 - version: 5.9.3 + specifier: ^7.0.2 + version: 7.0.2 zustand: specifier: ^5.0.11 version: 5.0.11(@types/react@19.2.14)(immer@11.1.4)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)) @@ -2893,7 +2893,7 @@ importers: version: 5.0.1 vitest: specifier: ^4.0.17 - version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) zod: specifier: ^4.3.6 version: 4.3.6 @@ -5748,6 +5748,131 @@ packages: resolution: {integrity: sha512-Ra4dFddWZ7hCGPAehnd/6QZjlzQvczYSt1y1Fq4HteJqRu2yvfR6fXvxiUnKi+HIgJYPxKhebJEjvJdF8LYQWg==} engines: {node: '>= 20.0.0'} + '@oxc-project/types@0.156.0': + resolution: {integrity: sha512-1Duyg48TdJNdyhEB8Xn1L36bT9Pv6GUtlKjHxOys8xkaF/rQq3XJE+bAurSK/AgIz5mGFsb77cn9Pb20+WCScw==} + + '@oxlint/binding-android-arm-eabi@1.91.0': + resolution: {integrity: sha512-eOqJUUS1MCqIoUUxMIkuwaqIdKaHr1SXYA0CQI95UUrF8jwQylQH33bBmnqhZfvWXKlRB2Ylx/+Sbk/ctEqzZQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.91.0': + resolution: {integrity: sha512-vIJU4lRxK0EhbBt+iR3rkq3pio4I+V5Gshwjei3plNjN+CIq0WxWHzYVI06J9KN8Ar3hyNSFtzJAjVRLZOYpjg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.91.0': + resolution: {integrity: sha512-tLy76MurwAOpQt5QVMkJUgexBSWhB7qdvAYb14bc0xntZS6f55aKicbZoxZ/QlmAbnrdlXeD5+IjwY8EZ9RWTg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.91.0': + resolution: {integrity: sha512-zPeMmjAqm5vXxbTp/JqYuc9gGSbUuEaeCAkFHB4TCRLTlfJGD//Fkx03YvZHCHZJ7ideLiiLcae+3f2I27qnaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.91.0': + resolution: {integrity: sha512-psOR9+xGMXn0hj4KY5M2kjSQ1n0TCMdYbPOraoV0iQyl7mw2oBBYGUM2+ma40m1YLVrktTBOta4FjrmcOHDhrg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.91.0': + resolution: {integrity: sha512-1PNA1j4ETxawvxfz6ueDxWgQgWkXPbv44DWZmC7LR07GqojGFDOwWbosOT6/AYiJr7zMXEhn2dPWMkyFFOFpUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.91.0': + resolution: {integrity: sha512-jcNePVpca37lTbHmiPMnVbPAAW0rH9kAoDjsDv6vESEX9pzazIR1q5SyYuc1rQzdjHtc2VVCDN9jDh6tHcOHyA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.91.0': + resolution: {integrity: sha512-TJi78UX6R+9qZ23ZKtzN6adfW83bjY0NXsCRMBRH6H7IizaMXmZbdRAtjedMkx77bT46YQH0csawsY9lwha8MA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.91.0': + resolution: {integrity: sha512-OowlLroUTzKq5OBvbu6iegch8SJ2DivXFCukzPWURwvcJhMj7/P0CUGH5qrDlxT1Kh48dcxqYqrvE8qK6xTLKQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.91.0': + resolution: {integrity: sha512-QF/5Ge8yGpWg5s4awMNHfVKh1WOmk591Qg082i6CHenXYBa+W1E5RwWZXaKUOw4Ko7CCjqg3TfBc0AzhnqblYg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.91.0': + resolution: {integrity: sha512-dXlsKlNhzJQX1nageGKnvWe1D7uTng249hQM80CG/YPZ8F/VZHbxVLhImgurdWBOmu86XOemValLjrW6QIOM/Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.91.0': + resolution: {integrity: sha512-tznkj5VrWNRUfymkaLcJetgMLbP9suL5ob/m7j0Fdbnm5u3Li/Ezo/YcBixiuwdL1sg0oGpyTe86It0J6T+Lxg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.91.0': + resolution: {integrity: sha512-sNvfLiUYQkVsLNUgIW24AEYTHSd2zZ1vAxXssPdjuQHTtCpRvQihYri6d5z5FY7w/QrcnB5+g9E+/sqmZq8tfA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.91.0': + resolution: {integrity: sha512-eA25ETvimhUZ89y5BcunNY7yv7qwG2I7V7dFQAU+mIEqZ57gBCXdIERl0yXOEt43zjsw0yK2gRKTc+twF706wQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.91.0': + resolution: {integrity: sha512-4hZ4Z9K+OkcTpAHDoUTMg/8MModbM0aocrl9KnGzp9h5iKqjrXraEUZorYoVCT7xoK93CAHXgTndxRBrOjH/fA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.91.0': + resolution: {integrity: sha512-gtqn4b0kLpGe46Qh7NHiR86wZpd+TLaesO106s7V3RG33r63VB94LW5qPKEDJX64osh3xfjnPFn1M0484bC7wQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.91.0': + resolution: {integrity: sha512-KQItBdsyHN28U3z/bEek6h9pvG3Uqv564QYO8K1bE/V7YRZgpHlRnfNKVPHkk4sfYKyPzEjCgW80QkImOLvJog==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.91.0': + resolution: {integrity: sha512-XFKqbbsQVmTgw+CyBKuzSZtAa45viom1naFfulKmkTFdDyDaBQaBqEz5J61TI8iwBynU+F8q7qPD+9mplZRhEg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.91.0': + resolution: {integrity: sha512-DmpK0PthG66Bcz5Y4JqNbzXltzyLQtg3ofYpd25+ejm7kQYUM78VL1uIP/ZFct2781mwUyBX37LatFPCTVp35A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -7844,12 +7969,111 @@ packages: resolution: {integrity: sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==} engines: {node: '>= 10'} + '@rolldown/binding-android-arm-eabi@1.2.16': + resolution: {integrity: sha512-ia3DwAs0OsMGS7+IConptSiyk9pEXkOx/AbJ2n/lAGxH3QkWQus1t8d7gnAT38FCU2sQu8lUbeR6AiZFv4JxaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@rolldown/binding-android-arm64@1.2.16': + resolution: {integrity: sha512-kx5wBiMB6E7TEvpl2B9gjLU004BkvEm2Dr941BFjx/SontPwSzNuQUIoVKxHHoSjpFIfHMmcguyLOtyn0hObRg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.2.16': + resolution: {integrity: sha512-qslZrXnKJU4cUpjoAmtAo/KQM9e2IRMlmpig6Zpwj+8KWxW8v+nkAf9216Bsek9lOC1jvg2yCjygCFo2f83msQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.2.16': + resolution: {integrity: sha512-FdF+y48ND13eAyM2mQn+85kvAqNlvRWROy2rhgA463X/0Gv4vGtazZtfaF1mRBLscYvtOlh4QnLjOWiFzX69OQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.2.16': + resolution: {integrity: sha512-ddjqFM5e95AgLbUPtKIS7V1KTVlA0RUgCVr5mn+/IEhsdy3pr+Vuj/HZ7nlMN2FyxIwUktOH1LEPIQXO1v9y1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.2.16': + resolution: {integrity: sha512-tHdKWbFkFBI687iim3LIyIvyL7j66VvQYkDPss5Stn/qyE2tWkR1YD0dXmXPFKKqT/o5ZEJVsaRsWS2meQwGOA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.2.16': + resolution: {integrity: sha512-FJiLGAblPBMlBEdbOqw6kW6QcXDWAf/oJu7gYs9ZJZwmg+K+/zjFLxPTIY9izJUzxzc24FHvmseyA0IvJSl17w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.2.16': + resolution: {integrity: sha512-hrJpblMsrQ58U9veWpbXzkhV5zStunds6HWLprqq1qauvgBr1E6P+24kLj6lSLI9vjRn/RYpjprhkHQPKGWpNg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.2.16': + resolution: {integrity: sha512-qJd/dC6j6CwLG9/s/RP2nb1RZ0GIgj7Ioj7x/SYa3RzjVrlzrmH0fhIOpfvqQDeIsdP0loi+kHaMhJzY1PBIaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.2.16': + resolution: {integrity: sha512-Vx7Xg5uUJuNcujJjI70OICaH0EYj80BtOLZTSN7uOYg8QOLlyKnaG0IW7Fn/J0IpJsaKzmDKMhOQv1JBM9m9vg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.2.16': + resolution: {integrity: sha512-TNKhgE3uJTsTzatUSSYt0Kgo+Oa2uSlSjz4r1aEIea7HX6ULBym4fAlYUhG1i6pjNf2njfCUAfKwr6C3E9Xg1w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.2.16': + resolution: {integrity: sha512-7chXdpjXZ8qG0+mIxECN3cT9kvhZ3/oZhMX6Pp876P7CDrIy8nJswva6Mq357JR7eYXfuskwZxMeV1SzoZdHrA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.2.16': + resolution: {integrity: sha512-Kwjt+7uNTJK5/MDkGWGVO2KQPnj8yAV75dMpfwyHZrJSXWHrniOB0aUEWlVYf3H1hOqFLIStLdM5QXq6bnKmOQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-win32-arm64-msvc@1.2.16': + resolution: {integrity: sha512-/LH6WfjDRXXJz/p5xl4TmU+jpcnwcxbKEQBW/GZE0JHfN0lGIyTtsUEGaQ/q/GikkGJ2yLKe6pwm7AnEWO8pdw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.2.16': + resolution: {integrity: sha512-1lv1KvX0Z871zfk7vw+dnXMMnHNyDwMzWG8Kv3HxDXMOhzCX4SHc7HK319fInP0i+0p9D8brkfzL7pJOaGl+tw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-rc.2': resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} '@rolldown/pluginutils@1.0.0-rc.3': resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@rollup/rollup-android-arm-eabi@4.55.1': resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==} cpu: [arm] @@ -8202,6 +8426,7 @@ packages: hasBin: true peerDependencies: svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 + typescript: ^5.3.3 '@sveltejs/vite-plugin-svelte-inspector@5.0.2': resolution: {integrity: sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==} @@ -9104,6 +9329,126 @@ packages: resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} deprecated: Potential CWE-502 - Update to 1.3.1 or higher @@ -9426,6 +9771,36 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@yuku-toolchain/darwin-arm64@0.25.0': + resolution: {integrity: sha512-21QMCgP74cgSrgxIgw/SS5uMnn7cFHwgjNEBZYgO1HxpdjG4ULenXyUY92xRReuAJZdbRyz6OGwtYi6lDKumSw==} + cpu: [arm64] + os: [darwin] + + '@yuku-toolchain/darwin-x64@0.25.0': + resolution: {integrity: sha512-bsR90bUlDZpBdFyK5C+XFZ/Yuq4aPtK8BI15GZsT+dfdWabl8OGpTiJXcriSBu+4vrljw3pYKmn7WizWgjZ0fQ==} + cpu: [x64] + os: [darwin] + + '@yuku-toolchain/linux-arm64@0.25.0': + resolution: {integrity: sha512-T0Y/gCqE4FKfchzRKpxXbQyWFpyaCcw6wdopu1ZKCLqZs48MfZShqihQjq1dck0JgJYwc+zxlfVvb693gFH4fg==} + cpu: [arm64] + os: [linux] + + '@yuku-toolchain/linux-x64@0.25.0': + resolution: {integrity: sha512-uwroa8GsFLJLarEphscB0UCqrx3jdDNqhwVZC2Tv2QDN4i4Eo87NmJaTFpOlNF4+CNVsiN+P0BnriySTidc3xQ==} + cpu: [x64] + os: [linux] + + '@yuku-toolchain/win32-arm64@0.25.0': + resolution: {integrity: sha512-VssXbUjyRj1egmSSNwo2NEayMTth0mHBPit9WiYGEnvQyTQSUM0TLix0sJn/mVjJBrwqEKyGYg7dkdWFafNYFw==} + cpu: [arm64] + os: [win32] + + '@yuku-toolchain/win32-x64@0.25.0': + resolution: {integrity: sha512-drLnLlLtqLni1UPZJ1pKl6PPsdGJoaFGaQsJa1khtjJT+OK5Z71rb+md9fO6KP9eJXjIOJKtW7OgnVlLf91WIw==} + cpu: [x64] + os: [win32] + abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead @@ -10920,6 +11295,15 @@ packages: sqlite3: optional: true + dts-resolver@3.0.0: + resolution: {integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==} + engines: {node: ^22.18.0 || >=24.0.0} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -11856,6 +12240,10 @@ packages: get-tsconfig@4.13.1: resolution: {integrity: sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==} + get-tsconfig@5.0.0-beta.6: + resolution: {integrity: sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw==} + engines: {node: '>=20.20.0'} + getenv@2.0.0: resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} engines: {node: '>=6'} @@ -14128,6 +14516,10 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + obug@3.0.0: + resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==} + engines: {node: '>=12.20.0'} + on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -14208,6 +14600,19 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxlint@1.91.0: + resolution: {integrity: sha512-vjy/cBZcEFcYh3dbxUoQK+bjc+QaY3ZWo86aJkZ5YAwp/HyiqP7dTdNgbvcIVJafhAH5sZbTqBp4sZcicEZngA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=7.0.2005' + vite-plus: '*' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + vite-plus: + optional: true + p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -15129,6 +15534,33 @@ packages: robust-predicates@3.0.3: resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + rolldown-plugin-dts@0.29.0: + resolution: {integrity: sha512-PvsbRXQR5tHGnjLyxj2peRMwv3pfRfStiIqhbag3J/I2fFaYdfEQ1AaFwXfZlK8qKBkgQUNnCZdrUcaTPPq05Q==} + engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} + peerDependencies: + '@volar/typescript': ~2.4.0 + '@vue/language-core': ~3.2.0 || ~3.3.0 + rolldown: ^1.2.0 + tsrs: '*' + typescript: ^5.0.0 || ^6.0.0 || ~7.0.0 || ~7.1.0-0 + vue-tsc: ~3.2.0 || ~3.3.0 + peerDependenciesMeta: + '@volar/typescript': + optional: true + '@vue/language-core': + optional: true + tsrs: + optional: true + typescript: + optional: true + vue-tsc: + optional: true + + rolldown@1.2.16: + resolution: {integrity: sha512-bWvlMpFKiTfDKfnK7FC2MPgPeWCf/Kpwsq49ApdW+FQaBZb6O6dZ4MAPbPUjp7hYQrw/RobqCzn64BRrQecGHw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rollup@4.55.1: resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -16171,16 +16603,16 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + ufo@1.6.2: resolution: {integrity: sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==} @@ -16884,6 +17316,15 @@ packages: youtube-video-element@1.9.0: resolution: {integrity: sha512-Hh0dbQM+FVlUaYUbpYkZNUvdKxTNcSNvTGzkQKYShltnX+LRHEp2eYvC2Zm43eU8Np+CBZuoNR2i+seCYzzAyg==} + yuku@0.25.0: + resolution: {integrity: sha512-iAlHlpPmcjRqUauDkW9xF33b+jsUzTrrv49FfPLBNxEAUWuU7XN8tBUGjBHYPCEF/d3632MhG6GjCZutecA8Ng==} + engines: {node: '>=16.4.0'} + peerDependencies: + '@yuku-toolchain/wasm': 0.25.0 + peerDependenciesMeta: + '@yuku-toolchain/wasm': + optional: true + zimmerframe@1.1.4: resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} @@ -20212,6 +20653,65 @@ snapshots: dependencies: '@orama/orama': 3.1.18 + '@oxc-project/types@0.156.0': {} + + '@oxlint/binding-android-arm-eabi@1.91.0': + optional: true + + '@oxlint/binding-android-arm64@1.91.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.91.0': + optional: true + + '@oxlint/binding-darwin-x64@1.91.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.91.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.91.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.91.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.91.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.91.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.91.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.91.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.91.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.91.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.91.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.91.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.91.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.91.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.91.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.91.0': + optional: true + '@pkgjs/parseargs@0.11.0': optional: true @@ -24502,10 +25002,57 @@ snapshots: '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 '@resvg/resvg-js-win32-x64-msvc': 2.6.2 + '@rolldown/binding-android-arm-eabi@1.2.16': + optional: true + + '@rolldown/binding-android-arm64@1.2.16': + optional: true + + '@rolldown/binding-darwin-arm64@1.2.16': + optional: true + + '@rolldown/binding-darwin-x64@1.2.16': + optional: true + + '@rolldown/binding-freebsd-x64@1.2.16': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.2.16': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.2.16': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.2.16': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.2.16': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.2.16': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.2.16': + optional: true + + '@rolldown/binding-linux-x64-musl@1.2.16': + optional: true + + '@rolldown/binding-openharmony-arm64@1.2.16': + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.2.16': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.2.16': + optional: true + '@rolldown/pluginutils@1.0.0-rc.2': {} '@rolldown/pluginutils@1.0.0-rc.3': {} + '@rolldown/pluginutils@1.0.1': {} + '@rollup/rollup-android-arm-eabi@4.55.1': optional: true @@ -24899,7 +25446,7 @@ snapshots: '@opentelemetry/api': 1.10.0 typescript: 5.9.3 - '@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + '@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.15.0) @@ -24918,7 +25465,7 @@ snapshots: vite: 7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) optionalDependencies: '@opentelemetry/api': 1.10.0 - typescript: 5.9.2 + typescript: 7.0.2 optional: true '@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)))(svelte@5.54.1)(typescript@5.9.3)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))': @@ -24951,8 +25498,7 @@ snapshots: semver: 7.7.4 svelte: 5.53.5 svelte2tsx: 0.7.52(svelte@5.53.5)(typescript@5.9.3) - transitivePeerDependencies: - - typescript + typescript: 5.9.3 '@sveltejs/package@2.5.7(svelte@5.54.1)(typescript@5.9.3)': dependencies: @@ -24962,8 +25508,7 @@ snapshots: semver: 7.7.4 svelte: 5.54.1 svelte2tsx: 0.7.52(svelte@5.54.1)(typescript@5.9.3) - transitivePeerDependencies: - - typescript + typescript: 5.9.3 '@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.53.5)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)))(svelte@5.53.5)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: @@ -25374,14 +25919,14 @@ snapshots: dependencies: svelte: 5.53.5 - '@testing-library/svelte@5.3.1(svelte@5.53.5)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))(vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))': + '@testing-library/svelte@5.3.1(svelte@5.53.5)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))(vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@testing-library/dom': 10.4.1 '@testing-library/svelte-core': 1.0.0(svelte@5.53.5) svelte: 5.53.5 optionalDependencies: vite: 7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) - vitest: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) + vitest: 4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) '@tootallnate/once@1.1.2': {} @@ -25946,6 +26491,66 @@ snapshots: '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + '@ungap/structured-clone@1.3.0': {} '@upsetjs/venn.js@2.0.0': @@ -25994,18 +26599,18 @@ snapshots: '@use-gesture/core': 10.3.1 react: 19.2.4 - '@vercel/agent-readability@0.7.0(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': + '@vercel/agent-readability@0.7.0(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': optionalDependencies: - '@sveltejs/kit': 2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@sveltejs/kit': 2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) next: 16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@vercel/analytics@1.6.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@5.9.2))': + '@vercel/analytics@1.6.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@7.0.2))': optionalDependencies: - '@sveltejs/kit': 2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@sveltejs/kit': 2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) next: 16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 svelte: 5.54.1 - vue: 3.5.29(typescript@5.9.2) + vue: 3.5.29(typescript@7.0.2) '@vercel/blob@2.3.1': dependencies: @@ -26024,7 +26629,7 @@ snapshots: dependencies: execa: 5.1.1 - '@vercel/geistdocs@2.7.5(acd6df1938ede189d62e02c942e2cf67)': + '@vercel/geistdocs@2.7.5(acf1d801867d1f397470a2431e532453)': dependencies: '@ai-sdk/react': 3.0.170(react@19.2.3)(zod@4.6.5) '@clack/prompts': 0.11.0 @@ -26034,7 +26639,7 @@ snapshots: '@streamdown/cjk': 1.0.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(react@19.2.3)(unified@11.0.5) '@types/mdx': 2.0.13 '@types/react': 19.2.14 - '@vercel/agent-readability': 0.7.0(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + '@vercel/agent-readability': 0.7.0(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) '@vercel/oidc': 3.8.7 ai: 6.0.168(zod@4.6.5) class-variance-authority: 0.7.1 @@ -26124,13 +26729,13 @@ snapshots: - bare-abort-controller - react-native-b4a - '@vercel/speed-insights@1.3.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@5.9.2))': + '@vercel/speed-insights@1.3.1(@sveltejs/kit@2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(next@16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(svelte@5.54.1)(vue@3.5.29(typescript@7.0.2))': optionalDependencies: - '@sveltejs/kit': 2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@5.9.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@sveltejs/kit': 2.53.2(@opentelemetry/api@1.10.0)(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.54.1)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.54.1)(typescript@7.0.2)(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) next: 16.3.4(patch_hash=a620718f9d934500c4f0364aa9312b2539559e0ac911cdc37c97b92e1e9b4550)(@babel/core@7.29.0)(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 svelte: 5.54.1 - vue: 3.5.29(typescript@5.9.2) + vue: 3.5.29(typescript@7.0.2) '@vimeo/player@2.29.0': dependencies: @@ -26190,22 +26795,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.0.17 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.10(@types/node@22.19.6)(typescript@5.9.2) - vite: 7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) - - '@vitest/mocker@4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0))': - dependencies: - '@vitest/spy': 4.0.17 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - msw: 2.12.10(@types/node@22.19.6)(typescript@5.9.3) + msw: 2.12.10(@types/node@22.19.6)(typescript@7.0.2) vite: 7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) '@vitest/pretty-format@4.0.17': @@ -26298,18 +26894,17 @@ snapshots: '@vue/shared': 3.5.29 csstype: 3.2.3 - '@vue/server-renderer@3.5.29(vue@3.5.29(typescript@5.9.2))': + '@vue/server-renderer@3.5.29(vue@3.5.29(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.29 '@vue/shared': 3.5.29 - vue: 3.5.29(typescript@5.9.2) - optional: true + vue: 3.5.29(typescript@5.9.3) - '@vue/server-renderer@3.5.29(vue@3.5.29(typescript@5.9.3))': + '@vue/server-renderer@3.5.29(vue@3.5.29(typescript@7.0.2))': dependencies: '@vue/compiler-ssr': 3.5.29 '@vue/shared': 3.5.29 - vue: 3.5.29(typescript@5.9.3) + vue: 3.5.29(typescript@7.0.2) '@vue/shared@3.5.29': {} @@ -26411,6 +27006,24 @@ snapshots: '@xtuc/long@4.2.2': {} + '@yuku-toolchain/darwin-arm64@0.25.0': + optional: true + + '@yuku-toolchain/darwin-x64@0.25.0': + optional: true + + '@yuku-toolchain/linux-arm64@0.25.0': + optional: true + + '@yuku-toolchain/linux-x64@0.25.0': + optional: true + + '@yuku-toolchain/win32-arm64@0.25.0': + optional: true + + '@yuku-toolchain/win32-x64@0.25.0': + optional: true + abab@2.0.6: {} abbrev@2.0.0: {} @@ -27895,6 +28508,8 @@ snapshots: '@upstash/redis': 1.37.0 postgres: 3.4.8 + dts-resolver@3.0.0: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -29368,6 +29983,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@5.0.0-beta.6: + dependencies: + resolve-pkg-maps: 1.0.0 + getenv@2.0.0: {} github-slugger@2.0.0: {} @@ -32054,7 +32673,7 @@ snapshots: ms@2.1.3: {} - msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2): + msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3): dependencies: '@inquirer/confirm': 5.1.21(@types/node@22.19.6) '@mswjs/interceptors': 0.41.3 @@ -32075,12 +32694,11 @@ snapshots: until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - '@types/node' - optional: true - msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3): + msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2): dependencies: '@inquirer/confirm': 5.1.21(@types/node@22.19.6) '@mswjs/interceptors': 0.41.3 @@ -32101,9 +32719,10 @@ snapshots: until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: - typescript: 5.9.3 + typescript: 7.0.2 transitivePeerDependencies: - '@types/node' + optional: true muggle-string@0.4.1: {} @@ -32401,6 +33020,8 @@ snapshots: obug@2.1.1: {} + obug@3.0.0: {} + on-finished@2.3.0: dependencies: ee-first: 1.1.1 @@ -32500,6 +33121,28 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxlint@1.91.0: + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.91.0 + '@oxlint/binding-android-arm64': 1.91.0 + '@oxlint/binding-darwin-arm64': 1.91.0 + '@oxlint/binding-darwin-x64': 1.91.0 + '@oxlint/binding-freebsd-x64': 1.91.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.91.0 + '@oxlint/binding-linux-arm-musleabihf': 1.91.0 + '@oxlint/binding-linux-arm64-gnu': 1.91.0 + '@oxlint/binding-linux-arm64-musl': 1.91.0 + '@oxlint/binding-linux-ppc64-gnu': 1.91.0 + '@oxlint/binding-linux-riscv64-gnu': 1.91.0 + '@oxlint/binding-linux-riscv64-musl': 1.91.0 + '@oxlint/binding-linux-s390x-gnu': 1.91.0 + '@oxlint/binding-linux-x64-gnu': 1.91.0 + '@oxlint/binding-linux-x64-musl': 1.91.0 + '@oxlint/binding-openharmony-arm64': 1.91.0 + '@oxlint/binding-win32-arm64-msvc': 1.91.0 + '@oxlint/binding-win32-ia32-msvc': 1.91.0 + '@oxlint/binding-win32-x64-msvc': 1.91.0 + p-finally@1.0.0: {} p-limit@2.3.0: @@ -33928,6 +34571,43 @@ snapshots: robust-predicates@3.0.3: {} + rolldown-plugin-dts@0.29.0(@volar/typescript@2.4.28)(@vue/language-core@3.2.5)(rolldown@1.2.16)(typescript@7.0.2)(vue-tsc@3.2.5(typescript@7.0.2)): + dependencies: + dts-resolver: 3.0.0 + get-tsconfig: 5.0.0-beta.6 + obug: 3.0.0 + rolldown: 1.2.16 + yuku: 0.25.0 + optionalDependencies: + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.2.5 + typescript: 7.0.2 + vue-tsc: 3.2.5(typescript@7.0.2) + transitivePeerDependencies: + - '@yuku-toolchain/wasm' + - oxc-resolver + + rolldown@1.2.16: + dependencies: + '@oxc-project/types': 0.156.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm-eabi': 1.2.16 + '@rolldown/binding-android-arm64': 1.2.16 + '@rolldown/binding-darwin-arm64': 1.2.16 + '@rolldown/binding-darwin-x64': 1.2.16 + '@rolldown/binding-freebsd-x64': 1.2.16 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.16 + '@rolldown/binding-linux-arm64-gnu': 1.2.16 + '@rolldown/binding-linux-arm64-musl': 1.2.16 + '@rolldown/binding-linux-ppc64-gnu': 1.2.16 + '@rolldown/binding-linux-s390x-gnu': 1.2.16 + '@rolldown/binding-linux-x64-gnu': 1.2.16 + '@rolldown/binding-linux-x64-musl': 1.2.16 + '@rolldown/binding-openharmony-arm64': 1.2.16 + '@rolldown/binding-win32-arm64-msvc': 1.2.16 + '@rolldown/binding-win32-x64-msvc': 1.2.16 + rollup@4.55.1: dependencies: '@types/estree': 1.0.8 @@ -35220,7 +35900,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): + tsup@8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.8.2): dependencies: bundle-require: 5.1.0(esbuild@0.27.2) cac: 6.7.14 @@ -35241,14 +35921,14 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.23 - typescript: 5.9.3 + typescript: 7.0.2 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - tsup@8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0): + tsup@8.5.1(jiti@2.7.0)(postcss@8.5.23)(tsx@4.21.0)(typescript@7.0.2)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.2) cac: 6.7.14 @@ -35269,7 +35949,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.23 - typescript: 5.9.3 + typescript: 7.0.2 transitivePeerDependencies: - jiti - supports-color @@ -35396,10 +36076,31 @@ snapshots: typescript@5.8.3: {} - typescript@5.9.2: {} - typescript@5.9.3: {} + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + ufo@1.6.2: {} unbox-primitive@1.1.0: @@ -35782,49 +36483,10 @@ snapshots: optionalDependencies: vite: 7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) - vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0): + vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.17 - '@vitest/mocker': 4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.2))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.0.17 - '@vitest/runner': 4.0.17 - '@vitest/snapshot': 4.0.17 - '@vitest/spy': 4.0.17 - '@vitest/utils': 4.0.17 - es-module-lexer: 1.7.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vite: 7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@opentelemetry/api': 1.10.0 - '@types/node': 22.19.6 - jsdom: 27.4.0 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml - - vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): - dependencies: - '@vitest/expect': 4.0.17 - '@vitest/mocker': 4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/mocker': 4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.0.17 '@vitest/runner': 4.0.17 '@vitest/snapshot': 4.0.17 @@ -35860,10 +36522,10 @@ snapshots: - tsx - yaml - vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0): + vitest@4.0.17(@opentelemetry/api@1.10.0)(@types/node@22.19.6)(jiti@2.7.0)(jsdom@27.4.0)(lightningcss@1.32.0)(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@vitest/expect': 4.0.17 - '@vitest/mocker': 4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@5.9.3))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/mocker': 4.0.17(msw@2.12.10(@types/node@22.19.6)(typescript@7.0.2))(vite@7.3.1(@types/node@22.19.6)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.0.17 '@vitest/runner': 4.0.17 '@vitest/snapshot': 4.0.17 @@ -35911,26 +36573,32 @@ snapshots: '@vue/language-core': 3.2.5 typescript: 5.9.3 - vue@3.5.29(typescript@5.9.2): + vue-tsc@3.2.5(typescript@7.0.2): + dependencies: + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.2.5 + typescript: 7.0.2 + optional: true + + vue@3.5.29(typescript@5.9.3): dependencies: '@vue/compiler-dom': 3.5.29 '@vue/compiler-sfc': 3.5.29 '@vue/runtime-dom': 3.5.29 - '@vue/server-renderer': 3.5.29(vue@3.5.29(typescript@5.9.2)) + '@vue/server-renderer': 3.5.29(vue@3.5.29(typescript@5.9.3)) '@vue/shared': 3.5.29 optionalDependencies: - typescript: 5.9.2 - optional: true + typescript: 5.9.3 - vue@3.5.29(typescript@5.9.3): + vue@3.5.29(typescript@7.0.2): dependencies: '@vue/compiler-dom': 3.5.29 '@vue/compiler-sfc': 3.5.29 '@vue/runtime-dom': 3.5.29 - '@vue/server-renderer': 3.5.29(vue@3.5.29(typescript@5.9.3)) + '@vue/server-renderer': 3.5.29(vue@3.5.29(typescript@7.0.2)) '@vue/shared': 3.5.29 optionalDependencies: - typescript: 5.9.3 + typescript: 7.0.2 w3c-hr-time@1.0.2: dependencies: @@ -36246,6 +36914,15 @@ snapshots: dependencies: media-played-ranges-mixin: 0.1.0 + yuku@0.25.0: + optionalDependencies: + '@yuku-toolchain/darwin-arm64': 0.25.0 + '@yuku-toolchain/darwin-x64': 0.25.0 + '@yuku-toolchain/linux-arm64': 0.25.0 + '@yuku-toolchain/linux-x64': 0.25.0 + '@yuku-toolchain/win32-arm64': 0.25.0 + '@yuku-toolchain/win32-x64': 0.25.0 + zimmerframe@1.1.4: {} zod-to-json-schema@3.25.1(zod@3.25.76): diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 87cc4bc0..a53498e4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -23,6 +23,11 @@ packageExtensions: "streamdown@2.2.0": dependencies: shiki: "3.23.0" + # @sveltejs/package imports typescript without declaring it, so it would load whichever + # version is hoisted. Declaring the peer links the svelte packages' own TypeScript. + "@sveltejs/package": + peerDependencies: + typescript: "^5.3.3" overrides: "@streamdown/code@1.0.2>shiki": "3.23.0" diff --git a/scripts/emit-types.mjs b/scripts/emit-types.mjs new file mode 100644 index 00000000..3c88de59 --- /dev/null +++ b/scripts/emit-types.mjs @@ -0,0 +1,72 @@ +// Writes a package's declaration files with tsc and its tsconfig.build.json. tsup's own `dts` +// option needs the TypeScript 6 API, so tsup configs call this from `onSuccess` instead, which +// runs after every build, including each rebuild in watch mode. +// +// With `bundle`, tsc writes to .types and the entries are bundled into dist with +// rolldown-plugin-dts, inlining the types of the listed private packages (and no others). It reads the .d.ts +// files as they are (dtsInput), so this step needs no TypeScript API either. +// +// `watch` is tsup's watch option, passed by the configs. A failed type check must not end a +// watch session: the throw would skip tsup's startWatcher(), so `tsup --watch src` would exit +// with status 1 instead of waiting for the next edit (and for the packages with two configs, +// it would stop only one of the two watchers). tsc has already printed the diagnostics, and +// because `clean` removes previous declarations on every rebuild, the bundled packages still +// need their rolldown step to put the declarations back. +import { execFileSync } from "node:child_process"; +import { isAbsolute, join } from "node:path"; + +export async function emitTypes(packageDir, { bundle, watch = false } = {}) { + let tscFailed = false; + try { + execFileSync("tsc", ["-p", "tsconfig.build.json"], { + cwd: packageDir, + stdio: "inherit", + shell: process.platform === "win32", + }); + } catch (error) { + if (!watch) throw error; + tscFailed = true; + } + if (!bundle) return; + const { rolldown } = await import("rolldown"); + const { dts } = await import("rolldown-plugin-dts"); + try { + const build = await rolldown({ + cwd: packageDir, + input: Object.fromEntries( + bundle.entries.map((name) => [ + name, + join(packageDir, ".types", `${name}.d.ts`), + ]), + ), + // Only the listed private packages are inlined; every other package stays an import. + external: (id) => + !id.startsWith(".") && + !isAbsolute(id) && + !bundle.resolve.some( + (name) => id === name || id.startsWith(`${name}/`), + ), + plugins: [ + dts({ + dtsInput: true, + emitDtsOnly: true, + generator: "oxc", + resolve: bundle.resolve, + sourcemap: false, + }), + ], + }); + try { + await build.write({ dir: join(packageDir, "dist"), format: "es" }); + } finally { + await build.close(); + } + } catch (error) { + // Nothing to bundle when tsc never wrote .types. Keep watching; the next edit rebuilds. + if (!watch || !tscFailed) throw error; + console.error( + `Could not write bundled declarations for ${packageDir}:`, + error, + ); + } +} diff --git a/scripts/emit-types.test.mjs b/scripts/emit-types.test.mjs new file mode 100644 index 00000000..843d9933 --- /dev/null +++ b/scripts/emit-types.test.mjs @@ -0,0 +1,55 @@ +import { mkdtemp, mkdir, readFile, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { describe, expect, it } from "vitest"; +import { emitTypes } from "./emit-types.mjs"; + +// A throwaway package whose only module does not type check, so tsc exits with status 1 +// while still emitting a declaration for the module. +async function brokenPackage() { + const packageDir = await mkdtemp(join(tmpdir(), "emit-types-")); + await writeFile( + join(packageDir, "tsconfig.build.json"), + JSON.stringify({ + compilerOptions: { + target: "es2022", + module: "esnext", + moduleResolution: "bundler", + strict: true, + skipLibCheck: true, + rootDir: "./src", + outDir: "./.types", + declaration: true, + noEmit: false, + emitDeclarationOnly: true, + }, + include: ["src"], + }), + ); + await mkdir(join(packageDir, "src")); + await writeFile( + join(packageDir, "src", "index.ts"), + 'export const broken: number = "not a number";\n', + ); + return packageDir; +} + +describe("emitTypes", () => { + it("fails the build when tsc reports a type error", async () => { + const packageDir = await brokenPackage(); + await expect(emitTypes(packageDir)).rejects.toThrow(); + }); + + it("keeps watching and still writes declarations when tsc reports a type error", async () => { + const packageDir = await brokenPackage(); + await expect( + emitTypes(packageDir, { + watch: true, + bundle: { entries: ["index"], resolve: [] }, + }), + ).resolves.toBeUndefined(); + expect( + await readFile(join(packageDir, "dist", "index.d.ts"), "utf8"), + ).toContain("declare const broken"); + }); +}); diff --git a/vitest.config.mts b/vitest.config.mts index 0656ccda..3dd8cb03 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -37,6 +37,7 @@ export default defineConfig({ include: [ "packages/**/*.test.ts", "packages/**/*.test.tsx", + "scripts/**/*.test.mjs", "apps/web/lib/jev/**/*.test.ts", "apps/web/lib/use-playground-stream.test.ts", ],