@zzzen/pyright-internal 1.2.0-dev.20260913 → 1.2.0-dev.20260927

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 (199) hide show
  1. package/dist/analyzer/checker.d.ts +2 -1
  2. package/dist/analyzer/checker.js +17 -4
  3. package/dist/analyzer/checker.js.map +1 -1
  4. package/dist/analyzer/codeFlowEngine.js +9 -3
  5. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  6. package/dist/analyzer/operations.js +1 -1
  7. package/dist/analyzer/operations.js.map +1 -1
  8. package/dist/analyzer/overloadResult.d.ts +15 -0
  9. package/dist/analyzer/overloadResult.js +233 -0
  10. package/dist/analyzer/overloadResult.js.map +1 -0
  11. package/dist/analyzer/overloadResultAdmission.d.ts +20 -0
  12. package/dist/analyzer/overloadResultAdmission.js +448 -0
  13. package/dist/analyzer/overloadResultAdmission.js.map +1 -0
  14. package/dist/analyzer/overloadResultController.d.ts +227 -0
  15. package/dist/analyzer/overloadResultController.js +904 -0
  16. package/dist/analyzer/overloadResultController.js.map +1 -0
  17. package/dist/analyzer/overloadResultSelector.d.ts +24 -0
  18. package/dist/analyzer/overloadResultSelector.js +131 -0
  19. package/dist/analyzer/overloadResultSelector.js.map +1 -0
  20. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  21. package/dist/analyzer/parseTreeUtils.js +4 -0
  22. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  23. package/dist/analyzer/program.d.ts +13 -2
  24. package/dist/analyzer/program.js +99 -46
  25. package/dist/analyzer/program.js.map +1 -1
  26. package/dist/analyzer/protocols.d.ts +1 -0
  27. package/dist/analyzer/protocols.js +286 -6
  28. package/dist/analyzer/protocols.js.map +1 -1
  29. package/dist/analyzer/sourceFile.d.ts +6 -2
  30. package/dist/analyzer/sourceFile.js +9 -3
  31. package/dist/analyzer/sourceFile.js.map +1 -1
  32. package/dist/analyzer/tracePrinter.js +4 -0
  33. package/dist/analyzer/tracePrinter.js.map +1 -1
  34. package/dist/analyzer/typeCacheUtils.d.ts +5 -0
  35. package/dist/analyzer/typeCacheUtils.js +64 -1
  36. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  37. package/dist/analyzer/typeComplexity.js +2 -0
  38. package/dist/analyzer/typeComplexity.js.map +1 -1
  39. package/dist/analyzer/typeEvaluator.d.ts +11 -2
  40. package/dist/analyzer/typeEvaluator.js +358 -21
  41. package/dist/analyzer/typeEvaluator.js.map +1 -1
  42. package/dist/analyzer/typeEvaluatorTypes.d.ts +31 -1
  43. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  44. package/dist/analyzer/typeGuards.d.ts +1 -1
  45. package/dist/analyzer/typePrinter.js +8 -0
  46. package/dist/analyzer/typePrinter.js.map +1 -1
  47. package/dist/analyzer/typeUtils.d.ts +1 -1
  48. package/dist/analyzer/typeUtils.js +29 -26
  49. package/dist/analyzer/typeUtils.js.map +1 -1
  50. package/dist/analyzer/typeWalker.d.ts +2 -1
  51. package/dist/analyzer/typeWalker.js +12 -0
  52. package/dist/analyzer/typeWalker.js.map +1 -1
  53. package/dist/analyzer/typedDicts.js +4 -7
  54. package/dist/analyzer/typedDicts.js.map +1 -1
  55. package/dist/analyzer/types.d.ts +16 -2
  56. package/dist/analyzer/types.js +101 -2
  57. package/dist/analyzer/types.js.map +1 -1
  58. package/dist/common/configOptions.d.ts +2 -0
  59. package/dist/common/configOptions.js +18 -0
  60. package/dist/common/configOptions.js.map +1 -1
  61. package/dist/common/envVarUtils.js +3 -3
  62. package/dist/common/envVarUtils.js.map +1 -1
  63. package/dist/languageServerBase.js +2 -2
  64. package/dist/languageServerBase.js.map +1 -1
  65. package/dist/languageService/callHierarchyProvider.js +3 -2
  66. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  67. package/dist/languageService/completionProvider.js +4 -1
  68. package/dist/languageService/completionProvider.js.map +1 -1
  69. package/dist/tests/config.test.js +48 -0
  70. package/dist/tests/config.test.js.map +1 -1
  71. package/dist/tests/envVarUtils.test.js +16 -0
  72. package/dist/tests/envVarUtils.test.js.map +1 -1
  73. package/dist/tests/evaluationTrace.integration.test.d.ts +1 -0
  74. package/dist/tests/evaluationTrace.integration.test.js +266 -0
  75. package/dist/tests/evaluationTrace.integration.test.js.map +1 -0
  76. package/dist/tests/evaluationTrace.test.d.ts +1 -0
  77. package/dist/tests/evaluationTrace.test.js +422 -0
  78. package/dist/tests/evaluationTrace.test.js.map +1 -0
  79. package/dist/tests/evaluationTrace.viewer.test.d.ts +1 -0
  80. package/dist/tests/evaluationTrace.viewer.test.js +529 -0
  81. package/dist/tests/evaluationTrace.viewer.test.js.map +1 -0
  82. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js +10 -6
  83. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.aliasedFunction.fourslash.js.map +1 -1
  84. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js +16 -10
  85. package/dist/tests/fourslash/showcallhierarchy.incomingCalls.function.fourslash.js.map +1 -1
  86. package/dist/tests/harness/fourslash/testState.js +10 -9
  87. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  88. package/dist/tests/languageServer.test.js +129 -0
  89. package/dist/tests/languageServer.test.js.map +1 -1
  90. package/dist/tests/mypyPrimerAnalysis.test.js +1193 -47
  91. package/dist/tests/mypyPrimerAnalysis.test.js.map +1 -1
  92. package/dist/tests/mypyPrimerMcp.test.d.ts +1 -0
  93. package/dist/tests/mypyPrimerMcp.test.js +186 -0
  94. package/dist/tests/mypyPrimerMcp.test.js.map +1 -0
  95. package/dist/tests/overloadResult.test.d.ts +1 -0
  96. package/dist/tests/overloadResult.test.js +182 -0
  97. package/dist/tests/overloadResult.test.js.map +1 -0
  98. package/dist/tests/overloadResultController.test.d.ts +1 -0
  99. package/dist/tests/overloadResultController.test.js +2146 -0
  100. package/dist/tests/overloadResultController.test.js.map +1 -0
  101. package/dist/tests/protocolRequirement.test.d.ts +1 -0
  102. package/dist/tests/protocolRequirement.test.js +122 -0
  103. package/dist/tests/protocolRequirement.test.js.map +1 -0
  104. package/dist/tests/protocolRequirementAdversarial.test.d.ts +1 -0
  105. package/dist/tests/protocolRequirementAdversarial.test.js +92 -0
  106. package/dist/tests/protocolRequirementAdversarial.test.js.map +1 -0
  107. package/dist/tests/protocolRequirementBoundary.test.d.ts +1 -0
  108. package/dist/tests/protocolRequirementBoundary.test.js +119 -0
  109. package/dist/tests/protocolRequirementBoundary.test.js.map +1 -0
  110. package/dist/tests/protocolRequirementComplexity.test.d.ts +1 -0
  111. package/dist/tests/protocolRequirementComplexity.test.js +159 -0
  112. package/dist/tests/protocolRequirementComplexity.test.js.map +1 -0
  113. package/dist/tests/protocolRequirementCycles.test.d.ts +1 -0
  114. package/dist/tests/protocolRequirementCycles.test.js +160 -0
  115. package/dist/tests/protocolRequirementCycles.test.js.map +1 -0
  116. package/dist/tests/protocolRequirementGeneral.test.d.ts +1 -0
  117. package/dist/tests/protocolRequirementGeneral.test.js +120 -0
  118. package/dist/tests/protocolRequirementGeneral.test.js.map +1 -0
  119. package/dist/tests/protocolRequirementInstances.test.d.ts +1 -0
  120. package/dist/tests/protocolRequirementInstances.test.js +164 -0
  121. package/dist/tests/protocolRequirementInstances.test.js.map +1 -0
  122. package/dist/tests/protocolRequirementListStub.test.d.ts +1 -0
  123. package/dist/tests/protocolRequirementListStub.test.js +244 -0
  124. package/dist/tests/protocolRequirementListStub.test.js.map +1 -0
  125. package/dist/tests/protocolRequirementPopulated.test.d.ts +1 -0
  126. package/dist/tests/protocolRequirementPopulated.test.js +172 -0
  127. package/dist/tests/protocolRequirementPopulated.test.js.map +1 -0
  128. package/dist/tests/protocolRequirementRecursive.test.d.ts +1 -0
  129. package/dist/tests/protocolRequirementRecursive.test.js +118 -0
  130. package/dist/tests/protocolRequirementRecursive.test.js.map +1 -0
  131. package/dist/tests/protocolRequirementSpeculative.test.d.ts +1 -0
  132. package/dist/tests/protocolRequirementSpeculative.test.js +200 -0
  133. package/dist/tests/protocolRequirementSpeculative.test.js.map +1 -0
  134. package/dist/tests/protocolRequirementState.test.d.ts +1 -0
  135. package/dist/tests/protocolRequirementState.test.js +161 -0
  136. package/dist/tests/protocolRequirementState.test.js.map +1 -0
  137. package/dist/tests/testState.test.js +64 -0
  138. package/dist/tests/testState.test.js.map +1 -1
  139. package/dist/tests/testUtils.d.ts +6 -1
  140. package/dist/tests/testUtils.js +11 -6
  141. package/dist/tests/testUtils.js.map +1 -1
  142. package/dist/tests/typeCacheIsolation.test.d.ts +1 -0
  143. package/dist/tests/typeCacheIsolation.test.js +109 -0
  144. package/dist/tests/typeCacheIsolation.test.js.map +1 -0
  145. package/dist/tests/typeCacheUtils.test.js +74 -0
  146. package/dist/tests/typeCacheUtils.test.js.map +1 -1
  147. package/dist/tests/typeEvaluator1.test.js +5 -1
  148. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  149. package/dist/tests/typeEvaluator4.test.js +6 -2
  150. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  151. package/dist/tests/typeEvaluator5.test.js +25 -0
  152. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  153. package/dist/tests/typeEvaluator6.test.js +7 -23
  154. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  155. package/dist/tests/typeEvaluator7.test.js +241 -2
  156. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  157. package/dist/tests/typeServer/typeServer.inProc.test.js +86 -0
  158. package/dist/tests/typeServer/typeServer.inProc.test.js.map +1 -1
  159. package/dist/tests/typeUtils.test.js +36 -0
  160. package/dist/tests/typeUtils.test.js.map +1 -1
  161. package/dist/trace/capture.d.ts +31 -0
  162. package/dist/trace/capture.js +272 -0
  163. package/dist/trace/capture.js.map +1 -0
  164. package/dist/trace/cli.d.ts +1 -0
  165. package/dist/trace/cli.js +196 -0
  166. package/dist/trace/cli.js.map +1 -0
  167. package/dist/trace/nativeAdapter.d.ts +16 -0
  168. package/dist/trace/nativeAdapter.js +418 -0
  169. package/dist/trace/nativeAdapter.js.map +1 -0
  170. package/dist/trace/nativeBridge.d.ts +46 -0
  171. package/dist/trace/nativeBridge.js +416 -0
  172. package/dist/trace/nativeBridge.js.map +1 -0
  173. package/dist/trace/reader.d.ts +83 -0
  174. package/dist/trace/reader.js +296 -0
  175. package/dist/trace/reader.js.map +1 -0
  176. package/dist/trace/recorder.d.ts +59 -0
  177. package/dist/trace/recorder.js +303 -0
  178. package/dist/trace/recorder.js.map +1 -0
  179. package/dist/trace/runtimeLoader.d.ts +23 -0
  180. package/dist/trace/runtimeLoader.js +172 -0
  181. package/dist/trace/runtimeLoader.js.map +1 -0
  182. package/dist/trace/viewerAssets.d.ts +2 -0
  183. package/dist/trace/viewerAssets.js +76 -0
  184. package/dist/trace/viewerAssets.js.map +1 -0
  185. package/dist/trace/viewerClient.d.ts +1 -0
  186. package/dist/trace/viewerClient.js +485 -0
  187. package/dist/trace/viewerClient.js.map +1 -0
  188. package/dist/trace/viewerModel.d.ts +308 -0
  189. package/dist/trace/viewerModel.js +524 -0
  190. package/dist/trace/viewerModel.js.map +1 -0
  191. package/dist/trace/viewerServer.d.ts +7 -0
  192. package/dist/trace/viewerServer.js +185 -0
  193. package/dist/trace/viewerServer.js.map +1 -0
  194. package/dist/typeServer/protocol/typeServerProtocol.d.ts +8 -2
  195. package/dist/typeServer/protocol/typeServerProtocol.js +1 -0
  196. package/dist/typeServer/protocol/typeServerProtocol.js.map +1 -1
  197. package/dist/typeServer/typeServerConversionUtils.js +9 -0
  198. package/dist/typeServer/typeServerConversionUtils.js.map +1 -1
  199. package/package.json +4 -2
@@ -0,0 +1,418 @@
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: [...spec.functions, 'useNodeCacheIsolation', 'SpeculativeTypeTracker.useNodeCacheIsolation'],
159
+ };
160
+ }
161
+ const source = ts.createSourceFile(file, code, ts.ScriptTarget.ES2020, true, ts.ScriptKind.JS);
162
+ const sites = [];
163
+ const counts = {};
164
+ const matches = new Map([...spec.functions, ...(spec.optionalFunctions ?? [])].map((name) => [name, 0]));
165
+ const declarations = new Set();
166
+ let collisions = false;
167
+ const scan = (node) => {
168
+ if (ts.isIdentifier(node)) {
169
+ if (node.text.startsWith('__ptr') || node.text === bridgeName) {
170
+ collisions = true;
171
+ }
172
+ }
173
+ if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
174
+ declarations.add(node.name.text);
175
+ }
176
+ ts.forEachChild(node, scan);
177
+ };
178
+ scan(source);
179
+ if (collisions) {
180
+ throw new Error(`Adapter identifier collision in ${file}`);
181
+ }
182
+ for (const name of spec.state ?? []) {
183
+ if (!declarations.has(name)) {
184
+ throw new Error(`Adapter drift: missing state ${file}:${name}`);
185
+ }
186
+ }
187
+ const site = (node, label, kind) => {
188
+ counts[kind] = (counts[kind] ?? 0) + 1;
189
+ const result = {
190
+ id: `${file}:${sites.length + 1}`,
191
+ file,
192
+ label,
193
+ start: node.getStart(source),
194
+ length: node.getWidth(source),
195
+ line: source.getLineAndCharacterOfPosition(node.getStart(source)).line + 1,
196
+ text: node.getText(source).slice(0, 1000),
197
+ };
198
+ sites.push(result);
199
+ return ts.factory.createStringLiteral(result.id);
200
+ };
201
+ const call = (name, args) => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(bridgeName), name), undefined, args);
202
+ let currentFunction = '';
203
+ let currentClass = '';
204
+ let selected = false;
205
+ let inFactory = false;
206
+ let currentOwner = 'undefined';
207
+ let parameters = [];
208
+ let factoryCount = 0;
209
+ const transform = (context) => {
210
+ const visit = (node) => {
211
+ if (ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
212
+ const saved = currentClass;
213
+ currentClass = node.name?.text ?? '';
214
+ const updated = ts.visitEachChild(node, visit, context);
215
+ currentClass = saved;
216
+ return updated;
217
+ }
218
+ if (ts.isFunctionDeclaration(node) ||
219
+ ts.isFunctionExpression(node) ||
220
+ ts.isArrowFunction(node) ||
221
+ ts.isMethodDeclaration(node)) {
222
+ const name = node.name && ts.isIdentifier(node.name)
223
+ ? node.name.text
224
+ : ts.isVariableDeclaration(node.parent) && ts.isIdentifier(node.parent.name)
225
+ ? node.parent.name.text
226
+ : ts.isBinaryExpression(node.parent) && ts.isPropertyAccessExpression(node.parent.left)
227
+ ? node.parent.left.name.text
228
+ : '';
229
+ const qualified = `${currentClass}.${name}`;
230
+ const key = matches.has(qualified) ? qualified : name;
231
+ const isSelected = matches.has(key);
232
+ const isFlowAnalyzer = file === 'analyzer/codeFlowEngine.js' && name === 'createCodeFlowAnalyzer';
233
+ const isFactory = name === spec.factory || isFlowAnalyzer;
234
+ if (isSelected) {
235
+ matches.set(key, matches.get(key) + 1);
236
+ }
237
+ if (name === spec.factory) {
238
+ factoryCount++;
239
+ }
240
+ if ((isSelected || isFactory) && (!node.body || !ts.isBlock(node.body))) {
241
+ throw new Error(`Adapter drift: expected block body ${file}:${name}`);
242
+ }
243
+ if (isFactory && node.body && ts.isBlock(node.body)) {
244
+ const declared = new Set(node.body.statements.flatMap((s) => ts.isVariableStatement(s)
245
+ ? s.declarationList.declarations.flatMap((d) => ts.isIdentifier(d.name) ? [d.name.text] : [])
246
+ : []));
247
+ for (const state of isFlowAnalyzer ? ['flowNodeTypeCacheSet'] : spec.state) {
248
+ if (!declared.has(state)) {
249
+ throw new Error(`Adapter drift: ${name} does not directly declare state ${state}`);
250
+ }
251
+ }
252
+ }
253
+ if (isSelected &&
254
+ (node.parameters.some((p) => !ts.isIdentifier(p.name) || !!p.dotDotDotToken) ||
255
+ node.modifiers?.some((m) => m.kind === ts.SyntaxKind.AsyncKeyword) ||
256
+ ('asteriskToken' in node && node.asteriskToken))) {
257
+ throw new Error(`Unsupported asynchronous/generator/destructured hook ${file}:${name}`);
258
+ }
259
+ const previous = { currentFunction, selected, inFactory, currentOwner, parameters };
260
+ currentFunction = name;
261
+ selected = isSelected;
262
+ inFactory = isFactory || inFactory;
263
+ parameters = node.parameters.map((p) => p.name.getText(source));
264
+ if (isFactory) {
265
+ currentOwner = `__ptrOwner_${name}`;
266
+ }
267
+ let updated = ts.visitEachChild(node, visit, context);
268
+ if ((isSelected || isFactory) && updated.body && ts.isBlock(updated.body)) {
269
+ let statements = [...updated.body.statements];
270
+ if (isFactory) {
271
+ const state = isFlowAnalyzer ? ['flowNodeTypeCacheSet'] : spec.state;
272
+ const parent = name === 'getCodeFlowEngine' ? 'evaluator' : previous.currentOwner;
273
+ statements.unshift(...parseStatements(`${bridgeName}.owner(${currentOwner}, ${JSON.stringify(name)}, () => ({${state.join(',')}}), ${parent});`));
274
+ }
275
+ if (isSelected) {
276
+ const hook = site(node, key, 'function');
277
+ const args = parameters;
278
+ const owner = currentOwner;
279
+ const receiver = ts.isMethodDeclaration(node) ? 'this' : 'undefined';
280
+ const prefix = parseStatements(`const __ptrSpan = ${bridgeName}.enter(${JSON.stringify(hook.text)}, ${owner}, ` +
281
+ `{${args.join(',')}}, ${receiver});`);
282
+ const originalBody = ts.factory.createBlock(statements, true);
283
+ const caught = ts.factory.createCatchClause('__ptrError', ts.factory.createBlock([
284
+ ts.factory.createExpressionStatement(call('thrown', [
285
+ ts.factory.createIdentifier('__ptrSpan'),
286
+ ts.factory.createIdentifier('__ptrError'),
287
+ ])),
288
+ ts.factory.createThrowStatement(ts.factory.createIdentifier('__ptrError')),
289
+ ], true));
290
+ const final = ts.factory.createBlock([
291
+ ts.factory.createExpressionStatement(call('exit', [ts.factory.createIdentifier('__ptrSpan')])),
292
+ ], true);
293
+ statements = [...prefix, ts.factory.createTryStatement(originalBody, caught, final)];
294
+ }
295
+ if (isFactory) {
296
+ statements.unshift(...parseStatements(`const ${currentOwner} = {};`));
297
+ }
298
+ const body = ts.factory.updateBlock(updated.body, statements);
299
+ if (ts.isFunctionDeclaration(updated)) {
300
+ updated = ts.factory.updateFunctionDeclaration(updated, updated.modifiers, updated.asteriskToken, updated.name, updated.typeParameters, updated.parameters, updated.type, body);
301
+ }
302
+ else if (ts.isMethodDeclaration(updated)) {
303
+ updated = ts.factory.updateMethodDeclaration(updated, updated.modifiers, updated.asteriskToken, updated.name, updated.questionToken, updated.typeParameters, updated.parameters, updated.type, body);
304
+ }
305
+ else if (ts.isArrowFunction(updated)) {
306
+ updated = ts.factory.updateArrowFunction(updated, updated.modifiers, updated.typeParameters, updated.parameters, updated.type, updated.equalsGreaterThanToken, body);
307
+ }
308
+ else if (ts.isFunctionExpression(updated)) {
309
+ updated = ts.factory.updateFunctionExpression(updated, updated.modifiers, updated.asteriskToken, updated.name, updated.typeParameters, updated.parameters, updated.type, body);
310
+ }
311
+ }
312
+ ({ currentFunction, selected, inFactory, currentOwner, parameters } = previous);
313
+ return updated;
314
+ }
315
+ if (ts.isReturnStatement(node)) {
316
+ const value = node.expression
317
+ ? ts.visitNode(node.expression, visit)
318
+ : ts.factory.createIdentifier('undefined');
319
+ if (selected) {
320
+ const result = currentFunction === 'createCodeFlowAnalyzer'
321
+ ? call('bind', [ts.factory.createIdentifier(currentOwner), value])
322
+ : value;
323
+ return ts.factory.updateReturnStatement(node, call('returned', [
324
+ ts.factory.createIdentifier('__ptrSpan'),
325
+ result,
326
+ parseExpression(`{${parameters.join(',')}}`),
327
+ site(node, currentFunction, 'return'),
328
+ ]));
329
+ }
330
+ if (currentFunction === spec.factory) {
331
+ return ts.factory.updateReturnStatement(node, call('bind', [ts.factory.createIdentifier(currentOwner), value]));
332
+ }
333
+ }
334
+ if (currentFunction === '_trial' &&
335
+ ts.isVariableStatement(node) &&
336
+ node.declarationList.declarations.some((d) => ts.isIdentifier(d.name) && d.name.text === 'evaluator')) {
337
+ counts['evaluator-link'] = (counts['evaluator-link'] ?? 0) + 1;
338
+ return [
339
+ ts.visitEachChild(node, visit, context),
340
+ ...parseStatements(`${bridgeName}.linkCurrent(evaluator);`),
341
+ ];
342
+ }
343
+ if (selected && ts.isIfStatement(node)) {
344
+ return ts.factory.updateIfStatement(node, call('branch', [
345
+ site(node.expression, currentFunction, 'branch'),
346
+ ts.visitNode(node.expression, visit),
347
+ ]), ts.visitNode(node.thenStatement, visit), ts.visitNode(node.elseStatement, visit));
348
+ }
349
+ if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression) && !node.questionDotToken) {
350
+ const receiver = node.expression.expression;
351
+ const method = node.expression.name.text;
352
+ const receiverText = receiver.getText(source);
353
+ // These names identify native state containers, not Python fixtures or
354
+ // selected source functions. The manifest reports every matched site.
355
+ if (/cache|stack|pendingNodes|closedFinallyGateNodes|incompleteEntries|candidates|_typeVarMap|_diagnostic|entriesToUndo|_activeDependentTypes|RecursionSet/i.test(receiverText) &&
356
+ ['get', 'has', 'set', 'delete', 'clear', 'add', 'push', 'pop'].includes(method) &&
357
+ !node.expression.questionDotToken) {
358
+ return ts.factory.updateCallExpression(node, call('method', [
359
+ site(node, currentFunction, 'collection'),
360
+ ts.visitNode(receiver, visit),
361
+ ts.factory.createStringLiteral(method),
362
+ ]), undefined, node.arguments.map((arg) => ts.visitNode(arg, visit)));
363
+ }
364
+ }
365
+ if ((ts.isPostfixUnaryExpression(node) || ts.isPrefixUnaryExpression(node)) &&
366
+ ts.isIdentifier(node.operand) &&
367
+ ['incompleteGenCount', 'flowIncompleteGeneration'].includes(node.operand.text)) {
368
+ return call('effect', [
369
+ site(node, node.operand.text, 'generation'),
370
+ node,
371
+ parseExpression(`{value:${node.operand.text}, domain:${JSON.stringify(node.operand.text)}}`),
372
+ ]);
373
+ }
374
+ if (ts.isBinaryExpression(node) &&
375
+ node.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
376
+ ts.isPropertyAccessExpression(node.left) &&
377
+ (selected || node.left.name.text === 'inferredReturnType')) {
378
+ const receiver = node.left.expression;
379
+ if (ts.isIdentifier(receiver) ||
380
+ receiver.kind === ts.SyntaxKind.ThisKeyword ||
381
+ (ts.isPropertyAccessExpression(receiver) && ts.isIdentifier(receiver.expression))) {
382
+ return call('effect', [
383
+ site(node, currentFunction, 'field-write'),
384
+ ts.visitEachChild(node, visit, context),
385
+ ts.factory.createObjectLiteralExpression([
386
+ ts.factory.createPropertyAssignment('target', receiver),
387
+ ts.factory.createPropertyAssignment('field', ts.factory.createStringLiteral(node.left.name.text)),
388
+ ]),
389
+ ]);
390
+ }
391
+ }
392
+ return ts.visitEachChild(node, visit, context);
393
+ };
394
+ return (root) => ts.visitNode(root, visit);
395
+ };
396
+ const result = ts.transform(source, [transform]);
397
+ try {
398
+ for (const [name, count] of matches) {
399
+ counts[`function:${name}`] = count;
400
+ if (count !== 1 && !(count === 0 && spec.optionalFunctions?.includes(name))) {
401
+ throw new Error(`Adapter drift: expected one ${file}:${name}, found ${count}`);
402
+ }
403
+ }
404
+ if (spec.factory && factoryCount !== 1) {
405
+ throw new Error(`Adapter drift: expected one factory ${file}:${spec.factory}, found ${factoryCount}`);
406
+ }
407
+ for (const kind of spec.required) {
408
+ if (!counts[kind]) {
409
+ throw new Error(`Adapter drift: missing ${kind} in ${file}`);
410
+ }
411
+ }
412
+ return { code: ts.createPrinter().printFile(result.transformed[0]), sites, counts };
413
+ }
414
+ finally {
415
+ result.dispose();
416
+ }
417
+ }
418
+ //# 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
+ }