@zzzen/pyright-internal 1.2.0-dev.20260906 → 1.2.0-dev.20260920

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.
Files changed (135) hide show
  1. package/dist/analyzer/checker.d.ts +2 -1
  2. package/dist/analyzer/checker.js +80 -5
  3. package/dist/analyzer/checker.js.map +1 -1
  4. package/dist/analyzer/constraintSolver.js +10 -2
  5. package/dist/analyzer/constraintSolver.js.map +1 -1
  6. package/dist/analyzer/constructors.js +7 -18
  7. package/dist/analyzer/constructors.js.map +1 -1
  8. package/dist/analyzer/decorators.js +45 -2
  9. package/dist/analyzer/decorators.js.map +1 -1
  10. package/dist/analyzer/program.js +1 -0
  11. package/dist/analyzer/program.js.map +1 -1
  12. package/dist/analyzer/sourceFileInfo.d.ts +0 -1
  13. package/dist/analyzer/sourceFileInfo.js +0 -3
  14. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  15. package/dist/analyzer/typeCacheUtils.d.ts +1 -0
  16. package/dist/analyzer/typeCacheUtils.js +28 -1
  17. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  18. package/dist/analyzer/typeEvaluator.d.ts +1 -1
  19. package/dist/analyzer/typeEvaluator.js +63 -389
  20. package/dist/analyzer/typeEvaluator.js.map +1 -1
  21. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  22. package/dist/analyzer/typedDicts.js +3 -7
  23. package/dist/analyzer/typedDicts.js.map +1 -1
  24. package/dist/analyzer/types.js +7 -0
  25. package/dist/analyzer/types.js.map +1 -1
  26. package/dist/common/configOptions.d.ts +1 -0
  27. package/dist/common/configOptions.js +16 -0
  28. package/dist/common/configOptions.js.map +1 -1
  29. package/dist/common/envVarUtils.js +3 -3
  30. package/dist/common/envVarUtils.js.map +1 -1
  31. package/dist/common/extensibility.d.ts +0 -1
  32. package/dist/common/extensibility.js.map +1 -1
  33. package/dist/common/fileSystem.d.ts +1 -0
  34. package/dist/common/fileSystem.js.map +1 -1
  35. package/dist/common/realFileSystem.d.ts +1 -0
  36. package/dist/common/realFileSystem.js +12 -0
  37. package/dist/common/realFileSystem.js.map +1 -1
  38. package/dist/fileSystemMapping.d.ts +1 -1
  39. package/dist/fileSystemMapping.js +3 -0
  40. package/dist/fileSystemMapping.js.map +1 -1
  41. package/dist/languageService/completionProvider.d.ts +2 -1
  42. package/dist/languageService/completionProvider.js +4 -1
  43. package/dist/languageService/completionProvider.js.map +1 -1
  44. package/dist/localization/package.nls.cs.json +1 -0
  45. package/dist/localization/package.nls.de.json +1 -0
  46. package/dist/localization/package.nls.es.json +1 -0
  47. package/dist/localization/package.nls.fr.json +1 -0
  48. package/dist/localization/package.nls.it.json +1 -0
  49. package/dist/localization/package.nls.ja.json +1 -0
  50. package/dist/localization/package.nls.ko.json +1 -0
  51. package/dist/localization/package.nls.pl.json +1 -0
  52. package/dist/localization/package.nls.pt-br.json +1 -0
  53. package/dist/localization/package.nls.qps-ploc.json +1 -0
  54. package/dist/localization/package.nls.ru.json +1 -0
  55. package/dist/localization/package.nls.tr.json +1 -0
  56. package/dist/localization/package.nls.zh-cn.json +1 -0
  57. package/dist/localization/package.nls.zh-tw.json +1 -0
  58. package/dist/readonlyAugmentedFileSystem.d.ts +1 -0
  59. package/dist/readonlyAugmentedFileSystem.js +3 -0
  60. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  61. package/dist/tests/checker.test.js +8 -0
  62. package/dist/tests/checker.test.js.map +1 -1
  63. package/dist/tests/envVarUtils.test.js +16 -0
  64. package/dist/tests/envVarUtils.test.js.map +1 -1
  65. package/dist/tests/evaluationTrace.integration.test.d.ts +1 -0
  66. package/dist/tests/evaluationTrace.integration.test.js +266 -0
  67. package/dist/tests/evaluationTrace.integration.test.js.map +1 -0
  68. package/dist/tests/evaluationTrace.test.d.ts +1 -0
  69. package/dist/tests/evaluationTrace.test.js +422 -0
  70. package/dist/tests/evaluationTrace.test.js.map +1 -0
  71. package/dist/tests/evaluationTrace.viewer.test.d.ts +1 -0
  72. package/dist/tests/evaluationTrace.viewer.test.js +529 -0
  73. package/dist/tests/evaluationTrace.viewer.test.js.map +1 -0
  74. package/dist/tests/fileSystemMapping.test.js +3 -0
  75. package/dist/tests/fileSystemMapping.test.js.map +1 -1
  76. package/dist/tests/harness/vfs/filesystem.d.ts +1 -0
  77. package/dist/tests/harness/vfs/filesystem.js +3 -0
  78. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  79. package/dist/tests/importResolver.test.js +5 -0
  80. package/dist/tests/importResolver.test.js.map +1 -1
  81. package/dist/tests/mypyPrimerAnalysis.test.d.ts +1 -0
  82. package/dist/tests/mypyPrimerAnalysis.test.js +1779 -0
  83. package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -0
  84. package/dist/tests/mypyPrimerMcp.test.d.ts +1 -0
  85. package/dist/tests/mypyPrimerMcp.test.js +186 -0
  86. package/dist/tests/mypyPrimerMcp.test.js.map +1 -0
  87. package/dist/tests/typeCacheUtils.test.js +15 -0
  88. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  89. package/dist/tests/typeEvaluator1.test.js +2 -2
  90. package/dist/tests/typeEvaluator6.test.js +155 -3
  91. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  92. package/dist/tests/typeEvaluator7.test.js +4 -0
  93. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  94. package/dist/tests/typeUtils.test.js +15 -0
  95. package/dist/tests/typeUtils.test.js.map +1 -1
  96. package/dist/trace/capture.d.ts +31 -0
  97. package/dist/trace/capture.js +272 -0
  98. package/dist/trace/capture.js.map +1 -0
  99. package/dist/trace/cli.d.ts +1 -0
  100. package/dist/trace/cli.js +196 -0
  101. package/dist/trace/cli.js.map +1 -0
  102. package/dist/trace/nativeAdapter.d.ts +16 -0
  103. package/dist/trace/nativeAdapter.js +422 -0
  104. package/dist/trace/nativeAdapter.js.map +1 -0
  105. package/dist/trace/nativeBridge.d.ts +46 -0
  106. package/dist/trace/nativeBridge.js +416 -0
  107. package/dist/trace/nativeBridge.js.map +1 -0
  108. package/dist/trace/reader.d.ts +83 -0
  109. package/dist/trace/reader.js +296 -0
  110. package/dist/trace/reader.js.map +1 -0
  111. package/dist/trace/recorder.d.ts +59 -0
  112. package/dist/trace/recorder.js +303 -0
  113. package/dist/trace/recorder.js.map +1 -0
  114. package/dist/trace/runtimeLoader.d.ts +23 -0
  115. package/dist/trace/runtimeLoader.js +172 -0
  116. package/dist/trace/runtimeLoader.js.map +1 -0
  117. package/dist/trace/viewerAssets.d.ts +2 -0
  118. package/dist/trace/viewerAssets.js +76 -0
  119. package/dist/trace/viewerAssets.js.map +1 -0
  120. package/dist/trace/viewerClient.d.ts +1 -0
  121. package/dist/trace/viewerClient.js +485 -0
  122. package/dist/trace/viewerClient.js.map +1 -0
  123. package/dist/trace/viewerModel.d.ts +308 -0
  124. package/dist/trace/viewerModel.js +524 -0
  125. package/dist/trace/viewerModel.js.map +1 -0
  126. package/dist/trace/viewerServer.d.ts +7 -0
  127. package/dist/trace/viewerServer.js +185 -0
  128. package/dist/trace/viewerServer.js.map +1 -0
  129. package/dist/typeServer/typeServerFileSystem.d.ts +1 -0
  130. package/dist/typeServer/typeServerFileSystem.js +3 -0
  131. package/dist/typeServer/typeServerFileSystem.js.map +1 -1
  132. package/dist/typeServer/virtualFileOverlayFileSystem.d.ts +1 -0
  133. package/dist/typeServer/virtualFileOverlayFileSystem.js +3 -0
  134. package/dist/typeServer/virtualFileOverlayFileSystem.js.map +1 -1
  135. package/package.json +4 -2
@@ -0,0 +1,422 @@
1
+ "use strict";
2
+ /*
3
+ * nativeAdapter.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * AST instrumentation for supported unbundled CommonJS builds. Hook locations
8
+ * are derived from syntax, never byte/line replacements. No files are changed.
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.adapterVersion = void 0;
45
+ exports.adapterFiles = adapterFiles;
46
+ exports.instrument = instrument;
47
+ const ts = __importStar(require("typescript"));
48
+ exports.adapterVersion = 'native-commonjs-v1';
49
+ const modules = {
50
+ 'analyzer/typeEvaluator.js': {
51
+ factory: 'createTypeEvaluator',
52
+ state: [
53
+ 'typeCache',
54
+ 'expectedTypeCache',
55
+ 'typeFormTypeCache',
56
+ 'incompleteGenCount',
57
+ 'codeFlowAnalyzerCache',
58
+ 'returnTypeInferenceTypeCache',
59
+ 'returnTypeInferenceContextStack',
60
+ 'suppressedNodeStack',
61
+ 'signatureTrackerStack',
62
+ 'symbolResolutionStack',
63
+ 'deferredClassCompletions',
64
+ 'speculativeTypeTracker',
65
+ ],
66
+ functions: [
67
+ 'getTypeOfExpression',
68
+ 'readTypeCacheEntry',
69
+ 'readTypeFormTypeCacheEntry',
70
+ 'isTypeCacheEntryValid',
71
+ 'readTypeCache',
72
+ 'writeTypeCache',
73
+ 'addExpectedTypeCacheEntry',
74
+ 'validateCallArgs',
75
+ 'validateArgType',
76
+ 'inferFunctionReturnType',
77
+ 'disposeEvaluator',
78
+ ],
79
+ required: ['collection', 'branch', 'generation', 'field-write'],
80
+ },
81
+ 'analyzer/codeFlowEngine.js': {
82
+ factory: 'getCodeFlowEngine',
83
+ state: ['flowIncompleteGeneration', 'reachabilityCache', 'callIsNoReturnCache', 'isReachableRecursionSet'],
84
+ functions: [
85
+ 'createCodeFlowAnalyzer',
86
+ 'getTypeFromCodeFlow',
87
+ 'getTypeFromFlowNode',
88
+ 'setCacheEntry',
89
+ 'setIncompleteSubtype',
90
+ 'getCacheEntry',
91
+ 'preventRecursion',
92
+ 'getFlowNodeReachability',
93
+ 'isCallNoReturn',
94
+ ],
95
+ required: ['collection', 'branch', 'generation', 'field-write'],
96
+ },
97
+ 'analyzer/typeCacheUtils.js': {
98
+ optionalFunctions: ['findContextualTypeCacheEntry'],
99
+ functions: [
100
+ 'contextualTypeCacheEntryMatches',
101
+ 'addContextualTypeCacheEntry',
102
+ 'enterSpeculativeContext',
103
+ 'leaveSpeculativeContext',
104
+ 'trackEntry',
105
+ 'disableSpeculativeMode',
106
+ 'enableSpeculativeMode',
107
+ 'getSpeculativeType',
108
+ 'addSpeculativeType',
109
+ '_dependentTypesMatch',
110
+ ],
111
+ required: ['collection', 'branch'],
112
+ },
113
+ 'analyzer/constraintTracker.js': {
114
+ functions: ['ConstraintSet.setBounds', 'ConstraintSet.getTypeVar', 'ConstraintTracker.setBounds'],
115
+ required: ['collection'],
116
+ },
117
+ 'common/diagnosticSink.js': {
118
+ functions: ['fetchAndClear', 'addDiagnostic', 'addDiagnostics'],
119
+ required: ['collection'],
120
+ },
121
+ 'analyzer/analyzerNodeInfo.js': {
122
+ functions: ['AnalyzerNodeInfoStore.setFileInfo'],
123
+ required: [],
124
+ },
125
+ 'analyzer/overloadResultController.js': {
126
+ functions: ['_trial', 'evaluate', 'evaluateAndContinue', 'beforeCall'],
127
+ required: ['collection', 'branch', 'evaluator-link'],
128
+ },
129
+ };
130
+ function adapterFiles(experimental) {
131
+ return Object.keys(modules).filter((file) => experimental || !file.includes('overloadResultController'));
132
+ }
133
+ const bridgeName = '__pyrightTrace';
134
+ function parseExpression(text) {
135
+ const file = ts.createSourceFile('hook.js', `(${text});`, ts.ScriptTarget.ES2020, false, ts.ScriptKind.JS);
136
+ return synthesize(file.statements[0].expression);
137
+ }
138
+ function parseStatements(text) {
139
+ return ts
140
+ .createSourceFile('hook.js', text, ts.ScriptTarget.ES2020, false, ts.ScriptKind.JS)
141
+ .statements.map(synthesize);
142
+ }
143
+ function synthesize(node) {
144
+ ts.setTextRange(node, { pos: -1, end: -1 });
145
+ ts.forEachChild(node, (child) => {
146
+ synthesize(child);
147
+ });
148
+ return node;
149
+ }
150
+ function instrument(file, code, experimental = false) {
151
+ let spec = modules[file];
152
+ if (!spec) {
153
+ throw new Error(`No adapter for ${file}`);
154
+ }
155
+ if (experimental && file === 'analyzer/typeCacheUtils.js') {
156
+ spec = {
157
+ ...spec,
158
+ functions: [
159
+ ...spec.functions,
160
+ 'useTestOnlyCacheIsolation',
161
+ 'SpeculativeTypeTracker.useTestOnlyCacheIsolation',
162
+ ],
163
+ };
164
+ }
165
+ const source = ts.createSourceFile(file, code, ts.ScriptTarget.ES2020, true, ts.ScriptKind.JS);
166
+ const sites = [];
167
+ const counts = {};
168
+ const matches = new Map([...spec.functions, ...(spec.optionalFunctions ?? [])].map((name) => [name, 0]));
169
+ const declarations = new Set();
170
+ let collisions = false;
171
+ const scan = (node) => {
172
+ if (ts.isIdentifier(node)) {
173
+ if (node.text.startsWith('__ptr') || node.text === bridgeName) {
174
+ collisions = true;
175
+ }
176
+ }
177
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
178
+ declarations.add(node.name.text);
179
+ }
180
+ ts.forEachChild(node, scan);
181
+ };
182
+ scan(source);
183
+ if (collisions) {
184
+ throw new Error(`Adapter identifier collision in ${file}`);
185
+ }
186
+ for (const name of spec.state ?? []) {
187
+ if (!declarations.has(name)) {
188
+ throw new Error(`Adapter drift: missing state ${file}:${name}`);
189
+ }
190
+ }
191
+ const site = (node, label, kind) => {
192
+ counts[kind] = (counts[kind] ?? 0) + 1;
193
+ const result = {
194
+ id: `${file}:${sites.length + 1}`,
195
+ file,
196
+ label,
197
+ start: node.getStart(source),
198
+ length: node.getWidth(source),
199
+ line: source.getLineAndCharacterOfPosition(node.getStart(source)).line + 1,
200
+ text: node.getText(source).slice(0, 1000),
201
+ };
202
+ sites.push(result);
203
+ return ts.factory.createStringLiteral(result.id);
204
+ };
205
+ const call = (name, args) => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(bridgeName), name), undefined, args);
206
+ let currentFunction = '';
207
+ let currentClass = '';
208
+ let selected = false;
209
+ let inFactory = false;
210
+ let currentOwner = 'undefined';
211
+ let parameters = [];
212
+ let factoryCount = 0;
213
+ const transform = (context) => {
214
+ const visit = (node) => {
215
+ if (ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
216
+ const saved = currentClass;
217
+ currentClass = node.name?.text ?? '';
218
+ const updated = ts.visitEachChild(node, visit, context);
219
+ currentClass = saved;
220
+ return updated;
221
+ }
222
+ if (ts.isFunctionDeclaration(node) ||
223
+ ts.isFunctionExpression(node) ||
224
+ ts.isArrowFunction(node) ||
225
+ ts.isMethodDeclaration(node)) {
226
+ const name = node.name && ts.isIdentifier(node.name)
227
+ ? node.name.text
228
+ : ts.isVariableDeclaration(node.parent) && ts.isIdentifier(node.parent.name)
229
+ ? node.parent.name.text
230
+ : ts.isBinaryExpression(node.parent) && ts.isPropertyAccessExpression(node.parent.left)
231
+ ? node.parent.left.name.text
232
+ : '';
233
+ const qualified = `${currentClass}.${name}`;
234
+ const key = matches.has(qualified) ? qualified : name;
235
+ const isSelected = matches.has(key);
236
+ const isFlowAnalyzer = file === 'analyzer/codeFlowEngine.js' && name === 'createCodeFlowAnalyzer';
237
+ const isFactory = name === spec.factory || isFlowAnalyzer;
238
+ if (isSelected) {
239
+ matches.set(key, matches.get(key) + 1);
240
+ }
241
+ if (name === spec.factory) {
242
+ factoryCount++;
243
+ }
244
+ if ((isSelected || isFactory) && (!node.body || !ts.isBlock(node.body))) {
245
+ throw new Error(`Adapter drift: expected block body ${file}:${name}`);
246
+ }
247
+ if (isFactory && node.body && ts.isBlock(node.body)) {
248
+ const declared = new Set(node.body.statements.flatMap((s) => ts.isVariableStatement(s)
249
+ ? s.declarationList.declarations.flatMap((d) => ts.isIdentifier(d.name) ? [d.name.text] : [])
250
+ : []));
251
+ for (const state of isFlowAnalyzer ? ['flowNodeTypeCacheSet'] : spec.state) {
252
+ if (!declared.has(state)) {
253
+ throw new Error(`Adapter drift: ${name} does not directly declare state ${state}`);
254
+ }
255
+ }
256
+ }
257
+ if (isSelected &&
258
+ (node.parameters.some((p) => !ts.isIdentifier(p.name) || !!p.dotDotDotToken) ||
259
+ node.modifiers?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword) ||
260
+ ('asteriskToken' in node && node.asteriskToken))) {
261
+ throw new Error(`Unsupported asynchronous/generator/destructured hook ${file}:${name}`);
262
+ }
263
+ const previous = { currentFunction, selected, inFactory, currentOwner, parameters };
264
+ currentFunction = name;
265
+ selected = isSelected;
266
+ inFactory = isFactory || inFactory;
267
+ parameters = node.parameters.map((p) => p.name.getText(source));
268
+ if (isFactory) {
269
+ currentOwner = `__ptrOwner_${name}`;
270
+ }
271
+ let updated = ts.visitEachChild(node, visit, context);
272
+ if ((isSelected || isFactory) && updated.body && ts.isBlock(updated.body)) {
273
+ let statements = [...updated.body.statements];
274
+ if (isFactory) {
275
+ const state = isFlowAnalyzer ? ['flowNodeTypeCacheSet'] : spec.state;
276
+ const parent = name === 'getCodeFlowEngine' ? 'evaluator' : previous.currentOwner;
277
+ statements.unshift(...parseStatements(`${bridgeName}.owner(${currentOwner}, ${JSON.stringify(name)}, () => ({${state.join(',')}}), ${parent});`));
278
+ }
279
+ if (isSelected) {
280
+ const hook = site(node, key, 'function');
281
+ const args = parameters;
282
+ const owner = currentOwner;
283
+ const receiver = ts.isMethodDeclaration(node) ? 'this' : 'undefined';
284
+ const prefix = parseStatements(`const __ptrSpan = ${bridgeName}.enter(${JSON.stringify(hook.text)}, ${owner}, ` +
285
+ `{${args.join(',')}}, ${receiver});`);
286
+ const originalBody = ts.factory.createBlock(statements, true);
287
+ const caught = ts.factory.createCatchClause('__ptrError', ts.factory.createBlock([
288
+ ts.factory.createExpressionStatement(call('thrown', [
289
+ ts.factory.createIdentifier('__ptrSpan'),
290
+ ts.factory.createIdentifier('__ptrError'),
291
+ ])),
292
+ ts.factory.createThrowStatement(ts.factory.createIdentifier('__ptrError')),
293
+ ], true));
294
+ const final = ts.factory.createBlock([
295
+ ts.factory.createExpressionStatement(call('exit', [ts.factory.createIdentifier('__ptrSpan')])),
296
+ ], true);
297
+ statements = [...prefix, ts.factory.createTryStatement(originalBody, caught, final)];
298
+ }
299
+ if (isFactory) {
300
+ statements.unshift(...parseStatements(`const ${currentOwner} = {};`));
301
+ }
302
+ const body = ts.factory.updateBlock(updated.body, statements);
303
+ if (ts.isFunctionDeclaration(updated)) {
304
+ updated = ts.factory.updateFunctionDeclaration(updated, updated.modifiers, updated.asteriskToken, updated.name, updated.typeParameters, updated.parameters, updated.type, body);
305
+ }
306
+ else if (ts.isMethodDeclaration(updated)) {
307
+ updated = ts.factory.updateMethodDeclaration(updated, updated.modifiers, updated.asteriskToken, updated.name, updated.questionToken, updated.typeParameters, updated.parameters, updated.type, body);
308
+ }
309
+ else if (ts.isArrowFunction(updated)) {
310
+ updated = ts.factory.updateArrowFunction(updated, updated.modifiers, updated.typeParameters, updated.parameters, updated.type, updated.equalsGreaterThanToken, body);
311
+ }
312
+ else if (ts.isFunctionExpression(updated)) {
313
+ updated = ts.factory.updateFunctionExpression(updated, updated.modifiers, updated.asteriskToken, updated.name, updated.typeParameters, updated.parameters, updated.type, body);
314
+ }
315
+ }
316
+ ({ currentFunction, selected, inFactory, currentOwner, parameters } = previous);
317
+ return updated;
318
+ }
319
+ if (ts.isReturnStatement(node)) {
320
+ const value = node.expression
321
+ ? ts.visitNode(node.expression, visit)
322
+ : ts.factory.createIdentifier('undefined');
323
+ if (selected) {
324
+ const result = currentFunction === 'createCodeFlowAnalyzer'
325
+ ? call('bind', [ts.factory.createIdentifier(currentOwner), value])
326
+ : value;
327
+ return ts.factory.updateReturnStatement(node, call('returned', [
328
+ ts.factory.createIdentifier('__ptrSpan'),
329
+ result,
330
+ parseExpression(`{${parameters.join(',')}}`),
331
+ site(node, currentFunction, 'return'),
332
+ ]));
333
+ }
334
+ if (currentFunction === spec.factory) {
335
+ return ts.factory.updateReturnStatement(node, call('bind', [ts.factory.createIdentifier(currentOwner), value]));
336
+ }
337
+ }
338
+ if (currentFunction === '_trial' &&
339
+ ts.isVariableStatement(node) &&
340
+ node.declarationList.declarations.some((d) => ts.isIdentifier(d.name) && d.name.text === 'evaluator')) {
341
+ counts['evaluator-link'] = (counts['evaluator-link'] ?? 0) + 1;
342
+ return [
343
+ ts.visitEachChild(node, visit, context),
344
+ ...parseStatements(`${bridgeName}.linkCurrent(evaluator);`),
345
+ ];
346
+ }
347
+ if (selected && ts.isIfStatement(node)) {
348
+ return ts.factory.updateIfStatement(node, call('branch', [
349
+ site(node.expression, currentFunction, 'branch'),
350
+ ts.visitNode(node.expression, visit),
351
+ ]), ts.visitNode(node.thenStatement, visit), ts.visitNode(node.elseStatement, visit));
352
+ }
353
+ if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression) && !node.questionDotToken) {
354
+ const receiver = node.expression.expression;
355
+ const method = node.expression.name.text;
356
+ const receiverText = receiver.getText(source);
357
+ // These names identify native state containers, not Python fixtures or
358
+ // selected source functions. The manifest reports every matched site.
359
+ if (/cache|stack|pendingNodes|closedFinallyGateNodes|incompleteEntries|candidates|_typeVarMap|_diagnostic|entriesToUndo|_activeDependentTypes|RecursionSet/i.test(receiverText) &&
360
+ ['get', 'has', 'set', 'delete', 'clear', 'add', 'push', 'pop'].includes(method) &&
361
+ !node.expression.questionDotToken) {
362
+ return ts.factory.updateCallExpression(node, call('method', [
363
+ site(node, currentFunction, 'collection'),
364
+ ts.visitNode(receiver, visit),
365
+ ts.factory.createStringLiteral(method),
366
+ ]), undefined, node.arguments.map((arg) => ts.visitNode(arg, visit)));
367
+ }
368
+ }
369
+ if ((ts.isPostfixUnaryExpression(node) || ts.isPrefixUnaryExpression(node)) &&
370
+ ts.isIdentifier(node.operand) &&
371
+ ['incompleteGenCount', 'flowIncompleteGeneration'].includes(node.operand.text)) {
372
+ return call('effect', [
373
+ site(node, node.operand.text, 'generation'),
374
+ node,
375
+ parseExpression(`{value:${node.operand.text}, domain:${JSON.stringify(node.operand.text)}}`),
376
+ ]);
377
+ }
378
+ if (ts.isBinaryExpression(node) &&
379
+ node.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
380
+ ts.isPropertyAccessExpression(node.left) &&
381
+ (selected || node.left.name.text === 'inferredReturnType')) {
382
+ const receiver = node.left.expression;
383
+ if (ts.isIdentifier(receiver) ||
384
+ receiver.kind === ts.SyntaxKind.ThisKeyword ||
385
+ (ts.isPropertyAccessExpression(receiver) && ts.isIdentifier(receiver.expression))) {
386
+ return call('effect', [
387
+ site(node, currentFunction, 'field-write'),
388
+ ts.visitEachChild(node, visit, context),
389
+ ts.factory.createObjectLiteralExpression([
390
+ ts.factory.createPropertyAssignment('target', receiver),
391
+ ts.factory.createPropertyAssignment('field', ts.factory.createStringLiteral(node.left.name.text)),
392
+ ]),
393
+ ]);
394
+ }
395
+ }
396
+ return ts.visitEachChild(node, visit, context);
397
+ };
398
+ return (root) => ts.visitNode(root, visit);
399
+ };
400
+ const result = ts.transform(source, [transform]);
401
+ try {
402
+ for (const [name, count] of matches) {
403
+ counts[`function:${name}`] = count;
404
+ if (count !== 1 && !(count === 0 && spec.optionalFunctions?.includes(name))) {
405
+ throw new Error(`Adapter drift: expected one ${file}:${name}, found ${count}`);
406
+ }
407
+ }
408
+ if (spec.factory && factoryCount !== 1) {
409
+ throw new Error(`Adapter drift: expected one factory ${file}:${spec.factory}, found ${factoryCount}`);
410
+ }
411
+ for (const kind of spec.required) {
412
+ if (!counts[kind]) {
413
+ throw new Error(`Adapter drift: missing ${kind} in ${file}`);
414
+ }
415
+ }
416
+ return { code: ts.createPrinter().printFile(result.transformed[0]), sites, counts };
417
+ }
418
+ finally {
419
+ result.dispose();
420
+ }
421
+ }
422
+ //# sourceMappingURL=nativeAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeAdapter.js","sourceRoot":"","sources":["../../../../../src/trace/nativeAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { HookSite } from './nativeAdapter';
2
+ import { Recorder } from './recorder';
3
+ export interface Selection {
4
+ file?: string;
5
+ start?: number;
6
+ end?: number;
7
+ operation?: number;
8
+ }
9
+ export declare class NativeBridge {
10
+ readonly recorder?: Recorder | undefined;
11
+ private readonly _selection;
12
+ private _owners;
13
+ private _aliases;
14
+ private _children;
15
+ private _files;
16
+ private _sites;
17
+ private _stack;
18
+ private _audit;
19
+ private _auditIds;
20
+ private _nextAuditId;
21
+ private _auditCount;
22
+ private _spanCount;
23
+ private _failure;
24
+ constructor(sites: HookSite[], recorder?: Recorder | undefined, _selection?: Selection);
25
+ get failure(): string | undefined;
26
+ get activeFrames(): number;
27
+ owner(owner: object, label: string, state: () => Record<string, unknown>, parent?: object): void;
28
+ bind<T>(owner: object, result: T): T;
29
+ linkCurrent(evaluator: object): void;
30
+ enter(id: string, owner: object | undefined, args: Record<string, unknown>, receiver: unknown): string | undefined;
31
+ returned<T>(span: string | undefined, value: T, args?: Record<string, unknown>, site?: string): T;
32
+ thrown(span: string | undefined, error: unknown): void;
33
+ exit(span: string | undefined): void;
34
+ branch<T>(id: string, value: T): T;
35
+ method(id: string, receiver: object, name: string): (...args: unknown[]) => unknown;
36
+ effect<T>(id: string, value: T, state: Record<string, unknown>): T;
37
+ auditResult(): {
38
+ events: number;
39
+ sha256: string;
40
+ };
41
+ private _frame;
42
+ private _source;
43
+ private _checkpoint;
44
+ private _witness;
45
+ private _record;
46
+ }