diff --git a/package.json b/package.json index 2fa569d..5bd28e1 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "prettier": "^3.6.2", "reflect-metadata": "^0.2.2", "rimraf": "^6.0.1", - "typescript": "^5.9.3", + "typescript": "^6.0.3", "vitest": "^4.0.2" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 88d0c60..edf0358 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,14 +22,14 @@ importers: version: 8.16.3 typeorm: specifier: ^0.3.27 - version: 0.3.27(pg@8.16.3)(reflect-metadata@0.2.2)(ts-node@10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@5.9.3)) + version: 0.3.27(pg@8.16.3)(reflect-metadata@0.2.2)(ts-node@10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@6.0.3)) devDependencies: '@rslib/core': specifier: ^0.16.1 - version: 0.16.1(typescript@5.9.3) + version: 0.16.1(typescript@6.0.3) '@swc-node/register': specifier: ^1.11.1 - version: 1.11.1(@swc/core@1.13.5(@swc/helpers@0.5.17))(@swc/types@0.1.25)(typescript@5.9.3) + version: 1.11.1(@swc/core@1.13.5(@swc/helpers@0.5.17))(@swc/types@0.1.25)(typescript@6.0.3) '@swc/core': specifier: ^1.13.5 version: 1.13.5(@swc/helpers@0.5.17) @@ -58,8 +58,8 @@ importers: specifier: ^6.0.1 version: 6.0.1 typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: ^6.0.3 + version: 6.0.3 vitest: specifier: ^4.0.2 version: 4.0.2(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.20.3) @@ -2133,11 +2133,13 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@11.0.3: resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true globals@14.0.0: @@ -2553,6 +2555,7 @@ packages: next@16.0.0: resolution: {integrity: sha512-nYohiNdxGu4OmBzggxy9rczmjIGI+TpR5vbKTsE1HqYwNm1B+YSiugSrFguX6omMOKnDHAmBPY4+8TNJk0Idyg==} engines: {node: '>=20.9.0'} + deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/CVE-2025-66478 for more details. hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -3153,6 +3156,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} @@ -4053,12 +4061,12 @@ snapshots: core-js: 3.46.0 jiti: 2.6.1 - '@rslib/core@0.16.1(typescript@5.9.3)': + '@rslib/core@0.16.1(typescript@6.0.3)': dependencies: '@rsbuild/core': 1.6.0-beta.1 - rsbuild-plugin-dts: 0.16.1(@rsbuild/core@1.6.0-beta.1)(typescript@5.9.3) + rsbuild-plugin-dts: 0.16.1(@rsbuild/core@1.6.0-beta.1)(typescript@6.0.3) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - '@typescript/native-preview' @@ -4143,6 +4151,21 @@ snapshots: - '@swc/types' - supports-color + '@swc-node/register@1.11.1(@swc/core@1.13.5(@swc/helpers@0.5.17))(@swc/types@0.1.25)(typescript@6.0.3)': + dependencies: + '@swc-node/core': 1.14.1(@swc/core@1.13.5(@swc/helpers@0.5.17))(@swc/types@0.1.25) + '@swc-node/sourcemap-support': 0.6.1 + '@swc/core': 1.13.5(@swc/helpers@0.5.17) + colorette: 2.0.20 + debug: 4.4.3 + oxc-resolver: 11.11.1 + pirates: 4.0.7 + tslib: 2.8.1 + typescript: 6.0.3 + transitivePeerDependencies: + - '@swc/types' + - supports-color + '@swc-node/sourcemap-support@0.6.1': dependencies: source-map-support: 0.5.21 @@ -5003,7 +5026,7 @@ snapshots: eslint: 9.38.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-react-hooks: 7.0.1(eslint@9.38.0(jiti@2.6.1)) @@ -5036,7 +5059,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -5051,7 +5074,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -6013,12 +6036,12 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.5 fsevents: 2.3.3 - rsbuild-plugin-dts@0.16.1(@rsbuild/core@1.6.0-beta.1)(typescript@5.9.3): + rsbuild-plugin-dts@0.16.1(@rsbuild/core@1.6.0-beta.1)(typescript@6.0.3): dependencies: '@ast-grep/napi': 0.37.0 '@rsbuild/core': 1.6.0-beta.1 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 run-parallel@1.2.0: dependencies: @@ -6287,7 +6310,7 @@ snapshots: dependencies: typescript: 5.9.3 - ts-node@10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@6.0.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -6301,7 +6324,7 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.9.3 + typescript: 6.0.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: @@ -6362,7 +6385,7 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typeorm@0.3.27(pg@8.16.3)(reflect-metadata@0.2.2)(ts-node@10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@5.9.3)): + typeorm@0.3.27(pg@8.16.3)(reflect-metadata@0.2.2)(ts-node@10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@6.0.3)): dependencies: '@sqltools/formatter': 1.2.5 ansis: 3.17.0 @@ -6381,7 +6404,7 @@ snapshots: yargs: 17.7.2 optionalDependencies: pg: 8.16.3 - ts-node: 10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.13.5(@swc/helpers@0.5.17))(@types/node@24.9.1)(typescript@6.0.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -6399,6 +6422,8 @@ snapshots: typescript@5.9.3: {} + typescript@6.0.3: {} + unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 diff --git a/src/client/types/base.ts b/src/client/types/base.ts index 109351f..cda5482 100644 --- a/src/client/types/base.ts +++ b/src/client/types/base.ts @@ -56,8 +56,17 @@ export type OmitByType = Pick< { [K in keyof T]-?: T[K] extends Type ? never : K }[keyof T] >; +// TS 6.0 infers the exact argument shape (unknown keys included), so T[K] +// checks a value against itself — excess keys pass. U[K] checks against the +// declared shape instead. The phantom-key branch keeps T[K] referenced so +// TypeScript still infers T and Payload still narrows to selected fields. +// https://github.com/microsoft/TypeScript/issues/63515 export type Options = { - [K in keyof T]: K extends keyof U ? T[K] : never; + [K in keyof T]: K extends keyof U + ? K extends "__use_T_so_it_is_inferred__" + ? T[K] + : U[K] + : never; }; export type OrderBy = "ASC" | "DESC"; diff --git a/tsconfig.json b/tsconfig.json index 3e01d1a..de7cfa6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "module": "ESNext", "moduleDetection": "force", "skipLibCheck": true, + "types": ["node"], "allowJs": true, "esModuleInterop": true,