@aroman22/codegraph-vba-darwin-arm64 1.9.0 → 1.10.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 (38) hide show
  1. package/lib/dist/db/queries.d.ts +2 -0
  2. package/lib/dist/db/queries.d.ts.map +1 -1
  3. package/lib/dist/db/queries.js +12 -0
  4. package/lib/dist/db/queries.js.map +1 -1
  5. package/lib/dist/extraction/vba/controls.d.ts.map +1 -1
  6. package/lib/dist/extraction/vba/controls.js +77 -0
  7. package/lib/dist/extraction/vba/controls.js.map +1 -1
  8. package/lib/dist/extraction/vba/events.d.ts +16 -0
  9. package/lib/dist/extraction/vba/events.d.ts.map +1 -0
  10. package/lib/dist/extraction/vba/events.js +90 -0
  11. package/lib/dist/extraction/vba/events.js.map +1 -0
  12. package/lib/dist/extraction/vba/text-utils.d.ts +0 -6
  13. package/lib/dist/extraction/vba/text-utils.d.ts.map +1 -1
  14. package/lib/dist/extraction/vba/text-utils.js +9 -6
  15. package/lib/dist/extraction/vba/text-utils.js.map +1 -1
  16. package/lib/dist/extraction/vba-form-extractor.d.ts +26 -114
  17. package/lib/dist/extraction/vba-form-extractor.d.ts.map +1 -1
  18. package/lib/dist/extraction/vba-form-extractor.js +293 -297
  19. package/lib/dist/extraction/vba-form-extractor.js.map +1 -1
  20. package/lib/dist/index.d.ts.map +1 -1
  21. package/lib/dist/index.js +4 -0
  22. package/lib/dist/index.js.map +1 -1
  23. package/lib/dist/resolution/index.d.ts +7 -0
  24. package/lib/dist/resolution/index.d.ts.map +1 -1
  25. package/lib/dist/resolution/index.js +155 -11
  26. package/lib/dist/resolution/index.js.map +1 -1
  27. package/lib/dist/resolution/name-matcher.d.ts +6 -0
  28. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  29. package/lib/dist/resolution/name-matcher.js +81 -0
  30. package/lib/dist/resolution/name-matcher.js.map +1 -1
  31. package/lib/dist/resolution/vba-access-object-name.d.ts +7 -0
  32. package/lib/dist/resolution/vba-access-object-name.d.ts.map +1 -0
  33. package/lib/dist/resolution/vba-access-object-name.js +15 -0
  34. package/lib/dist/resolution/vba-access-object-name.js.map +1 -0
  35. package/lib/node_modules/.modules.yaml +1 -1
  36. package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
  37. package/lib/package.json +1 -1
  38. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../../src/extraction/vba/text-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../../src/extraction/vba/text-utils.ts"],"names":[],"mappings":"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"}
@@ -30,15 +30,14 @@ export declare class VbaFormExtractor {
30
30
  private detectVbName;
31
31
  /**
32
32
  * Build the per-file node for a `.form.txt` / `.report.txt` source.
33
- * Emits `kind: 'form-layout'` (B2 hueco 4), replacing the historical
34
- * `kind: 'module'` so consumers can dispatch on a UI-specific kind.
33
+ * Emits `form-layout` for forms and `report-layout` for reports, replacing
34
+ * the historical `module` kind with a UI-specific layout kind.
35
35
  *
36
- * The deterministic id formula `generateNodeId(filePath, 'form-layout',
37
- * name, 1)` is preserved so cross-extractor stubs (e.g. event-handler
38
- * synthesis on the `.cls` side) can produce a matching id when needed
39
- * though the immediate use case is the `module` `form-layout`
40
- * rename. `metadata.containerKind` keeps the historical `'module'`
41
- * label as a back-compat marker; consumers should prefer `node.kind`.
36
+ * The deterministic id formula remains
37
+ * `generateNodeId(filePath, layoutKind, name, 1)`. Report ids intentionally
38
+ * use `report-layout` so real reports agree with DoCmd.OpenReport stubs.
39
+ * `metadata.containerKind` keeps the historical `module` label as a
40
+ * back-compat marker; consumers should prefer `node.kind`.
42
41
  */
43
42
  private createFormLayoutNode;
44
43
  /**
@@ -50,68 +49,20 @@ export declare class VbaFormExtractor {
50
49
  * Name = "txtFoo"
51
50
  * End
52
51
  *
53
- * We do not try to balance `Begin`/`End` blocks each `Begin <Type>` on
54
- * its own line is a control. Form/report files are shallow enough that
55
- * the extra `Begin`/`End` for the form's root block are matched but
56
- * filtered by the control-type blacklist (see below).
52
+ * The block walker balances every `Begin`/`End` pair, including untyped
53
+ * root blocks and non-control Form/Report/Section containers.
57
54
  */
58
55
  private static readonly BEGIN_RE;
59
- /**
60
- * `Name = "..."` attribute line — emits the Access control instance name
61
- * (e.g. `lblTitulo`, `ComandoAltaPM`). Capture group 1 is the name.
62
- * The Dysflow SaveAsText format always wraps the value in double quotes
63
- * — even when the name is a simple identifier — so we anchor on `"…"`
64
- * without trying to handle unquoted forms.
65
- */
66
- private static readonly NAME_RE;
67
- /**
68
- * Control type tokens that are NOT user-visible Access controls and must be
69
- * filtered out so they don't appear as `property` nodes.
70
- *
71
- * - `Form` — the form's own root `Begin Form` / `End` container.
72
- * - `Section` — Access section containers (Header / Detail / Footer).
73
- *
74
- * `Rectangle` and `Image` are real Access controls and must NOT appear here.
75
- */
76
- private static readonly NON_CONTROL_TYPES;
77
- /**
78
- * Maximum scan window for the `Name = "..."` attribute after a
79
- * `Begin <Type>` line. Real Dysflow exports have at most a handful of
80
- * whitespace-only lines and the `Name` line within the first 3–6 lines
81
- * of the block. 16 is a generous bound; if `Name` is missing within
82
- * that window, the control is treated as a nameless container and only
83
- * the legacy `property` node is emitted (preserves REQ-FORM-2 for
84
- * pre-Name `.form.txt` files exported by older Dysflow versions).
85
- */
86
- private static readonly NAME_SCAN_WINDOW;
87
- private sweepControls;
88
- /**
89
- * Scan ahead from a `Begin <Type>` line for the first `Name = "…"`
90
- * attribute. Returns the captured name and the line number where it
91
- * was found, or `{ name: '', nameLine: 0 }` when no Name is present
92
- * within the scan window (e.g. the `Begin Form` root block which has
93
- * `Caption = "..."` but no `Name`, or pre-Name legacy exports).
94
- *
95
- * Stops at the next `Begin` or `End` boundary so a misaligned scan
96
- * never crosses into a sibling control's attribute block.
97
- */
98
- private findControlName;
99
- /**
100
- * Issue #49 — `RecordSource = "..."` line regex. The Dysflow SaveAsText
101
- * format always wraps the value in double quotes; the inner `(?:[^"]|"")*`
102
- * body tolerates the doubled-quote escape (`""` → `"`) so the captured
103
- * group carries the literal text exactly as Access stores it.
104
- *
105
- * Anchored at the start of the line — properties in the SaveAsText
106
- * format are always indented but the attribute name is unambiguous, so
107
- * a leading whitespace-tolerant anchor is enough.
108
- */
109
- private static readonly RECORD_SOURCE_RE;
110
- /** Issue #49 — `RowSource = "..."` line regex. Mirrors `RECORD_SOURCE_RE`. */
111
- private static readonly ROW_SOURCE_RE;
112
- /** Issue #49 — `RowSourceType = "..."` line regex. Used by the control-block
113
- * scan to detect value-list controls whose RowSource is a literal list. */
114
- private static readonly ROW_SOURCE_TYPE_RE;
56
+ /** Access also serializes binary/GUID values as `Property = Begin ... End`. */
57
+ private static readonly PROPERTY_BLOCK_BEGIN_RE;
58
+ /** Quoted SaveAsText property captured inside the current block frame. */
59
+ private static readonly QUOTED_PROPERTY_RE;
60
+ private walkBlocks;
61
+ private enclosingSection;
62
+ private emitBlock;
63
+ private emitExpressionHandlers;
64
+ private emitExpressionHandler;
65
+ private emitSourceObjectReference;
115
66
  /**
116
67
  * Issue #49 — copy of `VbaExtractor.SQL_TABLE_RE`. Same source / flags:
117
68
  * captures the table name that follows `FROM`/`JOIN`/`INTO`/`UPDATE`,
@@ -152,6 +103,13 @@ export declare class VbaFormExtractor {
152
103
  * name — same dual-match `vba-sql-impact`'s `extractFormBindings` does).
153
104
  */
154
105
  private emitTableReference;
106
+ /**
107
+ * Link a bound control to its enclosing form/report's single bare table.
108
+ * Expressions and SQL/absent RecordSource values stay metadata-only: column
109
+ * lineage through expressions or SELECT projections cannot be inferred here
110
+ * without risking false graph edges.
111
+ */
112
+ private emitControlSourceReference;
155
113
  /**
156
114
  * Issue #49 — dispatch the value of a RecordSource/RowSource binding.
157
115
  * If SQL, run `SQL_TABLE_RE` over the value and emit one edge per
@@ -166,51 +124,5 @@ export declare class VbaFormExtractor {
166
124
  * `extractStringLiterals` helper uses for its emitted `text` field.
167
125
  */
168
126
  private emitBinding;
169
- /**
170
- * Issue #49 — sweep for the form-level `RecordSource` line. RecordSource
171
- * always attributes to the form-layout node (even if the line is
172
- * written inside a control's Begin block — defensive: in real
173
- * SaveAsText exports the form's RecordSource sits at the root, but
174
- * the agent's spec says "emit from the form-layout node" regardless).
175
- *
176
- * The sweep intentionally matches ONLY `RecordSource` here;
177
- * `RowSource` is handled by `sweepRowSources` so the per-binding
178
- * attribution logic (control vs. form-layout) stays in one place.
179
- */
180
- private sweepRecordSources;
181
- /**
182
- * Issue #49 — sweep for per-control `RowSource` lines. RowSource
183
- * attributes to the enclosing control's `form-instance-control` node
184
- * when one is in scope; if the line is found outside any control
185
- * Begin block (defensive — unusual in real exports), it falls back to
186
- * the form-layout node. The tag is always `'vba-row-source'` so
187
- * consumers can distinguish a control-level data binding from the
188
- * form-level RecordSource even when both happen to share the same
189
- * source node.
190
- *
191
- * Control-block tracking: a stack of `{ controlName, rowSourceType }`
192
- * entries mirrors the current scope as the sweep walks lines in order.
193
- * `Begin <Type>` pushes; `End` pops. `Begin Form` / `Begin Section`
194
- * push a non-control entry so a RowSource written at the form root
195
- * correctly falls through to the form-layout fallback.
196
- *
197
- * Value-list skip: when the CURRENT TOP scope's `RowSourceType` is
198
- * `"Value List"` (captured by the same scan-window as the control's
199
- * `Name`), the control's RowSource is a literal list and we skip the
200
- * emission — the data is in code, not a table.
201
- */
202
- private sweepRowSources;
203
- /**
204
- * Issue #49 — companion helper to `findControlName`: scan ahead from a
205
- * `Begin <Type>` line for the first `RowSourceType = "..."` attribute
206
- * within the same `NAME_SCAN_WINDOW` (so a missing attribute gracefully
207
- * no-ops instead of mis-attributing). Returns the captured value (e.g.
208
- * `"Value List"`, `"Table/Query"`) or `''` when absent.
209
- *
210
- * Stops at the next `Begin` or `End` boundary — same scan-window
211
- * discipline as `findControlName`, so a misaligned scan never crosses
212
- * into a sibling control's attribute block.
213
- */
214
- private findRowSourceType;
215
127
  }
216
128
  //# sourceMappingURL=vba-form-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vba-form-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-form-extractor.ts"],"names":[],"mappings":"AAyCA,OAAO,EAGL,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAIlB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,oBAAoB,CAA6B;IACzD;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB,CAAqB;gBAElC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK5C,OAAO,IAAI,gBAAgB;IA4E3B,OAAO,CAAC,cAAc;IAiBtB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,YAAY;IAuBpB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IAE5E;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAElE;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAGtC;IAEH;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAE9C,OAAO,CAAC,aAAa;IAiFrB;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAsCvB;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CACM;IAE9C,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CACM;IAE3C;+EAC2E;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CACF;IAExC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAC+E;IAEnH;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CACsB;IAE3D,OAAO,CAAC,WAAW;IAInB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,WAAW;IA4BnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,eAAe;IAwEvB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;CAkB1B"}
1
+ {"version":3,"file":"vba-form-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-form-extractor.ts"],"names":[],"mappings":"AAuCA,OAAO,EAGL,gBAAgB,EAGjB,MAAM,UAAU,CAAC;AAelB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,oBAAoB,CAA6B;IACzD;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB,CAAqB;gBAElC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK5C,OAAO,IAAI,gBAAgB;IAqE3B,OAAO,CAAC,cAAc;IAiBtB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,YAAY;IAuBpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACA;IAEhC,+EAA+E;IAC/E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CACD;IAE9C,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CACY;IAEtD,OAAO,CAAC,UAAU;IAgGlB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,SAAS;IA8IjB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,qBAAqB;IA0C7B,OAAO,CAAC,yBAAyB;IA0CjC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAC+E;IAEnH;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CACsB;IAE3D,OAAO,CAAC,WAAW;IAInB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAyC1B;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IA4BlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,WAAW;CA2BpB"}