@opensip-cli/graph-typescript 0.1.10 → 0.1.12
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 +4 -2
- package/dist/__tests__/body-signature-population.test.d.ts +2 -0
- package/dist/__tests__/body-signature-population.test.d.ts.map +1 -0
- package/dist/__tests__/body-signature-population.test.js +49 -0
- package/dist/__tests__/body-signature-population.test.js.map +1 -0
- package/dist/__tests__/edge-helpers/method-target.test.js +33 -1
- package/dist/__tests__/edge-helpers/method-target.test.js.map +1 -1
- package/dist/__tests__/inventory-property-tests.test.d.ts.map +1 -1
- package/dist/__tests__/inventory-property-tests.test.js +0 -1
- package/dist/__tests__/inventory-property-tests.test.js.map +1 -1
- package/dist/__tests__/inventory-shape-coverage.test.d.ts.map +1 -1
- package/dist/__tests__/inventory-shape-coverage.test.js +0 -1
- package/dist/__tests__/inventory-shape-coverage.test.js.map +1 -1
- package/dist/__tests__/lang-adapter-contract.test.d.ts.map +1 -1
- package/dist/__tests__/lang-adapter-contract.test.js +0 -1
- package/dist/__tests__/lang-adapter-contract.test.js.map +1 -1
- package/dist/cache-key.d.ts.map +1 -1
- package/dist/cache-key.js +0 -1
- package/dist/cache-key.js.map +1 -1
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +0 -2
- package/dist/discover.js.map +1 -1
- package/dist/edge-helpers/find-catalog-entry.d.ts.map +1 -1
- package/dist/edge-helpers/find-catalog-entry.js +0 -1
- package/dist/edge-helpers/find-catalog-entry.js.map +1 -1
- package/dist/edge-helpers/method-target.d.ts +10 -0
- package/dist/edge-helpers/method-target.d.ts.map +1 -1
- package/dist/edge-helpers/method-target.js +83 -3
- package/dist/edge-helpers/method-target.js.map +1 -1
- package/dist/edge-resolvers/direct-call.d.ts.map +1 -1
- package/dist/edge-resolvers/direct-call.js +0 -1
- package/dist/edge-resolvers/direct-call.js.map +1 -1
- package/dist/edge-resolvers/jsx-element.d.ts.map +1 -1
- package/dist/edge-resolvers/jsx-element.js +0 -1
- package/dist/edge-resolvers/jsx-element.js.map +1 -1
- package/dist/edge-resolvers/new-expression.d.ts.map +1 -1
- package/dist/edge-resolvers/new-expression.js +0 -1
- package/dist/edge-resolvers/new-expression.js.map +1 -1
- package/dist/edge-resolvers/polymorphic.d.ts.map +1 -1
- package/dist/edge-resolvers/polymorphic.js +0 -1
- package/dist/edge-resolvers/polymorphic.js.map +1 -1
- package/dist/edge-resolvers/property-access.d.ts.map +1 -1
- package/dist/edge-resolvers/property-access.js +0 -1
- package/dist/edge-resolvers/property-access.js.map +1 -1
- package/dist/edges-dispatch.d.ts +13 -0
- package/dist/edges-dispatch.d.ts.map +1 -0
- package/dist/edges-dispatch.js +143 -0
- package/dist/edges-dispatch.js.map +1 -0
- package/dist/edges.d.ts +2 -32
- package/dist/edges.d.ts.map +1 -1
- package/dist/edges.js +4 -271
- package/dist/edges.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/inventory-helpers/classify-visibility.d.ts.map +1 -1
- package/dist/inventory-helpers/classify-visibility.js +0 -1
- package/dist/inventory-helpers/classify-visibility.js.map +1 -1
- package/dist/inventory-helpers/enclosing-class.d.ts +3 -0
- package/dist/inventory-helpers/enclosing-class.d.ts.map +1 -0
- package/dist/inventory-helpers/enclosing-class.js +12 -0
- package/dist/inventory-helpers/enclosing-class.js.map +1 -0
- package/dist/inventory-helpers/extract-decorators.d.ts.map +1 -1
- package/dist/inventory-helpers/extract-decorators.js +0 -1
- package/dist/inventory-helpers/extract-decorators.js.map +1 -1
- package/dist/inventory-helpers/extract-params.d.ts.map +1 -1
- package/dist/inventory-helpers/extract-params.js +0 -1
- package/dist/inventory-helpers/extract-params.js.map +1 -1
- package/dist/inventory-helpers/hash-body.d.ts +1 -0
- package/dist/inventory-helpers/hash-body.d.ts.map +1 -1
- package/dist/inventory-helpers/hash-body.js +3 -9
- package/dist/inventory-helpers/hash-body.js.map +1 -1
- package/dist/inventory-helpers/infer-parent-name.d.ts +3 -0
- package/dist/inventory-helpers/infer-parent-name.d.ts.map +1 -0
- package/dist/inventory-helpers/infer-parent-name.js +14 -0
- package/dist/inventory-helpers/infer-parent-name.js.map +1 -0
- package/dist/inventory-visitors/arrow-function.d.ts +1 -1
- package/dist/inventory-visitors/arrow-function.d.ts.map +1 -1
- package/dist/inventory-visitors/arrow-function.js +2 -15
- package/dist/inventory-visitors/arrow-function.js.map +1 -1
- package/dist/inventory-visitors/class-static-init.d.ts.map +1 -1
- package/dist/inventory-visitors/class-static-init.js +1 -0
- package/dist/inventory-visitors/class-static-init.js.map +1 -1
- package/dist/inventory-visitors/constructor-declaration.d.ts +1 -1
- package/dist/inventory-visitors/constructor-declaration.d.ts.map +1 -1
- package/dist/inventory-visitors/constructor-declaration.js +3 -14
- package/dist/inventory-visitors/constructor-declaration.js.map +1 -1
- package/dist/inventory-visitors/function-declaration.d.ts.map +1 -1
- package/dist/inventory-visitors/function-declaration.js +1 -0
- package/dist/inventory-visitors/function-declaration.js.map +1 -1
- package/dist/inventory-visitors/function-expression.d.ts +1 -1
- package/dist/inventory-visitors/function-expression.d.ts.map +1 -1
- package/dist/inventory-visitors/function-expression.js +2 -16
- package/dist/inventory-visitors/function-expression.js.map +1 -1
- package/dist/inventory-visitors/getter-setter.d.ts.map +1 -1
- package/dist/inventory-visitors/getter-setter.js +3 -13
- package/dist/inventory-visitors/getter-setter.js.map +1 -1
- package/dist/inventory-visitors/method-declaration.d.ts.map +1 -1
- package/dist/inventory-visitors/method-declaration.js +3 -13
- package/dist/inventory-visitors/method-declaration.js.map +1 -1
- package/dist/inventory-visitors/module-init.d.ts.map +1 -1
- package/dist/inventory-visitors/module-init.js +1 -0
- package/dist/inventory-visitors/module-init.js.map +1 -1
- package/dist/parse-fast.d.ts.map +1 -1
- package/dist/parse-fast.js +2 -3
- package/dist/parse-fast.js.map +1 -1
- package/dist/test-file.d.ts +7 -4
- package/dist/test-file.d.ts.map +1 -1
- package/dist/test-file.js +7 -39
- package/dist/test-file.js.map +1 -1
- package/package.json +7 -7
package/dist/edges.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @fitness-ignore-file file-length-limit -- Stage 2 edge resolver covering call+import+dependency edges in one cohesive pass; the resolution logic is contiguous and a split would push state across module boundaries.
|
|
2
1
|
/**
|
|
3
2
|
* Stage 2 — Edge resolution.
|
|
4
3
|
*
|
|
@@ -14,83 +13,34 @@
|
|
|
14
13
|
*/
|
|
15
14
|
import { relative, sep } from 'node:path';
|
|
16
15
|
import { logger } from '@opensip-cli/core';
|
|
17
|
-
import {
|
|
18
|
-
import ts from 'typescript';
|
|
16
|
+
import { createMutableStats, ownerEdgeKey, pushCreationEdge as pushSharedCreationEdge, } from '@opensip-cli/graph';
|
|
19
17
|
import { buildCrossPackageContext } from './edge-helpers/cross-package-context.js';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
|
|
23
|
-
import { resolveDirectCall } from './edge-resolvers/direct-call.js';
|
|
24
|
-
import { resolveJsxElement } from './edge-resolvers/jsx-element.js';
|
|
25
|
-
import { resolveNewExpression } from './edge-resolvers/new-expression.js';
|
|
26
|
-
import { resolvePolymorphicCall } from './edge-resolvers/polymorphic.js';
|
|
27
|
-
import { resolvePropertyAccessCall } from './edge-resolvers/property-access.js';
|
|
28
|
-
import { buildImportIndex, buildImportSpecifierIndex, calleeAnchorNode, collectKnownFiles, resolveSyntactic, } from './edge-resolvers/syntactic.js';
|
|
29
|
-
import { isValueReference, resolveShorthandAssignment, resolveValueReference, } from './edges-value-reference.js';
|
|
30
|
-
/** How many call sites to process between cooperative event-loop yields. Tuned
|
|
31
|
-
* so the live view's 80ms clock ticks several times per second during a long
|
|
32
|
-
* resolve, while keeping the macrotask-hop count (and its overhead) tiny. */
|
|
18
|
+
import { buildImportIndex, buildImportSpecifierIndex, collectKnownFiles, resolveSyntactic, } from './edge-resolvers/syntactic.js';
|
|
19
|
+
import { computeVerdict, pushCallEdge, rebuildCatalog, tsPosition } from './edges-dispatch.js';
|
|
20
|
+
export { isReturnValueDiscarded } from './edges-dispatch.js';
|
|
33
21
|
const YIELD_EVERY_CALL_SITES = 250;
|
|
34
|
-
/** Yield to the event loop once (a macrotask hop), so the in-process live view
|
|
35
|
-
* can paint a frame mid-stage (ADR-0016). */
|
|
36
22
|
function yieldToEventLoop() {
|
|
37
23
|
return new Promise((resolve) => {
|
|
38
24
|
setImmediate(resolve);
|
|
39
25
|
});
|
|
40
26
|
}
|
|
41
|
-
function tsPosition(node, sourceFile) {
|
|
42
|
-
// Anchor the edge identity at the CALLEE token (method name / callee / class),
|
|
43
|
-
// not the whole expression's start — so chained calls `a().b()` don't collide
|
|
44
|
-
// on one (line,column) key. The display TEXT stays the whole expression.
|
|
45
|
-
const anchor = calleeAnchorNode(node).getStart(sourceFile);
|
|
46
|
-
const anchorLC = sourceFile.getLineAndCharacterOfPosition(anchor);
|
|
47
|
-
return {
|
|
48
|
-
line: anchorLC.line + 1,
|
|
49
|
-
column: anchorLC.character,
|
|
50
|
-
text: sourceFile.text.slice(node.getStart(sourceFile), node.getEnd()),
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Stage 2 entry point: resolve a pre-collected list of call-site records
|
|
55
|
-
* produced by `walkProgram` (no AST re-descent). The orchestrator's
|
|
56
|
-
* `resolveCallSitesAdapter` drives this directly with the records the walk
|
|
57
|
-
* already emitted.
|
|
58
|
-
*/
|
|
59
27
|
export async function resolveEdgesFromRecords(input) {
|
|
60
28
|
logger.info({ evt: 'graph.edges.start', module: 'graph:edges' });
|
|
61
29
|
const checker = input.program.getTypeChecker();
|
|
62
30
|
const callsByHash = new Map();
|
|
63
31
|
const stats = createMutableStats();
|
|
64
32
|
const sink = { edgesByOwner: callsByHash, stats };
|
|
65
|
-
// Cross-package resolution context (export index + manifest index) — the SAME
|
|
66
|
-
// model the sharded linker uses. Built once for the whole resolve stage so a
|
|
67
|
-
// workspace `@scope/pkg` call resolves to the SOURCE occurrence instead of the
|
|
68
|
-
// type checker's bodiless `dist/*.d.ts` declaration (ADR — exact↔sharded
|
|
69
|
-
// convergence). The per-file raw-import-specifier index (binding name → raw
|
|
70
|
-
// specifier) is built lazily and cached, mirroring the boundary extractor.
|
|
71
33
|
const crossPackage = buildCrossPackageContext(input.catalog, input.projectDirAbs);
|
|
72
|
-
// One import-specifier index per source file, built lazily and cached inline in
|
|
73
|
-
// the loop below (the cache Map is a local of THIS function, like the fast
|
|
74
|
-
// path's `importIndexByFile`).
|
|
75
34
|
const importSpecifiersByFile = new Map();
|
|
76
35
|
let processed = 0;
|
|
77
36
|
for (const r of input.callSites) {
|
|
78
|
-
// Cooperative yield (ADR-0016): resolve is the heaviest stage (tens of
|
|
79
|
-
// thousands of sites). Yielding to the event loop every N sites lets the
|
|
80
|
-
// in-process live view's 80ms clock tick, so the spinner animates instead
|
|
81
|
-
// of freezing for the whole stage. The macrotask hops (~1 per N sites) are
|
|
82
|
-
// negligible against the per-site type-checker work.
|
|
83
37
|
if (processed > 0 && processed % YIELD_EVERY_CALL_SITES === 0)
|
|
84
38
|
await yieldToEventLoop();
|
|
85
39
|
processed += 1;
|
|
86
|
-
// Bucket edges per OWNER OCCURRENCE (bodyHash + file), not bodyHash alone:
|
|
87
|
-
// body-twin functions in different files share a hash, and a hash-only
|
|
88
|
-
// bucket would union their edges into phantom cross-package calls.
|
|
89
40
|
const ownerKey = ownerEdgeKey(r.ownerHash, relative(input.projectDirAbs, r.sourceFile.fileName));
|
|
90
41
|
if (r.kind === 'creation') {
|
|
91
42
|
if (r.childHash === undefined)
|
|
92
43
|
continue;
|
|
93
|
-
// @fitness-ignore-next-line detached-promises -- pushCallEdge/pushSharedCreationEdge return void (synchronous edge-sink writes), not promises
|
|
94
44
|
pushSharedCreationEdge(tsPosition(r.node, r.sourceFile), ownerKey, r.childHash, sink);
|
|
95
45
|
continue;
|
|
96
46
|
}
|
|
@@ -111,7 +61,6 @@ export async function resolveEdgesFromRecords(input) {
|
|
|
111
61
|
const verdict = computeVerdict(r.node, ctx);
|
|
112
62
|
if (verdict === null)
|
|
113
63
|
continue;
|
|
114
|
-
// @fitness-ignore-next-line detached-promises -- pushCallEdge/pushSharedCreationEdge return void (synchronous edge-sink writes), not promises
|
|
115
64
|
pushCallEdge(r.node, r.sourceFile, verdict, ownerKey, sink);
|
|
116
65
|
}
|
|
117
66
|
const newCatalog = rebuildCatalog(input.catalog, callsByHash);
|
|
@@ -126,39 +75,22 @@ export async function resolveEdgesFromRecords(input) {
|
|
|
126
75
|
});
|
|
127
76
|
return { catalog: newCatalog, resolutionStats: stats };
|
|
128
77
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Fast-tier Stage 2 entry point: resolve the same pre-collected call-site
|
|
131
|
-
* records WITHOUT a `ts.Program` or type checker. Creation edges are
|
|
132
|
-
* static and handled identically to the exact path; call edges are
|
|
133
|
-
* resolved syntactically (callee name + the file's import graph) and
|
|
134
|
-
* labeled `resolution: 'syntactic'` with capped confidence (never
|
|
135
|
-
* `'high'`). The output shape is identical to {@link resolveEdgesFromRecords}
|
|
136
|
-
* — only the verdicts differ — so the catalog stitches the same way.
|
|
137
|
-
*
|
|
138
|
-
* Stats stay honest: fast edges land in `resolvedMedium`/`resolvedLow`/
|
|
139
|
-
* `unresolved`, never `resolvedHigh`.
|
|
140
|
-
*/
|
|
141
78
|
export async function resolveEdgesSyntactic(input) {
|
|
142
79
|
logger.info({ evt: 'graph.edges.syntactic.start', module: 'graph:edges' });
|
|
143
80
|
const callsByHash = new Map();
|
|
144
81
|
const stats = createMutableStats();
|
|
145
82
|
const sink = { edgesByOwner: callsByHash, stats };
|
|
146
83
|
const knownFiles = collectKnownFiles(input.catalog);
|
|
147
|
-
// One import index per source file — cached across that file's sites.
|
|
148
84
|
const importIndexByFile = new Map();
|
|
149
85
|
let processed = 0;
|
|
150
86
|
for (const r of input.callSites) {
|
|
151
|
-
// Cooperative yield — see resolveEdgesFromRecords (ADR-0016).
|
|
152
|
-
// @fitness-ignore-next-line performance-anti-patterns -- cooperative yield (ADR-0016) runs once per N call-sites so the live view stays responsive; intentionally serial, not parallelizable
|
|
153
87
|
if (processed > 0 && processed % YIELD_EVERY_CALL_SITES === 0)
|
|
154
88
|
await yieldToEventLoop();
|
|
155
89
|
processed += 1;
|
|
156
|
-
// Per-owner-occurrence bucket key (see resolveEdgesFromRecords).
|
|
157
90
|
const ownerKey = ownerEdgeKey(r.ownerHash, relative(input.projectDirAbs, r.sourceFile.fileName));
|
|
158
91
|
if (r.kind === 'creation') {
|
|
159
92
|
if (r.childHash === undefined)
|
|
160
93
|
continue;
|
|
161
|
-
// @fitness-ignore-next-line detached-promises -- pushCallEdge/pushSharedCreationEdge return void (synchronous edge-sink writes), not promises
|
|
162
94
|
pushSharedCreationEdge(tsPosition(r.node, r.sourceFile), ownerKey, r.childHash, sink);
|
|
163
95
|
continue;
|
|
164
96
|
}
|
|
@@ -177,7 +109,6 @@ export async function resolveEdgesSyntactic(input) {
|
|
|
177
109
|
});
|
|
178
110
|
if (verdict === null)
|
|
179
111
|
continue;
|
|
180
|
-
// @fitness-ignore-next-line detached-promises -- pushCallEdge/pushSharedCreationEdge return void (synchronous edge-sink writes), not promises
|
|
181
112
|
pushCallEdge(r.node, r.sourceFile, verdict, ownerKey, sink);
|
|
182
113
|
}
|
|
183
114
|
const newCatalog = rebuildCatalog(input.catalog, callsByHash);
|
|
@@ -191,202 +122,4 @@ export async function resolveEdgesSyntactic(input) {
|
|
|
191
122
|
});
|
|
192
123
|
return { catalog: newCatalog, resolutionStats: stats };
|
|
193
124
|
}
|
|
194
|
-
/**
|
|
195
|
-
* Append an ordinary call/new/jsx/value-reference edge from a resolver
|
|
196
|
-
* verdict. Bumps `totalCallSites` directly (every call expression is
|
|
197
|
-
* a site, even unresolved-by-shape ones); delegates per-confidence
|
|
198
|
-
* classification to `stats.apply`.
|
|
199
|
-
*/
|
|
200
|
-
function pushCallEdge(node, sourceFile, verdict, ownerKey, sink) {
|
|
201
|
-
const { edgesByOwner: callsByHash, stats } = sink;
|
|
202
|
-
stats.totalCallSites++;
|
|
203
|
-
const pos = tsPosition(node, sourceFile);
|
|
204
|
-
const edge = {
|
|
205
|
-
to: verdict.to,
|
|
206
|
-
line: pos.line,
|
|
207
|
-
column: pos.column,
|
|
208
|
-
resolution: verdict.resolution,
|
|
209
|
-
confidence: verdict.confidence,
|
|
210
|
-
text: truncateForCallEdge(pos.text),
|
|
211
|
-
discarded: isReturnValueDiscarded(node),
|
|
212
|
-
};
|
|
213
|
-
appendEdge(callsByHash, ownerKey, edge);
|
|
214
|
-
stats.apply(edge);
|
|
215
|
-
}
|
|
216
|
-
function verdictEntry(predicate, resolve) {
|
|
217
|
-
return { predicate, resolve: (n, c) => resolve(n, c) };
|
|
218
|
-
}
|
|
219
|
-
const isJsxLikeOpening = (n) => ts.isJsxOpeningElement(n) || ts.isJsxSelfClosingElement(n);
|
|
220
|
-
const isValueRefIdentifier = (n) => ts.isIdentifier(n) && isValueReference(n);
|
|
221
|
-
const VERDICT_TABLE = [
|
|
222
|
-
verdictEntry(ts.isCallExpression, (n, c) => dispatchCall(n, c)),
|
|
223
|
-
verdictEntry(ts.isNewExpression, (n, c) => resolveNewExpression(n, c)),
|
|
224
|
-
verdictEntry(isJsxLikeOpening, (n, c) => resolveJsxElement(n, c)),
|
|
225
|
-
verdictEntry(isValueRefIdentifier, (n, c) => {
|
|
226
|
-
const v = resolveValueReference(n, c);
|
|
227
|
-
return v.to.length > 0 ? v : null;
|
|
228
|
-
}),
|
|
229
|
-
verdictEntry(ts.isShorthandPropertyAssignment, (n, c) => {
|
|
230
|
-
const v = resolveShorthandAssignment(n, c);
|
|
231
|
-
return v.to.length > 0 ? v : null;
|
|
232
|
-
}),
|
|
233
|
-
];
|
|
234
|
-
/** Returns null if `node` is not a call/new/jsx/value-reference site. */
|
|
235
|
-
function computeVerdict(node, ctx) {
|
|
236
|
-
for (const entry of VERDICT_TABLE) {
|
|
237
|
-
if (entry.predicate(node))
|
|
238
|
-
return entry.resolve(node, ctx);
|
|
239
|
-
}
|
|
240
|
-
return null;
|
|
241
|
-
}
|
|
242
|
-
function dispatchCall(node, ctx) {
|
|
243
|
-
// Direct identifier call: foo()
|
|
244
|
-
if (ts.isIdentifier(node.expression)) {
|
|
245
|
-
const direct = resolveDirectCall(node, ctx);
|
|
246
|
-
if (direct.to.length > 0)
|
|
247
|
-
return direct;
|
|
248
|
-
return fallbackWithBinding(node.expression, node.expression.text, ctx);
|
|
249
|
-
}
|
|
250
|
-
// Property access call: obj.method()
|
|
251
|
-
if (ts.isPropertyAccessExpression(node.expression)) {
|
|
252
|
-
const direct = resolvePropertyAccessCall(node, ctx);
|
|
253
|
-
if (direct.to.length > 0)
|
|
254
|
-
return direct;
|
|
255
|
-
const poly = resolvePolymorphicCall(node, ctx);
|
|
256
|
-
if (poly.to.length > 0)
|
|
257
|
-
return poly;
|
|
258
|
-
// Fallback: look up by the rightmost simple name (binding-gated).
|
|
259
|
-
return fallbackWithBinding(node.expression, node.expression.name.text, ctx);
|
|
260
|
-
}
|
|
261
|
-
return { to: [], resolution: 'unknown', confidence: 'low' };
|
|
262
|
-
}
|
|
263
|
-
const UNRESOLVED_VERDICT = { to: [], resolution: 'unknown', confidence: 'low' };
|
|
264
|
-
/**
|
|
265
|
-
* Binding-gated catalog fallback. The unique-name catalog lookup
|
|
266
|
-
* ({@link resolveByCatalogFallback}) only fires when the call site has a binding
|
|
267
|
-
* that points INTO the project. A project binding is any of:
|
|
268
|
-
*
|
|
269
|
-
* - the callee expression's resolved symbol has an IN-PROJECT SOURCE
|
|
270
|
-
* declaration (a `.ts(x)` file, not a `.d.ts`). This is the receiver/type
|
|
271
|
-
* case the import graph can't see: `g.greet()` where `g: Greeter` resolves
|
|
272
|
-
* to the interface method declared in a project source file, even though
|
|
273
|
-
* `greet` was never imported by name;
|
|
274
|
-
* - the name is imported via a RELATIVE specifier (`./x`) — intra-package; or
|
|
275
|
-
* - the name is imported via a WORKSPACE specifier (`@scope/pkg`) the manifest
|
|
276
|
-
* index knows — inter-package.
|
|
277
|
-
*
|
|
278
|
-
* A callee whose symbol resolves only into an EXTERNAL/ambient `.d.ts` (Vitest's
|
|
279
|
-
* `describe`, `process.cwd`, a `Map`'s `.set`/`.get`) has NO project binding:
|
|
280
|
-
* the real target is outside the catalog, so a unique project function sharing
|
|
281
|
-
* the simple name would be a phantom. Without a project binding we decline —
|
|
282
|
-
* decline-beats-guess.
|
|
283
|
-
*
|
|
284
|
-
* NOTE: a same-named function merely EXISTING in the caller's file is NOT a
|
|
285
|
-
* binding — its presence is no evidence THIS call targets it. The former
|
|
286
|
-
* same-file name-presence branch let `process.send()` / `arr.push()` /
|
|
287
|
-
* `new Map().has()` / core `logger.info()` enter the name-only catalog fallback,
|
|
288
|
-
* which then resolved by SHARD-SCOPED catalog uniqueness — unsound under sharding
|
|
289
|
-
* (unique-in-shard ≠ unique-in-repo). That fabricated 33 local same-name edges on
|
|
290
|
-
* this repo (a cross-package/external method call → a same-file same-name
|
|
291
|
-
* function) that the whole-program checker correctly declines. Removed:
|
|
292
|
-
* decline-beats-guess. (Genuine cross-package edges sharded *does* resolve come
|
|
293
|
-
* from the type-checker resolvers' `.d.ts`→source hop, not this fallback, so they
|
|
294
|
-
* are unaffected.)
|
|
295
|
-
*/
|
|
296
|
-
function fallbackWithBinding(calleeExpr, name, ctx) {
|
|
297
|
-
if (!hasProjectBinding(calleeExpr, name, ctx))
|
|
298
|
-
return UNRESOLVED_VERDICT;
|
|
299
|
-
return resolveByCatalogFallback(name, ctx.catalog);
|
|
300
|
-
}
|
|
301
|
-
/** True when the call's callee binds into the project (see {@link fallbackWithBinding}). */
|
|
302
|
-
function hasProjectBinding(calleeExpr, name, ctx) {
|
|
303
|
-
if (symbolHasInProjectSourceDecl(calleeExpr, ctx))
|
|
304
|
-
return true;
|
|
305
|
-
const spec = ctx.importSpecifiers.get(name);
|
|
306
|
-
if (spec !== undefined) {
|
|
307
|
-
if (spec.startsWith('.'))
|
|
308
|
-
return true; // relative → intra-project
|
|
309
|
-
// Bare specifier → only a project binding if it resolves to a workspace pkg.
|
|
310
|
-
return resolveSpecifierToPackage(spec, ctx.crossPackage.manifestIndex) !== undefined;
|
|
311
|
-
}
|
|
312
|
-
// No type-checked in-project binding and no import specifier ⇒ no binding.
|
|
313
|
-
// (A same-named function merely existing in this file is not a binding — see
|
|
314
|
-
// the fallbackWithBinding doc. Declining here is the decline-beats-guess floor.)
|
|
315
|
-
return false;
|
|
316
|
-
}
|
|
317
|
-
/** Concrete-callable declaration shapes a name-only fallback may resolve against
|
|
318
|
-
* — excludes parameters / property- and method-signatures (a function-TYPED
|
|
319
|
-
* binding whose actual target the fallback cannot know). Mirrors the
|
|
320
|
-
* property-access resolver's ACCEPT set. */
|
|
321
|
-
const CALLABLE_DECL = DeclShape.FunctionDeclaration |
|
|
322
|
-
DeclShape.ArrowFunction |
|
|
323
|
-
DeclShape.FunctionExpression |
|
|
324
|
-
DeclShape.MethodDeclaration |
|
|
325
|
-
DeclShape.ConstructorDeclaration |
|
|
326
|
-
DeclShape.Accessor |
|
|
327
|
-
DeclShape.VariableInitializer |
|
|
328
|
-
DeclShape.PropertyAssignmentInitializer;
|
|
329
|
-
/**
|
|
330
|
-
* True when the callee expression's resolved symbol has at least one declaration
|
|
331
|
-
* in an IN-PROJECT SOURCE file (a non-`.d.ts` source file in the program). This
|
|
332
|
-
* is the binding the import graph can't express: a receiver-typed method call
|
|
333
|
-
* (`g.greet()` where `g: Greeter`) whose target is declared in project source,
|
|
334
|
-
* even though the method name was never imported. A symbol that resolves only
|
|
335
|
-
* into `.d.ts` (external / ambient) declarations fails this check, so the
|
|
336
|
-
* name-only fallback stays declined for globals.
|
|
337
|
-
*/
|
|
338
|
-
function symbolHasInProjectSourceDecl(calleeExpr, ctx) {
|
|
339
|
-
const symbol = ctx.typeChecker.getSymbolAtLocation(calleeExpr);
|
|
340
|
-
if (!symbol)
|
|
341
|
-
return false;
|
|
342
|
-
const real = unaliasSymbol(symbol, ctx.typeChecker);
|
|
343
|
-
for (const d of real.getDeclarations() ?? []) {
|
|
344
|
-
// Only a CONCRETE CALLABLE source declaration is a binding the name-only
|
|
345
|
-
// fallback may resolve against. A parameter / property-signature / method-
|
|
346
|
-
// signature (`options.shouldNotRetry?.()`, `push: PushViolation`) is NOT —
|
|
347
|
-
// the call's real target is whatever VALUE flows into it, which the shard-
|
|
348
|
-
// scoped name fallback cannot know, so it guesses a same-name occurrence
|
|
349
|
-
// (resolved when unique IN THE SHARD, declined when ambiguous WHOLE-PROGRAM
|
|
350
|
-
// — the exact↔sharded divergence). Gating to a callable decl declines those
|
|
351
|
-
// guesses in BOTH engines: decline-beats-guess, and convergent.
|
|
352
|
-
if (!d.getSourceFile().isDeclarationFile &&
|
|
353
|
-
functionLikeFromDeclaration(d, CALLABLE_DECL) !== null) {
|
|
354
|
-
return true;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
return false;
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* The call's return value is discarded when the call expression is the
|
|
361
|
-
* entire expression of an ExpressionStatement (`foo();`). Anything else
|
|
362
|
-
* — assignment RHS, return value, argument, conditional, member chain
|
|
363
|
-
* — consumes the return value.
|
|
364
|
-
*
|
|
365
|
-
* `await foo()` and `(foo())` wrappers are unwrapped so the underlying
|
|
366
|
-
* intent is preserved.
|
|
367
|
-
*/
|
|
368
|
-
export function isReturnValueDiscarded(node) {
|
|
369
|
-
let parent = node.parent;
|
|
370
|
-
while (parent) {
|
|
371
|
-
if (ts.isParenthesizedExpression(parent) || ts.isAwaitExpression(parent)) {
|
|
372
|
-
parent = parent.parent;
|
|
373
|
-
continue;
|
|
374
|
-
}
|
|
375
|
-
return ts.isExpressionStatement(parent);
|
|
376
|
-
}
|
|
377
|
-
return false;
|
|
378
|
-
}
|
|
379
|
-
function rebuildCatalog(catalog, callsByHash) {
|
|
380
|
-
const functions = Object.create(null);
|
|
381
|
-
for (const name of Object.keys(catalog.functions)) {
|
|
382
|
-
const occs = catalog.functions[name];
|
|
383
|
-
if (!occs)
|
|
384
|
-
continue;
|
|
385
|
-
functions[name] = occs.map((o) => ({
|
|
386
|
-
...o,
|
|
387
|
-
calls: callsByHash.get(ownerEdgeKey(o.bodyHash, o.filePath)) ?? [],
|
|
388
|
-
}));
|
|
389
|
-
}
|
|
390
|
-
return { ...catalog, functions };
|
|
391
|
-
}
|
|
392
125
|
//# sourceMappingURL=edges.js.map
|
package/dist/edges.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../src/edges.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../src/edges.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAiBH,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,YAAY,CAAC;AAKpE,OAAO,KAAK,EAMV,oBAAoB,EASrB,MAAM,oBAAoB,CAAC;AAqV5B,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CAAC,QAAQ,CAcjE,CAAC;AAEF;;;;;GAKG;AACH,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,CAAC;AAC7C,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAIX,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACpE,YAAY,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @fitness-ignore-file unbounded-memory -- reads single source files for parsing; per-file memory bounded by source size
|
|
2
1
|
/**
|
|
3
2
|
* @opensip-cli/graph — TypeScript language adapter.
|
|
4
3
|
*
|
|
@@ -236,7 +235,9 @@ function buildModuleInitIndex(catalog) {
|
|
|
236
235
|
function createModuleResolutionHost() {
|
|
237
236
|
return {
|
|
238
237
|
fileExists: (fileName) => ts.sys.fileExists(fileName),
|
|
239
|
-
readFile: (fileName, encoding) =>
|
|
238
|
+
readFile: (fileName, encoding) => {
|
|
239
|
+
return ts.sys.readFile(fileName, encoding);
|
|
240
|
+
},
|
|
240
241
|
directoryExists: (directoryName) => ts.sys.directoryExists(directoryName),
|
|
241
242
|
getCurrentDirectory: () => ts.sys.getCurrentDirectory(),
|
|
242
243
|
getDirectories: (path) => ts.sys.getDirectories(path),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-visibility.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/classify-visibility.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"classify-visibility.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/classify-visibility.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,UAAU,CAK5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-visibility.js","sourceRoot":"","sources":["../../src/inventory-helpers/classify-visibility.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"classify-visibility.js","sourceRoot":"","sources":["../../src/inventory-helpers/classify-visibility.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,iCAAiC,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC/D,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,oBAAoB;IACpB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;YAAE,OAAO,UAAU,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iCAAiC,CAAC,IAAa;IACtD,yEAAyE;IACzE,kCAAkC;IAClC,IAAI,MAAM,GAAwB,IAAI,CAAC,MAAM,CAAC;IAC9C,OAAO,MAAM,EAAE,CAAC;QACd,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,qOAAqO;QACrO,IAAI,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACpF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA0B;IACnD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enclosing-class.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/enclosing-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,CASnE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export function findEnclosingClassName(node) {
|
|
3
|
+
let parent = node.parent;
|
|
4
|
+
while (parent) {
|
|
5
|
+
if (ts.isClassDeclaration(parent) || ts.isClassExpression(parent)) {
|
|
6
|
+
return parent.name?.text ?? null;
|
|
7
|
+
}
|
|
8
|
+
parent = parent.parent;
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=enclosing-class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enclosing-class.js","sourceRoot":"","sources":["../../src/inventory-helpers/enclosing-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,IAAI,MAAM,GAAwB,IAAI,CAAC,MAAM,CAAC;IAC9C,OAAO,MAAM,EAAE,CAAC;QACd,IAAI,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;QACnC,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-decorators.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/extract-decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extract-decorators.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/extract-decorators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,MAAM,EAAE,CAUlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-decorators.js","sourceRoot":"","sources":["../../src/inventory-helpers/extract-decorators.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extract-decorators.js","sourceRoot":"","sources":["../../src/inventory-helpers/extract-decorators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,qBAAqB;AACrB,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,mGAAmG;IACnG,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAAe;IACpC,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;IAC1B,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,IAAmB;IACzC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/D,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AACD,oBAAoB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-params.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/extract-params.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extract-params.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/extract-params.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,uBAAuB,GACzD,SAAS,KAAK,EAAE,CAUlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-params.js","sourceRoot":"","sources":["../../src/inventory-helpers/extract-params.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extract-params.js","sourceRoot":"","sources":["../../src/inventory-helpers/extract-params.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,MAAM,UAAU,aAAa,CAC3B,IAA0D;IAE1D,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;YACzB,QAAQ,EAAE,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;YACtE,IAAI,EAAE,CAAC,CAAC,cAAc,KAAK,SAAS;SACrC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qBAAqB;AACrB,SAAS,WAAW,CAAC,IAAoB;IACvC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACpD,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC;AACD,oBAAoB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-body.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/hash-body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"hash-body.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/hash-body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,MAAM,CAEjF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,UAAU,CAIvF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAG7D"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* "same body in two files → same hash; body changed by one character →
|
|
7
7
|
* new hash."
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { digestCanonicalBody, normalizeWhitespace } from '@opensip-cli/graph';
|
|
10
10
|
import { stripComments } from '@opensip-cli/lang-typescript';
|
|
11
11
|
/**
|
|
12
12
|
* Compute the bodyHash for a function-shaped node (declaration,
|
|
@@ -30,7 +30,7 @@ export function hashFunctionBody(node, sourceFile) {
|
|
|
30
30
|
export function digestFunctionBody(node, sourceFile) {
|
|
31
31
|
const text = sourceFile.text.slice(node.getStart(sourceFile), node.getEnd());
|
|
32
32
|
const normalized = normalizeWhitespace(stripComments(text));
|
|
33
|
-
return
|
|
33
|
+
return digestCanonicalBody(normalized);
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Hash a synthetic body string (used by module-init.ts which
|
|
@@ -41,12 +41,6 @@ export function hashSyntheticBody(input) {
|
|
|
41
41
|
}
|
|
42
42
|
export function digestSyntheticBody(input) {
|
|
43
43
|
const normalized = normalizeWhitespace(stripComments(input));
|
|
44
|
-
return
|
|
45
|
-
}
|
|
46
|
-
function normalizeWhitespace(s) {
|
|
47
|
-
return s.replaceAll(/\s+/g, ' ').trim();
|
|
48
|
-
}
|
|
49
|
-
function sha256(s) {
|
|
50
|
-
return createHash('sha256').update(s, 'utf8').digest('hex');
|
|
44
|
+
return digestCanonicalBody(normalized);
|
|
51
45
|
}
|
|
52
46
|
//# sourceMappingURL=hash-body.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-body.js","sourceRoot":"","sources":["../../src/inventory-helpers/hash-body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hash-body.js","sourceRoot":"","sources":["../../src/inventory-helpers/hash-body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAe7D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa,EAAE,UAAyB;IACvE,OAAO,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,UAAyB;IACzE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infer-parent-name.d.ts","sourceRoot":"","sources":["../../src/inventory-helpers/infer-parent-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAWjG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export function inferNameFromParent(node) {
|
|
3
|
+
const parent = node.parent;
|
|
4
|
+
if (ts.isVariableDeclaration(parent) && ts.isIdentifier(parent.name))
|
|
5
|
+
return parent.name.text;
|
|
6
|
+
if (ts.isPropertyDeclaration(parent) &&
|
|
7
|
+
(ts.isIdentifier(parent.name) || ts.isPrivateIdentifier(parent.name))) {
|
|
8
|
+
return parent.name.text;
|
|
9
|
+
}
|
|
10
|
+
if (ts.isPropertyAssignment(parent) && ts.isIdentifier(parent.name))
|
|
11
|
+
return parent.name.text;
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=infer-parent-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infer-parent-name.js","sourceRoot":"","sources":["../../src/inventory-helpers/infer-parent-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,UAAU,mBAAmB,CAAC,IAA8C;IAChF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9F,IACE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAChC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EACrE,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7F,OAAO,IAAI,CAAC;AACd,CAAC"}
|