@opensip-cli/graph 0.1.1 → 0.1.3
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 +2 -2
- package/dist/__tests__/rules/always-throws-branch.test.js +94 -0
- package/dist/__tests__/rules/always-throws-branch.test.js.map +1 -1
- package/dist/__tests__/rules/duplicated-function-body-self-match.test.d.ts +18 -0
- package/dist/__tests__/rules/duplicated-function-body-self-match.test.d.ts.map +1 -0
- package/dist/__tests__/rules/duplicated-function-body-self-match.test.js +167 -0
- package/dist/__tests__/rules/duplicated-function-body-self-match.test.js.map +1 -0
- package/dist/__tests__/rules/no-side-effect-path.test.js +115 -0
- package/dist/__tests__/rules/no-side-effect-path.test.js.map +1 -1
- package/dist/__tests__/rules/orphan-subtree-dynamic-import.test.d.ts +27 -0
- package/dist/__tests__/rules/orphan-subtree-dynamic-import.test.d.ts.map +1 -0
- package/dist/__tests__/rules/orphan-subtree-dynamic-import.test.js +189 -0
- package/dist/__tests__/rules/orphan-subtree-dynamic-import.test.js.map +1 -0
- package/dist/cli/__tests__/graph-worker-sharded.integration.test.d.ts +8 -0
- package/dist/cli/__tests__/graph-worker-sharded.integration.test.d.ts.map +1 -0
- package/dist/cli/__tests__/graph-worker-sharded.integration.test.js +138 -0
- package/dist/cli/__tests__/graph-worker-sharded.integration.test.js.map +1 -0
- package/dist/cli/__tests__/graph-worker.test.js +67 -1
- package/dist/cli/__tests__/graph-worker.test.js.map +1 -1
- package/dist/cli/graph/graph-command-spec.d.ts.map +1 -1
- package/dist/cli/graph/graph-command-spec.js +30 -14
- package/dist/cli/graph/graph-command-spec.js.map +1 -1
- package/dist/cli/graph-runner.d.ts +10 -11
- package/dist/cli/graph-runner.d.ts.map +1 -1
- package/dist/cli/graph-runner.js +29 -25
- package/dist/cli/graph-runner.js.map +1 -1
- package/dist/cli/graph-worker.d.ts +9 -8
- package/dist/cli/graph-worker.d.ts.map +1 -1
- package/dist/cli/graph-worker.js +32 -11
- package/dist/cli/graph-worker.js.map +1 -1
- package/dist/cli/graph.d.ts +14 -13
- package/dist/cli/graph.d.ts.map +1 -1
- package/dist/cli/graph.js +39 -18
- package/dist/cli/graph.js.map +1 -1
- package/dist/cli/orchestrate/__tests__/operational-smoke.test.d.ts +6 -0
- package/dist/cli/orchestrate/__tests__/operational-smoke.test.d.ts.map +1 -0
- package/dist/cli/orchestrate/__tests__/operational-smoke.test.js +73 -0
- package/dist/cli/orchestrate/__tests__/operational-smoke.test.js.map +1 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.js +20 -0
- package/dist/cli/orchestrate/__tests__/shard-model.test.js.map +1 -1
- package/dist/rules/_entry-points.d.ts +16 -2
- package/dist/rules/_entry-points.d.ts.map +1 -1
- package/dist/rules/_entry-points.js +147 -2
- package/dist/rules/_entry-points.js.map +1 -1
- package/dist/rules/always-throws-branch.d.ts.map +1 -1
- package/dist/rules/always-throws-branch.js +99 -5
- package/dist/rules/always-throws-branch.js.map +1 -1
- package/dist/rules/duplicated-function-body.js +42 -12
- package/dist/rules/duplicated-function-body.js.map +1 -1
- package/dist/rules/no-side-effect-path.d.ts.map +1 -1
- package/dist/rules/no-side-effect-path.js +73 -9
- package/dist/rules/no-side-effect-path.js.map +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regression: dynamic `import()` must count as a reachability edge.
|
|
3
|
+
*
|
|
4
|
+
* Verified false positive (the bug this guards): a CLI command module
|
|
5
|
+
* reached only through
|
|
6
|
+
* `const { runReplay } = await import('../commands/.../replay.js')`
|
|
7
|
+
* was flagged as an orphan — and so were the helpers it calls
|
|
8
|
+
* (`parseArgs` / `formatOutcomeTag`) — because the static call-graph
|
|
9
|
+
* resolver cannot trace a binding through a dynamic import, so neither
|
|
10
|
+
* the importing call nor a static import edge ever marked the target
|
|
11
|
+
* module reachable.
|
|
12
|
+
*
|
|
13
|
+
* The fix (heuristic 6 in `_entry-points.ts`) treats the dynamic-import
|
|
14
|
+
* target the same way a static import makes the imported module's
|
|
15
|
+
* exported surface reachable: it resolves the relative specifier to the
|
|
16
|
+
* target file and seeds that file's EXPORTED occurrences as entry points.
|
|
17
|
+
*
|
|
18
|
+
* These tests mirror the real catalog edge topology observed from the
|
|
19
|
+
* TypeScript pipeline for the `const { x } = await import('./mod.js')`
|
|
20
|
+
* form: the importing function carries an UNRESOLVED `import('./mod.js')`
|
|
21
|
+
* call edge (`to: []`) plus an UNRESOLVED `runReplay(...)` call edge
|
|
22
|
+
* (the destructured binding the resolver could not trace), while the
|
|
23
|
+
* target module's exported function resolves edges to its own private
|
|
24
|
+
* helpers.
|
|
25
|
+
*/
|
|
26
|
+
import { describe, expect, it } from 'vitest';
|
|
27
|
+
import { buildIndexes } from '../../pipeline/indexes.js';
|
|
28
|
+
import { inferEntryPoints } from '../../rules/_entry-points.js';
|
|
29
|
+
import { orphanSubtreeRule } from '../../rules/orphan-subtree.js';
|
|
30
|
+
import { edge, makeCatalog, occ, staticCall } from './_helpers.js';
|
|
31
|
+
/**
|
|
32
|
+
* Build the `registry.ts` + `replay.ts` cluster:
|
|
33
|
+
* - `dispatch` (exported, registry.ts): dynamic-imports replay.js and
|
|
34
|
+
* calls the destructured `runReplay`; both edges are UNRESOLVED.
|
|
35
|
+
* - `runReplay` (exported, replay.js): calls its private helpers.
|
|
36
|
+
* - `parseArgs` / `formatOutcomeTag` (module-local, replay.js).
|
|
37
|
+
*/
|
|
38
|
+
function dynamicImportCluster() {
|
|
39
|
+
const dispatch = occ({
|
|
40
|
+
bodyHash: 'dispatch',
|
|
41
|
+
simpleName: 'dispatch',
|
|
42
|
+
visibility: 'exported',
|
|
43
|
+
filePath: 'src/registry.ts',
|
|
44
|
+
// Unresolved (to: []) — exactly what the TS resolver emits for a
|
|
45
|
+
// dynamic import and a binding it cannot trace.
|
|
46
|
+
calls: [edge("import('./replay.js')"), edge('runReplay([])')],
|
|
47
|
+
});
|
|
48
|
+
const runReplay = occ({
|
|
49
|
+
bodyHash: 'runReplay',
|
|
50
|
+
simpleName: 'runReplay',
|
|
51
|
+
visibility: 'exported',
|
|
52
|
+
filePath: 'src/replay.ts',
|
|
53
|
+
calls: [staticCall('parseArgs'), staticCall('formatOutcomeTag')],
|
|
54
|
+
});
|
|
55
|
+
const parseArgs = occ({
|
|
56
|
+
bodyHash: 'parseArgs',
|
|
57
|
+
simpleName: 'parseArgs',
|
|
58
|
+
visibility: 'module-local',
|
|
59
|
+
filePath: 'src/replay.ts',
|
|
60
|
+
});
|
|
61
|
+
const formatOutcomeTag = occ({
|
|
62
|
+
bodyHash: 'formatOutcomeTag',
|
|
63
|
+
simpleName: 'formatOutcomeTag',
|
|
64
|
+
visibility: 'module-local',
|
|
65
|
+
filePath: 'src/replay.ts',
|
|
66
|
+
});
|
|
67
|
+
return makeCatalog([dispatch, runReplay, parseArgs, formatOutcomeTag]);
|
|
68
|
+
}
|
|
69
|
+
describe('orphan-subtree — dynamic import reachability (heuristic 6)', () => {
|
|
70
|
+
it('seeds an exported dynamic-import target as an entry point', () => {
|
|
71
|
+
const catalog = dynamicImportCluster();
|
|
72
|
+
const eps = inferEntryPoints(catalog, buildIndexes(catalog));
|
|
73
|
+
const runReplayEp = eps.find((e) => e.bodyHash === 'runReplay');
|
|
74
|
+
expect(runReplayEp).toBeDefined();
|
|
75
|
+
// It is seeded specifically by the dynamic-import heuristic (it has no
|
|
76
|
+
// in-project caller, so it would also satisfy no-callers-exported; the
|
|
77
|
+
// dynamic-import reason is what survives dedup for the FIRST classifier
|
|
78
|
+
// that fires — assert the symbol is an entry point either way).
|
|
79
|
+
expect(['dynamic-import', 'no-callers-exported']).toContain(runReplayEp.reason);
|
|
80
|
+
});
|
|
81
|
+
it('does NOT flag a symbol reachable only via `await import()` destructure', () => {
|
|
82
|
+
const catalog = dynamicImportCluster();
|
|
83
|
+
const orphans = orphanSubtreeRule
|
|
84
|
+
// flagExportedOrphans + flagTestOrphans left default; the helpers are
|
|
85
|
+
// module-local so the exported filter does not mask them.
|
|
86
|
+
.evaluate(catalog, buildIndexes(catalog), {})
|
|
87
|
+
.map((s) => s.metadata.simpleName);
|
|
88
|
+
// The whole dynamic-import subtree is reachable — none are orphans.
|
|
89
|
+
expect(orphans).not.toContain('runReplay');
|
|
90
|
+
expect(orphans).not.toContain('parseArgs');
|
|
91
|
+
expect(orphans).not.toContain('formatOutcomeTag');
|
|
92
|
+
});
|
|
93
|
+
it('keeps flagging a genuinely unreferenced exported function (true positive preserved)', () => {
|
|
94
|
+
// A dead exported function whose file is NOT a dynamic-import target,
|
|
95
|
+
// reached only by a dead module-local caller. With flagExportedOrphans
|
|
96
|
+
// it must still be flagged — the dynamic-import heuristic only adds
|
|
97
|
+
// reachability for actually-imported files, never suppresses orphans.
|
|
98
|
+
const deadCaller = occ({
|
|
99
|
+
bodyHash: 'dc',
|
|
100
|
+
simpleName: 'deadCaller',
|
|
101
|
+
visibility: 'module-local',
|
|
102
|
+
filePath: 'src/dead.ts',
|
|
103
|
+
calls: [staticCall('ue')],
|
|
104
|
+
});
|
|
105
|
+
const unusedExport = occ({
|
|
106
|
+
bodyHash: 'ue',
|
|
107
|
+
simpleName: 'unusedExport',
|
|
108
|
+
visibility: 'exported',
|
|
109
|
+
filePath: 'src/dead.ts',
|
|
110
|
+
});
|
|
111
|
+
// Plus the dynamic-import cluster, to prove the two are isolated.
|
|
112
|
+
const cluster = dynamicImportCluster();
|
|
113
|
+
const catalog = makeCatalog([
|
|
114
|
+
deadCaller,
|
|
115
|
+
unusedExport,
|
|
116
|
+
...Object.values(cluster.functions).flat(),
|
|
117
|
+
]);
|
|
118
|
+
const indexes = buildIndexes(catalog);
|
|
119
|
+
const orphans = orphanSubtreeRule
|
|
120
|
+
.evaluate(catalog, indexes, { flagExportedOrphans: true })
|
|
121
|
+
.map((s) => s.metadata.simpleName);
|
|
122
|
+
expect(orphans).toContain('deadCaller'); // dead module-local caller
|
|
123
|
+
expect(orphans).toContain('unusedExport'); // genuine exported orphan
|
|
124
|
+
// ...and the dynamic-import subtree stays reachable.
|
|
125
|
+
expect(orphans).not.toContain('runReplay');
|
|
126
|
+
expect(orphans).not.toContain('parseArgs');
|
|
127
|
+
expect(orphans).not.toContain('formatOutcomeTag');
|
|
128
|
+
});
|
|
129
|
+
it('seeds the dynamic-import target even when no-callers-exported does NOT apply', () => {
|
|
130
|
+
// Isolate heuristic 6 from heuristic 5: the dynamic-import target has a
|
|
131
|
+
// (dead) in-project caller, so `no-callers-exported` does NOT classify it.
|
|
132
|
+
// Only the dynamic-import heuristic can seed it as an entry point.
|
|
133
|
+
const importer = occ({
|
|
134
|
+
bodyHash: 'imp',
|
|
135
|
+
simpleName: 'lazyDispatch',
|
|
136
|
+
visibility: 'exported',
|
|
137
|
+
filePath: 'src/registry.ts',
|
|
138
|
+
calls: [edge("import('./replay.js')"), edge('runReplay()')],
|
|
139
|
+
});
|
|
140
|
+
const runReplay = occ({
|
|
141
|
+
bodyHash: 'runReplay',
|
|
142
|
+
simpleName: 'runReplay',
|
|
143
|
+
visibility: 'exported',
|
|
144
|
+
filePath: 'src/replay.ts',
|
|
145
|
+
});
|
|
146
|
+
// A dead module-local caller gives runReplay an in-project caller, so
|
|
147
|
+
// hasExternalCaller() is true and no-callers-exported is suppressed.
|
|
148
|
+
const deadCaller = occ({
|
|
149
|
+
bodyHash: 'dead',
|
|
150
|
+
simpleName: 'deadStaticCaller',
|
|
151
|
+
visibility: 'module-local',
|
|
152
|
+
filePath: 'src/replay.ts',
|
|
153
|
+
calls: [staticCall('runReplay')],
|
|
154
|
+
});
|
|
155
|
+
const catalog = makeCatalog([importer, runReplay, deadCaller]);
|
|
156
|
+
const eps = inferEntryPoints(catalog, buildIndexes(catalog));
|
|
157
|
+
const ep = eps.find((e) => e.bodyHash === 'runReplay');
|
|
158
|
+
expect(ep?.reason).toBe('dynamic-import');
|
|
159
|
+
});
|
|
160
|
+
it('tolerates the `.js → .ts` ESM extension rewrite and bare specifiers', () => {
|
|
161
|
+
// Importing file uses an extensionless specifier; target is a .tsx file.
|
|
162
|
+
const importer = occ({
|
|
163
|
+
bodyHash: 'imp',
|
|
164
|
+
simpleName: 'lazyLoad',
|
|
165
|
+
visibility: 'exported',
|
|
166
|
+
filePath: 'src/app.ts',
|
|
167
|
+
calls: [edge("import('./views/panel')"), edge('mountPanel()')],
|
|
168
|
+
});
|
|
169
|
+
const mountPanel = occ({
|
|
170
|
+
bodyHash: 'mp',
|
|
171
|
+
simpleName: 'mountPanel',
|
|
172
|
+
visibility: 'exported',
|
|
173
|
+
filePath: 'src/views/panel.tsx',
|
|
174
|
+
});
|
|
175
|
+
// A bare/workspace dynamic import resolves outside the catalog — must be
|
|
176
|
+
// ignored without error.
|
|
177
|
+
const bare = occ({
|
|
178
|
+
bodyHash: 'bare',
|
|
179
|
+
simpleName: 'loadExternal',
|
|
180
|
+
visibility: 'exported',
|
|
181
|
+
filePath: 'src/ext.ts',
|
|
182
|
+
calls: [edge("import('node:fs')")],
|
|
183
|
+
});
|
|
184
|
+
const catalog = makeCatalog([importer, mountPanel, bare]);
|
|
185
|
+
const eps = inferEntryPoints(catalog, buildIndexes(catalog));
|
|
186
|
+
expect(eps.find((e) => e.bodyHash === 'mp')).toBeDefined();
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
//# sourceMappingURL=orphan-subtree-dynamic-import.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orphan-subtree-dynamic-import.test.js","sourceRoot":"","sources":["../../../src/__tests__/rules/orphan-subtree-dynamic-import.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `graph-run-worker` sharded integration: exercise the real worker sharded
|
|
3
|
+
* branch without mocking graph.js. The graph-run worker coordinates a fixture
|
|
4
|
+
* `graph-shard-worker` CLI script, which proves the process nesting path:
|
|
5
|
+
* render parent -> graph-run-worker -> shard workers.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=graph-worker-sharded.integration.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-worker-sharded.integration.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/graph-worker-sharded.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `graph-run-worker` sharded integration: exercise the real worker sharded
|
|
3
|
+
* branch without mocking graph.js. The graph-run worker coordinates a fixture
|
|
4
|
+
* `graph-shard-worker` CLI script, which proves the process nesting path:
|
|
5
|
+
* render parent -> graph-run-worker -> shard workers.
|
|
6
|
+
*/
|
|
7
|
+
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
8
|
+
import { tmpdir } from 'node:os';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { runWithScope, runWithScopeSync } from '@opensip-cli/core';
|
|
11
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
12
|
+
import { makeGraphTestScope } from '../../__tests__/test-utils/with-graph-scope.js';
|
|
13
|
+
import { currentAdapterRegistry } from '../../lang-adapter/registry.js';
|
|
14
|
+
import { executeGraphWorker } from '../graph-worker.js';
|
|
15
|
+
const SHARD_WORKER_SCRIPT = String.raw `
|
|
16
|
+
const { readFileSync } = require('node:fs');
|
|
17
|
+
const spec = JSON.parse(readFileSync(process.argv[3], 'utf8'));
|
|
18
|
+
const id = spec.shard.id;
|
|
19
|
+
const name = id.replace(/[^a-zA-Z0-9]/g, '_');
|
|
20
|
+
const occ = {
|
|
21
|
+
bodyHash: 'h-' + id,
|
|
22
|
+
simpleName: name,
|
|
23
|
+
qualifiedName: id + '.' + name,
|
|
24
|
+
filePath: id + '/index.ts',
|
|
25
|
+
line: 1,
|
|
26
|
+
column: 0,
|
|
27
|
+
endLine: 1,
|
|
28
|
+
kind: 'function-declaration',
|
|
29
|
+
params: [],
|
|
30
|
+
returnType: null,
|
|
31
|
+
enclosingClass: null,
|
|
32
|
+
decorators: [],
|
|
33
|
+
visibility: 'exported',
|
|
34
|
+
inTestFile: false,
|
|
35
|
+
definedInGenerated: false,
|
|
36
|
+
calls: [],
|
|
37
|
+
};
|
|
38
|
+
const result = {
|
|
39
|
+
shardId: id,
|
|
40
|
+
fragment: {
|
|
41
|
+
version: '3.0',
|
|
42
|
+
tool: 'graph',
|
|
43
|
+
language: 'typescript',
|
|
44
|
+
builtAt: 'x',
|
|
45
|
+
cacheKey: 'fixture-' + id,
|
|
46
|
+
resolutionMode: 'exact',
|
|
47
|
+
functions: { [name]: [occ] },
|
|
48
|
+
},
|
|
49
|
+
fingerprint: 'fp-' + id,
|
|
50
|
+
boundaryCalls: [],
|
|
51
|
+
parseErrors: [],
|
|
52
|
+
};
|
|
53
|
+
process.stdout.write(JSON.stringify(result));
|
|
54
|
+
process.exit(0);
|
|
55
|
+
`;
|
|
56
|
+
const adapter = {
|
|
57
|
+
id: 'typescript',
|
|
58
|
+
fileExtensions: ['.ts'],
|
|
59
|
+
cacheKey: () => 'unused-no-cache',
|
|
60
|
+
ruleHints: undefined,
|
|
61
|
+
};
|
|
62
|
+
function mockCli() {
|
|
63
|
+
return { scope: { datastore: () => undefined } };
|
|
64
|
+
}
|
|
65
|
+
describe('executeGraphWorker sharded integration', () => {
|
|
66
|
+
let dir;
|
|
67
|
+
let cliScript;
|
|
68
|
+
let originalArgv1;
|
|
69
|
+
let messages;
|
|
70
|
+
let scope;
|
|
71
|
+
beforeEach(() => {
|
|
72
|
+
scope = makeGraphTestScope();
|
|
73
|
+
runWithScopeSync(scope, () => currentAdapterRegistry().register(adapter));
|
|
74
|
+
dir = mkdtempSync(join(tmpdir(), 'graph-worker-sharded-'));
|
|
75
|
+
cliScript = join(dir, 'fake-cli.cjs');
|
|
76
|
+
writeFileSync(cliScript, SHARD_WORKER_SCRIPT, 'utf8');
|
|
77
|
+
originalArgv1 = process.argv[1];
|
|
78
|
+
process.argv[1] = cliScript;
|
|
79
|
+
messages = [];
|
|
80
|
+
process.send = vi.fn((m) => {
|
|
81
|
+
messages.push(m);
|
|
82
|
+
return true;
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
afterEach(() => {
|
|
86
|
+
runWithScopeSync(scope, () => currentAdapterRegistry().clear());
|
|
87
|
+
if (originalArgv1 === undefined)
|
|
88
|
+
process.argv.splice(1, 1);
|
|
89
|
+
else
|
|
90
|
+
process.argv[1] = originalArgv1;
|
|
91
|
+
delete process.send;
|
|
92
|
+
rmSync(dir, { recursive: true, force: true });
|
|
93
|
+
});
|
|
94
|
+
function shard(id) {
|
|
95
|
+
return {
|
|
96
|
+
id,
|
|
97
|
+
rootDir: dir,
|
|
98
|
+
files: [join(dir, `${id}.ts`)],
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
it('coordinates real shard workers and returns a live output over IPC', async () => {
|
|
102
|
+
const specPath = join(dir, 'spec.json');
|
|
103
|
+
writeFileSync(specPath, JSON.stringify({
|
|
104
|
+
cwd: dir,
|
|
105
|
+
noCache: true,
|
|
106
|
+
resolution: 'exact',
|
|
107
|
+
exact: false,
|
|
108
|
+
shards: [shard('pkg:a'), shard('pkg:b')],
|
|
109
|
+
}), 'utf8');
|
|
110
|
+
await runWithScope(scope, () => executeGraphWorker(specPath, mockCli()));
|
|
111
|
+
const progress = messages.filter((m) => m.kind === 'progress');
|
|
112
|
+
expect(progress).toEqual(expect.arrayContaining([
|
|
113
|
+
expect.objectContaining({
|
|
114
|
+
kind: 'progress',
|
|
115
|
+
event: expect.objectContaining({
|
|
116
|
+
type: 'stage-start',
|
|
117
|
+
stage: 'parse',
|
|
118
|
+
label: 'Build shards',
|
|
119
|
+
}),
|
|
120
|
+
}),
|
|
121
|
+
expect.objectContaining({
|
|
122
|
+
kind: 'progress',
|
|
123
|
+
event: expect.objectContaining({
|
|
124
|
+
type: 'stage-start',
|
|
125
|
+
stage: 'resolve',
|
|
126
|
+
label: 'Link cross-package',
|
|
127
|
+
}),
|
|
128
|
+
}),
|
|
129
|
+
]));
|
|
130
|
+
const result = messages.at(-1);
|
|
131
|
+
expect(result?.kind).toBe('result');
|
|
132
|
+
if (result?.kind !== 'result')
|
|
133
|
+
throw new Error('no result message');
|
|
134
|
+
expect(result.value.reportLines.join('\n')).toContain('== Catalog ==');
|
|
135
|
+
expect(Array.isArray(result.value.signals)).toBe(true);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=graph-worker-sharded.integration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-worker-sharded.integration.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/graph-worker-sharded.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAUxD,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCrC,CAAC;AAEF,MAAM,OAAO,GAAG;IACd,EAAE,EAAE,YAAY;IAChB,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,iBAAiB;IACjC,SAAS,EAAE,SAAS;CACc,CAAC;AAErC,SAAS,OAAO;IACd,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAA+B,CAAC;AAChF,CAAC;AAED,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,IAAI,GAAW,CAAC;IAChB,IAAI,SAAiB,CAAC;IACtB,IAAI,aAAiC,CAAC;IACtC,IAAI,QAAe,CAAC;IACpB,IAAI,KAA4C,CAAC;IAEjD,UAAU,CAAC,GAAG,EAAE;QACd,KAAK,GAAG,kBAAkB,EAAE,CAAC;QAC7B,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAC3D,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACtC,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACtD,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAC5B,QAAQ,GAAG,EAAE,CAAC;QACb,OAA8B,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAM,EAAE,EAAE;YACtD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;QACrC,OAAQ,OAA8B,CAAC,IAAI,CAAC;QAC5C,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,SAAS,KAAK,CAAC,EAAU;QACvB,OAAO;YACL,EAAE;YACF,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACxC,aAAa,CACX,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC;YACb,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,OAAO;YACnB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SACzC,CAAC,EACF,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CACtB,MAAM,CAAC,eAAe,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC;oBAC7B,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,cAAc;iBACtB,CAAC;aACH,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC;oBAC7B,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,oBAAoB;iBAC5B,CAAC;aACH,CAAC;SACH,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -17,6 +17,16 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
17
17
|
import { makeGraphTestScope } from '../../__tests__/test-utils/with-graph-scope.js';
|
|
18
18
|
import { currentAdapterRegistry } from '../../lang-adapter/registry.js';
|
|
19
19
|
import { executeGraphWorker } from '../graph-worker.js';
|
|
20
|
+
const graphMocks = vi.hoisted(() => ({
|
|
21
|
+
runShardedLiveBuild: vi.fn(),
|
|
22
|
+
}));
|
|
23
|
+
vi.mock('../graph.js', async (importOriginal) => {
|
|
24
|
+
const actual = await importOriginal();
|
|
25
|
+
return {
|
|
26
|
+
...actual,
|
|
27
|
+
runShardedLiveBuild: graphMocks.runShardedLiveBuild,
|
|
28
|
+
};
|
|
29
|
+
});
|
|
20
30
|
function fakeAdapter() {
|
|
21
31
|
return {
|
|
22
32
|
id: 'typescript',
|
|
@@ -28,7 +38,10 @@ function fakeAdapter() {
|
|
|
28
38
|
configPathAbs: undefined,
|
|
29
39
|
compilerOptions: undefined,
|
|
30
40
|
}),
|
|
31
|
-
parseProject: () => ({
|
|
41
|
+
parseProject: () => ({
|
|
42
|
+
project: { dummy: true },
|
|
43
|
+
parseErrors: [],
|
|
44
|
+
}),
|
|
32
45
|
walkProject: () => ({
|
|
33
46
|
occurrences: {
|
|
34
47
|
fn: [
|
|
@@ -77,6 +90,7 @@ let messages;
|
|
|
77
90
|
beforeEach(() => {
|
|
78
91
|
enterScope(makeGraphTestScope());
|
|
79
92
|
currentAdapterRegistry().register(fakeAdapter());
|
|
93
|
+
graphMocks.runShardedLiveBuild.mockReset();
|
|
80
94
|
dir = mkdtempSync(join(tmpdir(), 'graph-worker-test-'));
|
|
81
95
|
messages = [];
|
|
82
96
|
// The worker posts via process.send (a no-op when not forked); stub it to capture.
|
|
@@ -117,6 +131,58 @@ describe('executeGraphWorker', () => {
|
|
|
117
131
|
// Result is the last message — progress precedes it.
|
|
118
132
|
expect(messages.at(-1)?.kind).toBe('result');
|
|
119
133
|
});
|
|
134
|
+
it('runs the sharded engine branch and preserves sharded progress labels', async () => {
|
|
135
|
+
const specPath = join(dir, 'spec.json');
|
|
136
|
+
const shards = [
|
|
137
|
+
{
|
|
138
|
+
id: 'pkg:a',
|
|
139
|
+
rootDir: join(dir, 'packages/a'),
|
|
140
|
+
files: [join(dir, 'packages/a/src/a.ts')],
|
|
141
|
+
configPathAbs: join(dir, 'packages/a/tsconfig.json'),
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: 'pkg:b',
|
|
145
|
+
rootDir: join(dir, 'packages/b'),
|
|
146
|
+
files: [join(dir, 'packages/b/src/b.ts')],
|
|
147
|
+
configPathAbs: join(dir, 'packages/b/tsconfig.json'),
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
const output = {
|
|
151
|
+
signals: [],
|
|
152
|
+
suppressedCount: 0,
|
|
153
|
+
reportLines: ['== Catalog =='],
|
|
154
|
+
};
|
|
155
|
+
graphMocks.runShardedLiveBuild.mockImplementation((_args, _shards, _datastore, onProgress) => {
|
|
156
|
+
onProgress({ type: 'stage-start', stage: 'resolve' });
|
|
157
|
+
onProgress({
|
|
158
|
+
type: 'stage-done',
|
|
159
|
+
stage: 'resolve',
|
|
160
|
+
durationMs: 12,
|
|
161
|
+
detail: '3 call site(s)',
|
|
162
|
+
});
|
|
163
|
+
return Promise.resolve(output);
|
|
164
|
+
});
|
|
165
|
+
writeFileSync(specPath, JSON.stringify({
|
|
166
|
+
cwd: dir,
|
|
167
|
+
resolution: 'exact',
|
|
168
|
+
noCache: true,
|
|
169
|
+
exact: false,
|
|
170
|
+
shards,
|
|
171
|
+
}), 'utf8');
|
|
172
|
+
await executeGraphWorker(specPath, mockCli());
|
|
173
|
+
expect(graphMocks.runShardedLiveBuild).toHaveBeenCalledTimes(1);
|
|
174
|
+
expect(graphMocks.runShardedLiveBuild.mock.calls[0]?.[1]).toEqual(shards);
|
|
175
|
+
const progress = messages.find((m) => m.kind === 'progress');
|
|
176
|
+
expect(progress).toMatchObject({
|
|
177
|
+
kind: 'progress',
|
|
178
|
+
event: {
|
|
179
|
+
type: 'stage-start',
|
|
180
|
+
stage: 'resolve',
|
|
181
|
+
label: 'Link cross-package',
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
expect(messages.at(-1)).toEqual({ kind: 'result', value: output });
|
|
185
|
+
});
|
|
120
186
|
it('reports a bad spec path as an error message, not a throw', async () => {
|
|
121
187
|
await expect(executeGraphWorker(join(dir, 'missing.json'), mockCli())).resolves.toBeUndefined();
|
|
122
188
|
const err = messages.find((m) => m.kind === 'error');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-worker.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/graph-worker.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-worker.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/graph-worker.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-command-spec.d.ts","sourceRoot":"","sources":["../../../src/cli/graph/graph-command-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAgBH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAGxF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-command-spec.d.ts","sourceRoot":"","sources":["../../../src/cli/graph/graph-command-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAgBH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAqB,MAAM,mBAAmB,CAAC;AAGxF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAkb3C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,CAgGhE,CAAC"}
|
|
@@ -81,9 +81,9 @@ async function dispatchGraphLiveView(opts, cli, resolution) {
|
|
|
81
81
|
// needs the `cli` context (language registry + datastore) the React runner does
|
|
82
82
|
// not hold. The SAME policy the static path uses (ADR-0032): sharded when
|
|
83
83
|
// `--exact` is absent and the project yields >1 shard, exact otherwise. The
|
|
84
|
-
// runner reads `shards.length` to pick
|
|
85
|
-
//
|
|
86
|
-
// shardability alone.
|
|
84
|
+
// runner reads `shards.length` to pick engine-aware labels and pass the
|
|
85
|
+
// plain-data shard plan to the worker. `isTTY` is never consulted — engine =
|
|
86
|
+
// exact + shardability alone.
|
|
87
87
|
const shards = await resolveLiveEngineShards({
|
|
88
88
|
cwd: opts.cwd,
|
|
89
89
|
noCache: opts.cache === false,
|
|
@@ -97,16 +97,18 @@ async function dispatchGraphLiveView(opts, cli, resolution) {
|
|
|
97
97
|
verbose: opts.verbose === true,
|
|
98
98
|
quiet: opts.quiet === true,
|
|
99
99
|
resolution,
|
|
100
|
-
// The engine selector (`--exact` + the pre-resolved shard set).
|
|
101
|
-
//
|
|
100
|
+
// The engine selector (`--exact` + the pre-resolved shard set). The live
|
|
101
|
+
// runner sends this plain-data plan to the worker (ADR-0028).
|
|
102
102
|
exact: opts.exact === true,
|
|
103
103
|
shards,
|
|
104
|
-
// The recipe NAME (serializable) for the
|
|
105
|
-
//
|
|
104
|
+
// The recipe NAME (serializable) for the worker, which re-resolves rules
|
|
105
|
+
// itself (ADR-0028); `rules` below serves the in-process fallback path.
|
|
106
106
|
...(opts.recipe === undefined ? {} : { recipe: opts.recipe }),
|
|
107
107
|
// Pass the resolved rule subset into the live path. Avoids a second
|
|
108
108
|
// scope read inside the React tree.
|
|
109
|
-
rules: resolveRecipeToRules(recipeSelection.name, {
|
|
109
|
+
rules: resolveRecipeToRules(recipeSelection.name, {
|
|
110
|
+
tolerant: recipeSelection.tolerant,
|
|
111
|
+
}),
|
|
110
112
|
// Honor the project's `graph:` config block in the interactive
|
|
111
113
|
// path too — parity with `executeGraph` (graph.ts), which loads
|
|
112
114
|
// it via the same helper. Loading here (not inside the React
|
|
@@ -173,7 +175,10 @@ async function runGraphCommand(rawOpts, cli) {
|
|
|
173
175
|
// heap sizing.
|
|
174
176
|
const hasExplicitScope = paths.length > 0 || opts.workspace === true || typeof opts.language === 'string';
|
|
175
177
|
if (!hasExplicitScope) {
|
|
176
|
-
const reExecing = await runHeapPreflight({
|
|
178
|
+
const reExecing = await runHeapPreflight({
|
|
179
|
+
cwd: opts.cwd,
|
|
180
|
+
verbose: opts.verbose === true,
|
|
181
|
+
});
|
|
177
182
|
/* v8 ignore next */
|
|
178
183
|
if (reExecing)
|
|
179
184
|
return;
|
|
@@ -182,8 +187,8 @@ async function runGraphCommand(rawOpts, cli) {
|
|
|
182
187
|
// (the Ink live view vs the static `executeGraph` text/JSON path), NEVER the
|
|
183
188
|
// build engine. The build engine is chosen downstream — by `--exact` +
|
|
184
189
|
// shardability alone — and the live view drives WHICHEVER engine that policy
|
|
185
|
-
// selects
|
|
186
|
-
//
|
|
190
|
+
// selects through the worker, so the live runner is engine-agnostic. A bare
|
|
191
|
+
// `graph` (sharded default) and `graph --exact` BOTH
|
|
187
192
|
// show the staged "Code Graph" checklist in a terminal; both fall through to
|
|
188
193
|
// the static path when piped. The live view is therefore eligible for any
|
|
189
194
|
// rendering run — there is no `--exact` gate. Every non-rendering mode (json/
|
|
@@ -281,7 +286,10 @@ async function runGraphShowMode(opts, cli) {
|
|
|
281
286
|
await emitGraphShowError(opts, cli, 'datastore-unavailable', 'session replay requires a datastore');
|
|
282
287
|
return;
|
|
283
288
|
}
|
|
284
|
-
const resolved = resolveSession(datastore, {
|
|
289
|
+
const resolved = resolveSession(datastore, {
|
|
290
|
+
ref: opts.show ?? 'latest',
|
|
291
|
+
tool: 'graph',
|
|
292
|
+
});
|
|
285
293
|
if (!resolved.ok) {
|
|
286
294
|
await emitGraphShowError(opts, cli, resolved.reason, resolved.detail);
|
|
287
295
|
return;
|
|
@@ -301,7 +309,11 @@ async function runGraphShowMode(opts, cli) {
|
|
|
301
309
|
async function emitGraphShowError(opts, cli, reason, detail) {
|
|
302
310
|
if (opts.json === true) {
|
|
303
311
|
// emitError sets the exit code itself (process exit == reported outcome).
|
|
304
|
-
cli.emitError({
|
|
312
|
+
cli.emitError({
|
|
313
|
+
message: detail,
|
|
314
|
+
exitCode: EXIT_CODES.CONFIGURATION_ERROR,
|
|
315
|
+
code: reason,
|
|
316
|
+
});
|
|
305
317
|
return;
|
|
306
318
|
}
|
|
307
319
|
cli.setExitCode(EXIT_CODES.CONFIGURATION_ERROR);
|
|
@@ -375,7 +387,11 @@ export const graphCommandSpec = defineCommand({
|
|
|
375
387
|
// process.cwd() by the mounter. graph-specific flags stay declared below.
|
|
376
388
|
commonFlags: ['cwd', 'json', 'quiet', 'verbose', 'debug', 'reportTo', 'apiKey'],
|
|
377
389
|
options: [
|
|
378
|
-
{
|
|
390
|
+
{
|
|
391
|
+
flag: '--no-cache',
|
|
392
|
+
description: 'Skip catalog cache (force full rebuild)',
|
|
393
|
+
negatable: true,
|
|
394
|
+
},
|
|
379
395
|
{
|
|
380
396
|
flag: '--resolution',
|
|
381
397
|
value: '<mode>',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-command-spec.js","sourceRoot":"","sources":["../../../src/cli/graph/graph-command-spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph-command-spec.js","sourceRoot":"","sources":["../../../src/cli/graph/graph-command-spec.ts"],"names":[],"mappings":"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"}
|