@aroman22/codegraph-vba-darwin-arm64 1.6.3 → 1.7.1
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/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -1
- package/lib/dist/extraction/vba/call-sweep.js +49 -1
- package/lib/dist/extraction/vba/call-sweep.js.map +1 -1
- package/lib/dist/extraction/vba/calls.d.ts +6 -2
- package/lib/dist/extraction/vba/calls.d.ts.map +1 -1
- package/lib/dist/extraction/vba/calls.js +55 -7
- package/lib/dist/extraction/vba/calls.js.map +1 -1
- package/lib/dist/extraction/vba/controls.d.ts +17 -0
- package/lib/dist/extraction/vba/controls.d.ts.map +1 -1
- package/lib/dist/extraction/vba/controls.js +40 -2
- package/lib/dist/extraction/vba/controls.js.map +1 -1
- package/lib/dist/extraction/vba/docmd.js +1 -1
- package/lib/dist/extraction/vba/docmd.js.map +1 -1
- package/lib/dist/mcp/daemon-watchdog.d.ts +84 -0
- package/lib/dist/mcp/daemon-watchdog.d.ts.map +1 -0
- package/lib/dist/mcp/daemon-watchdog.js +244 -0
- package/lib/dist/mcp/daemon-watchdog.js.map +1 -0
- package/lib/dist/mcp/index.d.ts +1 -0
- package/lib/dist/mcp/index.d.ts.map +1 -1
- package/lib/dist/mcp/index.js +15 -0
- package/lib/dist/mcp/index.js.map +1 -1
- package/lib/dist/mcp/server-instructions.d.ts +1 -1
- package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
- package/lib/dist/mcp/server-instructions.js +2 -0
- package/lib/dist/mcp/server-instructions.js.map +1 -1
- package/lib/dist/resolution/index.d.ts +12 -0
- package/lib/dist/resolution/index.d.ts.map +1 -1
- package/lib/dist/resolution/index.js +58 -20
- package/lib/dist/resolution/index.js.map +1 -1
- package/lib/dist/resolution/vba-runtime-objects.d.ts +40 -0
- package/lib/dist/resolution/vba-runtime-objects.d.ts.map +1 -0
- package/lib/dist/resolution/vba-runtime-objects.js +68 -0
- package/lib/dist/resolution/vba-runtime-objects.js.map +1 -0
- package/lib/dist/types.d.ts +33 -1
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +37 -0
- package/lib/dist/types.js.map +1 -1
- package/lib/dist/upgrade/index.d.ts +64 -0
- package/lib/dist/upgrade/index.d.ts.map +1 -1
- package/lib/dist/upgrade/index.js +189 -6
- package/lib/dist/upgrade/index.js.map +1 -1
- package/lib/node_modules/.modules.yaml +1 -1
- package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
- package/lib/package.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-sweep.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/call-sweep.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAY,aAAa,EAAE,MAAM,WAAW,CAAC;AA0CzE;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,aAAa,
|
|
1
|
+
{"version":3,"file":"call-sweep.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/call-sweep.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAY,aAAa,EAAE,MAAM,WAAW,CAAC;AA0CzE;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,aAAa,CAiSf;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAO5E"}
|
|
@@ -198,7 +198,29 @@ function createCallsAndSqlClassifier(lines) {
|
|
|
198
198
|
const stmtCall = (0, calls_1.detectStatementCall)(clauseLine);
|
|
199
199
|
if (stmtCall) {
|
|
200
200
|
const caller = stack[stack.length - 1];
|
|
201
|
-
|
|
201
|
+
// Returns true when a same-file calls edge was emitted; false
|
|
202
|
+
// when the call was silenced (blacklist / runtime receiver /
|
|
203
|
+
// unresolvable same-file target).
|
|
204
|
+
const emitted = (0, calls_1.emitStatementCallEdge)(ctx, caller, stmtCall, lineNum);
|
|
205
|
+
// Round-3 (issue #108): if the statement-form Sub call did
|
|
206
|
+
// NOT resolve, surface it as an `unqualified-ident` unresolved
|
|
207
|
+
// reference. The const-first disambiguation rule (FR-3.1)
|
|
208
|
+
// ensures Const reads do not pollute the call bucket — when
|
|
209
|
+
// `stmtCall` resolves to a known Const, we still surface it as
|
|
210
|
+
// `unqualified-ident` (NOT `call`) because that's the
|
|
211
|
+
// unambiguous shape of a bare-ident read.
|
|
212
|
+
if (!emitted && stmtCall !== caller.name) {
|
|
213
|
+
ctx.unresolvedReferences.push({
|
|
214
|
+
fromNodeId: ctx.findOrCreateFunctionNodeId(caller),
|
|
215
|
+
referenceName: stmtCall,
|
|
216
|
+
referenceKind: 'unqualified-ident',
|
|
217
|
+
line: lineNum,
|
|
218
|
+
column: 0,
|
|
219
|
+
filePath: ctx.filePath,
|
|
220
|
+
language: 'vba',
|
|
221
|
+
metadata: { synthesizedBy: 'vba-statement-call-unresolved' },
|
|
222
|
+
});
|
|
223
|
+
}
|
|
202
224
|
}
|
|
203
225
|
// Fix 7 + Fix 2 + Issue #40: qualified statement-form calls
|
|
204
226
|
// (`Receiver.Member args`) — the dominant cross-object call shape.
|
|
@@ -206,6 +228,14 @@ function createCallsAndSqlClassifier(lines) {
|
|
|
206
228
|
if (qualStmt) {
|
|
207
229
|
const caller = stack[stack.length - 1];
|
|
208
230
|
if (ctx.shouldProcessQualifiedCall(qualStmt.receiver)) {
|
|
231
|
+
// Returns true when a `calls` edge was emitted to a synthetic
|
|
232
|
+
// stub node; false when the receiver is not eligible
|
|
233
|
+
// (primitive / DAO-qualified / runtime). Round-3 (issue
|
|
234
|
+
// #108): when the synthetic-stub path skips, the parent
|
|
235
|
+
// caller still needs to see an `unresolved_refs` row so the
|
|
236
|
+
// SQL filter `WHERE reference_kind = 'qualified-call'`
|
|
237
|
+
// surfaces these from `(caller, qualified, line)` tuples the
|
|
238
|
+
// resolver couldn't bind.
|
|
209
239
|
(0, calls_1.emitQualifiedStatementCallEdge)(ctx, caller, qualStmt.receiver, qualStmt.member, lineNum);
|
|
210
240
|
}
|
|
211
241
|
}
|
|
@@ -216,6 +246,24 @@ function createCallsAndSqlClassifier(lines) {
|
|
|
216
246
|
const caller = stack[stack.length - 1];
|
|
217
247
|
(0, calls_1.emitQualifiedStatementCallEdge)(ctx, caller, withReceiver, withCall.member, lineNum);
|
|
218
248
|
}
|
|
249
|
+
else if (withCall) {
|
|
250
|
+
// Round-3 (FR-2.5): `.Member` inside a `With` block where the
|
|
251
|
+
// receiver is NOT a project-class local (e.g. a runtime /
|
|
252
|
+
// DAO-qualified `With rs` where `rs` is `DAO.Recordset`).
|
|
253
|
+
// surface the call as `member-with` so the SQL filter can
|
|
254
|
+
// detect these by shape.
|
|
255
|
+
const caller = stack[stack.length - 1];
|
|
256
|
+
ctx.unresolvedReferences.push({
|
|
257
|
+
fromNodeId: ctx.findOrCreateFunctionNodeId(caller),
|
|
258
|
+
referenceName: `${withReceiver}.${withCall.member}`,
|
|
259
|
+
referenceKind: 'member-with',
|
|
260
|
+
line: lineNum,
|
|
261
|
+
column: 0,
|
|
262
|
+
filePath: ctx.filePath,
|
|
263
|
+
language: 'vba',
|
|
264
|
+
metadata: { synthesizedBy: 'vba-with-member-unresolved' },
|
|
265
|
+
});
|
|
266
|
+
}
|
|
219
267
|
}
|
|
220
268
|
}
|
|
221
269
|
// B4 (hueco 6): `DoCmd.OpenForm "FormName"` modelling — the literal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-sweep.js","sourceRoot":"","sources":["../../../src/extraction/vba/call-sweep.ts"],"names":[],"mappings":";;AAyDA,
|
|
1
|
+
{"version":3,"file":"call-sweep.js","sourceRoot":"","sources":["../../../src/extraction/vba/call-sweep.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,13 @@ export declare function splitSingleLineIfClauses(line: string): string[];
|
|
|
20
20
|
export declare function detectStatementCall(line: string): string | null;
|
|
21
21
|
/**
|
|
22
22
|
* H1: emit a same-file `calls` edge for a statement-form Sub call to the
|
|
23
|
-
* already-emitted function node named `procName`.
|
|
23
|
+
* already-emitted function node named `procName`. Returns `true` when a
|
|
24
|
+
* `calls` edge was pushed, `false` when the call was silenced
|
|
25
|
+
* (blacklist / runtime / self-call / unresolvable). Round-3 (issue
|
|
26
|
+
* #108) needs that boolean so the call sweep can fall through to push
|
|
27
|
+
* an `unqualified-ident` unresolved reference.
|
|
24
28
|
*/
|
|
25
|
-
export declare function emitStatementCallEdge(ctx: VbaExtractorContext, caller: ProcInfo, procName: string, lineNum: number):
|
|
29
|
+
export declare function emitStatementCallEdge(ctx: VbaExtractorContext, caller: ProcInfo, procName: string, lineNum: number): boolean;
|
|
26
30
|
/**
|
|
27
31
|
* Fix 7: detect a qualified statement-form call — `Receiver.Member <args>`
|
|
28
32
|
* where `Receiver.Member` is NOT followed by `(`. Distinct from the paren
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/calls.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAe1D,wBAAgB,eAAe,CAC7B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAiBN;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,
|
|
1
|
+
{"version":3,"file":"calls.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/calls.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAe1D,wBAAgB,eAAe,CAC7B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAiBN;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAmJN;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAgC/D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4B/D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAcT;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuC7C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CA2CN;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBjE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoB5E"}
|
|
@@ -78,8 +78,23 @@ function scanCallSites(ctx, line, from, lineNum) {
|
|
|
78
78
|
if (!member) {
|
|
79
79
|
// Bare `Name(...)` — same-file resolution.
|
|
80
80
|
const localFuncNode = ctx.findFunctionNodeByName(receiver);
|
|
81
|
-
if (!localFuncNode)
|
|
81
|
+
if (!localFuncNode) {
|
|
82
|
+
// Round-3 (FR-2.1, issue #108): the call-sweep path used to
|
|
83
|
+
// silent-skip here, leaving the paren-form unresolvable call
|
|
84
|
+
// invisible in `unresolved_refs`. Surface it as `'call'` so the
|
|
85
|
+
// SQL filter `WHERE reference_kind = 'call'` reaches it.
|
|
86
|
+
ctx.unresolvedReferences.push({
|
|
87
|
+
fromNodeId: ctx.findOrCreateFunctionNodeId(from),
|
|
88
|
+
referenceName: receiver,
|
|
89
|
+
referenceKind: 'call',
|
|
90
|
+
line: lineNum,
|
|
91
|
+
column: col,
|
|
92
|
+
filePath: ctx.filePath,
|
|
93
|
+
language: 'vba',
|
|
94
|
+
metadata: { synthesizedBy: 'vba-paren-call-unresolved' },
|
|
95
|
+
});
|
|
82
96
|
continue;
|
|
97
|
+
}
|
|
83
98
|
ctx.edges.push({
|
|
84
99
|
source: ctx.findOrCreateFunctionNodeId(from),
|
|
85
100
|
target: localFuncNode.id,
|
|
@@ -91,8 +106,23 @@ function scanCallSites(ctx, line, from, lineNum) {
|
|
|
91
106
|
else {
|
|
92
107
|
// Qualified `Receiver.Member(...)` — synthesize the call target only
|
|
93
108
|
// for project-class local variables or undeclared module candidates.
|
|
94
|
-
if (!ctx.shouldProcessQualifiedCall(receiver))
|
|
109
|
+
if (!ctx.shouldProcessQualifiedCall(receiver)) {
|
|
110
|
+
// Round-3 (FR-2.2): receiver is a declared primitive or
|
|
111
|
+
// runtime-blacklisted. Surface the qualified call as
|
|
112
|
+
// `'qualified-call'` so the SQL filter still sees these from
|
|
113
|
+
// `(caller, qualified, line)` tuples the resolver can't bind.
|
|
114
|
+
ctx.unresolvedReferences.push({
|
|
115
|
+
fromNodeId: ctx.findOrCreateFunctionNodeId(from),
|
|
116
|
+
referenceName: `${receiver}.${member}`,
|
|
117
|
+
referenceKind: 'qualified-call',
|
|
118
|
+
line: lineNum,
|
|
119
|
+
column: col,
|
|
120
|
+
filePath: ctx.filePath,
|
|
121
|
+
language: 'vba',
|
|
122
|
+
metadata: { synthesizedBy: 'vba-qualified-call-unresolved' },
|
|
123
|
+
});
|
|
95
124
|
continue;
|
|
125
|
+
}
|
|
96
126
|
// #12a: `receiverType` resolves to the real class name when
|
|
97
127
|
// `receiver` is a declared project-class local var; otherwise it's the
|
|
98
128
|
// raw `receiver` text unchanged (e.g. `.bas`-qualified module calls).
|
|
@@ -104,6 +134,19 @@ function scanCallSites(ctx, line, from, lineNum) {
|
|
|
104
134
|
// `modUtils.Foo(1)` are unaffected (`modUtils` is not a local var).
|
|
105
135
|
const recvEntry = ctx.localVarTypeMap.get(receiver.toLowerCase());
|
|
106
136
|
if (recvEntry && constants_1.PRIMITIVE_TYPES.has(recvEntry.outer.toLowerCase())) {
|
|
137
|
+
// Match the round-3 surfaced row so the SQL filter has the
|
|
138
|
+
// receiver/member string even when the stub emission was
|
|
139
|
+
// suppressed.
|
|
140
|
+
ctx.unresolvedReferences.push({
|
|
141
|
+
fromNodeId: ctx.findOrCreateFunctionNodeId(from),
|
|
142
|
+
referenceName: `${receiver}.${member}`,
|
|
143
|
+
referenceKind: 'qualified-call',
|
|
144
|
+
line: lineNum,
|
|
145
|
+
column: col,
|
|
146
|
+
filePath: ctx.filePath,
|
|
147
|
+
language: 'vba',
|
|
148
|
+
metadata: { synthesizedBy: 'vba-qualified-call-unresolved' },
|
|
149
|
+
});
|
|
107
150
|
continue;
|
|
108
151
|
}
|
|
109
152
|
const receiverType = ctx.resolveReceiverType(receiver);
|
|
@@ -242,18 +285,22 @@ function detectStatementCall(line) {
|
|
|
242
285
|
}
|
|
243
286
|
/**
|
|
244
287
|
* H1: emit a same-file `calls` edge for a statement-form Sub call to the
|
|
245
|
-
* already-emitted function node named `procName`.
|
|
288
|
+
* already-emitted function node named `procName`. Returns `true` when a
|
|
289
|
+
* `calls` edge was pushed, `false` when the call was silenced
|
|
290
|
+
* (blacklist / runtime / self-call / unresolvable). Round-3 (issue
|
|
291
|
+
* #108) needs that boolean so the call sweep can fall through to push
|
|
292
|
+
* an `unqualified-ident` unresolved reference.
|
|
246
293
|
*/
|
|
247
294
|
function emitStatementCallEdge(ctx, caller, procName, lineNum) {
|
|
248
295
|
if (procName === caller.name)
|
|
249
|
-
return; // skip self-call
|
|
296
|
+
return false; // skip self-call
|
|
250
297
|
if (constants_1.CALL_KEYWORD_BLACKLIST.has(procName))
|
|
251
|
-
return;
|
|
298
|
+
return false;
|
|
252
299
|
if (constants_1.RUNTIME_RECEIVER_BLACKLIST.has(procName))
|
|
253
|
-
return;
|
|
300
|
+
return false;
|
|
254
301
|
const target = ctx.findFunctionNodeByName(procName);
|
|
255
302
|
if (!target)
|
|
256
|
-
return;
|
|
303
|
+
return false;
|
|
257
304
|
ctx.edges.push({
|
|
258
305
|
source: ctx.findOrCreateFunctionNodeId(caller),
|
|
259
306
|
target: target.id,
|
|
@@ -261,6 +308,7 @@ function emitStatementCallEdge(ctx, caller, procName, lineNum) {
|
|
|
261
308
|
line: lineNum,
|
|
262
309
|
column: 0,
|
|
263
310
|
});
|
|
311
|
+
return true;
|
|
264
312
|
}
|
|
265
313
|
/**
|
|
266
314
|
* Fix 7: detect a qualified statement-form call — `Receiver.Member <args>`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/extraction/vba/calls.ts"],"names":[],"mappings":";;AA4BA,0CAsBC;AAED,sCA2GC;AAWD,4DAgCC;AAQD,kDA4BC;AAMD,sDAkBC;AAQD,oEAyCC;AAQD,wEAiDC;AAMD,sDAiBC;AAMD,oDAoBC;AAjaD;;;;;;GAMG;AACH,gEAAwD;AACxD,2CAIqB;AAGrB;;;;;;;GAOG;AACH,MAAM,OAAO,GACX,sGAAsG,CAAC;AAEzG,MAAM,cAAc,GAAG,2CAA2C,CAAC;AAEnE,SAAgB,eAAe,CAC7B,GAAwB,EACxB,IAAY,EACZ,IAAc,EACd,OAAe;IAEf,cAAc,CAAC,SAAS,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC;YAC5C,MAAM,EAAE,SAAS,CAAC,EAAE;YACpB,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,EAAE,SAAS,EAAE;YACvB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,CAAC,CAAC,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,GAAwB,EACxB,IAAY,EACZ,IAAc,EACd,OAAe;IAEf,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACtB,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzC,qEAAqE;QACrE,oEAAoE;QACpE,+DAA+D;QAC/D,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,kCAAkC;QAClC,IAAI,kCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QACnD,IAAI,MAAM,IAAI,kCAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAC3D,mEAAmE;QACnE,mEAAmE;QACnE,mEAAmE;QACnE,IAAI,sCAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvD,IAAI,MAAM,IAAI,sCAA0B,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAC/D,yEAAyE;QACzE,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,SAAS;QAEhD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;QAEpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,2CAA2C;YAC3C,MAAM,aAAa,GAAG,GAAG,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,aAAa;gBAAE,SAAS;YAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC;gBAC5C,MAAM,EAAE,aAAa,CAAC,EAAE;gBACxB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,qEAAqE;YACrE,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACxD,4DAA4D;YAC5D,uEAAuE;YACvE,sEAAsE;YACtE,EAAE;YACF,8DAA8D;YAC9D,mEAAmE;YACnE,kEAAkE;YAClE,iEAAiE;YACjE,oEAAoE;YACpE,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAClE,IAAI,SAAS,IAAI,2BAAe,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACpE,SAAS;YACX,CAAC;YACD,MAAM,YAAY,GAAG,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,GAAG,YAAY,IAAI,MAAM,EAAE,CAAC;YAC9C,oEAAoE;YACpE,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;YAC1D,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YAC5C,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,OAAO,GAAG,IAAA,oCAAc,EAC5B,GAAG,CAAC,QAAQ,EACZ,UAAU,EACV,SAAS,EACT,OAAO,CACR,CAAC;YACF,yEAAyE;YACzE,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,OAAO;oBACX,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,aAAa,EAAE,SAAS;oBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,QAAQ,EAAE,KAAK;oBACf,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,GAAG;oBAChB,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM;oBACjC,UAAU,EAAE,QAAQ;oBACpB,4DAA4D;oBAC5D,2BAA2B;oBAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;oBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC;gBAC5C,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE;oBACR,aAAa,EAAE,qBAAqB;oBACpC,IAAI,EAAE,IAAI;oBACV,YAAY;oBACZ,MAAM;iBACP;gBACD,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,wBAAwB,CAAC,IAAY;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,2BAA2B,CAAC;IAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,8DAA8D;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,8DAA8D;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,gEAAgE;QAChE,8DAA8D;QAC9D,qCAAqC;QACrC,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,8DAA8D;YAC9D,8DAA8D;YAC9D,4BAA4B;YAC5B,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,SAAS;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,4DAA4D;IAC5D,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,sBAAsB;IACtB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,mEAAmE;IACnE,IAAI,oDAAoD,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,kCAAkC;IAClC,MAAM,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,8DAA8D;IAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,+DAA+D;IAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,4EAA4E;IAC5E,yBAAyB;IACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,GAAwB,EACxB,MAAgB,EAChB,QAAgB,EAChB,OAAe;IAEf,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI;QAAE,OAAO,CAAC,iBAAiB;IACvD,IAAI,kCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO;IACjD,IAAI,sCAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO;IACrD,MAAM,MAAM,GAAG,GAAG,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACb,MAAM,EAAE,GAAG,CAAC,0BAA0B,CAAC,MAAM,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC,EAAE;QACjB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,4BAA4B,CAC1C,IAAY;IAEZ,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,mDAAmD;IACnD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACzE,sBAAsB;IACtB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,qBAAqB;IACrB,IAAI,oDAAoD,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,iEAAiE;IACjE,yEAAyE;IACzE,MAAM,SAAS,GAAG,0CAA0C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,6BAA6B;IAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,6BAA6B;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IACjD,MAAM,OAAO,GAAG,0CAA0C,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxD,sEAAsE;IACtE,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,yEAAyE;IACzE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3C,sDAAsD;QACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,8CAA8C;IAC9C,IAAI,kCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,sCAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,kCAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,sCAA0B,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,8BAA8B,CAC5C,GAAwB,EACxB,MAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,OAAe;IAEf,yEAAyE;IACzE,4EAA4E;IAC5E,cAAc;IACd,MAAM,YAAY,GAAG,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,GAAG,YAAY,IAAI,MAAM,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;IAC5D,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO;IAC1C,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAG,IAAA,oCAAc,EAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7E,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACb,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,aAAa,EAAE,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,SAAS,CAAC,MAAM;YAC3B,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACb,MAAM,EAAE,GAAG,CAAC,0BAA0B,CAAC,MAAM,CAAC;QAC9C,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE;YACR,aAAa,EAAE,qBAAqB;YACpC,IAAI,EAAE,IAAI;YACV,YAAY;YACZ,MAAM;SACP;QACD,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,IAAY;IAChD,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACxF,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,kCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,sCAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACrF,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,IAAI,kCAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,sCAA0B,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../../../src/extraction/vba/calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,15 @@ import { VbaExtractorContext, ProcInfo } from './context';
|
|
|
11
11
|
* `metadata.synthesizedBy: 'vba-me-control'`. Operates on the masked
|
|
12
12
|
* `callScanLine`. The +3 column offset skips the 3-char `Me.` / `Me!`
|
|
13
13
|
* prefix (both are 3 chars).
|
|
14
|
+
*
|
|
15
|
+
* Round-3 (issue #108): the `referenceKind` is keyed off the operator
|
|
16
|
+
* (`.` vs `!`) at the match position. The same-line `=` heuristic
|
|
17
|
+
* distinguishes reads from assignments: `x = Me.Name` → `property-get`,
|
|
18
|
+
* `Me.Name = "X"` → `property-set`. Cross-line property-set is out of
|
|
19
|
+
* scope; the `=` rule is satisfied when the assignment appears on the
|
|
20
|
+
* SAME line at any position AFTER the matched control name (allowing
|
|
21
|
+
* trailing `.Caption = value` chained assignments too — they still
|
|
22
|
+
* flow a write into the captured control identifier).
|
|
14
23
|
*/
|
|
15
24
|
export declare function scanMeControlReferences(ctx: VbaExtractorContext, line: string, from: ProcInfo, lineNum: number): void;
|
|
16
25
|
/**
|
|
@@ -19,6 +28,14 @@ export declare function scanMeControlReferences(ctx: VbaExtractorContext, line:
|
|
|
19
28
|
* emit ONE UnresolvedReference per match with `metadata.synthesizedBy
|
|
20
29
|
* = 'vba-forms-bang'`. Operates on the ORIGINAL (unmasked) line. The form
|
|
21
30
|
* identifier is unwrapped of surrounding `"` quotes and `[…]` brackets.
|
|
31
|
+
*
|
|
32
|
+
* Round-3 (issue #108): cross-form bang is always a property access
|
|
33
|
+
* (VBA semantics: there's no bang-call). The reference name is the FORM
|
|
34
|
+
* module — the resolver matches it against the indexed `Form_*` nodes
|
|
35
|
+
* downstream — so the kind is `'bang-get'` regardless of the read/write
|
|
36
|
+
* direction. A direct cross-form bang assignment
|
|
37
|
+
* (`Forms!FormX!Ctl = value`) is rare; round-3 emits `'bang-get'`
|
|
38
|
+
* uniformly and the resolvers do not care about access direction here.
|
|
22
39
|
*/
|
|
23
40
|
export declare function scanFormsBang(ctx: VbaExtractorContext, line: string, from: ProcInfo, lineNum: number): void;
|
|
24
41
|
//# sourceMappingURL=controls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AA2B1D
|
|
1
|
+
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AA2B1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAsCN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CA0BN"}
|
|
@@ -30,6 +30,15 @@ const FORMS_BANG_RE = /\b(?:Forms!(\p{L}[\p{L}\p{N}_]*|\[[^\]]+\])(?![.\w])|Form
|
|
|
30
30
|
* `metadata.synthesizedBy: 'vba-me-control'`. Operates on the masked
|
|
31
31
|
* `callScanLine`. The +3 column offset skips the 3-char `Me.` / `Me!`
|
|
32
32
|
* prefix (both are 3 chars).
|
|
33
|
+
*
|
|
34
|
+
* Round-3 (issue #108): the `referenceKind` is keyed off the operator
|
|
35
|
+
* (`.` vs `!`) at the match position. The same-line `=` heuristic
|
|
36
|
+
* distinguishes reads from assignments: `x = Me.Name` → `property-get`,
|
|
37
|
+
* `Me.Name = "X"` → `property-set`. Cross-line property-set is out of
|
|
38
|
+
* scope; the `=` rule is satisfied when the assignment appears on the
|
|
39
|
+
* SAME line at any position AFTER the matched control name (allowing
|
|
40
|
+
* trailing `.Caption = value` chained assignments too — they still
|
|
41
|
+
* flow a write into the captured control identifier).
|
|
33
42
|
*/
|
|
34
43
|
function scanMeControlReferences(ctx, line, from, lineNum) {
|
|
35
44
|
ME_CONTROL_RE.lastIndex = 0;
|
|
@@ -38,10 +47,31 @@ function scanMeControlReferences(ctx, line, from, lineNum) {
|
|
|
38
47
|
const controlName = m[1] ?? '';
|
|
39
48
|
if (!controlName)
|
|
40
49
|
continue;
|
|
50
|
+
// Round-3: operator is the char at `m.index + 2` (skipping the `Me`).
|
|
51
|
+
// Both `.` and `!` are 1 char so the captured name starts at `m.index + 3`.
|
|
52
|
+
const operator = line.charAt(m.index + 2); // '.' | '!'
|
|
53
|
+
const isBang = operator === '!';
|
|
54
|
+
// Same-line get vs set heuristic: anything past the captured control
|
|
55
|
+
// name on this line. Cover the `=` form (`Me.Name = "X"`) and ignore
|
|
56
|
+
// a previous-line `=`. The `= charAt(...)` short-circuits on the first
|
|
57
|
+
// non-whitespace; that matches VBA `Me.Name =` and tolerates intervening
|
|
58
|
+
// spaces. We do NOT match `==` (VBA has no `==`), and `=` inside a RHS
|
|
59
|
+
// expression on the SAME line is a false positive that's tolerable —
|
|
60
|
+
// round-4 can add a paren-depth check if needed.
|
|
61
|
+
const after = line.slice(m.index + 3 + controlName.length);
|
|
62
|
+
const eqIdx = after.indexOf('=');
|
|
63
|
+
const isAssign = eqIdx >= 0;
|
|
64
|
+
const referenceKind = isBang
|
|
65
|
+
? isAssign
|
|
66
|
+
? 'bang-set'
|
|
67
|
+
: 'bang-get'
|
|
68
|
+
: isAssign
|
|
69
|
+
? 'property-set'
|
|
70
|
+
: 'property-get';
|
|
41
71
|
ctx.unresolvedReferences.push({
|
|
42
72
|
fromNodeId: ctx.findOrCreateFunctionNodeId(from),
|
|
43
73
|
referenceName: controlName,
|
|
44
|
-
referenceKind
|
|
74
|
+
referenceKind,
|
|
45
75
|
line: lineNum,
|
|
46
76
|
column: m.index + 3, // +3 to skip the `Me.` / `Me!` prefix
|
|
47
77
|
filePath: ctx.filePath,
|
|
@@ -56,6 +86,14 @@ function scanMeControlReferences(ctx, line, from, lineNum) {
|
|
|
56
86
|
* emit ONE UnresolvedReference per match with `metadata.synthesizedBy
|
|
57
87
|
* = 'vba-forms-bang'`. Operates on the ORIGINAL (unmasked) line. The form
|
|
58
88
|
* identifier is unwrapped of surrounding `"` quotes and `[…]` brackets.
|
|
89
|
+
*
|
|
90
|
+
* Round-3 (issue #108): cross-form bang is always a property access
|
|
91
|
+
* (VBA semantics: there's no bang-call). The reference name is the FORM
|
|
92
|
+
* module — the resolver matches it against the indexed `Form_*` nodes
|
|
93
|
+
* downstream — so the kind is `'bang-get'` regardless of the read/write
|
|
94
|
+
* direction. A direct cross-form bang assignment
|
|
95
|
+
* (`Forms!FormX!Ctl = value`) is rare; round-3 emits `'bang-get'`
|
|
96
|
+
* uniformly and the resolvers do not care about access direction here.
|
|
59
97
|
*/
|
|
60
98
|
function scanFormsBang(ctx, line, from, lineNum) {
|
|
61
99
|
FORMS_BANG_RE.lastIndex = 0;
|
|
@@ -77,7 +115,7 @@ function scanFormsBang(ctx, line, from, lineNum) {
|
|
|
77
115
|
ctx.unresolvedReferences.push({
|
|
78
116
|
fromNodeId: ctx.findOrCreateFunctionNodeId(from),
|
|
79
117
|
referenceName: formName,
|
|
80
|
-
referenceKind: '
|
|
118
|
+
referenceKind: 'bang-get',
|
|
81
119
|
line: lineNum,
|
|
82
120
|
column: m.index, // start of the `Forms` keyword
|
|
83
121
|
filePath: ctx.filePath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,7 +167,7 @@ function scanDoCmdOpenQuery(ctx, line, caller, lineNum) {
|
|
|
167
167
|
ctx.unresolvedReferences.push({
|
|
168
168
|
fromNodeId: ctx.findOrCreateFunctionNodeId(caller),
|
|
169
169
|
referenceName: targetName,
|
|
170
|
-
referenceKind: '
|
|
170
|
+
referenceKind: 'dao-query',
|
|
171
171
|
line: lineNum,
|
|
172
172
|
column: m.index,
|
|
173
173
|
filePath: ctx.filePath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docmd.js","sourceRoot":"","sources":["../../../src/extraction/vba/docmd.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docmd.js","sourceRoot":"","sources":["../../../src/extraction/vba/docmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daemon liveness watchdog — issue #116.
|
|
3
|
+
*
|
|
4
|
+
* The MCP server (or any long-lived host) registers project roots it serves.
|
|
5
|
+
* Every `intervalMs`, the watchdog checks each root's daemon (via the
|
|
6
|
+
* {@link listDaemons} discovery index + liveness probe). If a daemon that
|
|
7
|
+
* SHOULD exist is dead (kill -9, Stop-Process, crash, …), the watchdog
|
|
8
|
+
* respawns it with the same spawnDetachedDaemon recipe the launcher uses
|
|
9
|
+
* (`process.execPath` + `process.execArgv` + `scriptPath serve --mcp --path <root>`).
|
|
10
|
+
*
|
|
11
|
+
* Why a watchdog (vs. spawn-on-demand at MCP request time): the issue's repro
|
|
12
|
+
* is `Stop-Process -Id <pid>` while the MCP keeps serving — file edits are
|
|
13
|
+
* missed until the user manually runs `codegraph-vba sync`. The watchdog
|
|
14
|
+
* closes that gap in <intervalMs>.
|
|
15
|
+
*
|
|
16
|
+
* Spawned detaches (own session/process group) so closing the MCP process
|
|
17
|
+
* does not take the watchdog down with it.
|
|
18
|
+
*/
|
|
19
|
+
export interface DaemonWatchdogOptions {
|
|
20
|
+
/** Poll interval (ms). Default 30s. */
|
|
21
|
+
intervalMs?: number;
|
|
22
|
+
/** Override the path to the codegraph binary used to spawn the daemon. */
|
|
23
|
+
scriptPath?: string;
|
|
24
|
+
/** Override node executable used to spawn the daemon. */
|
|
25
|
+
nodePath?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Override the spawn implementation. Used by tests; production callers
|
|
28
|
+
* leave this unset to use the real `child_process.spawn`.
|
|
29
|
+
*/
|
|
30
|
+
spawnFn?: (nodePath: string, args: string[], opts: {
|
|
31
|
+
detached: boolean;
|
|
32
|
+
env: NodeJS.ProcessEnv;
|
|
33
|
+
windowsHide?: boolean;
|
|
34
|
+
stdio?: 'ignore' | ['ignore', number, number];
|
|
35
|
+
}) => boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Per-project daemon liveness watchdog. Registers roots; polls every
|
|
39
|
+
* `intervalMs`; respawns a daemon if the live one dies.
|
|
40
|
+
*/
|
|
41
|
+
export declare class DaemonWatchdog {
|
|
42
|
+
private readonly roots;
|
|
43
|
+
private interval;
|
|
44
|
+
private readonly intervalMs;
|
|
45
|
+
private readonly scriptPath;
|
|
46
|
+
private readonly nodePath;
|
|
47
|
+
private readonly spawnFn;
|
|
48
|
+
constructor(opts?: DaemonWatchdogOptions);
|
|
49
|
+
/** Watch a project root: if its daemon dies, respawn it. Idempotent. */
|
|
50
|
+
watch(root: string): void;
|
|
51
|
+
/** Stop watching a root. Idempotent. */
|
|
52
|
+
unwatch(root: string): void;
|
|
53
|
+
/** Number of roots currently being watched. */
|
|
54
|
+
size(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Start the polling loop. No-op if already running. Detached from any caller;
|
|
57
|
+
* safe to call from a request handler.
|
|
58
|
+
*/
|
|
59
|
+
start(): void;
|
|
60
|
+
/** Stop the polling loop. Idempotent. */
|
|
61
|
+
stop(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Run one round: for each watched root, check daemon liveness and respawn
|
|
64
|
+
* if missing. Exposed for tests + manual triggers.
|
|
65
|
+
*/
|
|
66
|
+
tick(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* If no live daemon serves `root`, spawn one. Exposed for tests + manual
|
|
69
|
+
* triggers. Resolves to `true` if a daemon was spawned, `false` if one
|
|
70
|
+
* was already running or no `.codegraph/` is reachable from `root`.
|
|
71
|
+
*/
|
|
72
|
+
checkAndRespawn(root: string): Promise<boolean>;
|
|
73
|
+
/** Spawn a fresh daemon for `root`. Detached; safe to call from any context. */
|
|
74
|
+
spawn(root: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Wait for a daemon's socket to appear at one of the candidate paths under
|
|
77
|
+
* `root`. Used by callers that want a synchronous spawn-then-use flow; not
|
|
78
|
+
* required by the watchdog itself (which only needs liveness, not binding).
|
|
79
|
+
*/
|
|
80
|
+
waitForSocket(root: string, maxRetries?: number): Promise<boolean>;
|
|
81
|
+
/** True if a daemon's pid file at `root` points at a live process. */
|
|
82
|
+
hasLiveDaemon(root: string): boolean;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=daemon-watchdog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-watchdog.d.ts","sourceRoot":"","sources":["../../src/mcp/daemon-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAiCH,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,CAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAE,CAAA;KAAE,KAAK,OAAO,CAAC;CACtL;AAUD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6K;gBAEzL,IAAI,GAAE,qBAA0B;IAU5C,wEAAwE;IACxE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzB,wCAAwC;IACxC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,+CAA+C;IAC/C,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,IAAI,IAAI;IAUb,yCAAyC;IACzC,IAAI,IAAI,IAAI;IAOZ;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAarD,gFAAgF;IAChF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAoC5B;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAyB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBxF,sEAAsE;IACtE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAWrC"}
|