@aroman22/codegraph-vba-darwin-arm64 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/lib/dist/bin/codegraph.js +68 -0
  2. package/lib/dist/bin/codegraph.js.map +1 -1
  3. package/lib/dist/cli/stats-vba-rules.d.ts +64 -0
  4. package/lib/dist/cli/stats-vba-rules.d.ts.map +1 -0
  5. package/lib/dist/cli/stats-vba-rules.js +71 -0
  6. package/lib/dist/cli/stats-vba-rules.js.map +1 -0
  7. package/lib/dist/db/queries.d.ts +37 -0
  8. package/lib/dist/db/queries.d.ts.map +1 -1
  9. package/lib/dist/db/queries.js +33 -0
  10. package/lib/dist/db/queries.js.map +1 -1
  11. package/lib/dist/extraction/frameworks/dysflow-export.d.ts +37 -0
  12. package/lib/dist/extraction/frameworks/dysflow-export.d.ts.map +1 -0
  13. package/lib/dist/extraction/frameworks/dysflow-export.js +121 -0
  14. package/lib/dist/extraction/frameworks/dysflow-export.js.map +1 -0
  15. package/lib/dist/extraction/frameworks/index.d.ts +20 -0
  16. package/lib/dist/extraction/frameworks/index.d.ts.map +1 -0
  17. package/lib/dist/extraction/frameworks/index.js +24 -0
  18. package/lib/dist/extraction/frameworks/index.js.map +1 -0
  19. package/lib/dist/extraction/index.d.ts.map +1 -1
  20. package/lib/dist/extraction/index.js +25 -5
  21. package/lib/dist/extraction/index.js.map +1 -1
  22. package/lib/dist/extraction/parse-pool.d.ts +10 -0
  23. package/lib/dist/extraction/parse-pool.d.ts.map +1 -1
  24. package/lib/dist/extraction/parse-pool.js +2 -0
  25. package/lib/dist/extraction/parse-pool.js.map +1 -1
  26. package/lib/dist/extraction/parse-worker.js +6 -2
  27. package/lib/dist/extraction/parse-worker.js.map +1 -1
  28. package/lib/dist/extraction/tree-sitter.d.ts +9 -1
  29. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  30. package/lib/dist/extraction/tree-sitter.js +58 -5
  31. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  32. package/lib/dist/extraction/vba/call-sweep.d.ts +43 -0
  33. package/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -1
  34. package/lib/dist/extraction/vba/call-sweep.js +155 -66
  35. package/lib/dist/extraction/vba/call-sweep.js.map +1 -1
  36. package/lib/dist/extraction/vba/calls.d.ts.map +1 -1
  37. package/lib/dist/extraction/vba/calls.js +6 -0
  38. package/lib/dist/extraction/vba/calls.js.map +1 -1
  39. package/lib/dist/extraction/vba/context.d.ts +109 -1
  40. package/lib/dist/extraction/vba/context.d.ts.map +1 -1
  41. package/lib/dist/extraction/vba/context.js +155 -2
  42. package/lib/dist/extraction/vba/context.js.map +1 -1
  43. package/lib/dist/extraction/vba/declarations.d.ts +38 -2
  44. package/lib/dist/extraction/vba/declarations.d.ts.map +1 -1
  45. package/lib/dist/extraction/vba/declarations.js +217 -129
  46. package/lib/dist/extraction/vba/declarations.js.map +1 -1
  47. package/lib/dist/extraction/vba/dims.d.ts +35 -1
  48. package/lib/dist/extraction/vba/dims.d.ts.map +1 -1
  49. package/lib/dist/extraction/vba/dims.js +185 -109
  50. package/lib/dist/extraction/vba/dims.js.map +1 -1
  51. package/lib/dist/extraction/vba/enums-consts.d.ts +47 -7
  52. package/lib/dist/extraction/vba/enums-consts.d.ts.map +1 -1
  53. package/lib/dist/extraction/vba/enums-consts.js +215 -139
  54. package/lib/dist/extraction/vba/enums-consts.js.map +1 -1
  55. package/lib/dist/extraction/vba/event-synth.d.ts +3 -0
  56. package/lib/dist/extraction/vba/event-synth.d.ts.map +1 -0
  57. package/lib/dist/extraction/vba/event-synth.js +176 -0
  58. package/lib/dist/extraction/vba/event-synth.js.map +1 -0
  59. package/lib/dist/extraction/vba/implements.d.ts +16 -0
  60. package/lib/dist/extraction/vba/implements.d.ts.map +1 -1
  61. package/lib/dist/extraction/vba/implements.js +43 -12
  62. package/lib/dist/extraction/vba/implements.js.map +1 -1
  63. package/lib/dist/extraction/vba/procedures.d.ts +20 -0
  64. package/lib/dist/extraction/vba/procedures.d.ts.map +1 -1
  65. package/lib/dist/extraction/vba/procedures.js +48 -13
  66. package/lib/dist/extraction/vba/procedures.js.map +1 -1
  67. package/lib/dist/extraction/vba/rules.d.ts +129 -0
  68. package/lib/dist/extraction/vba/rules.d.ts.map +1 -0
  69. package/lib/dist/extraction/vba/rules.js +63 -0
  70. package/lib/dist/extraction/vba/rules.js.map +1 -0
  71. package/lib/dist/extraction/vba/text-utils.d.ts +1 -0
  72. package/lib/dist/extraction/vba/text-utils.d.ts.map +1 -1
  73. package/lib/dist/extraction/vba/text-utils.js +4 -2
  74. package/lib/dist/extraction/vba/text-utils.js.map +1 -1
  75. package/lib/dist/extraction/vba-extractor.d.ts +77 -1
  76. package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
  77. package/lib/dist/extraction/vba-extractor.js +182 -15
  78. package/lib/dist/extraction/vba-extractor.js.map +1 -1
  79. package/lib/dist/extraction/vba-preprocess.d.ts +11 -1
  80. package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
  81. package/lib/dist/extraction/vba-preprocess.js +45 -16
  82. package/lib/dist/extraction/vba-preprocess.js.map +1 -1
  83. package/lib/dist/extraction/vba-timing.d.ts +38 -0
  84. package/lib/dist/extraction/vba-timing.d.ts.map +1 -0
  85. package/lib/dist/extraction/vba-timing.js +203 -0
  86. package/lib/dist/extraction/vba-timing.js.map +1 -0
  87. package/lib/dist/index.d.ts.map +1 -1
  88. package/lib/dist/index.js +22 -0
  89. package/lib/dist/index.js.map +1 -1
  90. package/lib/dist/project-config.d.ts +31 -0
  91. package/lib/dist/project-config.d.ts.map +1 -1
  92. package/lib/dist/project-config.js +75 -22
  93. package/lib/dist/project-config.js.map +1 -1
  94. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  95. package/lib/dist/resolution/frameworks/index.js +7 -0
  96. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  97. package/lib/node_modules/.modules.yaml +1 -1
  98. package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
  99. package/lib/package.json +2 -1
  100. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vba-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-extractor.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAQ,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAelD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAC,CAA0B;gBAEjC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOlF,OAAO,IAAI,gBAAgB;IAgI3B,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,uBAAuB;CAkBhC"}
1
+ {"version":3,"file":"vba-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-extractor.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAQ,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAQlD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAuBrD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC,CAQhF,CAAC;AAoBJ;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC,CAAmB,GAC/E;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAOlC;AAuBD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAqB;gBAGzC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,cAAc,GAAE,MAAiC;IASnD,OAAO,IAAI,gBAAgB;IAmL3B;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,uBAAuB;CAkBhC"}
@@ -33,7 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.VbaExtractor = void 0;
36
+ exports.VbaExtractor = exports.VBA_RULE_TABLES = exports.DEFAULT_MAX_RAISE_FANOUT = void 0;
37
+ exports.validateVbaRuleTables = validateVbaRuleTables;
37
38
  /**
38
39
  * VbaExtractor — regex extractor for `.bas` / `.cls` / `.frm` / `.dsr` source.
39
40
  *
@@ -82,33 +83,165 @@ const dims_1 = require("./vba/dims");
82
83
  const enums_consts_1 = require("./vba/enums-consts");
83
84
  const implements_1 = require("./vba/implements");
84
85
  const call_sweep_1 = require("./vba/call-sweep");
86
+ const vba_timing_1 = require("./vba-timing");
87
+ /**
88
+ * Issue #152: per-file fanout cap for `RaiseEvent <EventName>` edges. An
89
+ * event raised from more than this many sites in a single file is
90
+ * flagged `metadata.highFanout: true` and ALL `raises-event` edges to it
91
+ * are dropped — the gate suppresses graph noise from events with generic
92
+ * names (`Change`, `Click`, `AfterUpdate`, …) that would otherwise
93
+ * produce hundreds of edges per file. Mirrors the upstream
94
+ * `EVENT_FANOUT_CAP` discipline in
95
+ * `src/resolution/callback-synthesizer.ts:43`. Configurable via
96
+ * `codegraph.json` → `vba.maxRaiseFanout`. Pass `Number.POSITIVE_INFINITY`
97
+ * (or any value `>=` the largest expected count) to disable the gate.
98
+ */
99
+ exports.DEFAULT_MAX_RAISE_FANOUT = 50;
100
+ /**
101
+ * Issue #153: the orchestrator's aggregated view of every VBA
102
+ * classifier's declarative `RULES` table. Each entry is the
103
+ * `readonly VbaExtractionRule[]` constant exported by the
104
+ * corresponding classifier file. Exposed at module scope so:
105
+ *
106
+ * 1. Tests can pin the table shape and assert that the orchestrator
107
+ * still references each table (a deleted import would
108
+ * accidentally break a whole concern and the test would catch
109
+ * the missing reference).
110
+ * 2. Tooling can introspect every rule the orchestrator
111
+ * dispatches — useful for `codegraph stats` style UIs that
112
+ * show "what kinds of VBA symbols does codegraph know about".
113
+ * 3. The `validateVbaRuleTables` invariant runs on this aggregate
114
+ * so a refactor that empties one concern's `RULES` array
115
+ * (e.g. by deleting the `defineRule` calls during a partial
116
+ * migration) fails loudly at module load instead of silently
117
+ * dropping a whole concern.
118
+ *
119
+ * The keys are the FILE BASENAMES of the classifier modules (no
120
+ * `.ts` extension, kebab-case) — the same naming convention the
121
+ * per-classifier export comments use. Stable identifier for
122
+ * `validateVbaRuleTables` consumers.
123
+ */
124
+ exports.VBA_RULE_TABLES = {
125
+ implements: implements_1.RULES,
126
+ procedures: procedures_1.RULES,
127
+ declarations: declarations_1.RULES,
128
+ dims: dims_1.RULES,
129
+ 'enums-consts': enums_consts_1.RULES,
130
+ 'call-sweep': call_sweep_1.RULES,
131
+ };
132
+ /**
133
+ * Issue #153: the canonical list of concern keys `VBA_RULE_TABLES`
134
+ * must contain. Order matches the per-line dispatch order in
135
+ * `extract()`: events/types/declares → implements → dims → enums/consts
136
+ * → calls/sql. The procedures sweep is the only one that runs BEFORE
137
+ * the main walk (so `ctx.localProcs` is populated for the call sweep
138
+ * to consult) and is therefore referenced in `VBA_RULE_TABLES` but NOT
139
+ * in this list — it is intentionally validated as a separate concern
140
+ * because the pre-walk contract is different.
141
+ */
142
+ const REQUIRED_DISPATCH_TABLES = [
143
+ 'declarations',
144
+ 'implements',
145
+ 'dims',
146
+ 'enums-consts',
147
+ 'call-sweep',
148
+ ];
149
+ /**
150
+ * Issue #153: validate that every per-concern rule table the
151
+ * orchestrator dispatches is non-empty. Called once at module load
152
+ * (see the IIFE at the bottom of this file) so an accidentally-
153
+ * emptied `RULES` array fails loudly when the extractor is first
154
+ * imported, NOT at the first `extract()` call.
155
+ *
156
+ * The result is `{ ok, empty }`:
157
+ * - `ok: true` — every required table has at least one rule.
158
+ * - `ok: false` — at least one table is empty; `empty` lists the
159
+ * concern keys that need attention.
160
+ *
161
+ * The function accepts an optional `tables` argument so the unit
162
+ * test in `__tests__/extraction-vba-rule-table.test.ts` can verify
163
+ * the validator's contract independently of the live data.
164
+ */
165
+ function validateVbaRuleTables(tables = exports.VBA_RULE_TABLES) {
166
+ const empty = [];
167
+ for (const key of REQUIRED_DISPATCH_TABLES) {
168
+ const table = tables[key];
169
+ if (!table || table.length === 0)
170
+ empty.push(key);
171
+ }
172
+ return { ok: empty.length === 0, empty };
173
+ }
174
+ // Run the validator once at module load. The IIFE THROWS on a non-ok
175
+ // result so an accidentally-emptied `RULES` array (e.g. from a partial
176
+ // refactor that drops the `defineRule` calls) aborts the import
177
+ // instead of silently losing an entire concern at the first
178
+ // `extract()` call. A user running `codegraph index` without first
179
+ // running `npm test` would otherwise see no symptom at all — the
180
+ // downstream `extract()` would just emit fewer symbols. The unit
181
+ // test in `__tests__/extraction-vba-rule-table.test.ts` pins the
182
+ // `validateVbaRuleTables` return-value contract; the IIFE itself is
183
+ // pinned by `__tests__/extraction-vba-extractor-import-invariant.test.ts`
184
+ // (issue #164).
185
+ (function runRuleTableInvariant() {
186
+ const result = validateVbaRuleTables();
187
+ if (!result.ok) {
188
+ throw new Error(`[vba-extractor] VBA_RULE_TABLES is missing rules for: ${result.empty.join(', ')}. ` +
189
+ `Each concern's RULES array must be non-empty.`);
190
+ }
191
+ })();
85
192
  class VbaExtractor {
86
193
  filePath;
87
194
  source;
88
195
  ctx;
89
196
  vbaTargets;
90
- constructor(filePath, source, vbaTargets) {
197
+ /**
198
+ * Issue #152: per-file fanout cap for `RaiseEvent <EventName>` edges.
199
+ * When a single event is raised more than this many times in one file,
200
+ * the event node is flagged `metadata.highFanout: true` and ALL
201
+ * `raises-event` edges to it are dropped. Pass `undefined` to disable
202
+ * the gate (the legacy, uncapped behaviour). The 50 default lives in
203
+ * the orchestrator: callers that don't pass a value get the default.
204
+ */
205
+ maxRaiseFanout;
206
+ constructor(filePath, source, vbaTargets, maxRaiseFanout = exports.DEFAULT_MAX_RAISE_FANOUT) {
91
207
  this.filePath = filePath;
92
208
  this.source = source;
93
209
  this.vbaTargets = vbaTargets;
210
+ this.maxRaiseFanout = maxRaiseFanout;
94
211
  this.ctx = new context_1.VbaExtractorContext(filePath);
95
212
  }
96
213
  extract() {
97
214
  const startTime = Date.now();
215
+ // Issue #156: lazy-enable the timing instrumentation ONLY when the
216
+ // env var is set. The Maps stay `null` otherwise so the default path
217
+ // (every real user's `codegraph index` run) pays no Map-allocation
218
+ // cost and no `recordStage` call does any real work.
219
+ const timingMode = (0, vba_timing_1.readTimingMode)();
220
+ if (timingMode !== 'off') {
221
+ this.ctx.ensureTimings();
222
+ }
98
223
  try {
99
224
  // REQ-CODE-9: hand form/report files off to VbaFormExtractor. If
100
225
  // somehow routed here, emit just a file node and return.
101
226
  if (this.isFormOrReportFile()) {
102
227
  this.ctx.nodes.push(this.createFileNode());
103
- return this.result(startTime);
228
+ const result = this.result(startTime);
229
+ this.maybeEmitTimings(result, timingMode);
230
+ return result;
104
231
  }
105
232
  // Pre-process pipeline (per design): strip comments first to prevent
106
233
  // comments from blocking or causing false line continuations, then join
107
234
  // continuations, and blank inactive conditional-compilation branches.
108
235
  // Line count is preserved by all stages.
109
- const cleanComments = (0, vba_preprocess_1.stripVbaComments)(this.source);
110
- const joined = (0, vba_preprocess_1.joinLineContinuations)(cleanComments);
111
- const uncommented = (0, vba_preprocess_1.preprocessConditionalCompilation)(joined, this.vbaTargets);
236
+ //
237
+ // Issue #156: each stage is wrapped in a timing block that records
238
+ // into the context's `timings` Map. `preprocessConditionalCompilation`
239
+ // itself contains an internal lexer+parser pair; we sum that into a
240
+ // single `preprocess.cc.lexer+parser` stage via a thin wrapper that
241
+ // re-uses the same `withStage` helper.
242
+ const cleanComments = (0, vba_timing_1.withStage)(this.ctx, 'preprocess.stripVbaComments', () => (0, vba_preprocess_1.stripVbaComments)(this.source));
243
+ const joined = (0, vba_timing_1.withStage)(this.ctx, 'preprocess.joinLineContinuations', () => (0, vba_preprocess_1.joinLineContinuations)(cleanComments));
244
+ const uncommented = (0, vba_timing_1.withStage)(this.ctx, 'preprocess.conditionalCompilation', () => (0, vba_preprocess_1.preprocessConditionalCompilation)(joined, this.vbaTargets, this.ctx.timings));
112
245
  // Create the file node.
113
246
  this.ctx.nodes.push(this.createFileNode());
114
247
  // Resolve the file's "kind" — .cls → class, else module (including .bas
@@ -151,19 +284,33 @@ class VbaExtractor {
151
284
  // Pre-walk: procedures only — populates the same-file function index
152
285
  // (legacy behaviour: `sweepProcedures` ran first so the call sweep
153
286
  // could look up call targets by name).
154
- for (let i = 0; i < lines.length; i++) {
155
- proceduresCls.classifyLine(lines[i] ?? '', i, this.ctx);
156
- }
287
+ (0, vba_timing_1.withStage)(this.ctx, 'walk.procedures', () => {
288
+ for (let i = 0; i < lines.length; i++) {
289
+ (0, vba_timing_1.withClassifier)(this.ctx, proceduresCls, lines[i] ?? '', i);
290
+ }
291
+ });
157
292
  // Main walk: every other classifier sees every line in order.
158
- for (let i = 0; i < lines.length; i++) {
159
- const line = lines[i] ?? '';
160
- for (const c of classifiers) {
161
- c.classifyLine(line, i, this.ctx);
293
+ (0, vba_timing_1.withStage)(this.ctx, 'walk.main', () => {
294
+ for (let i = 0; i < lines.length; i++) {
295
+ const line = lines[i] ?? '';
296
+ for (const c of classifiers) {
297
+ (0, vba_timing_1.withClassifier)(this.ctx, c, line, i);
298
+ }
162
299
  }
163
- }
300
+ });
164
301
  // Finalize (calls-sql flushes proc-end line updates to function nodes).
165
302
  for (const c of classifiers)
166
303
  c.finalize?.(this.ctx);
304
+ // Issue #152: per-file fanout gate for `RaiseEvent <EventName>`
305
+ // edges. Events raised from more than `maxRaiseFanout` sites get
306
+ // the `metadata.highFanout` flag and ALL of their `raises-event`
307
+ // edges dropped. The gate is a no-op when `maxRaiseFanout` is
308
+ // undefined (the legacy, uncapped behaviour) and runs BEFORE the
309
+ // module/class node is created so `pendingModuleOrClassSource`
310
+ // re-attribution never sees the dropped edges.
311
+ if (this.maxRaiseFanout !== undefined) {
312
+ this.ctx.applyRaiseFanoutGate(this.maxRaiseFanout);
313
+ }
167
314
  const hasAnySymbols = proceduresCls.count > 0 || classifiers.some((c) => c.count > 0);
168
315
  const procs = this.ctx.procedures;
169
316
  // Create the module/class node ONLY when the file has actual symbols
@@ -200,11 +347,31 @@ class VbaExtractor {
200
347
  code: 'parse_error',
201
348
  });
202
349
  }
203
- return this.result(startTime);
350
+ const result = this.result(startTime);
351
+ this.maybeEmitTimings(result, timingMode);
352
+ return result;
204
353
  }
205
354
  // ---------------------------------------------------------------------------
206
355
  // Helpers
207
356
  // ---------------------------------------------------------------------------
357
+ /**
358
+ * Issue #156: emit the per-file timing block (mode `1` or `2`) and
359
+ * — in mode `2` — append the running aggregate. No-op when
360
+ * `mode === 'off'`. In aggregate mode we flush after every extract()
361
+ * call so the line is visible per-file even without a graceful
362
+ * shutdown (crash-on-file-3 still shows files 1-3 in the aggregate).
363
+ */
364
+ maybeEmitTimings(_result, mode) {
365
+ if (mode === 'off')
366
+ return;
367
+ if (mode === 'per-file' || mode === 'aggregate') {
368
+ (0, vba_timing_1.emitPerFileTimings)(this.ctx, this.filePath);
369
+ }
370
+ if (mode === 'aggregate') {
371
+ (0, vba_timing_1.recordAggregateTimings)(this.ctx, this.filePath);
372
+ (0, vba_timing_1.flushAggregate)();
373
+ }
374
+ }
208
375
  result(startTime) {
209
376
  return {
210
377
  nodes: this.ctx.nodes,
@@ -1 +1 @@
1
- {"version":3,"file":"vba-extractor.js","sourceRoot":"","sources":["../../src/extraction/vba-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vba-extractor.js","sourceRoot":"","sources":["../../src/extraction/vba-extractor.ts"],"names":[],"mappings":"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"}
@@ -96,7 +96,17 @@ export declare function stripVbaComments(src: string): string;
96
96
  * downstream extraction keeps source-line parity. Unsupported/unsafe
97
97
  * expressions evaluate to false rather than throwing.
98
98
  */
99
- export declare function preprocessConditionalCompilation(src: string, customTargets?: Record<string, boolean>): string;
99
+ export declare function preprocessConditionalCompilation(src: string, customTargets?: Record<string, boolean>,
100
+ /**
101
+ * Issue #156: optional timing sink for the internal lexer+parser.
102
+ * When provided, the wall-clock spent inside `evaluateConditionalExpression`
103
+ * and `evaluateConstRhs` is accumulated under the key
104
+ * `preprocess.cc.lexer+parser` so the orchestrator can break the
105
+ * outer `preprocess.conditionalCompilation` stage into its outer +
106
+ * inner sub-totals. Undefined → no-op, zero cost (just the
107
+ * `if (timings)` null-check on every CC line).
108
+ */
109
+ timings?: Map<string, number> | null): string;
100
110
  export interface StringLiteralSpan {
101
111
  /** The literal content (no surrounding quotes; `""` collapsed to `"`). */
102
112
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"vba-preprocess.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWzD;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4EpD;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CA0E7G;AAgeD,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAsDtE"}
1
+ {"version":3,"file":"vba-preprocess.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWzD;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4EpD;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;AACvC;;;;;;;;GAQG;AACH,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GACnC,MAAM,CA2ER;AA0fD,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAsDtE"}
@@ -202,7 +202,17 @@ const CONST_DIRECTIVE = /^\s*#Const\s+([A-Za-z_][A-Za-z_0-9]*)\s*=\s*(.+?)\s*$/i
202
202
  * downstream extraction keeps source-line parity. Unsupported/unsafe
203
203
  * expressions evaluate to false rather than throwing.
204
204
  */
205
- function preprocessConditionalCompilation(src, customTargets) {
205
+ function preprocessConditionalCompilation(src, customTargets,
206
+ /**
207
+ * Issue #156: optional timing sink for the internal lexer+parser.
208
+ * When provided, the wall-clock spent inside `evaluateConditionalExpression`
209
+ * and `evaluateConstRhs` is accumulated under the key
210
+ * `preprocess.cc.lexer+parser` so the orchestrator can break the
211
+ * outer `preprocess.conditionalCompilation` stage into its outer +
212
+ * inner sub-totals. Undefined → no-op, zero cost (just the
213
+ * `if (timings)` null-check on every CC line).
214
+ */
215
+ timings) {
206
216
  if (!src)
207
217
  return src;
208
218
  const lines = src.split('\n');
@@ -215,6 +225,7 @@ function preprocessConditionalCompilation(src, customTargets) {
215
225
  // simply misses and the conservative fallback (unknown identifier →
216
226
  // false) applies, exactly as for an unrecognised hardcoded constant.
217
227
  const constTable = new Map();
228
+ const CC_STAGE = 'preprocess.cc.lexer+parser';
218
229
  for (const line of lines) {
219
230
  // Parse #Const BEFORE the other directives so the table is up-to-date
220
231
  // when a subsequent #If expression references it. The line itself is
@@ -223,7 +234,7 @@ function preprocessConditionalCompilation(src, customTargets) {
223
234
  if (constMatch) {
224
235
  const name = (constMatch[1] ?? '').trim();
225
236
  const rhs = (constMatch[2] ?? '').trim();
226
- const value = evaluateConstRhs(rhs, constTable, customTargets);
237
+ const value = evaluateConstRhs(rhs, constTable, customTargets, timings, CC_STAGE);
227
238
  if (value !== null) {
228
239
  constTable.set(name, value);
229
240
  }
@@ -233,7 +244,7 @@ function preprocessConditionalCompilation(src, customTargets) {
233
244
  const ifMatch = IF_DIRECTIVE.exec(line);
234
245
  if (ifMatch) {
235
246
  const parentActive = stack.every((frame) => frame.active);
236
- const active = parentActive && evaluateConditionalExpression(ifMatch[1] ?? '', constTable, customTargets);
247
+ const active = parentActive && evaluateConditionalExpression(ifMatch[1] ?? '', constTable, customTargets, timings, CC_STAGE);
237
248
  stack.push({ parentActive, active, branchTaken: active });
238
249
  out.push('');
239
250
  continue;
@@ -244,7 +255,7 @@ function preprocessConditionalCompilation(src, customTargets) {
244
255
  if (frame) {
245
256
  const active = frame.parentActive &&
246
257
  !frame.branchTaken &&
247
- evaluateConditionalExpression(elseIfMatch[1] ?? '', constTable, customTargets);
258
+ evaluateConditionalExpression(elseIfMatch[1] ?? '', constTable, customTargets, timings, CC_STAGE);
248
259
  frame.active = active;
249
260
  if (active)
250
261
  frame.branchTaken = true;
@@ -576,34 +587,52 @@ class Parser {
576
587
  throw new Error(`Unexpected token: ${t.type}`);
577
588
  }
578
589
  }
579
- function evaluateConditionalExpression(expr, constTable = new Map(), customTargets) {
590
+ function evaluateConditionalExpression(expr, constTable = new Map(), customTargets, timings, stageName = 'preprocess.cc.lexer+parser') {
580
591
  try {
581
592
  let exprClean = expr.trim();
582
593
  if (exprClean.toLowerCase().endsWith('then')) {
583
594
  exprClean = exprClean.slice(0, -4).trim();
584
595
  }
585
- const tokens = tokenize(exprClean, constTable, customTargets);
586
- const parser = new Parser(tokens);
587
- const result = parser.parseExpression();
588
- parser.ensureEOF();
589
- return result !== 0;
596
+ return timeLexerParser(timings, stageName, () => {
597
+ const tokens = tokenize(exprClean, constTable, customTargets);
598
+ const parser = new Parser(tokens);
599
+ const result = parser.parseExpression();
600
+ parser.ensureEOF();
601
+ return result !== 0;
602
+ });
590
603
  }
591
604
  catch {
592
605
  return false;
593
606
  }
594
607
  }
595
- function evaluateConstRhs(rhs, constTable, customTargets) {
608
+ function evaluateConstRhs(rhs, constTable, customTargets, timings, stageName = 'preprocess.cc.lexer+parser') {
596
609
  try {
597
- const tokens = tokenize(rhs.trim(), constTable, customTargets);
598
- const parser = new Parser(tokens);
599
- const result = parser.parseExpression();
600
- parser.ensureEOF();
601
- return String(result);
610
+ return timeLexerParser(timings, stageName, () => {
611
+ const tokens = tokenize(rhs.trim(), constTable, customTargets);
612
+ const parser = new Parser(tokens);
613
+ const result = parser.parseExpression();
614
+ parser.ensureEOF();
615
+ return String(result);
616
+ });
602
617
  }
603
618
  catch {
604
619
  return null;
605
620
  }
606
621
  }
622
+ /**
623
+ * Issue #156: timing wrapper used by `evaluateConditionalExpression`
624
+ * and `evaluateConstRhs` to record the lexer+parser portion of CC
625
+ * evaluation. When `timings` is null/undefined the call is a direct
626
+ * invocation — no `performance.now()` overhead.
627
+ */
628
+ function timeLexerParser(timings, stageName, fn) {
629
+ if (!timings)
630
+ return fn();
631
+ const t0 = performance.now();
632
+ const result = fn();
633
+ timings.set(stageName, (timings.get(stageName) ?? 0) + (performance.now() - t0));
634
+ return result;
635
+ }
607
636
  /**
608
637
  * Split `line` into alternating code / string-literal segments and apply
609
638
  * `REM_MIDLINE` only to code segments. String segments are returned
@@ -1 +1 @@
1
- {"version":3,"file":"vba-preprocess.js","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vba-preprocess.js","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { VbaExtractorContext, VbaClassifier } from './vba/context';
2
+ export type TimingMode = 'off' | 'per-file' | 'aggregate';
3
+ /**
4
+ * Read the timing mode from the env var. Reads are cached per call —
5
+ * the env var is consulted on every `extract()` but the result is just
6
+ * a number/string compare.
7
+ */
8
+ export declare function readTimingMode(): TimingMode;
9
+ /**
10
+ * Run `fn`, time the wall-clock, and record into `ctx.timings` under
11
+ * `stageName`. Returns the value `fn` returned. No-op when timings
12
+ * are disabled (the Map is null) — except the `performance.now()` pair,
13
+ * which is the irreducible cost of measuring anything.
14
+ *
15
+ * `performance.now()` is the right primitive here (monotonic, sub-ms
16
+ * resolution on every supported Node version). `Date.now()` would round
17
+ * to whole milliseconds and lose the per-stage signal on small files.
18
+ */
19
+ export declare function withStage<T>(ctx: VbaExtractorContext, stageName: string, fn: () => T): T;
20
+ /**
21
+ * Time a single `VbaClassifier.classifyLine` invocation. The accumulated
22
+ * time is reported under the bucket `classifier.<name>` so the
23
+ * aggregate stage totals match the per-classifier view.
24
+ */
25
+ export declare function withClassifier(ctx: VbaExtractorContext, classifier: VbaClassifier, line: string, index: number): void;
26
+ /**
27
+ * Per-file stderr block. Cheap string-build; the per-extract call cost
28
+ * is bounded by the small number of stages (~10).
29
+ */
30
+ export declare function emitPerFileTimings(ctx: VbaExtractorContext, filePath: string): void;
31
+ export declare function recordAggregateTimings(ctx: VbaExtractorContext, _filePath: string): void;
32
+ export declare function flushAggregate(): void;
33
+ /**
34
+ * Test-only: clear the aggregate between test cases so they do not
35
+ * pollute each other. Not exported in the public API.
36
+ */
37
+ export declare function _resetAggregateForTests(): void;
38
+ //# sourceMappingURL=vba-timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vba-timing.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-timing.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAK3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAMH;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,mBAAmB,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAeN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,MAAM,GACf,IAAI,CAiBN;AAmCD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,GAChB,IAAI,CASN;AAED,wBAAgB,cAAc,IAAI,IAAI,CAmBrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C"}