Skip to content

[api] Remove package.json "imports" - #64879

Merged
Andrew Branch (andrewbranch) merged 5 commits into
microsoft:mainfrom
andrewbranch:enum-module-resolution
Oct 20, 2026
Merged

Andrew Branch (andrewbranch) merged 5 commits into
microsoft:mainfrom
andrewbranch:enum-module-resolution

Conversation

@andrewbranch

@andrewbranch Andrew Branch (andrewbranch) commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

This is a prerequisite to being able to load the API directly from a CDN, prior to #63858

Basically, we're in a pick-any-three situation between

  1. Run tests from TS source in plain Node.js without a build or loader
  2. Use real TS enums for type checking
  3. Be able to load directly from a CDN
  4. Produce the output JS entirely with tsc Put the enums in src and produce output to dist entirely with tsc

In this PR, we are gaining (3) and losing (4); we now need to copy .js and .d.ts files from src to dist as part of the API build we now just generate the built enums to a top-level enums directory that gets included in the packed package, similar to vendor.

Copilot AI balanced review requested due to automatic review settings October 19, 2026 22:35
@github-project-automation github-project-automation Bot moved this to Not started in PR Backlog Oct 19, 2026
@typescript-automation typescript-automation Bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Oct 19, 2026
@andrewbranch

Copy link
Copy Markdown
Member Author

Actually, I guess we could just put the enums in some other top-level directory besides dist, similar to vendor

Copilot AI balanced review requested due to automatic review settings October 19, 2026 22:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The relative imports, enum artifacts, packaging, and generator updates are consistent, with no blocking issues identified.

No open issues 🎉

What changed in this PR

Removes package-import aliases from the TypeScript API package, preparing it for direct CDN loading ahead of the WASI work in #63858.

Changes:

  • Replaces aliases with relative imports across API, AST, CLI, and test code.
  • Moves enums into packaged .js/.d.ts pairs under enums.
  • Updates generators and artifact tests for the new layout.
File Description
tools/​scripts/​tsc/​options.test.ts Checks enum declaration artifacts.
tools/​scripts/​tsc/​generate-ts-ast.ts Generates relative enum imports.
tools/​scripts/​tsc/​generate-options.ts Generates relative option-enum imports.
tools/​scripts/​tsc/​generate-enums.ts Emits top-level JavaScript and declarations.
tools/​scripts/​gen/​generatedFile.test.mts Tracks relocated enum artifacts.
tools/​gen-proto/​main.go Generates relative protocol enum imports.
tools/​gen-proto/​main_test.go Updates expected import paths.
packages/​typescript/​test/​version.test.ts Imports executable helper directly.
packages/​typescript/​test/​timingDump.test.ts Imports vendored JSON-RPC directly.
packages/​typescript/​test/​proto.test.ts Imports relocated protocol enum.
packages/​typescript/​src/​enums/​languageVariant.enum.ts Removes superseded enum source.
packages/​typescript/​src/​enums/​commentDirectiveType.enum.ts Removes superseded enum source.
packages/​typescript/​src/​ast/​visitor.ts Uses relative enum import.
packages/​typescript/​src/​ast/​visitor.generated.ts Updates generated enum import.
packages/​typescript/​src/​ast/​utils.ts Uses relative enum imports.
packages/​typescript/​src/​ast/​spanMap.ts Uses relative span-map enum imports.
packages/​typescript/​src/​ast/​scanner.ts Uses relative scanner enum imports.
packages/​typescript/​src/​ast/​modifiers.ts Uses relative enum imports.
packages/​typescript/​src/​ast/​is.ts Uses relative enum imports.
packages/​typescript/​src/​ast/​is.generated.ts Updates generated enum import.
packages/​typescript/​src/​ast/​index.ts Re-exports relocated enums.
packages/​typescript/​src/​ast/​factory.generated.ts Updates generated enum imports.
packages/​typescript/​src/​ast/​clone.ts Uses relative enum import.
packages/​typescript/​src/​ast/​astnav.ts Uses relative enum imports.
packages/​typescript/​src/​ast/​ast.ts Updates enum imports and exports.
packages/​typescript/​src/​ast/​ast.generated.ts Updates generated enum imports.
packages/​typescript/​src/​api/​sync/​types.ts References relocated enum declarations.
packages/​typescript/​src/​api/​sync/​api.ts Uses relative enum imports.
packages/​typescript/​src/​api/​proto.ts Uses relative protocol enum import.
packages/​typescript/​src/​api/​proto.generated.ts Updates generated enum imports and exports.
packages/​typescript/​src/​api/​path.ts References relocated case-sensitivity enum.
packages/​typescript/​src/​api/​options.ts Imports executable helper directly.
packages/​typescript/​src/​api/​fs.ts Imports executable helper directly.
packages/​typescript/​src/​api/​compilerOptions.generated.ts References relocated option enums.
packages/​typescript/​src/​api/​async/​types.ts References relocated enum declarations.
packages/​typescript/​src/​api/​async/​client.ts Imports vendored JSON-RPC directly.
packages/​typescript/​src/​api/​async/​api.ts Uses relative enum imports.
packages/​typescript/​README.md Removes trailing blank line only.
packages/​typescript/​package.json Packages enums and removes import aliases.
packages/​typescript/​lib/​tsc.js Imports executable helper directly.
packages/​typescript/​enums/​typePredicateKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​typePredicateKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​typeFormatFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​typeFormatFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​typeFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​typeFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​tokenFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​tokenFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​syntaxKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​syntaxKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​symbolOwnerKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​symbolOwnerKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​symbolFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​symbolFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​spanMapKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​spanMapKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​spanMapFidelity.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​spanMapFidelity.d.ts Relocates enum declaration.
packages/​typescript/​enums/​spanMapFeature.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​spanMapFeature.d.ts Relocates enum declaration.
packages/​typescript/​enums/​signatureKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​signatureKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​signatureFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​signatureFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​scriptTarget.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​scriptTarget.d.ts Relocates enum declaration.
packages/​typescript/​enums/​scriptKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​scriptKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​regularExpressionFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​regularExpressionFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​outerExpressionKinds.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​outerExpressionKinds.d.ts Relocates enum declaration.
packages/​typescript/​enums/​objectFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​objectFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​nodeFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​nodeFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​nodeBuilderFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​nodeBuilderFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​newLineKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​newLineKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​moduleResolutionKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​moduleResolutionKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​moduleKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​moduleKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​moduleDetectionKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​moduleDetectionKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​modifierFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​modifierFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​languageVariant.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​languageVariant.d.ts Adds replacement enum declaration.
packages/​typescript/​enums/​jsxEmit.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​jsxEmit.d.ts Relocates enum declaration.
packages/​typescript/​enums/​jsDeclarationKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​jsDeclarationKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​internalSymbolName.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​internalSymbolName.d.ts Relocates enum declaration.
packages/​typescript/​enums/​indexKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​indexKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​emitOnly.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​emitOnly.d.ts Relocates enum declaration.
packages/​typescript/​enums/​elementFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​elementFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​diagnosticDirectivePolicy.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​diagnosticDirectivePolicy.d.ts Relocates enum declaration.
packages/​typescript/​enums/​diagnosticCategory.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​diagnosticCategory.d.ts Relocates enum declaration.
packages/​typescript/​enums/​completionItemKind.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​completionItemKind.d.ts Relocates enum declaration.
packages/​typescript/​enums/​commentDirectiveType.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​commentDirectiveType.d.ts Adds replacement enum declaration.
packages/​typescript/​enums/​checkFlags.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​checkFlags.d.ts Relocates enum declaration.
packages/​typescript/​enums/​characterCodes.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​characterCodes.d.ts Relocates enum declaration.
packages/​typescript/​enums/​caseSensitivity.js Relocates runtime enum as JavaScript.
packages/​typescript/​enums/​caseSensitivity.d.ts Relocates enum declaration.
Herebyfile.mjs Updates vendoring comment only.

Review effort: Balanced

@github-project-automation github-project-automation Bot moved this from Not started to Needs merge in PR Backlog Oct 20, 2026
@andrewbranch
Andrew Branch (andrewbranch) added this pull request to the merge queue Oct 20, 2026
Merged via the queue into microsoft:main with commit 5733ab0 Oct 20, 2026
29 checks passed
@andrewbranch
Andrew Branch (andrewbranch) deleted the enum-module-resolution branch October 20, 2026 20:37
@github-project-automation github-project-automation Bot moved this from Needs merge to Done in PR Backlog Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants