Upgrade to TypeScript 7; make the prisma generator TS7-proof - #1641
Conversation
- prisma generator emits via string templates (byte-identical output); typescript peer dependency removed from @pothos/plugin-prisma (#1640) - enforce .js import extensions via biome useImportExtensions (forceJsExtensions) in packages/*/src; delete scripts/esm-transformer.ts and the esm:extensions build step in all packages - root typescript -> ^7.0.2; tsgo -> tsc in package scripts and vitest checkers; prisma schema providers run the generator via tsx; @swc-node/register and @typescript/native-preview removed - plugin-relay: fix two TS6/TS7 checker divergences (explicit type args for objectType inference; resolver wrapper checked against typeof resolve with one documented cast) - prisma-utils example codegen pinned to @typescript/typescript6 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: f575a92 The changes in this PR will be included in the next version bump. This PR includes changesets to release 42 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
@pothos/core
@pothos/plugin-add-graphql
@pothos/plugin-complexity
@pothos/plugin-dataloader
@pothos/plugin-directives
@pothos/plugin-drizzle
@pothos/plugin-errors
@pothos/plugin-example
@pothos/plugin-federation
@pothos/plugin-grafast
@pothos/plugin-mocks
@pothos/plugin-prisma
@pothos/plugin-prisma-utils
@pothos/plugin-relay
@pothos/plugin-scope-auth
@pothos/plugin-simple-objects
@pothos/plugin-smart-subscriptions
@pothos/plugin-sub-graph
@pothos/plugin-tracing
@pothos/plugin-validation
@pothos/plugin-with-input
@pothos/plugin-zod
@pothos/tracing-newrelic
@pothos/tracing-opentelemetry
@pothos/tracing-sentry
@pothos/tracing-xray
commit: |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the monorepo to work cleanly with TypeScript 7 (typescript-go), including removing reliance on the removed in-process TypeScript compiler JS APIs, standardizing build/typecheck tooling around tsc, and enforcing explicit .js import extensions in source to keep emitted ESM/CJS + .d.ts outputs consistently extensioned.
Changes:
- Reworked
@pothos/plugin-prisma’s generator to emit output via string templates (no runtimetypescriptdependency / no compiler API usage). - Enforced
.jsimport extensions acrosspackages/*/src(Biome rule + widespread import/export updates) and removed thescripts/esm-transformer.tspost-step. - Switched repo/package typecheck & dts build scripts from
tsgototsc, and applied TS7-related type-checker fixes in@pothos/plugin-relay.
Reviewed changes
Copilot reviewed 235 out of 236 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| vitest.config.mjs | Switch Vitest typecheck checker to tsc. |
| scripts/esm-transformer.ts | Removed now-unneeded ESM import-specifier post-transformer. |
| pnpm-lock.yaml | Lockfile updates for TS7 and removed tooling deps. |
| packages/tracing-xray/src/index.ts | Add explicit .js import/export extensions. |
| packages/tracing-xray/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/tracing-sentry/src/index.ts | Add explicit .js import/export extensions. |
| packages/tracing-sentry/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/tracing-opentelemetry/src/index.ts | Add explicit .js import/export extensions. |
| packages/tracing-opentelemetry/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/tracing-newrelic/src/index.ts | Add explicit .js import/export extensions. |
| packages/tracing-newrelic/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/test-utils/src/index.ts | Add explicit .js export extensions. |
| packages/test-utils/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-zod/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-zod/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-zod/src/createZodSchema.ts | Add explicit .js type import extension. |
| packages/plugin-zod/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-with-input/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-with-input/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-with-input/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-validation/src/utils.ts | Add explicit .js type import extension. |
| packages/plugin-validation/src/types.ts | Add explicit .js type import extension. |
| packages/plugin-validation/src/methods.ts | Add explicit .js type import extension. |
| packages/plugin-validation/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-validation/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-validation/src/errors.ts | Add explicit .js type import extension. |
| packages/plugin-validation/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-tracing/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-tracing/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-tracing/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-sub-graph/src/index.ts | Add explicit .js import extension. |
| packages/plugin-sub-graph/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-sub-graph/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-smart-subscriptions/src/utils.ts | Add explicit .js type import extension. |
| packages/plugin-smart-subscriptions/src/types.ts | Add explicit .js type import extensions / updated manager paths. |
| packages/plugin-smart-subscriptions/src/resolve-with-cache.ts | Add explicit .js type import extensions. |
| packages/plugin-smart-subscriptions/src/manager/type.ts | Add explicit .js type import extensions. |
| packages/plugin-smart-subscriptions/src/manager/index.ts | Add explicit .js type import extension. |
| packages/plugin-smart-subscriptions/src/manager/field.ts | Add explicit .js type import extensions. |
| packages/plugin-smart-subscriptions/src/manager/base.ts | Add explicit .js type import extensions. |
| packages/plugin-smart-subscriptions/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-smart-subscriptions/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-smart-subscriptions/src/create-field-data.ts | Add explicit .js import/type import extensions. |
| packages/plugin-smart-subscriptions/src/cache.ts | Add explicit .js import/type import extensions. |
| packages/plugin-smart-subscriptions/src/cache-node.ts | Add explicit .js import/type import extensions. |
| packages/plugin-smart-subscriptions/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-simple-objects/src/index.ts | Add explicit .js import extension. |
| packages/plugin-simple-objects/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-simple-objects/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-scope-auth/src/util.ts | Fix type-only import to use explicit .js path. |
| packages/plugin-scope-auth/src/types.ts | Add explicit .js type import extension. |
| packages/plugin-scope-auth/src/steps.ts | Add explicit .js type import extension. |
| packages/plugin-scope-auth/src/schema-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-scope-auth/src/resolve-helper.ts | Add explicit .js import/type import extensions. |
| packages/plugin-scope-auth/src/request-cache.ts | Add explicit .js import/type import extensions. |
| packages/plugin-scope-auth/src/is-type-of-helper.ts | Add explicit .js import/type import extensions. |
| packages/plugin-scope-auth/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-scope-auth/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-scope-auth/src/errors.ts | Add explicit .js import/type import extensions. |
| packages/plugin-scope-auth/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-relay/src/utils/resolve-nodes.ts | Add explicit .js type import extension. |
| packages/plugin-relay/src/utils/internal.ts | Add explicit .js import extension. |
| packages/plugin-relay/src/utils/index.ts | Add explicit .js export extensions. |
| packages/plugin-relay/src/utils/connections.ts | Add explicit .js type import extension. |
| packages/plugin-relay/src/utils/add-node-props.ts | Add explicit .js type import extension. |
| packages/plugin-relay/src/schema-builder.ts | TS7 type-check fixes + explicit .js imports; wrapped resolver. |
| packages/plugin-relay/src/node-ref.ts | Add explicit .js import/type import extensions. |
| packages/plugin-relay/src/input-field-builder.ts | Add explicit .js type import extension. |
| packages/plugin-relay/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-relay/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-relay/src/field-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-relay/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-prisma/tests/prisma-types-from-client/schema.prisma | Run source generator via tsx instead of swc-node register. |
| packages/plugin-prisma/src/util/selections.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/util/relation-map.ts | Add explicit .js type import extension. |
| packages/plugin-prisma/src/util/map-query.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/util/loader-map.ts | Add explicit .js type import extension. |
| packages/plugin-prisma/src/util/get-client.ts | Add explicit .js type import extension. |
| packages/plugin-prisma/src/util/description.ts | Add explicit .js import extension. |
| packages/plugin-prisma/src/util/datamodel.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/util/cursors.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/types.ts | Add explicit .js type import extensions. |
| packages/plugin-prisma/src/schema-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/prisma-field-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/object-ref.ts | Add explicit .js type import extension. |
| packages/plugin-prisma/src/node-ref.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/model-loader.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/interface-ref.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-prisma/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-prisma/src/generator.ts | Replace TS compiler API emit with string-template emit (TS7-proof). |
| packages/plugin-prisma/src/field-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/src/connection-helpers.ts | Add explicit .js import/type import extensions. |
| packages/plugin-prisma/prisma/schema.prisma | Run generator via tsx instead of swc-node register. |
| packages/plugin-prisma/package.json | Remove typescript peer dep; switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-prisma-utils/tests/examples/codegen/util.ts | Pin TS compiler API usage to @typescript/typescript6. |
| packages/plugin-prisma-utils/tests/examples/codegen/generator.ts | Pin TS types to @typescript/typescript6 for compiler API typing. |
| packages/plugin-prisma-utils/src/schema-builder.ts | Add explicit .js type import extension. |
| packages/plugin-prisma-utils/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-prisma-utils/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-prisma-utils/package.json | Switch scripts to tsc; add @typescript/typescript6; remove ts-node/typescript 6 dev deps. |
| packages/plugin-mocks/src/index.ts | Add explicit .js import/type import extension. |
| packages/plugin-mocks/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-mocks/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-grafast/src/index.ts | Add explicit .js import/type import extension. |
| packages/plugin-grafast/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-grafast/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-federation/vitest.config.js | Switch Vitest typecheck checker to tsc. |
| packages/plugin-federation/src/util.ts | Add explicit .js type import extension. |
| packages/plugin-federation/src/types.ts | Add explicit .js import extension. |
| packages/plugin-federation/src/schema-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-federation/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-federation/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-federation/src/external-ref.ts | Add explicit .js import/type import extensions. |
| packages/plugin-federation/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-example/src/index.ts | Add explicit .js import/export extension. |
| packages/plugin-example/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-example/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-errors/src/utils.ts | Add explicit .js type import extension. |
| packages/plugin-errors/src/schema-builder.ts | Add explicit .js import extension. |
| packages/plugin-errors/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-errors/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-errors/src/field-builder.ts | Add explicit .js import/type import extension. |
| packages/plugin-errors/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-drizzle/src/utils/selections.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/utils/refs.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/utils/map-query.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/utils/cursors.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/utils/config.ts | Add explicit .js type import extension. |
| packages/plugin-drizzle/src/types.ts | Add explicit .js type import extensions / export paths. |
| packages/plugin-drizzle/src/schema-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/object-ref.ts | Add explicit .js type import extension. |
| packages/plugin-drizzle/src/node-ref.ts | Add explicit .js import extension. |
| packages/plugin-drizzle/src/model-loader.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/interface-ref.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-drizzle/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-drizzle/src/field-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/drizzle-field-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/src/connection-helpers.ts | Add explicit .js import/type import extensions. |
| packages/plugin-drizzle/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-directives/vitest.config.js | Switch Vitest typecheck checker to tsc. |
| packages/plugin-directives/src/mock-ast.ts | Add explicit .js import/type import extension. |
| packages/plugin-directives/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-directives/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-directives/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-dataloader/src/schema-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-dataloader/src/refs/object.ts | Add explicit .js import/type import extensions. |
| packages/plugin-dataloader/src/refs/node.ts | Add explicit .js import/type import extensions. |
| packages/plugin-dataloader/src/refs/interface.ts | Add explicit .js type import extensions. |
| packages/plugin-dataloader/src/refs/index.ts | Add explicit .js export extensions. |
| packages/plugin-dataloader/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-dataloader/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-dataloader/src/field-builder.ts | Add explicit .js import/type import extension. |
| packages/plugin-dataloader/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-complexity/src/validator.ts | Add explicit .js import extensions. |
| packages/plugin-complexity/src/util.ts | Add explicit .js import extensions. |
| packages/plugin-complexity/src/index.ts | Add explicit .js import/export extensions. |
| packages/plugin-complexity/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-complexity/src/calculate-complexity.ts | Fix type-only import paths for .js extensions. |
| packages/plugin-complexity/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/plugin-add-graphql/src/schema-builder.ts | Add explicit .js import/type import extensions. |
| packages/plugin-add-graphql/src/index.ts | Add explicit .js import extensions. |
| packages/plugin-add-graphql/src/global-types.ts | Fix type-only imports to use explicit .js paths. |
| packages/plugin-add-graphql/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/core/src/utils/params.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/utils/input.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/utils/index.ts | Add explicit .js / types/index.js import paths and reexports. |
| packages/core/src/utils/enums.ts | Update type import path to types/index.js. |
| packages/core/src/utils/base64.ts | Add explicit .js import extension. |
| packages/core/src/types/type-params.ts | Add explicit .js type import extensions. |
| packages/core/src/types/schema-types.ts | Add explicit .js type import extension. |
| packages/core/src/types/plugins.ts | Add explicit .js type import extensions. |
| packages/core/src/types/index.ts | Update global type side-effect import to explicit .js. |
| packages/core/src/types/global/type-options.ts | Add explicit .js type import extensions. |
| packages/core/src/types/global/schema-types.ts | Add explicit .js type import extensions. |
| packages/core/src/types/global/index.ts | Add explicit .js side-effect import extensions. |
| packages/core/src/types/global/field-options.ts | Add explicit .js type import extensions. |
| packages/core/src/types/global/classes.ts | Add explicit .js type import extensions across core types. |
| packages/core/src/types/configs.ts | Add explicit .js type import extensions. |
| packages/core/src/types/builder-options.ts | Add explicit .js type import extensions. |
| packages/core/src/refs/union.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/subscription.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/scalar.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/query.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/output.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/object.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/mutation.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/list.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/interface.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/input.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/input-object.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/input-list.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/input-field.ts | Update type import path to types/index.js. |
| packages/core/src/refs/field.ts | Update type import path to types/index.js. |
| packages/core/src/refs/enum.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/builtin-scalar.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/base.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/base-with-fields.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/refs/arg.ts | Update type import path to types/index.js. |
| packages/core/src/plugins/plugin.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/plugins/merge-plugins.ts | Add explicit .js / index reexport import paths. |
| packages/core/src/plugins/index.ts | Add explicit .js export extensions. |
| packages/core/src/index.ts | Add explicit .js import/export paths across core entrypoint. |
| packages/core/src/fieldUtils/subscription.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/root.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/query.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/object.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/mutation.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/interface.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/input.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/builder.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/fieldUtils/base.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/config-store.ts | Add explicit .js / types/index.js import paths. |
| packages/core/src/builder.ts | Add explicit .js / types/index.js import paths across core builder. |
| packages/core/src/build-cache.ts | Add explicit .js / types/index.js import paths across build cache. |
| packages/core/package.json | Switch scripts to tsc; remove esm:extensions step. |
| packages/converter/src/cli.ts | Add explicit .js import extension for local index. |
| packages/converter/package.json | Switch scripts to tsc; remove esm:extensions step. |
| package.json | Upgrade root typescript to ^7.0.2 and remove tsgo/swc-node preview tooling deps. |
| biome.json | Enforce .js import extensions under packages/*/src via Biome lint rule. |
| .changeset/typescript-7-support.md | Changeset for TS7 support (prisma generator + relay fixes). |
| .changeset/typescript-7-build-tooling.md | Changeset for TS7 rebuild + .js import extension enforcement. |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…of never Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixes #1640.
Prisma generator (#1640)
TypeScript 7 ships no in-process JS compiler API (
@typescript/apiis deferred to 7.1 and is query-oriented, not emit-oriented), so the generator'sts.factory/createPrinterusage could never work for users on TS7. The generator now emits its output via string templates — the same approach Prisma's own client generator uses (ts-builders).documentation, built bin +generateDatamodel,prismaUtils: true, and the default-output path with CJS/ESM.jscompanions).typescriptremoved from@pothos/plugin-prisma's peer dependencies — the generator no longer cares which TS version (if any) is installed.Import extensions enforced by lint; esm-transformer deleted
Biome's
correctness/useImportExtensions(forceJsExtensions: true, scoped topackages/*/src) now enforces explicit.jsextensions in source (~600 imports auto-fixed). With extensioned sources, swc's ESM output and tsc's declaration emit (including synthesizedimport("...")type nodes) come out fully extensioned on their own, soscripts/esm-transformer.tsand theesm:extensionsstep in every package are deleted. Audited allesm/+dts/output: zero extensionless relative specifiers remain.TypeScript 7 toolchain
typescript→^7.0.2(real package;tscis the Go compiler).@typescript/native-previewand thetypescript6alias removed.tsgo→tscin all packagetype/build:dtsscripts and vitesttypecheck.checker.tsx(replacingnode -r @swc-node/register, which requires the removed JS API);@swc-node/registerdropped.website/+ 4 examples (owntypescript ^6.0.2devDeps), and the prisma-utils example codegen (imports@typescript/typescript6).plugin-relay: TS6↔TS7 checker divergences
Two errors appear under 7.0.2 stable (and 7.1 nightly) in code that TS 6.0.2 checks clean. Both match typescript-go's bug cluster (cf. microsoft/typescript-go#3494, #3747, #4408) rather than intentional changes, contradicting the project's "same errors as TS 6.0" parity goal — likely worth filing a minimal repro upstream.
node()→objectType(): TS7 infersobjectType'sParamfrom the options/fields positions instead of the ref argument. Fixed with explicit type arguments — no type-safety change.relayMutationField: TS7 can't relate the declaredResolverconditional return type to the impl-side one — even passing the untouchedresolvevalue fails, so no restructuring can satisfy it. The wrapper is now annotated: typeof resolve(fully checked; this removed a pre-existingfieldArgs as never) with one documented cast at the property assignment.Verification
generate,build,type,testacross all 28 packages (test files type-checked under TS7 too).generated.tsbaselines unchanged after regeneration through both the source provider and the compiled bin).tsc7.0.2 andtsc66.0.2.🤖 Generated with Claude Code