diff --git a/config/package.json b/config/package.json new file mode 100644 index 00000000000..1d3527657f0 --- /dev/null +++ b/config/package.json @@ -0,0 +1,8 @@ +{ + "private": true, + "name": "@remix-run/config", + "devDependencies": { + "@tsconfig/node22": "^22.0.5", + "@tsconfig/node-ts": "^23.6.2" + } +} diff --git a/config/tsconfig.json b/config/tsconfig.json new file mode 100644 index 00000000000..3b2947f0971 --- /dev/null +++ b/config/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": ["@tsconfig/node22/tsconfig.json", "@tsconfig/node-ts/tsconfig.json"], + "compilerOptions": { + "lib": ["ES2024", "DOM", "DOM.Iterable"] + } +} diff --git a/packages/async-context-middleware/package.json b/packages/async-context-middleware/package.json index 50410550bb9..0eac92265c3 100644 --- a/packages/async-context-middleware/package.json +++ b/packages/async-context-middleware/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", diff --git a/packages/async-context-middleware/tsconfig.build.json b/packages/async-context-middleware/tsconfig.build.json index 0f3a5c4e1aa..f9f2e5e8932 100644 --- a/packages/async-context-middleware/tsconfig.build.json +++ b/packages/async-context-middleware/tsconfig.build.json @@ -8,4 +8,3 @@ "include": ["src"], "exclude": ["src/**/*.test.ts"] } - diff --git a/packages/async-context-middleware/tsconfig.json b/packages/async-context-middleware/tsconfig.json index 1807a7f6249..affdf01a097 100644 --- a/packages/async-context-middleware/tsconfig.json +++ b/packages/async-context-middleware/tsconfig.json @@ -1,13 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } - diff --git a/packages/compression-middleware/package.json b/packages/compression-middleware/package.json index 8a6c9cd68fb..b4f02db8f92 100644 --- a/packages/compression-middleware/package.json +++ b/packages/compression-middleware/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@remix-run/mime": "workspace:*", "@remix-run/response": "workspace:*", diff --git a/packages/compression-middleware/tsconfig.json b/packages/compression-middleware/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/compression-middleware/tsconfig.json +++ b/packages/compression-middleware/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/cookie/package.json b/packages/cookie/package.json index 6770d998189..7fdf8bedb3c 100644 --- a/packages/cookie/package.json +++ b/packages/cookie/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/cookie/tsconfig.json b/packages/cookie/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/cookie/tsconfig.json +++ b/packages/cookie/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/fetch-proxy/package.json b/packages/fetch-proxy/package.json index f104a9b0553..7db603ac38a 100644 --- a/packages/fetch-proxy/package.json +++ b/packages/fetch-proxy/package.json @@ -35,6 +35,7 @@ "@remix-run/headers": "workspace:^" }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/fetch-proxy/tsconfig.json b/packages/fetch-proxy/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/fetch-proxy/tsconfig.json +++ b/packages/fetch-proxy/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/fetch-router/demos/bun/tsconfig.json b/packages/fetch-router/demos/bun/tsconfig.json index 0b6ca7e36c7..5d83de71ed0 100644 --- a/packages/fetch-router/demos/bun/tsconfig.json +++ b/packages/fetch-router/demos/bun/tsconfig.json @@ -1,5 +1,5 @@ { - "include": ["index.ts", "../../global.d.ts"], + "include": ["index.ts"], "compilerOptions": { "strict": true, "lib": ["ES2024", "DOM", "DOM.Iterable"], diff --git a/packages/fetch-router/demos/node/package.json b/packages/fetch-router/demos/node/package.json index 1fc16e1dda4..a805a06d8ed 100644 --- a/packages/fetch-router/demos/node/package.json +++ b/packages/fetch-router/demos/node/package.json @@ -3,6 +3,7 @@ "private": true, "type": "module", "dependencies": { + "@remix-run/config": "workspace:*", "@remix-run/cookie": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@remix-run/form-data-middleware": "workspace:*", diff --git a/packages/fetch-router/demos/node/tsconfig.json b/packages/fetch-router/demos/node/tsconfig.json index b3dbcf9bc6a..9f6ad0c859b 100644 --- a/packages/fetch-router/demos/node/tsconfig.json +++ b/packages/fetch-router/demos/node/tsconfig.json @@ -1,14 +1,4 @@ { - "include": ["server.ts", "../../global.d.ts"], - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true, - "skipLibCheck": true - } + "extends": ["@remix-run/config/tsconfig.json"], + "include": ["server.ts"] } diff --git a/packages/fetch-router/package.json b/packages/fetch-router/package.json index d9c1a01c6ee..a87061c65e3 100644 --- a/packages/fetch-router/package.json +++ b/packages/fetch-router/package.json @@ -33,6 +33,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/session": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", diff --git a/packages/fetch-router/tsconfig.json b/packages/fetch-router/tsconfig.json index eb1240177a1..1084ecacbcf 100644 --- a/packages/fetch-router/tsconfig.json +++ b/packages/fetch-router/tsconfig.json @@ -1,13 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - }, + "extends": ["@remix-run/config/tsconfig.json"], "exclude": ["demos"] } diff --git a/packages/file-storage/package.json b/packages/file-storage/package.json index 008094cb7ef..8ab5e122b17 100644 --- a/packages/file-storage/package.json +++ b/packages/file-storage/package.json @@ -46,6 +46,7 @@ "@remix-run/lazy-file": "workspace:^" }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/form-data-parser": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", diff --git a/packages/file-storage/tsconfig.json b/packages/file-storage/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/file-storage/tsconfig.json +++ b/packages/file-storage/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/form-data-middleware/package.json b/packages/form-data-middleware/package.json index ea74789c1d7..73b8c9c472e 100644 --- a/packages/form-data-middleware/package.json +++ b/packages/form-data-middleware/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@remix-run/form-data-parser": "workspace:*", "@types/node": "catalog:", diff --git a/packages/form-data-middleware/tsconfig.json b/packages/form-data-middleware/tsconfig.json index 1807a7f6249..affdf01a097 100644 --- a/packages/form-data-middleware/tsconfig.json +++ b/packages/form-data-middleware/tsconfig.json @@ -1,13 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } - diff --git a/packages/form-data-parser/demos/node/package.json b/packages/form-data-parser/demos/node/package.json index 1c239ea8610..c02c7e0e5f9 100644 --- a/packages/form-data-parser/demos/node/package.json +++ b/packages/form-data-parser/demos/node/package.json @@ -3,6 +3,7 @@ "private": true, "type": "module", "dependencies": { + "@remix-run/config": "workspace:*", "@remix-run/file-storage": "workspace:^", "@remix-run/form-data-parser": "workspace:^", "@remix-run/multipart-parser": "workspace:^", diff --git a/packages/form-data-parser/demos/node/server.js b/packages/form-data-parser/demos/node/server.js index e879f67413d..8d200a31c7b 100644 --- a/packages/form-data-parser/demos/node/server.js +++ b/packages/form-data-parser/demos/node/server.js @@ -3,7 +3,7 @@ import * as http from 'node:http' import * as os from 'node:os' import * as path from 'node:path' -import { LocalFileStorage } from '@remix-run/file-storage/local' +import { createFsFileStorage } from '@remix-run/file-storage/fs' import { MultipartParseError, MaxFileSizeExceededError, @@ -16,7 +16,7 @@ const PORT = 44100 const oneMb = 1024 * 1024 const maxFileSize = 10 * oneMb -const fileStorage = new LocalFileStorage(await fsp.mkdtemp(path.join(os.tmpdir(), 'uploads-'))) +const fileStorage = createFsFileStorage(await fsp.mkdtemp(path.join(os.tmpdir(), 'uploads-'))) /** @type (file: File) => Promise */ async function getDataUrl(file) { diff --git a/packages/form-data-parser/demos/node/tsconfig.json b/packages/form-data-parser/demos/node/tsconfig.json index 2b13bc370b0..304a5c7c1b2 100644 --- a/packages/form-data-parser/demos/node/tsconfig.json +++ b/packages/form-data-parser/demos/node/tsconfig.json @@ -1,12 +1,9 @@ { + "extends": ["@remix-run/config/tsconfig.json"], "include": ["server.js"], "compilerOptions": { "allowJs": true, "checkJs": true, - "module": "NodeNext", - "moduleResolution": "NodeNext", - "types": ["node"], - "noEmit": true, - "strict": true + "noEmit": true } } diff --git a/packages/form-data-parser/package.json b/packages/form-data-parser/package.json index d0caad1d940..fd48ec3add1 100644 --- a/packages/form-data-parser/package.json +++ b/packages/form-data-parser/package.json @@ -35,6 +35,7 @@ "@remix-run/multipart-parser": "workspace:^" }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/form-data-parser/tsconfig.json b/packages/form-data-parser/tsconfig.json index eb1240177a1..1084ecacbcf 100644 --- a/packages/form-data-parser/tsconfig.json +++ b/packages/form-data-parser/tsconfig.json @@ -1,13 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - }, + "extends": ["@remix-run/config/tsconfig.json"], "exclude": ["demos"] } diff --git a/packages/fs/package.json b/packages/fs/package.json index 8eb2e48816f..6aa2b6232fd 100644 --- a/packages/fs/package.json +++ b/packages/fs/package.json @@ -36,6 +36,7 @@ "@remix-run/mime": "workspace:^" }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/fs/tsconfig.json b/packages/fs/tsconfig.json index 1807a7f6249..affdf01a097 100644 --- a/packages/fs/tsconfig.json +++ b/packages/fs/tsconfig.json @@ -1,13 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } - diff --git a/packages/headers/package.json b/packages/headers/package.json index 166edcc2ee2..9c756416e6c 100644 --- a/packages/headers/package.json +++ b/packages/headers/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/headers/tsconfig.json b/packages/headers/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/headers/tsconfig.json +++ b/packages/headers/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/html-template/package.json b/packages/html-template/package.json index efd55f8cc22..7e8039901fd 100644 --- a/packages/html-template/package.json +++ b/packages/html-template/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/html-template/tsconfig.json b/packages/html-template/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/html-template/tsconfig.json +++ b/packages/html-template/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/interaction/package.json b/packages/interaction/package.json index 90ddeb7db48..5fcbf751097 100644 --- a/packages/interaction/package.json +++ b/packages/interaction/package.json @@ -60,6 +60,8 @@ "prepublishOnly": "pnpm build" }, "devDependencies": { + "@remix-run/config": "workspace:*", + "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "@vitest/browser": "^3.2.4", "esbuild": "^0.25.5", diff --git a/packages/interaction/src/lib/interactions/popover.ts b/packages/interaction/src/lib/interactions/popover.ts index 82b509b38b8..61b00f77874 100644 --- a/packages/interaction/src/lib/interactions/popover.ts +++ b/packages/interaction/src/lib/interactions/popover.ts @@ -1,4 +1,4 @@ -import { defineInteraction, type Interaction } from '../interaction' +import { defineInteraction, type Interaction } from '../interaction.ts' /** * ### Description diff --git a/packages/interaction/tsconfig.json b/packages/interaction/tsconfig.json index 860c46dcf6f..affdf01a097 100644 --- a/packages/interaction/tsconfig.json +++ b/packages/interaction/tsconfig.json @@ -1,13 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true, - "skipLibCheck": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/lazy-file/package.json b/packages/lazy-file/package.json index cc7faa8b1fc..a2e523614f6 100644 --- a/packages/lazy-file/package.json +++ b/packages/lazy-file/package.json @@ -35,6 +35,7 @@ "@remix-run/mime": "workspace:^" }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/lazy-file/tsconfig.json b/packages/lazy-file/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/lazy-file/tsconfig.json +++ b/packages/lazy-file/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/logger-middleware/package.json b/packages/logger-middleware/package.json index 9364c858ac0..70c74ae34b1 100644 --- a/packages/logger-middleware/package.json +++ b/packages/logger-middleware/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", diff --git a/packages/logger-middleware/tsconfig.json b/packages/logger-middleware/tsconfig.json index 1807a7f6249..affdf01a097 100644 --- a/packages/logger-middleware/tsconfig.json +++ b/packages/logger-middleware/tsconfig.json @@ -1,13 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } - diff --git a/packages/method-override-middleware/package.json b/packages/method-override-middleware/package.json index 332594ca5ae..fa58de8bed2 100644 --- a/packages/method-override-middleware/package.json +++ b/packages/method-override-middleware/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@remix-run/form-data-middleware": "workspace:*", "@types/node": "catalog:", diff --git a/packages/method-override-middleware/tsconfig.json b/packages/method-override-middleware/tsconfig.json index 1807a7f6249..affdf01a097 100644 --- a/packages/method-override-middleware/tsconfig.json +++ b/packages/method-override-middleware/tsconfig.json @@ -1,13 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } - diff --git a/packages/mime/package.json b/packages/mime/package.json index 154c85e0f12..565e52a539e 100644 --- a/packages/mime/package.json +++ b/packages/mime/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "mime-db": "^1.53.0", diff --git a/packages/mime/tsconfig.json b/packages/mime/tsconfig.json index eb1240177a1..1084ecacbcf 100644 --- a/packages/mime/tsconfig.json +++ b/packages/mime/tsconfig.json @@ -1,13 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - }, + "extends": ["@remix-run/config/tsconfig.json"], "exclude": ["demos"] } diff --git a/packages/multipart-parser/demos/node/package.json b/packages/multipart-parser/demos/node/package.json index 5186e4b1098..7b86fe2c15a 100644 --- a/packages/multipart-parser/demos/node/package.json +++ b/packages/multipart-parser/demos/node/package.json @@ -7,6 +7,7 @@ "tmp": "^0.2.3" }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@types/tmp": "^0.2.6", "typescript": "catalog:" diff --git a/packages/multipart-parser/demos/node/tsconfig.json b/packages/multipart-parser/demos/node/tsconfig.json index 2b13bc370b0..304a5c7c1b2 100644 --- a/packages/multipart-parser/demos/node/tsconfig.json +++ b/packages/multipart-parser/demos/node/tsconfig.json @@ -1,12 +1,9 @@ { + "extends": ["@remix-run/config/tsconfig.json"], "include": ["server.js"], "compilerOptions": { "allowJs": true, "checkJs": true, - "module": "NodeNext", - "moduleResolution": "NodeNext", - "types": ["node"], - "noEmit": true, - "strict": true + "noEmit": true } } diff --git a/packages/multipart-parser/package.json b/packages/multipart-parser/package.json index 63f6ee10c6d..5ae7e128096 100644 --- a/packages/multipart-parser/package.json +++ b/packages/multipart-parser/package.json @@ -40,6 +40,7 @@ "@remix-run/headers": "workspace:^" }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/multipart-parser/tsconfig.json b/packages/multipart-parser/tsconfig.json index b2db23fb1e2..5b7b9ea97b4 100644 --- a/packages/multipart-parser/tsconfig.json +++ b/packages/multipart-parser/tsconfig.json @@ -1,13 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - }, + "extends": ["@remix-run/config/tsconfig.json"], "exclude": ["bench", "demos"] } diff --git a/packages/node-fetch-server/package.json b/packages/node-fetch-server/package.json index 92478b887cd..88191b17ba7 100644 --- a/packages/node-fetch-server/package.json +++ b/packages/node-fetch-server/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/node-fetch-server/tsconfig.json b/packages/node-fetch-server/tsconfig.json index b2db23fb1e2..5b7b9ea97b4 100644 --- a/packages/node-fetch-server/tsconfig.json +++ b/packages/node-fetch-server/tsconfig.json @@ -1,13 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - }, + "extends": ["@remix-run/config/tsconfig.json"], "exclude": ["bench", "demos"] } diff --git a/packages/response/package.json b/packages/response/package.json index 7d5a5afc75d..f28b4369077 100644 --- a/packages/response/package.json +++ b/packages/response/package.json @@ -47,6 +47,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/mime": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", diff --git a/packages/response/tsconfig.json b/packages/response/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/response/tsconfig.json +++ b/packages/response/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/route-pattern/bench/package.json b/packages/route-pattern/bench/package.json index 1cafbbe7bb1..5658238e1dd 100644 --- a/packages/route-pattern/bench/package.json +++ b/packages/route-pattern/bench/package.json @@ -6,6 +6,7 @@ "bench": "node --disable-warning=ExperimentalWarning runner.ts" }, "dependencies": { + "@remix-run/config": "workspace:*", "@remix-run/route-pattern": "workspace:^", "find-my-way": "^9.1.0", "path-to-regexp": "^8.2.0" diff --git a/packages/route-pattern/bench/tsconfig.json b/packages/route-pattern/bench/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/route-pattern/bench/tsconfig.json +++ b/packages/route-pattern/bench/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/route-pattern/package.json b/packages/route-pattern/package.json index ced978e3c5f..3570919d0d3 100644 --- a/packages/route-pattern/package.json +++ b/packages/route-pattern/package.json @@ -34,6 +34,7 @@ }, "devDependencies": { "@ark/attest": "^0.49.0", + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/route-pattern/src/lib/join.test.ts b/packages/route-pattern/src/lib/join.test.ts index 287aa6ab68e..a1d050583f6 100644 --- a/packages/route-pattern/src/lib/join.test.ts +++ b/packages/route-pattern/src/lib/join.test.ts @@ -1,7 +1,7 @@ import * as assert from 'node:assert/strict' import { describe, it } from 'node:test' -import type { Assert, IsEqual } from './type-utils' +import type { Assert, IsEqual } from './type-utils.ts' import { join } from './join.ts' import type { Join } from './join.ts' import { parse } from './parse.ts' diff --git a/packages/route-pattern/src/lib/params.test.ts b/packages/route-pattern/src/lib/params.test.ts index 67e078ed8a1..2573c05153a 100644 --- a/packages/route-pattern/src/lib/params.test.ts +++ b/packages/route-pattern/src/lib/params.test.ts @@ -1,4 +1,4 @@ -import type { Assert, IsEqual } from './type-utils' +import type { Assert, IsEqual } from './type-utils.ts' import type { Params } from './params.ts' // prettier-ignore diff --git a/packages/route-pattern/src/lib/parse.test.ts b/packages/route-pattern/src/lib/parse.test.ts index 92eee8e5606..0a451679629 100644 --- a/packages/route-pattern/src/lib/parse.test.ts +++ b/packages/route-pattern/src/lib/parse.test.ts @@ -1,7 +1,7 @@ import * as assert from 'node:assert/strict' import { describe, it } from 'node:test' -import type { Assert, IsEqual } from './type-utils' +import type { Assert, IsEqual } from './type-utils.ts' import { parse, ParseError } from './parse.ts' import type { Parse } from './parse.ts' diff --git a/packages/route-pattern/src/lib/split.test.ts b/packages/route-pattern/src/lib/split.test.ts index fcd61e4eed0..38f6e7e19f7 100644 --- a/packages/route-pattern/src/lib/split.test.ts +++ b/packages/route-pattern/src/lib/split.test.ts @@ -1,7 +1,7 @@ import * as assert from 'node:assert/strict' import { describe, it } from 'node:test' -import type { Assert, IsEqual } from './type-utils' +import type { Assert, IsEqual } from './type-utils.ts' import { split } from './split.ts' import type { Split } from './split.ts' diff --git a/packages/route-pattern/src/lib/stringify.test.ts b/packages/route-pattern/src/lib/stringify.test.ts index bd78ce27a99..bd4d8cbccd9 100644 --- a/packages/route-pattern/src/lib/stringify.test.ts +++ b/packages/route-pattern/src/lib/stringify.test.ts @@ -1,7 +1,7 @@ import * as assert from 'node:assert/strict' import { describe, it } from 'node:test' -import type { Assert, IsEqual } from './type-utils' +import type { Assert, IsEqual } from './type-utils.ts' import { parse } from './parse.ts' import type { Parse } from './parse.ts' import { stringify } from './stringify.ts' diff --git a/packages/route-pattern/src/lib/variant.test.ts b/packages/route-pattern/src/lib/variant.test.ts index 794de36c385..06df27ca82b 100644 --- a/packages/route-pattern/src/lib/variant.test.ts +++ b/packages/route-pattern/src/lib/variant.test.ts @@ -1,4 +1,4 @@ -import type { Assert, IsEqual } from './type-utils' +import type { Assert, IsEqual } from './type-utils.ts' import type { Variant } from './variant.ts' // prettier-ignore diff --git a/packages/route-pattern/tsconfig.json b/packages/route-pattern/tsconfig.json index 2fb7f55d432..79746a6f2f7 100644 --- a/packages/route-pattern/tsconfig.json +++ b/packages/route-pattern/tsconfig.json @@ -1,13 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - }, - "exclude": ["bench", "vendor"] + "extends": ["@remix-run/config/tsconfig.json"], + "exclude": ["bench"] } diff --git a/packages/session-middleware/package.json b/packages/session-middleware/package.json index fe5348a0319..f28174c8a13 100644 --- a/packages/session-middleware/package.json +++ b/packages/session-middleware/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/cookie": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@remix-run/headers": "workspace:*", diff --git a/packages/session-middleware/tsconfig.json b/packages/session-middleware/tsconfig.json index 1807a7f6249..affdf01a097 100644 --- a/packages/session-middleware/tsconfig.json +++ b/packages/session-middleware/tsconfig.json @@ -1,13 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } - diff --git a/packages/session/package.json b/packages/session/package.json index c670b3ef5d7..40802d1e322 100644 --- a/packages/session/package.json +++ b/packages/session/package.json @@ -47,6 +47,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:" diff --git a/packages/session/tsconfig.json b/packages/session/tsconfig.json index 4781f83485f..affdf01a097 100644 --- a/packages/session/tsconfig.json +++ b/packages/session/tsconfig.json @@ -1,12 +1,3 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"] } diff --git a/packages/static-middleware/package.json b/packages/static-middleware/package.json index ce2f05ffa3e..fd8447756b9 100644 --- a/packages/static-middleware/package.json +++ b/packages/static-middleware/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/fetch-router": "workspace:*", "@remix-run/form-data-middleware": "workspace:*", "@remix-run/method-override-middleware": "workspace:*", diff --git a/packages/static-middleware/tsconfig.json b/packages/static-middleware/tsconfig.json index 4781f83485f..1084ecacbcf 100644 --- a/packages/static-middleware/tsconfig.json +++ b/packages/static-middleware/tsconfig.json @@ -1,12 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - } + "extends": ["@remix-run/config/tsconfig.json"], + "exclude": ["demos"] } diff --git a/packages/tar-parser/package.json b/packages/tar-parser/package.json index fdb6e59be49..fabc555b5c5 100644 --- a/packages/tar-parser/package.json +++ b/packages/tar-parser/package.json @@ -32,6 +32,7 @@ } }, "devDependencies": { + "@remix-run/config": "workspace:*", "@remix-run/fs": "workspace:*", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", diff --git a/packages/tar-parser/tsconfig.json b/packages/tar-parser/tsconfig.json index 28b65df6d60..79746a6f2f7 100644 --- a/packages/tar-parser/tsconfig.json +++ b/packages/tar-parser/tsconfig.json @@ -1,13 +1,4 @@ { - "compilerOptions": { - "strict": true, - "lib": ["ES2024", "DOM", "DOM.Iterable"], - "module": "ES2022", - "moduleResolution": "Bundler", - "target": "ESNext", - "allowImportingTsExtensions": true, - "rewriteRelativeImportExtensions": true, - "verbatimModuleSyntax": true - }, + "extends": ["@remix-run/config/tsconfig.json"], "exclude": ["bench"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e10b8e59976..bcfd1ff1faa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,6 +48,15 @@ importers: specifier: ^8.40.0 version: 8.40.0(eslint@9.33.0)(typescript@5.9.3) + config: + devDependencies: + '@tsconfig/node-ts': + specifier: ^23.6.2 + version: 23.6.2 + '@tsconfig/node22': + specifier: ^22.0.5 + version: 22.0.5 + demos/bookstore: dependencies: '@remix-run/async-context-middleware': @@ -203,6 +212,9 @@ importers: packages/async-context-middleware: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/fetch-router': specifier: workspace:* version: link:../fetch-router @@ -218,6 +230,9 @@ importers: packages/compression-middleware: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/fetch-router': specifier: workspace:* version: link:../fetch-router @@ -243,6 +258,9 @@ importers: specifier: workspace:^ version: link:../headers devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -259,6 +277,9 @@ importers: specifier: workspace:^ version: link:../headers devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -278,6 +299,9 @@ importers: specifier: workspace:^ version: link:../route-pattern devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/session': specifier: workspace:* version: link:../session @@ -367,6 +391,9 @@ importers: packages/fetch-router/demos/node: dependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../../../config '@remix-run/cookie': specifier: workspace:* version: link:../../../cookie @@ -414,6 +441,9 @@ importers: specifier: workspace:^ version: link:../lazy-file devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/form-data-parser': specifier: workspace:* version: link:../form-data-parser @@ -429,6 +459,9 @@ importers: packages/form-data-middleware: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/fetch-router': specifier: workspace:* version: link:../fetch-router @@ -451,6 +484,9 @@ importers: specifier: workspace:^ version: link:../multipart-parser devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -463,6 +499,9 @@ importers: packages/form-data-parser/demos/node: dependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../../../config '@remix-run/file-storage': specifier: workspace:^ version: link:../../../file-storage @@ -492,6 +531,9 @@ importers: specifier: workspace:^ version: link:../mime devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -504,6 +546,9 @@ importers: packages/headers: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -516,6 +561,9 @@ importers: packages/html-template: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -528,6 +576,12 @@ importers: packages/interaction: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config + '@types/node': + specifier: 'catalog:' + version: 24.6.0 '@typescript/native-preview': specifier: 'catalog:' version: 7.0.0-dev.20251125.1 @@ -569,6 +623,9 @@ importers: specifier: workspace:^ version: link:../mime devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -581,6 +638,9 @@ importers: packages/logger-middleware: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/fetch-router': specifier: workspace:* version: link:../fetch-router @@ -596,6 +656,9 @@ importers: packages/method-override-middleware: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/fetch-router': specifier: workspace:* version: link:../fetch-router @@ -614,6 +677,9 @@ importers: packages/mime: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -633,6 +699,9 @@ importers: specifier: workspace:^ version: link:../headers devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -725,6 +794,9 @@ importers: specifier: ^0.2.3 version: 0.2.3 devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -737,6 +809,9 @@ importers: packages/node-fetch-server: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -775,6 +850,9 @@ importers: specifier: workspace:^ version: link:../html-template devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/mime': specifier: workspace:* version: link:../mime @@ -793,6 +871,9 @@ importers: '@ark/attest': specifier: ^0.49.0 version: 0.49.0(typescript@5.9.3) + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -805,6 +886,9 @@ importers: packages/route-pattern/bench: dependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../../config '@remix-run/route-pattern': specifier: workspace:^ version: link:.. @@ -817,6 +901,9 @@ importers: packages/session: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@types/node': specifier: 'catalog:' version: 24.6.0 @@ -829,6 +916,9 @@ importers: packages/session-middleware: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/cookie': specifier: workspace:* version: link:../cookie @@ -860,6 +950,9 @@ importers: specifier: workspace:^ version: link:../html-template devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/fetch-router': specifier: workspace:* version: link:../fetch-router @@ -899,6 +992,9 @@ importers: packages/tar-parser: devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../../config '@remix-run/fs': specifier: workspace:* version: link:../fs @@ -954,6 +1050,10 @@ importers: semver: specifier: ^7.6.3 version: 7.6.3 + devDependencies: + '@remix-run/config': + specifier: workspace:* + version: link:../config packages: @@ -2072,6 +2172,12 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@tsconfig/node-ts@23.6.2': + resolution: {integrity: sha512-WcU3KR3tHB8XMotRBpUEGfPLT3W0gAhrHcTxU7mNQ4N1+fwF3LbjpWP07TuhZtN5ehK3bcK/R4Zzqp7Pqd7Nqg==} + + '@tsconfig/node22@22.0.5': + resolution: {integrity: sha512-hLf2ld+sYN/BtOJjHUWOk568dvjFQkHnLNa6zce25GIH+vxKfvTgm3qpaH6ToF5tu/NN0IH66s+Bb5wElHrLcw==} + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -4639,6 +4745,10 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 + '@tsconfig/node-ts@23.6.2': {} + + '@tsconfig/node22@22.0.5': {} + '@types/aria-query@5.0.4': {} '@types/body-parser@1.19.5': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ed9cf0fa362..41aa08e95ab 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -6,6 +6,7 @@ catalog: typescript: ^5.9.3 packages: + - config - demos/* - packages/* - packages/fetch-router/demos/* diff --git a/scripts/package.json b/scripts/package.json index 268eb9b1ee1..8384c52eebf 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -7,5 +7,8 @@ "@types/node": "catalog:", "@types/semver": "^7.5.8", "semver": "^7.6.3" + }, + "devDependencies": { + "@remix-run/config": "workspace:*" } }