ttsc 0.18.4 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -6
- package/cmd/graphbench/main.go +1 -1
- package/cmd/platform/main.go +1 -48
- package/cmd/ttsc/build_branches_test.go +5 -1
- package/cmd/ttsc/main.go +0 -50
- package/cmd/ttsc/main_alias_branches_test.go +6 -12
- package/cmd/ttscgraph/dump.go +13 -3
- package/cmd/ttscserver/main.go +5 -3
- package/driver/lsp.go +13 -1
- package/driver/plugins.go +35 -0
- package/driver/program.go +7 -8
- package/driver/rewrite.go +381 -21
- package/go.mod +1 -0
- package/internal/graph/build.go +297 -3
- package/internal/graph/build_records_a_node_per_top_level_declaration_test.go +16 -2
- package/internal/graph/diagnostics.go +5 -4
- package/internal/graph/dump.go +60 -4
- package/internal/graph/dump_is_a_function_of_the_source_test.go +71 -0
- package/internal/graph/dump_serializes_the_full_graph_test.go +16 -4
- package/internal/graph/edges.go +122 -11
- package/internal/graph/exports.go +74 -17
- package/internal/graph/graph.go +33 -1
- package/internal/graph/node_identity_is_position_invariant_test.go +4 -2
- package/internal/graph/resolve.go +24 -0
- package/internal/graphsymbols/provider.go +50 -14
- package/internal/lspserver/lsp_native_plugin_source.go +77 -23
- package/internal/lspserver/lsp_plugin.go +19 -2
- package/internal/lspserver/lsp_proxy.go +244 -52
- package/internal/lspserver/lsp_server.go +35 -27
- package/internal/lspserver/lsp_symbols.go +25 -16
- package/lib/TtscCompiler.d.ts +10 -0
- package/lib/TtscCompiler.js +24 -6
- package/lib/TtscCompiler.js.map +1 -1
- package/lib/TtscService.js +9 -7
- package/lib/TtscService.js.map +1 -1
- package/lib/compiler/internal/compileProjectInMemory.js +1 -0
- package/lib/compiler/internal/compileProjectInMemory.js.map +1 -1
- package/lib/compiler/internal/project/createNativeProjectContextArgs.d.ts +3 -0
- package/lib/compiler/internal/project/createNativeProjectContextArgs.js +14 -0
- package/lib/compiler/internal/project/createNativeProjectContextArgs.js.map +1 -0
- package/lib/compiler/internal/project/readProjectConfig.js +53 -4
- package/lib/compiler/internal/project/readProjectConfig.js.map +1 -1
- package/lib/compiler/internal/project/resolveProjectConfig.d.ts +9 -2
- package/lib/compiler/internal/project/resolveProjectConfig.js +45 -16
- package/lib/compiler/internal/project/resolveProjectConfig.js.map +1 -1
- package/lib/compiler/internal/residentTransformProcess.d.ts +16 -5
- package/lib/compiler/internal/residentTransformProcess.js +68 -20
- package/lib/compiler/internal/residentTransformProcess.js.map +1 -1
- package/lib/compiler/internal/runBuild.d.ts +11 -0
- package/lib/compiler/internal/runBuild.js +44 -8
- package/lib/compiler/internal/runBuild.js.map +1 -1
- package/lib/compiler/internal/runSingleFileEmit.js +7 -4
- package/lib/compiler/internal/runSingleFileEmit.js.map +1 -1
- package/lib/compiler/internal/sharedHostHelpers.d.ts +16 -0
- package/lib/compiler/internal/sharedHostHelpers.js +23 -0
- package/lib/compiler/internal/sharedHostHelpers.js.map +1 -1
- package/lib/compiler/internal/startResidentTransform.js +18 -1
- package/lib/compiler/internal/startResidentTransform.js.map +1 -1
- package/lib/compiler/internal/transformProjectInMemory.js +34 -8
- package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
- package/lib/flags/parser.d.ts +17 -0
- package/lib/flags/parser.js +11 -1
- package/lib/flags/parser.js.map +1 -1
- package/lib/flags/schema.js +7 -0
- package/lib/flags/schema.js.map +1 -1
- package/lib/launcher/internal/prepareExecution.js +21 -2
- package/lib/launcher/internal/prepareExecution.js.map +1 -1
- package/lib/launcher/internal/runTtsc.js +13 -53
- package/lib/launcher/internal/runTtsc.js.map +1 -1
- package/lib/launcher/internal/runTtscserver.js +11 -0
- package/lib/launcher/internal/runTtscserver.js.map +1 -1
- package/lib/launcher/internal/runTtsx.js +27 -11
- package/lib/launcher/internal/runTtsx.js.map +1 -1
- package/lib/launcher/internal/runtimeHooks.d.ts +81 -0
- package/lib/launcher/internal/runtimeHooks.js +632 -43
- package/lib/launcher/internal/runtimeHooks.js.map +1 -1
- package/lib/launcher/internal/servedSourceMap.d.ts +25 -0
- package/lib/launcher/internal/servedSourceMap.js +164 -0
- package/lib/launcher/internal/servedSourceMap.js.map +1 -0
- package/lib/plugin/internal/buildSourcePlugin.d.ts +146 -2
- package/lib/plugin/internal/buildSourcePlugin.js +651 -113
- package/lib/plugin/internal/buildSourcePlugin.js.map +1 -1
- package/lib/plugin/internal/loadProjectPlugins.d.ts +7 -0
- package/lib/plugin/internal/loadProjectPlugins.js +33 -10
- package/lib/plugin/internal/loadProjectPlugins.js.map +1 -1
- package/lib/structures/ITtscCompilerContext.d.ts +16 -2
- package/lib/structures/ITtscPluginCapabilities.d.ts +8 -0
- package/lib/structures/ITtscPluginFactoryContext.d.ts +14 -0
- package/lib/structures/internal/ITtscParsedProjectConfig.d.ts +3 -0
- package/lib/structures/internal/ITtscProjectIdentity.d.ts +17 -0
- package/lib/structures/internal/ITtscProjectIdentity.js +3 -0
- package/lib/structures/internal/ITtscProjectIdentity.js.map +1 -0
- package/lib/structures/internal/TtscCommonOptions.d.ts +8 -0
- package/package.json +11 -8
- package/shim/ast/lint.go +10 -0
- package/shim/ast/shim.go +44 -0
- package/shim/checker/enums_gen.go +19 -0
- package/shim/checker/shim.go +130 -0
- package/shim/diagnosticwriter/lint.go +30 -3
- package/shim/scanner/regexp.go +27 -0
- package/src/TtscCompiler.ts +25 -6
- package/src/TtscService.ts +15 -7
- package/src/compiler/internal/compileProjectInMemory.ts +1 -0
- package/src/compiler/internal/project/createNativeProjectContextArgs.ts +15 -0
- package/src/compiler/internal/project/readProjectConfig.ts +61 -5
- package/src/compiler/internal/project/resolveProjectConfig.ts +51 -21
- package/src/compiler/internal/residentTransformProcess.ts +95 -21
- package/src/compiler/internal/runBuild.ts +76 -9
- package/src/compiler/internal/runSingleFileEmit.ts +7 -4
- package/src/compiler/internal/sharedHostHelpers.ts +24 -0
- package/src/compiler/internal/startResidentTransform.ts +21 -1
- package/src/compiler/internal/transformProjectInMemory.ts +49 -6
- package/src/flags/parser.ts +28 -1
- package/src/flags/schema.ts +8 -0
- package/src/launcher/internal/prepareExecution.ts +22 -2
- package/src/launcher/internal/runTtsc.ts +13 -61
- package/src/launcher/internal/runTtscserver.ts +14 -0
- package/src/launcher/internal/runTtsx.ts +28 -13
- package/src/launcher/internal/runtimeHooks.ts +771 -53
- package/src/launcher/internal/servedSourceMap.ts +183 -0
- package/src/plugin/internal/buildSourcePlugin.ts +859 -122
- package/src/plugin/internal/loadProjectPlugins.ts +36 -6
- package/src/structures/ITtscCompilerContext.ts +17 -2
- package/src/structures/ITtscPluginCapabilities.ts +9 -0
- package/src/structures/ITtscPluginFactoryContext.ts +15 -0
- package/src/structures/internal/ITtscParsedProjectConfig.ts +3 -0
- package/src/structures/internal/ITtscProjectIdentity.ts +17 -0
- package/src/structures/internal/TtscCommonOptions.ts +8 -0
- package/tools/shim_audit/baseline.json +16 -7
- package/tools/shim_audit/main.go +777 -71
- package/tools/shim_audit/main_test.go +28 -1
- package/tools/shim_audit/producer_exemptions_require_rationale_test.go +42 -0
- package/tools/shim_audit/producer_surface_includes_exposed_methods_test.go +154 -0
- package/tools/shim_audit/producer_surface_rejects_unproducible_reference_test.go +142 -0
- package/utility/host.go +46 -20
- package/utility/serve.go +1 -1
- package/shim/checker/signature_api_completeness.go +0 -58
|
@@ -48,7 +48,12 @@ type PackageManifest = {
|
|
|
48
48
|
* @param options.cwd - Working directory for resolving relative paths.
|
|
49
49
|
* @param options.entries - Explicit plugin entries; `false` disables all
|
|
50
50
|
* plugins (skips both tsconfig entries and package auto-discovery).
|
|
51
|
+
* @param options.env - Effective environment for source-plugin builds and the
|
|
52
|
+
* `ttsx` descriptor child (`{ ...process.env, ...context.env }`). Defaults to
|
|
53
|
+
* `process.env` for CLI callers, so ambient behavior is unchanged.
|
|
51
54
|
* @param options.file - Path to the tsconfig/jsconfig file.
|
|
55
|
+
* @param options.pluginConfigDir - Caller-declared anchor for plugin
|
|
56
|
+
* config-file discovery (see `ITtscPluginFactoryContext.pluginConfigDir`).
|
|
52
57
|
* @param options.projectRoot - Override the project root directory.
|
|
53
58
|
* @param options.tsconfig - Alias for `file`.
|
|
54
59
|
*/
|
|
@@ -57,13 +62,16 @@ export function loadProjectPlugins(options: {
|
|
|
57
62
|
cacheDir?: string;
|
|
58
63
|
cwd?: string;
|
|
59
64
|
entries?: readonly ITtscProjectPluginConfig[] | false;
|
|
65
|
+
env?: NodeJS.ProcessEnv;
|
|
60
66
|
file?: string;
|
|
67
|
+
pluginConfigDir?: string;
|
|
61
68
|
projectRoot?: string;
|
|
62
69
|
tsconfig?: string;
|
|
63
70
|
}): {
|
|
64
71
|
nativePlugins: ITtscLoadedNativePlugin[];
|
|
65
72
|
project: ITtscParsedProjectConfig;
|
|
66
73
|
} {
|
|
74
|
+
const effectiveEnv = options.env ?? process.env;
|
|
67
75
|
const project = readProjectConfig({
|
|
68
76
|
cwd: options.cwd,
|
|
69
77
|
file: options.file,
|
|
@@ -83,9 +91,13 @@ export function loadProjectPlugins(options: {
|
|
|
83
91
|
};
|
|
84
92
|
}
|
|
85
93
|
|
|
94
|
+
const cwd = path.resolve(options.cwd ?? process.cwd());
|
|
86
95
|
const context = {
|
|
87
96
|
binary: options.binary,
|
|
88
|
-
cwd
|
|
97
|
+
cwd,
|
|
98
|
+
...(options.pluginConfigDir === undefined || options.pluginConfigDir === ""
|
|
99
|
+
? {}
|
|
100
|
+
: { pluginConfigDir: path.resolve(cwd, options.pluginConfigDir) }),
|
|
89
101
|
projectRoot: project.root,
|
|
90
102
|
tsconfig: project.path,
|
|
91
103
|
};
|
|
@@ -96,6 +108,7 @@ export function loadProjectPlugins(options: {
|
|
|
96
108
|
entry.config,
|
|
97
109
|
{ ...context, plugin: entry.config },
|
|
98
110
|
entry.baseDir,
|
|
111
|
+
effectiveEnv,
|
|
99
112
|
),
|
|
100
113
|
),
|
|
101
114
|
);
|
|
@@ -156,6 +169,7 @@ export function loadProjectPlugins(options: {
|
|
|
156
169
|
baseDir: context.projectRoot,
|
|
157
170
|
cacheDir: options.cacheDir,
|
|
158
171
|
contributors: mergeContributors(record.contributors, hostContributors),
|
|
172
|
+
env: effectiveEnv,
|
|
159
173
|
pluginName: record.label,
|
|
160
174
|
source: record.source,
|
|
161
175
|
ttscVersion,
|
|
@@ -169,6 +183,7 @@ export function loadProjectPlugins(options: {
|
|
|
169
183
|
baseDir: context.projectRoot,
|
|
170
184
|
cacheDir: options.cacheDir,
|
|
171
185
|
contributors: linkedContributors,
|
|
186
|
+
env: effectiveEnv,
|
|
172
187
|
label: "linked plugin host",
|
|
173
188
|
pluginName: "linked-plugin-host",
|
|
174
189
|
source: path.join(ttscPackageRoot(), "cmd", "utility-host"),
|
|
@@ -190,6 +205,7 @@ export function loadProjectPlugins(options: {
|
|
|
190
205
|
baseDir: context.projectRoot,
|
|
191
206
|
cacheDir: options.cacheDir,
|
|
192
207
|
contributors: record.contributors,
|
|
208
|
+
env: effectiveEnv,
|
|
193
209
|
pluginName: record.label,
|
|
194
210
|
source: record.source,
|
|
195
211
|
ttscVersion,
|
|
@@ -572,6 +588,7 @@ function loadPluginEntry(
|
|
|
572
588
|
entry: ITtscProjectPluginConfig,
|
|
573
589
|
base: Omit<ITtscPluginFactoryContext, "dirname" | "filename">,
|
|
574
590
|
baseDir: string,
|
|
591
|
+
effectiveEnv: NodeJS.ProcessEnv,
|
|
575
592
|
): ITtscPlugin {
|
|
576
593
|
return withPluginLoaderEnv(() => {
|
|
577
594
|
const specifier = entry.transform;
|
|
@@ -592,7 +609,7 @@ function loadPluginEntry(
|
|
|
592
609
|
dirname: path.dirname(request),
|
|
593
610
|
filename: request,
|
|
594
611
|
};
|
|
595
|
-
const mod = requirePluginEntry(request, context) as {
|
|
612
|
+
const mod = requirePluginEntry(request, context, effectiveEnv) as {
|
|
596
613
|
createTtscPlugin?: TtscPluginFactory;
|
|
597
614
|
default?: ITtscPlugin | TtscPluginFactory;
|
|
598
615
|
} & Partial<Record<"plugin", ITtscPlugin | TtscPluginFactory>>;
|
|
@@ -639,6 +656,7 @@ function loadPluginEntry(
|
|
|
639
656
|
function requirePluginEntry(
|
|
640
657
|
request: string,
|
|
641
658
|
context: ITtscPluginFactoryContext,
|
|
659
|
+
effectiveEnv: NodeJS.ProcessEnv,
|
|
642
660
|
): unknown {
|
|
643
661
|
try {
|
|
644
662
|
return require(request);
|
|
@@ -646,7 +664,7 @@ function requirePluginEntry(
|
|
|
646
664
|
if (!TS_SOURCE_PATTERN.test(request)) {
|
|
647
665
|
throw error;
|
|
648
666
|
}
|
|
649
|
-
const descriptor = loadDescriptorViaTtsx(request, context);
|
|
667
|
+
const descriptor = loadDescriptorViaTtsx(request, context, effectiveEnv);
|
|
650
668
|
if (descriptor === undefined) {
|
|
651
669
|
throw error;
|
|
652
670
|
}
|
|
@@ -666,9 +684,16 @@ const TS_SOURCE_PATTERN = /\.(?:[cm]?ts|tsx)$/i;
|
|
|
666
684
|
function loadDescriptorViaTtsx(
|
|
667
685
|
request: string,
|
|
668
686
|
context: ITtscPluginFactoryContext,
|
|
687
|
+
effectiveEnv: NodeJS.ProcessEnv,
|
|
669
688
|
): unknown {
|
|
670
|
-
|
|
671
|
-
|
|
689
|
+
// Binary discovery prefers the instance environment, then the ambient
|
|
690
|
+
// process.env (where `withPluginLoaderEnv` injects ttsc's own node/ttsx paths
|
|
691
|
+
// just before this runs), then the running interpreter.
|
|
692
|
+
const node =
|
|
693
|
+
effectiveEnv.TTSC_NODE_BINARY ??
|
|
694
|
+
process.env.TTSC_NODE_BINARY ??
|
|
695
|
+
process.execPath;
|
|
696
|
+
const ttsx = effectiveEnv.TTSC_TTSX_BINARY ?? process.env.TTSC_TTSX_BINARY;
|
|
672
697
|
if (ttsx === undefined || ttsx.length === 0) {
|
|
673
698
|
return undefined;
|
|
674
699
|
}
|
|
@@ -708,7 +733,12 @@ function loadDescriptorViaTtsx(
|
|
|
708
733
|
cwd: context.projectRoot,
|
|
709
734
|
encoding: "utf8",
|
|
710
735
|
env: {
|
|
711
|
-
...
|
|
736
|
+
...effectiveEnv,
|
|
737
|
+
// Carry ttsc's own node/ttsx locators explicitly so the child (which
|
|
738
|
+
// may recurse into further descriptor loads) finds them even when the
|
|
739
|
+
// instance-env snapshot predates `withPluginLoaderEnv`.
|
|
740
|
+
TTSC_NODE_BINARY: node,
|
|
741
|
+
TTSC_TTSX_BINARY: ttsx,
|
|
712
742
|
TTSC_PLUGIN_CONTEXT: JSON.stringify({
|
|
713
743
|
binary: context.binary,
|
|
714
744
|
cwd: context.cwd,
|
|
@@ -46,6 +46,21 @@ export interface ITtscCompilerContext {
|
|
|
46
46
|
*/
|
|
47
47
|
projectRoot?: string;
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Directory that anchors plugin config-file discovery and relative
|
|
51
|
+
* `configFile` resolution.
|
|
52
|
+
*
|
|
53
|
+
* Leave this unset so plugins anchor at the directory of the resolved
|
|
54
|
+
* {@link ITtscCompilerContext.tsconfig} as usual. Embedders that compile
|
|
55
|
+
* through a generated tsconfig outside the project (the bundler adapters'
|
|
56
|
+
* alias overlay, for example) set it to the real project directory; ttsc
|
|
57
|
+
* forwards the value to every plugin process as `TTSC_PLUGIN_CONFIG_DIR`, so
|
|
58
|
+
* `banner.config.*` / `strip.config.*` / `lint.config.*` discovery walks the
|
|
59
|
+
* project instead of the generated tsconfig's temp-dir ancestry. Relative
|
|
60
|
+
* paths are resolved from {@link ITtscCompilerContext.cwd}.
|
|
61
|
+
*/
|
|
62
|
+
pluginConfigDir?: string;
|
|
63
|
+
|
|
49
64
|
/**
|
|
50
65
|
* Explicit TypeScript-Go executable for controlled embedding.
|
|
51
66
|
*
|
|
@@ -74,8 +89,8 @@ export interface ITtscCompilerContext {
|
|
|
74
89
|
*
|
|
75
90
|
* Relative paths are resolved from {@link ITtscCompilerContext.cwd}. When
|
|
76
91
|
* omitted, ttsc uses its normal cache location: `TTSC_CACHE_DIR` when
|
|
77
|
-
* present, otherwise the
|
|
78
|
-
* machine.
|
|
92
|
+
* present, otherwise the project-local cache at the workspace root's
|
|
93
|
+
* `node_modules/.cache/ttsc`. ttsc keeps no machine-global cache.
|
|
79
94
|
*
|
|
80
95
|
* The same cache stores source-plugin binaries and the lazily built native
|
|
81
96
|
* compiler host used for in-memory API compilation.
|
|
@@ -37,6 +37,15 @@ export interface ITtscPluginCapabilities {
|
|
|
37
37
|
*/
|
|
38
38
|
lsp?: boolean;
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Whether the sidecar accepts ttsc's `--project-context-json` identity
|
|
42
|
+
* protocol. The payload keeps lexical selection paths, physical Program
|
|
43
|
+
* paths, and explicit overrides as separate fields.
|
|
44
|
+
*
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
projectContextArgs?: boolean;
|
|
48
|
+
|
|
40
49
|
/**
|
|
41
50
|
* Whether the sidecar accepts `--singleThreaded` and `--checkers` on its
|
|
42
51
|
* command line. The lint sidecar parses both flags via `parseSubcommandFlags`
|
|
@@ -66,6 +66,21 @@ export interface ITtscPluginFactoryContext<T = ITtscProjectPluginConfig> {
|
|
|
66
66
|
*/
|
|
67
67
|
plugin: T;
|
|
68
68
|
|
|
69
|
+
/**
|
|
70
|
+
* Caller-declared anchor for plugin config-file discovery and relative
|
|
71
|
+
* `configFile` resolution.
|
|
72
|
+
*
|
|
73
|
+
* Absent for ordinary invocations, where a factory anchors config discovery
|
|
74
|
+
* at the {@link ITtscPluginFactoryContext.tsconfig} directory. Present when
|
|
75
|
+
* the embedder compiles through a generated tsconfig outside the project (the
|
|
76
|
+
* bundler adapters' alias overlay): it names the real project directory, and
|
|
77
|
+
* a factory that discovers its own config file should anchor there instead of
|
|
78
|
+
* the generated tsconfig's temp-dir ancestry. Mirrors the
|
|
79
|
+
* `TTSC_PLUGIN_CONFIG_DIR` environment variable ttsc sets for native plugin
|
|
80
|
+
* processes.
|
|
81
|
+
*/
|
|
82
|
+
pluginConfigDir?: string;
|
|
83
|
+
|
|
69
84
|
/**
|
|
70
85
|
* Project root used as the native plugin working directory and package
|
|
71
86
|
* discovery base.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ITtscProjectPluginConfig } from "../ITtscProjectPluginConfig";
|
|
2
|
+
import type { ITtscProjectIdentity } from "./ITtscProjectIdentity";
|
|
2
3
|
|
|
3
4
|
/** Resolved project config subset used inside the ttsc host. */
|
|
4
5
|
export interface ITtscParsedProjectConfig {
|
|
@@ -9,6 +10,8 @@ export interface ITtscParsedProjectConfig {
|
|
|
9
10
|
/** Project plugin entries after inheritance resolution. */
|
|
10
11
|
plugins: ITtscProjectPluginConfig[];
|
|
11
12
|
} & Record<string, unknown>;
|
|
13
|
+
/** Lexical and physical identities retained for native plugin contexts. */
|
|
14
|
+
identity: Omit<ITtscProjectIdentity, "pluginConfigOrigin">;
|
|
12
15
|
/** Absolute path to the resolved tsconfig/jsconfig. */
|
|
13
16
|
path: string;
|
|
14
17
|
/** Directory that declared each inherited plugin entry. */
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Separate lexical and physical identities for one selected project. */
|
|
2
|
+
export interface ITtscProjectIdentity {
|
|
3
|
+
/** Caller working directory before filesystem canonicalization. */
|
|
4
|
+
invocationCwd: string;
|
|
5
|
+
/** Caller-selected config spelling before filesystem canonicalization. */
|
|
6
|
+
logicalConfigPath: string;
|
|
7
|
+
/** Directory containing the caller-selected config spelling. */
|
|
8
|
+
logicalProjectRoot: string;
|
|
9
|
+
/** Realpath-resolved config used to load the TypeScript Program. */
|
|
10
|
+
physicalConfigPath: string;
|
|
11
|
+
/** Realpath-resolved root supplied to the TypeScript Program host. */
|
|
12
|
+
physicalProjectRoot: string;
|
|
13
|
+
/** Caller-declared project-root override, when present. */
|
|
14
|
+
explicitProjectRoot?: string;
|
|
15
|
+
/** Caller-declared plugin-config discovery origin, when present. */
|
|
16
|
+
pluginConfigOrigin?: string;
|
|
17
|
+
}
|
|
@@ -16,6 +16,14 @@ export interface TtscCommonOptions {
|
|
|
16
16
|
cwd?: string;
|
|
17
17
|
/** Project root override for generated tsconfig wrappers. */
|
|
18
18
|
projectRoot?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Directory that anchors plugin config-file discovery and relative
|
|
21
|
+
* `configFile` resolution (forwarded to plugin processes as
|
|
22
|
+
* `TTSC_PLUGIN_CONFIG_DIR`). Set by build integrations that compile through a
|
|
23
|
+
* generated tsconfig outside the project; when omitted, plugins anchor at the
|
|
24
|
+
* tsconfig's own directory.
|
|
25
|
+
*/
|
|
26
|
+
pluginConfigDir?: string;
|
|
19
27
|
/** Environment variables merged over `process.env` for child processes. */
|
|
20
28
|
env?: NodeJS.ProcessEnv;
|
|
21
29
|
/** Explicit root directory for compiled source-plugin cache artifacts. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"note": "Accepted TIER-2 (reachable funcs) and TIER-3 (escaping types) shim gaps. The gate fails on any gap NOT listed here; expose a symbol and remove its line, or run -write-baseline to accept new ones deliberately. TIER-1 enum gaps are
|
|
2
|
+
"note": "Accepted TIER-2 (reachable funcs) and TIER-3 (escaping types) shim gaps. The gate fails on any gap NOT listed here; expose a symbol and remove its line, or run -write-baseline to accept new ones deliberately. TIER-1 enum and PRODUCER gaps are zero-tolerance; producer_exemptions must name genuine roots or ownership boundaries with non-empty rationales.",
|
|
3
3
|
"accepted": [
|
|
4
4
|
"ESCAPE|checker|ConditionalType",
|
|
5
5
|
"ESCAPE|checker|ConstrainedType",
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"ESCAPE|checker|NodeBuilder",
|
|
19
19
|
"ESCAPE|checker|NodeBuilderContext",
|
|
20
20
|
"ESCAPE|checker|ObjectType",
|
|
21
|
-
"ESCAPE|checker|Program",
|
|
22
21
|
"ESCAPE|checker|ReverseMappedType",
|
|
23
22
|
"ESCAPE|checker|SignatureFlags",
|
|
24
23
|
"ESCAPE|checker|StringMappingType",
|
|
@@ -27,7 +26,6 @@
|
|
|
27
26
|
"ESCAPE|checker|SymbolFormatFlags",
|
|
28
27
|
"ESCAPE|checker|SymbolTrackerImpl",
|
|
29
28
|
"ESCAPE|checker|TemplateLiteralType",
|
|
30
|
-
"ESCAPE|checker|Tracer",
|
|
31
29
|
"ESCAPE|checker|TupleType",
|
|
32
30
|
"ESCAPE|checker|TypeFormatFlags",
|
|
33
31
|
"ESCAPE|checker|TypeId",
|
|
@@ -93,7 +91,6 @@
|
|
|
93
91
|
"FUNC|ast|GetAssignmentTarget",
|
|
94
92
|
"FUNC|ast|GetBinaryOperatorPrecedence",
|
|
95
93
|
"FUNC|ast|GetClassLikeDeclarationOfSymbol",
|
|
96
|
-
"FUNC|ast|GetCombinedModifierFlags",
|
|
97
94
|
"FUNC|ast|GetContainingClass",
|
|
98
95
|
"FUNC|ast|GetContainingFunction",
|
|
99
96
|
"FUNC|ast|GetDeclarationContainer",
|
|
@@ -237,7 +234,6 @@
|
|
|
237
234
|
"FUNC|ast|IsComputedPropertyName",
|
|
238
235
|
"FUNC|ast|IsConditionalExpression",
|
|
239
236
|
"FUNC|ast|IsConditionalTypeNode",
|
|
240
|
-
"FUNC|ast|IsConstAssertion",
|
|
241
237
|
"FUNC|ast|IsConstTypeReference",
|
|
242
238
|
"FUNC|ast|IsConstructSignatureDeclaration",
|
|
243
239
|
"FUNC|ast|IsConstructorDeclaration",
|
|
@@ -498,7 +494,6 @@
|
|
|
498
494
|
"FUNC|ast|IsParseTreeNode",
|
|
499
495
|
"FUNC|ast|IsPartOfExclusivelyTypeOnlyImportOrExportDeclaration",
|
|
500
496
|
"FUNC|ast|IsPartOfParameterDeclaration",
|
|
501
|
-
"FUNC|ast|IsPartOfTypeNode",
|
|
502
497
|
"FUNC|ast|IsPartOfTypeOnlyImportOrExportDeclaration",
|
|
503
498
|
"FUNC|ast|IsPartOfTypeQuery",
|
|
504
499
|
"FUNC|ast|IsPartiallyEmittedExpression",
|
|
@@ -701,5 +696,19 @@
|
|
|
701
696
|
"FUNC|transformers|IsOriginalNodeSingleLine",
|
|
702
697
|
"FUNC|transformers|MoveRangePastDecorators",
|
|
703
698
|
"FUNC|transformers|MoveRangePastModifiers"
|
|
704
|
-
]
|
|
699
|
+
],
|
|
700
|
+
"producer_exemptions": {
|
|
701
|
+
"ast.FileReference": "File references are caller-owned value records and are also available from parser-produced SourceFile directive fields.",
|
|
702
|
+
"checker.Tracer": "NewChecker accepts nil when tracing is disabled; a non-nil tracer is an optional host-owned facility.",
|
|
703
|
+
"checker.VerbosityContext": "Checker formatting methods accept nil for default output; non-nil verbosity state is optional caller-owned formatting context.",
|
|
704
|
+
"core.BuildOptions": "Build options are caller-owned configuration data that can be allocated through the exported type alias.",
|
|
705
|
+
"core.ParsedOptions": "SetParsedOptions is an upstream mutation hook on ParsedCommandLine; shim consumers obtain populated commands from the exported parse operations instead.",
|
|
706
|
+
"core.WatchOptions": "Watch options are caller-owned configuration data that can be allocated through the exported type alias.",
|
|
707
|
+
"lsp.ServerOptions": "Server options are caller-owned configuration data that can be allocated through the exported type alias.",
|
|
708
|
+
"lsp/lsproto.FileSystemWatcher": "WatchFiles receives protocol payloads owned by the LSP host; plugin callers do not construct the internal transport type.",
|
|
709
|
+
"lsp/lsproto.PublishDiagnosticsParams": "PublishDiagnostics receives protocol payloads owned by the LSP host; plugin callers do not construct the internal transport type.",
|
|
710
|
+
"scanner.SkipTriviaOptions": "Trivia options are caller-owned configuration data that can be allocated through the exported type alias.",
|
|
711
|
+
"sourcemap.Generator": "Printer.Write is an upstream emit hook whose generator is compiler-owned; plugin emit uses the exported compiler and printer entry points.",
|
|
712
|
+
"tsoptions.ExtendedConfigCacheEntry": "ParseExtendedConfig accepts a nil optional cache and produces the first entry without requiring a prior cache result."
|
|
713
|
+
}
|
|
705
714
|
}
|