@glubean/scanner 0.2.1 → 0.2.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/dist/contract-extraction.d.ts +189 -13
- package/dist/contract-extraction.d.ts.map +1 -1
- package/dist/contract-extraction.js +279 -89
- package/dist/contract-extraction.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +10 -9
- package/dist/scanner.js.map +1 -1
- package/package.json +1 -1
|
@@ -56,6 +56,33 @@ export interface NormalizedCaseMeta {
|
|
|
56
56
|
schemas?: unknown;
|
|
57
57
|
/** Adapter-defined free-form meta (opaque). */
|
|
58
58
|
meta?: unknown;
|
|
59
|
+
/**
|
|
60
|
+
* World-state precondition — attachment-model §0.9. Adapter threads
|
|
61
|
+
* through from `BaseCaseSpec.given`. Not a contract semantic input,
|
|
62
|
+
* but projected because it changes what `expect` means.
|
|
63
|
+
*/
|
|
64
|
+
given?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Runnability metadata — attachment-model §7.2. `requireAttachment`
|
|
67
|
+
* blocks raw execution (case MUST run via a bootstrap overlay). Lives
|
|
68
|
+
* as a first-class field, not in `extensions`, per proposal.
|
|
69
|
+
*/
|
|
70
|
+
runnability?: {
|
|
71
|
+
requireAttachment?: boolean;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* True iff the case declared `needs`. Authoritative trigger for
|
|
75
|
+
* `rawBypass` in the attachment inventory. Decoupled from `needsSchema`:
|
|
76
|
+
* a case can have needs whose schema isn't projectable.
|
|
77
|
+
*/
|
|
78
|
+
hasNeeds?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* v10 attachment-model — JSON-safe `needs` schema. May be undefined
|
|
81
|
+
* even when `hasNeeds` is true (e.g. opaque custom validator). Use
|
|
82
|
+
* `hasNeeds` for inventory/rawBypass decisions; this field is a
|
|
83
|
+
* decoration for consumers that want the schema shape when available.
|
|
84
|
+
*/
|
|
85
|
+
needsSchema?: unknown;
|
|
59
86
|
}
|
|
60
87
|
/**
|
|
61
88
|
* Protocol-agnostic contract metadata. Mirrors `ExtractedContractProjection`.
|
|
@@ -123,15 +150,100 @@ export interface NormalizedFlowMeta {
|
|
|
123
150
|
setupDynamic?: true;
|
|
124
151
|
steps: NormalizedFlowStep[];
|
|
125
152
|
}
|
|
126
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* Default execution mode for a contract case — runs the case directly with
|
|
155
|
+
* an explicit input (or void when no needs declared). Lives in
|
|
156
|
+
* `attachments[]` until a bootstrap overlay replaces it.
|
|
157
|
+
*/
|
|
158
|
+
export interface NormalizedRawAttachment {
|
|
159
|
+
kind: "raw";
|
|
160
|
+
/** Contract case test id (`${contractId}.${caseKey}`). */
|
|
161
|
+
testId: string;
|
|
162
|
+
contractId: string;
|
|
163
|
+
caseKey: string;
|
|
164
|
+
/** Export name of the contract this case belongs to. */
|
|
165
|
+
exportName: string;
|
|
166
|
+
/** Whether the case declares `runnability.requireAttachment` (raw blocked). */
|
|
167
|
+
runnability?: {
|
|
168
|
+
requireAttachment?: boolean;
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Bootstrap overlay attachment — `contract.bootstrap(ref, spec)` registers
|
|
173
|
+
* a setup-and-cleanup that wraps the case. Replaces the raw entry for the
|
|
174
|
+
* target testId. Body of `run`/`spec` is opaque per attachment-model §4.2.
|
|
175
|
+
*
|
|
176
|
+
* `paramsSchema` is undefined in v0 — structured-form param schema
|
|
177
|
+
* extraction needs the bootstrap registry, deferred to Spike 3.
|
|
178
|
+
*
|
|
179
|
+
* `rawBypass` exposes the explicit-input execution path (§5.1) so the
|
|
180
|
+
* inventory is the single authoritative source for both modes per testId.
|
|
181
|
+
*/
|
|
182
|
+
export interface NormalizedBootstrapOverlayAttachment {
|
|
183
|
+
kind: "bootstrap-overlay";
|
|
184
|
+
testId: string;
|
|
185
|
+
/** The overlay's own export name (NOT the contract's). */
|
|
186
|
+
exportName: string;
|
|
187
|
+
targetRef: {
|
|
188
|
+
contractId: string;
|
|
189
|
+
caseKey: string;
|
|
190
|
+
};
|
|
191
|
+
bootstrap: {
|
|
192
|
+
/** v0: undefined; populated when structured-form `params` schema lands. */
|
|
193
|
+
paramsSchema?: unknown;
|
|
194
|
+
};
|
|
195
|
+
/** Present iff the target case has `needs` (explicit-input bypass available). */
|
|
196
|
+
rawBypass?: {
|
|
197
|
+
available: true;
|
|
198
|
+
/** JSON-safe form of the case's `needs` schema (may be undefined when SDK can't convert). */
|
|
199
|
+
needsSchema: unknown;
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Flow attachment — orchestrates a sequence of contract calls under a
|
|
204
|
+
* single test id. Distinct from raw / overlay (no underlying case).
|
|
205
|
+
*/
|
|
206
|
+
export interface NormalizedFlowAttachment {
|
|
207
|
+
kind: "flow";
|
|
208
|
+
/** Flow test id (`flowId`). */
|
|
209
|
+
testId: string;
|
|
210
|
+
exportName: string;
|
|
211
|
+
flow: NormalizedFlowMeta;
|
|
212
|
+
}
|
|
213
|
+
/** Discriminated attachment entry. One per testId in the inventory. */
|
|
214
|
+
export type NormalizedAttachmentMeta = NormalizedRawAttachment | NormalizedBootstrapOverlayAttachment | NormalizedFlowAttachment;
|
|
215
|
+
/** Result of extracting contracts/attachments from one or more files. */
|
|
127
216
|
export interface ExtractionResult {
|
|
128
217
|
contracts: NormalizedContractMeta[];
|
|
129
|
-
|
|
218
|
+
/**
|
|
219
|
+
* Attachment inventory per attachment-model §7.3. Always present
|
|
220
|
+
* (may be empty). Replaces the previous `flows?: NormalizedFlowMeta[]`
|
|
221
|
+
* top-level field — flows now appear here as `kind: "flow"` entries.
|
|
222
|
+
*/
|
|
223
|
+
attachments: NormalizedAttachmentMeta[];
|
|
130
224
|
errors: Array<{
|
|
131
225
|
file: string;
|
|
132
226
|
error: string;
|
|
133
227
|
}>;
|
|
134
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Check if a value looks like a BootstrapAttachment (v10 attachment model).
|
|
231
|
+
*
|
|
232
|
+
* BootstrapAttachment is the runtime marker returned by `contract.bootstrap()`.
|
|
233
|
+
* Carries `__glubean_type: "bootstrap-attachment"` and `testId`
|
|
234
|
+
* (= `${contractId}.${caseKey}`). Scanner identifies attachments via this
|
|
235
|
+
* marker without importing @glubean/sdk types.
|
|
236
|
+
*
|
|
237
|
+
* v0 attachment projection only surfaces metadata (kind, testId,
|
|
238
|
+
* contractId, caseKey). Bootstrap params schema (structured-form `params`)
|
|
239
|
+
* is not yet exposed on the export object — extracting it requires reading
|
|
240
|
+
* the bootstrap registry, deferred to Spike 3 when the runner input
|
|
241
|
+
* channel ships.
|
|
242
|
+
*/
|
|
243
|
+
export declare function isBootstrapAttachment(val: unknown): val is {
|
|
244
|
+
__glubean_type: "bootstrap-attachment";
|
|
245
|
+
testId: string;
|
|
246
|
+
};
|
|
135
247
|
/**
|
|
136
248
|
* Check if a value looks like a ProtocolContract.
|
|
137
249
|
* ProtocolContract extends Array<Test> and has `_projection` with protocol + target.
|
|
@@ -165,6 +277,7 @@ export declare function isProtocolContract(val: unknown): val is {
|
|
|
165
277
|
meta?: unknown;
|
|
166
278
|
}>;
|
|
167
279
|
};
|
|
280
|
+
_extracted: Record<string, unknown>;
|
|
168
281
|
};
|
|
169
282
|
/**
|
|
170
283
|
* Check if a value looks like a FlowContract.
|
|
@@ -198,29 +311,92 @@ export declare function isFlowContract(val: unknown): val is {
|
|
|
198
311
|
steps: Array<any>;
|
|
199
312
|
};
|
|
200
313
|
};
|
|
314
|
+
export declare function protocolContractToNormalized(value: {
|
|
315
|
+
_projection: any;
|
|
316
|
+
_extracted: any;
|
|
317
|
+
}, exportName: string): NormalizedContractMeta;
|
|
201
318
|
/**
|
|
202
|
-
*
|
|
203
|
-
*
|
|
319
|
+
* Bootstrap overlay marker collected during file walk — pre-synthesis raw
|
|
320
|
+
* material. Not yet a final attachment entry; `synthesizeAttachments`
|
|
321
|
+
* decides whether to keep it (replaces a raw entry) or report duplicate.
|
|
204
322
|
*/
|
|
205
|
-
export
|
|
323
|
+
export interface BootstrapOverlayMarker {
|
|
324
|
+
exportName: string;
|
|
325
|
+
testId: string;
|
|
326
|
+
contractId: string;
|
|
327
|
+
caseKey: string;
|
|
328
|
+
}
|
|
206
329
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
330
|
+
* Convert a BootstrapAttachment runtime export to a marker. Splits
|
|
331
|
+
* `testId` into contractId + caseKey at the LAST dot (contractId can have
|
|
332
|
+
* dots, e.g. `v2.orders.create.success`). Returns null for malformed shapes
|
|
333
|
+
* (no dot, leading dot, trailing dot) — caller skips them.
|
|
334
|
+
*/
|
|
335
|
+
export declare function bootstrapAttachmentToNormalized(attachment: {
|
|
336
|
+
testId: string;
|
|
337
|
+
}, exportName: string): BootstrapOverlayMarker | null;
|
|
338
|
+
/**
|
|
339
|
+
* Synthesize the §7.3 attachment inventory from raw materials.
|
|
340
|
+
*
|
|
341
|
+
* Algorithm (per attachment-model §7.3):
|
|
342
|
+
* 1. Seed: each contract case → `kind: "raw"` entry (testId = `${id}.${key}`).
|
|
343
|
+
* 2. Apply overlays: each marker → REPLACE the raw entry with the same
|
|
344
|
+
* testId by a `kind: "bootstrap-overlay"` entry. Carry `rawBypass`
|
|
345
|
+
* when the target case has `needsSchema` (explicit-input bypass
|
|
346
|
+
* available per §5.1).
|
|
347
|
+
* 3. Duplicate detection: two markers with the same testId → push a
|
|
348
|
+
* load-time error. Keep the first; subsequent overlays ignored.
|
|
349
|
+
* 4. Append flows as `kind: "flow"` entries.
|
|
210
350
|
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
351
|
+
* Overlays whose testId doesn't match any contract case stand alone —
|
|
352
|
+
* we still emit them as `bootstrap-overlay` (no `rawBypass`, no targetRef
|
|
353
|
+
* verification). This keeps cross-file overlay registration discoverable
|
|
354
|
+
* even when the contract module hasn't been scanned yet.
|
|
213
355
|
*/
|
|
214
|
-
export declare function
|
|
356
|
+
export declare function synthesizeAttachments(contracts: NormalizedContractMeta[], flows: NormalizedFlowMeta[], markers: BootstrapOverlayMarker[]): {
|
|
357
|
+
attachments: NormalizedAttachmentMeta[];
|
|
358
|
+
errors: ExtractionResult["errors"];
|
|
359
|
+
};
|
|
215
360
|
/**
|
|
216
|
-
* Extract contracts +
|
|
361
|
+
* Extract contracts + attachments from a single file by dynamic import.
|
|
217
362
|
* One file's import failure does not block others.
|
|
363
|
+
*
|
|
364
|
+
* Per-file synthesis: only this file's contracts/flows/markers are seen.
|
|
365
|
+
* Cross-file overlay replacement (overlay in fileA targets case in fileB)
|
|
366
|
+
* only resolves at project level via `extractContractsFromProject`.
|
|
218
367
|
*/
|
|
219
368
|
export declare function extractContractFromFile(filePath: string): Promise<ExtractionResult>;
|
|
220
369
|
/**
|
|
221
|
-
* Extract contracts +
|
|
370
|
+
* Extract contracts + attachments from all recognized files in a project.
|
|
371
|
+
*
|
|
372
|
+
* Project-level synthesis: collects raw materials (contracts, flows,
|
|
373
|
+
* overlay markers) across all `.contract.` / `.flow.` / `.bootstrap.`
|
|
374
|
+
* files, then runs `synthesizeAttachments` once. This is what enables
|
|
375
|
+
* cross-file overlay replacement (overlay in `signup.bootstrap.ts`
|
|
376
|
+
* replacing the raw entry for a case in `signup.contract.ts`) and
|
|
377
|
+
* project-wide duplicate-overlay detection per §7.3.
|
|
222
378
|
*/
|
|
223
379
|
export declare function extractContractsFromProject(dir: string): Promise<ExtractionResult>;
|
|
380
|
+
/**
|
|
381
|
+
* Eagerly import every `*.bootstrap.{ts,js,mjs}` file under `dir` so
|
|
382
|
+
* `contract.bootstrap()` calls execute during module evaluation and
|
|
383
|
+
* register their overlays in the SDK's bootstrap registry.
|
|
384
|
+
*
|
|
385
|
+
* Idempotent: subsequent calls re-import the same module URLs; Node's
|
|
386
|
+
* ESM module cache short-circuits unless the file's mtime changed (the
|
|
387
|
+
* same cache-busting strategy `collectRawMaterials` uses).
|
|
388
|
+
*
|
|
389
|
+
* Errors: per-file failures are returned; the caller decides whether
|
|
390
|
+
* to abort or continue. We return errors instead of throwing because a
|
|
391
|
+
* single broken bootstrap file shouldn't kill an otherwise-working run.
|
|
392
|
+
*/
|
|
393
|
+
export declare function loadProjectOverlays(dir: string): Promise<{
|
|
394
|
+
loaded: string[];
|
|
395
|
+
errors: Array<{
|
|
396
|
+
file: string;
|
|
397
|
+
error: string;
|
|
398
|
+
}>;
|
|
399
|
+
}>;
|
|
224
400
|
/** @deprecated Removed in v0.2 — HTTP now goes through isProtocolContract. */
|
|
225
401
|
export declare function isHttpContract(_val: unknown): never;
|
|
226
402
|
//# sourceMappingURL=contract-extraction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-extraction.d.ts","sourceRoot":"","sources":["../src/contract-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAEjE,qBAAqB;AACrB,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D,kCAAkC;AAClC,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAElE,+BAA+B;AAC/B,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"contract-extraction.d.ts","sourceRoot":"","sources":["../src/contract-extraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,26 @@ import { readdirSync, statSync } from "node:fs";
|
|
|
21
21
|
// =============================================================================
|
|
22
22
|
// Duck typing
|
|
23
23
|
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Check if a value looks like a BootstrapAttachment (v10 attachment model).
|
|
26
|
+
*
|
|
27
|
+
* BootstrapAttachment is the runtime marker returned by `contract.bootstrap()`.
|
|
28
|
+
* Carries `__glubean_type: "bootstrap-attachment"` and `testId`
|
|
29
|
+
* (= `${contractId}.${caseKey}`). Scanner identifies attachments via this
|
|
30
|
+
* marker without importing @glubean/sdk types.
|
|
31
|
+
*
|
|
32
|
+
* v0 attachment projection only surfaces metadata (kind, testId,
|
|
33
|
+
* contractId, caseKey). Bootstrap params schema (structured-form `params`)
|
|
34
|
+
* is not yet exposed on the export object — extracting it requires reading
|
|
35
|
+
* the bootstrap registry, deferred to Spike 3 when the runner input
|
|
36
|
+
* channel ships.
|
|
37
|
+
*/
|
|
38
|
+
export function isBootstrapAttachment(val) {
|
|
39
|
+
return (typeof val === "object" &&
|
|
40
|
+
val !== null &&
|
|
41
|
+
val.__glubean_type === "bootstrap-attachment" &&
|
|
42
|
+
typeof val.testId === "string");
|
|
43
|
+
}
|
|
24
44
|
/**
|
|
25
45
|
* Check if a value looks like a ProtocolContract.
|
|
26
46
|
* ProtocolContract extends Array<Test> and has `_projection` with protocol + target.
|
|
@@ -32,7 +52,9 @@ export function isProtocolContract(val) {
|
|
|
32
52
|
val._projection !== null &&
|
|
33
53
|
typeof val._projection.protocol === "string" &&
|
|
34
54
|
typeof val._projection.target === "string" &&
|
|
35
|
-
val._projection.protocol !== "flow"
|
|
55
|
+
val._projection.protocol !== "flow" &&
|
|
56
|
+
typeof val._extracted === "object" &&
|
|
57
|
+
val._extracted !== null);
|
|
36
58
|
}
|
|
37
59
|
/**
|
|
38
60
|
* Check if a value looks like a FlowContract.
|
|
@@ -52,75 +74,30 @@ export function isFlowContract(val) {
|
|
|
52
74
|
val._flow.protocol === "flow");
|
|
53
75
|
}
|
|
54
76
|
// =============================================================================
|
|
55
|
-
// Schema conversion — embedded .toJSONSchema() recursive walk
|
|
56
|
-
// =============================================================================
|
|
57
|
-
/**
|
|
58
|
-
* Convert a live schema (Zod/Valibot/etc.) to a JSON Schema plain object.
|
|
59
|
-
* Falls back to passing through or null.
|
|
60
|
-
*/
|
|
61
|
-
export function schemaToJsonSchema(schema) {
|
|
62
|
-
if (!schema || typeof schema !== "object")
|
|
63
|
-
return null;
|
|
64
|
-
try {
|
|
65
|
-
if (typeof schema.toJSONSchema === "function") {
|
|
66
|
-
return schema.toJSONSchema();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
70
|
-
console.error(`[glubean:scanner] toJSONSchema failed: ${err instanceof Error ? err.message : err}`);
|
|
71
|
-
}
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Recursively walk a value converting any embedded Zod/valibot schemas
|
|
76
|
-
* (detected by `.toJSONSchema()` method) to plain JSON Schema objects.
|
|
77
|
-
* Other values pass through as-is.
|
|
78
|
-
*
|
|
79
|
-
* Used by scanner to produce JSON-safe output even when adapter didn't run
|
|
80
|
-
* `.normalize()` (e.g. when we read `_projection` directly).
|
|
81
|
-
*/
|
|
82
|
-
export function deepNormalizeSchemas(value, depth = 0) {
|
|
83
|
-
if (depth > 20)
|
|
84
|
-
return value;
|
|
85
|
-
if (value == null)
|
|
86
|
-
return value;
|
|
87
|
-
if (typeof value !== "object")
|
|
88
|
-
return value;
|
|
89
|
-
// Has toJSONSchema? Convert it.
|
|
90
|
-
if (typeof value.toJSONSchema === "function") {
|
|
91
|
-
const converted = schemaToJsonSchema(value);
|
|
92
|
-
if (converted != null)
|
|
93
|
-
return converted;
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
if (Array.isArray(value)) {
|
|
97
|
-
return value.map((v) => deepNormalizeSchemas(v, depth + 1));
|
|
98
|
-
}
|
|
99
|
-
const out = {};
|
|
100
|
-
for (const [k, v] of Object.entries(value)) {
|
|
101
|
-
out[k] = deepNormalizeSchemas(v, depth + 1);
|
|
102
|
-
}
|
|
103
|
-
return out;
|
|
104
|
-
}
|
|
105
|
-
// =============================================================================
|
|
106
77
|
// Mapping: projection → NormalizedContractMeta
|
|
78
|
+
//
|
|
79
|
+
// Reads the adapter-produced `_extracted` (JSON-safe form). The SDK's
|
|
80
|
+
// `dispatchContract` populates this field unconditionally by calling
|
|
81
|
+
// `adapter.normalize(_projection)` at construction time. Adapter is the
|
|
82
|
+
// authoritative source of protocol-specific normalization (which fields
|
|
83
|
+
// are schemas vs literal examples vs protocol metadata that must survive).
|
|
107
84
|
// =============================================================================
|
|
108
|
-
function protocolContractToNormalized(value, exportName) {
|
|
109
|
-
const
|
|
85
|
+
export function protocolContractToNormalized(value, exportName) {
|
|
86
|
+
const ex = value._extracted;
|
|
110
87
|
return {
|
|
111
|
-
id:
|
|
88
|
+
id: ex.id ?? exportName,
|
|
112
89
|
exportName,
|
|
113
|
-
protocol:
|
|
114
|
-
target:
|
|
115
|
-
description:
|
|
116
|
-
feature:
|
|
117
|
-
instanceName:
|
|
118
|
-
tags:
|
|
119
|
-
deprecated:
|
|
120
|
-
extensions:
|
|
121
|
-
schemas:
|
|
122
|
-
meta:
|
|
123
|
-
cases: (
|
|
90
|
+
protocol: ex.protocol,
|
|
91
|
+
target: ex.target,
|
|
92
|
+
description: ex.description,
|
|
93
|
+
feature: ex.feature,
|
|
94
|
+
instanceName: ex.instanceName,
|
|
95
|
+
tags: ex.tags,
|
|
96
|
+
deprecated: ex.deprecated,
|
|
97
|
+
extensions: ex.extensions,
|
|
98
|
+
schemas: ex.schemas,
|
|
99
|
+
meta: ex.meta,
|
|
100
|
+
cases: (ex.cases ?? []).map((c) => ({
|
|
124
101
|
key: c.key,
|
|
125
102
|
description: c.description,
|
|
126
103
|
lifecycle: c.lifecycle ?? "active",
|
|
@@ -131,8 +108,12 @@ function protocolContractToNormalized(value, exportName) {
|
|
|
131
108
|
defaultRun: c.defaultRun,
|
|
132
109
|
tags: c.tags,
|
|
133
110
|
extensions: c.extensions,
|
|
134
|
-
schemas: c.schemas
|
|
111
|
+
schemas: c.schemas,
|
|
135
112
|
meta: c.meta,
|
|
113
|
+
given: c.given,
|
|
114
|
+
runnability: c.runnability,
|
|
115
|
+
hasNeeds: c.hasNeeds,
|
|
116
|
+
needsSchema: c.needsSchema,
|
|
136
117
|
})),
|
|
137
118
|
};
|
|
138
119
|
}
|
|
@@ -223,20 +204,133 @@ function autoBuildFlowBuilder(val) {
|
|
|
223
204
|
}
|
|
224
205
|
return val;
|
|
225
206
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
207
|
+
/**
|
|
208
|
+
* Convert a BootstrapAttachment runtime export to a marker. Splits
|
|
209
|
+
* `testId` into contractId + caseKey at the LAST dot (contractId can have
|
|
210
|
+
* dots, e.g. `v2.orders.create.success`). Returns null for malformed shapes
|
|
211
|
+
* (no dot, leading dot, trailing dot) — caller skips them.
|
|
212
|
+
*/
|
|
213
|
+
export function bootstrapAttachmentToNormalized(attachment, exportName) {
|
|
214
|
+
const dotIndex = attachment.testId.lastIndexOf(".");
|
|
215
|
+
if (dotIndex <= 0 || dotIndex === attachment.testId.length - 1) {
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
const contractId = attachment.testId.slice(0, dotIndex);
|
|
219
|
+
const caseKey = attachment.testId.slice(dotIndex + 1);
|
|
220
|
+
return {
|
|
221
|
+
exportName,
|
|
222
|
+
testId: attachment.testId,
|
|
223
|
+
contractId,
|
|
224
|
+
caseKey,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Synthesize the §7.3 attachment inventory from raw materials.
|
|
229
|
+
*
|
|
230
|
+
* Algorithm (per attachment-model §7.3):
|
|
231
|
+
* 1. Seed: each contract case → `kind: "raw"` entry (testId = `${id}.${key}`).
|
|
232
|
+
* 2. Apply overlays: each marker → REPLACE the raw entry with the same
|
|
233
|
+
* testId by a `kind: "bootstrap-overlay"` entry. Carry `rawBypass`
|
|
234
|
+
* when the target case has `needsSchema` (explicit-input bypass
|
|
235
|
+
* available per §5.1).
|
|
236
|
+
* 3. Duplicate detection: two markers with the same testId → push a
|
|
237
|
+
* load-time error. Keep the first; subsequent overlays ignored.
|
|
238
|
+
* 4. Append flows as `kind: "flow"` entries.
|
|
239
|
+
*
|
|
240
|
+
* Overlays whose testId doesn't match any contract case stand alone —
|
|
241
|
+
* we still emit them as `bootstrap-overlay` (no `rawBypass`, no targetRef
|
|
242
|
+
* verification). This keeps cross-file overlay registration discoverable
|
|
243
|
+
* even when the contract module hasn't been scanned yet.
|
|
244
|
+
*/
|
|
245
|
+
export function synthesizeAttachments(contracts, flows, markers) {
|
|
246
|
+
const errors = [];
|
|
247
|
+
// Index cases by testId for O(1) lookup during overlay application.
|
|
248
|
+
const caseByTestId = new Map();
|
|
249
|
+
for (const contract of contracts) {
|
|
250
|
+
for (const c of contract.cases) {
|
|
251
|
+
caseByTestId.set(`${contract.id}.${c.key}`, { contract, case: c });
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// Step 1: seed raw entries. Reads `runnability.requireAttachment`
|
|
255
|
+
// directly from the case projection (post-Phase-2f-fix: the adapter
|
|
256
|
+
// now threads it as a first-class field, no longer hidden under
|
|
257
|
+
// `extensions`).
|
|
258
|
+
const byTestId = new Map();
|
|
259
|
+
for (const [testId, { contract, case: c }] of caseByTestId) {
|
|
260
|
+
const requireAttachment = c.runnability?.requireAttachment;
|
|
261
|
+
byTestId.set(testId, {
|
|
262
|
+
kind: "raw",
|
|
263
|
+
testId,
|
|
264
|
+
contractId: contract.id,
|
|
265
|
+
caseKey: c.key,
|
|
266
|
+
exportName: contract.exportName,
|
|
267
|
+
...(requireAttachment !== undefined
|
|
268
|
+
? { runnability: { requireAttachment } }
|
|
269
|
+
: {}),
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
// Step 2 + 3: apply overlays, detect duplicates.
|
|
273
|
+
const seenOverlayIds = new Set();
|
|
274
|
+
for (const marker of markers) {
|
|
275
|
+
if (seenOverlayIds.has(marker.testId)) {
|
|
276
|
+
errors.push({
|
|
277
|
+
file: marker.exportName,
|
|
278
|
+
error: `Duplicate bootstrap overlay for testId "${marker.testId}" (export "${marker.exportName}"). Per attachment-model §7.3 testId uniqueness is enforced.`,
|
|
279
|
+
});
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
seenOverlayIds.add(marker.testId);
|
|
283
|
+
// rawBypass is available iff the target case declared `needs`
|
|
284
|
+
// (hasNeeds === true). This is decoupled from needsSchema projection:
|
|
285
|
+
// a case with a custom safeParse-only validator still satisfies
|
|
286
|
+
// "explicit input can run the raw case" even when the JSON Schema
|
|
287
|
+
// projection is null. If the schema projected, we decorate the
|
|
288
|
+
// bypass slot with it; otherwise bypass is still advertised.
|
|
289
|
+
const target = caseByTestId.get(marker.testId);
|
|
290
|
+
const overlay = {
|
|
291
|
+
kind: "bootstrap-overlay",
|
|
292
|
+
testId: marker.testId,
|
|
293
|
+
exportName: marker.exportName,
|
|
294
|
+
targetRef: { contractId: marker.contractId, caseKey: marker.caseKey },
|
|
295
|
+
bootstrap: {},
|
|
296
|
+
...(target?.case.hasNeeds
|
|
297
|
+
? {
|
|
298
|
+
rawBypass: {
|
|
299
|
+
available: true,
|
|
300
|
+
needsSchema: target.case.needsSchema,
|
|
301
|
+
},
|
|
302
|
+
}
|
|
303
|
+
: {}),
|
|
304
|
+
};
|
|
305
|
+
byTestId.set(marker.testId, overlay);
|
|
306
|
+
}
|
|
307
|
+
// Step 4: append flows.
|
|
308
|
+
const attachments = Array.from(byTestId.values());
|
|
309
|
+
for (const flow of flows) {
|
|
310
|
+
attachments.push({
|
|
311
|
+
kind: "flow",
|
|
312
|
+
testId: flow.id,
|
|
313
|
+
exportName: flow.exportName,
|
|
314
|
+
flow,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return { attachments, errors };
|
|
318
|
+
}
|
|
319
|
+
// Per-path mtime cache used by collectRawMaterials() to decide when to
|
|
320
|
+
// bust Node's ESM module cache on re-import. See the comment inside that
|
|
321
|
+
// function for the full reasoning.
|
|
232
322
|
const _importMtimeCache = new Map();
|
|
233
323
|
/**
|
|
234
|
-
*
|
|
235
|
-
*
|
|
324
|
+
* Internal: dynamically import a file and collect raw materials
|
|
325
|
+
* (contracts / flows / overlay markers / errors) without synthesis.
|
|
326
|
+
* Both `extractContractFromFile` and `extractContractsFromProject` use
|
|
327
|
+
* this — the former synthesizes per-file, the latter synthesizes
|
|
328
|
+
* project-wide so cross-file overlay replacement and dedup work.
|
|
236
329
|
*/
|
|
237
|
-
|
|
330
|
+
async function collectRawMaterials(filePath) {
|
|
238
331
|
const contracts = [];
|
|
239
332
|
const flows = [];
|
|
333
|
+
const markers = [];
|
|
240
334
|
const errors = [];
|
|
241
335
|
const absolutePath = resolve(filePath);
|
|
242
336
|
try {
|
|
@@ -285,19 +379,47 @@ export async function extractContractFromFile(filePath) {
|
|
|
285
379
|
else if (isProtocolContract(value)) {
|
|
286
380
|
contracts.push(protocolContractToNormalized(value, exportName));
|
|
287
381
|
}
|
|
382
|
+
else if (isBootstrapAttachment(value)) {
|
|
383
|
+
const marker = bootstrapAttachmentToNormalized(value, exportName);
|
|
384
|
+
if (marker)
|
|
385
|
+
markers.push(marker);
|
|
386
|
+
}
|
|
288
387
|
}
|
|
289
388
|
}
|
|
290
389
|
catch (err) {
|
|
291
390
|
const message = err instanceof Error ? err.message : String(err);
|
|
292
391
|
errors.push({ file: absolutePath, error: message });
|
|
293
392
|
}
|
|
294
|
-
return { contracts, flows
|
|
393
|
+
return { contracts, flows, markers, errors };
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Extract contracts + attachments from a single file by dynamic import.
|
|
397
|
+
* One file's import failure does not block others.
|
|
398
|
+
*
|
|
399
|
+
* Per-file synthesis: only this file's contracts/flows/markers are seen.
|
|
400
|
+
* Cross-file overlay replacement (overlay in fileA targets case in fileB)
|
|
401
|
+
* only resolves at project level via `extractContractsFromProject`.
|
|
402
|
+
*/
|
|
403
|
+
export async function extractContractFromFile(filePath) {
|
|
404
|
+
const raw = await collectRawMaterials(filePath);
|
|
405
|
+
const synth = synthesizeAttachments(raw.contracts, raw.flows, raw.markers);
|
|
406
|
+
return {
|
|
407
|
+
contracts: raw.contracts,
|
|
408
|
+
attachments: synth.attachments,
|
|
409
|
+
errors: [...raw.errors, ...synth.errors],
|
|
410
|
+
};
|
|
295
411
|
}
|
|
296
412
|
// =============================================================================
|
|
297
413
|
// Project-level extraction
|
|
298
414
|
// =============================================================================
|
|
299
415
|
/**
|
|
300
|
-
* Find all .contract.{ts,js,mjs}
|
|
416
|
+
* Find all .contract.{ts,js,mjs}, .flow.{ts,js,mjs}, and
|
|
417
|
+
* .bootstrap.{ts,js,mjs} files in a directory tree.
|
|
418
|
+
*
|
|
419
|
+
* v10 attachment model §7.4 mandates eager loading of `.bootstrap.` files
|
|
420
|
+
* so overlay registrations fire during module evaluation. Without this,
|
|
421
|
+
* filtered runs (CLI / MCP) could miss overlay registrations and silently
|
|
422
|
+
* fall through to the no-overlay path.
|
|
301
423
|
*/
|
|
302
424
|
function findContractAndFlowFiles(dir) {
|
|
303
425
|
const files = [];
|
|
@@ -310,7 +432,9 @@ function findContractAndFlowFiles(dir) {
|
|
|
310
432
|
walk(full);
|
|
311
433
|
else {
|
|
312
434
|
const base = basename(entry);
|
|
313
|
-
if (base.includes(".contract.") ||
|
|
435
|
+
if (base.includes(".contract.") ||
|
|
436
|
+
base.includes(".flow.") ||
|
|
437
|
+
base.includes(".bootstrap.")) {
|
|
314
438
|
files.push(full);
|
|
315
439
|
}
|
|
316
440
|
}
|
|
@@ -320,29 +444,95 @@ function findContractAndFlowFiles(dir) {
|
|
|
320
444
|
return files;
|
|
321
445
|
}
|
|
322
446
|
/**
|
|
323
|
-
* Extract contracts +
|
|
447
|
+
* Extract contracts + attachments from all recognized files in a project.
|
|
448
|
+
*
|
|
449
|
+
* Project-level synthesis: collects raw materials (contracts, flows,
|
|
450
|
+
* overlay markers) across all `.contract.` / `.flow.` / `.bootstrap.`
|
|
451
|
+
* files, then runs `synthesizeAttachments` once. This is what enables
|
|
452
|
+
* cross-file overlay replacement (overlay in `signup.bootstrap.ts`
|
|
453
|
+
* replacing the raw entry for a case in `signup.contract.ts`) and
|
|
454
|
+
* project-wide duplicate-overlay detection per §7.3.
|
|
324
455
|
*/
|
|
325
456
|
export async function extractContractsFromProject(dir) {
|
|
326
457
|
const files = findContractAndFlowFiles(dir);
|
|
327
|
-
if (files.length === 0)
|
|
328
|
-
return { contracts: [], errors: [] };
|
|
458
|
+
if (files.length === 0) {
|
|
459
|
+
return { contracts: [], attachments: [], errors: [] };
|
|
460
|
+
}
|
|
329
461
|
const allContracts = [];
|
|
330
462
|
const allFlows = [];
|
|
463
|
+
const allMarkers = [];
|
|
331
464
|
const allErrors = [];
|
|
332
465
|
for (const filePath of files) {
|
|
333
|
-
const
|
|
334
|
-
allContracts.push(...contracts);
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
allErrors.push(...errors);
|
|
466
|
+
const raw = await collectRawMaterials(filePath);
|
|
467
|
+
allContracts.push(...raw.contracts);
|
|
468
|
+
allFlows.push(...raw.flows);
|
|
469
|
+
allMarkers.push(...raw.markers);
|
|
470
|
+
allErrors.push(...raw.errors);
|
|
338
471
|
}
|
|
472
|
+
const synth = synthesizeAttachments(allContracts, allFlows, allMarkers);
|
|
339
473
|
return {
|
|
340
474
|
contracts: allContracts,
|
|
341
|
-
|
|
342
|
-
errors: allErrors,
|
|
475
|
+
attachments: synth.attachments,
|
|
476
|
+
errors: [...allErrors, ...synth.errors],
|
|
343
477
|
};
|
|
344
478
|
}
|
|
345
479
|
// =============================================================================
|
|
480
|
+
// Eager overlay loading — attachment-model §7.4
|
|
481
|
+
//
|
|
482
|
+
// "Runner MUST eagerly load all *.contract.ts and *.bootstrap.ts files in
|
|
483
|
+
// the contracts root before resolving attachments. Overlay registration is
|
|
484
|
+
// a semantic input to runnable inventory; making it depend on import path
|
|
485
|
+
// leads to nondeterministic runs."
|
|
486
|
+
//
|
|
487
|
+
// CLI/MCP/ProjectRunner call this before any test runs so a filtered run
|
|
488
|
+
// (e.g. `glubean run path/to/single.contract.ts`) still picks up sibling
|
|
489
|
+
// `*.bootstrap.ts` overlay registrations.
|
|
490
|
+
// =============================================================================
|
|
491
|
+
/**
|
|
492
|
+
* Eagerly import every `*.bootstrap.{ts,js,mjs}` file under `dir` so
|
|
493
|
+
* `contract.bootstrap()` calls execute during module evaluation and
|
|
494
|
+
* register their overlays in the SDK's bootstrap registry.
|
|
495
|
+
*
|
|
496
|
+
* Idempotent: subsequent calls re-import the same module URLs; Node's
|
|
497
|
+
* ESM module cache short-circuits unless the file's mtime changed (the
|
|
498
|
+
* same cache-busting strategy `collectRawMaterials` uses).
|
|
499
|
+
*
|
|
500
|
+
* Errors: per-file failures are returned; the caller decides whether
|
|
501
|
+
* to abort or continue. We return errors instead of throwing because a
|
|
502
|
+
* single broken bootstrap file shouldn't kill an otherwise-working run.
|
|
503
|
+
*/
|
|
504
|
+
export async function loadProjectOverlays(dir) {
|
|
505
|
+
const allFiles = findContractAndFlowFiles(dir);
|
|
506
|
+
const bootstrapFiles = allFiles.filter((f) => basename(f).includes(".bootstrap."));
|
|
507
|
+
const loaded = [];
|
|
508
|
+
const errors = [];
|
|
509
|
+
for (const filePath of bootstrapFiles) {
|
|
510
|
+
const absolutePath = resolve(filePath);
|
|
511
|
+
try {
|
|
512
|
+
let mtimeKey = 0;
|
|
513
|
+
try {
|
|
514
|
+
mtimeKey = statSync(absolutePath).mtimeMs;
|
|
515
|
+
}
|
|
516
|
+
catch {
|
|
517
|
+
// fall through with mtimeKey=0
|
|
518
|
+
}
|
|
519
|
+
const baseUrl = pathToFileURL(absolutePath).href;
|
|
520
|
+
const lastSeen = _importMtimeCache.get(absolutePath);
|
|
521
|
+
const importUrl = lastSeen === undefined || lastSeen === mtimeKey
|
|
522
|
+
? baseUrl
|
|
523
|
+
: `${baseUrl}?t=${mtimeKey}`;
|
|
524
|
+
_importMtimeCache.set(absolutePath, mtimeKey);
|
|
525
|
+
await import(importUrl);
|
|
526
|
+
loaded.push(absolutePath);
|
|
527
|
+
}
|
|
528
|
+
catch (err) {
|
|
529
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
530
|
+
errors.push({ file: absolutePath, error: message });
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
return { loaded, errors };
|
|
534
|
+
}
|
|
535
|
+
// =============================================================================
|
|
346
536
|
// Backward-compat: isHttpContract — removed permanently in v0.2.
|
|
347
537
|
// =============================================================================
|
|
348
538
|
/** @deprecated Removed in v0.2 — HTTP now goes through isProtocolContract. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-extraction.js","sourceRoot":"","sources":["../src/contract-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAoIhD,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IA6B7C,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAClB,OAAQ,GAAW,CAAC,WAAW,KAAK,QAAQ;QAC3C,GAAW,CAAC,WAAW,KAAK,IAAI;QACjC,OAAQ,GAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ;QACrD,OAAQ,GAAW,CAAC,WAAW,CAAC,MAAM,KAAK,QAAQ;QAClD,GAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM,CAC7C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IAqBzC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAClB,OAAQ,GAAW,CAAC,KAAK,KAAK,QAAQ;QACrC,GAAW,CAAC,KAAK,KAAK,IAAI;QAC1B,GAAW,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CACvC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,8DAA8D;AAC9D,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC;QACH,IAAI,OAAQ,MAAc,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACvD,OAAQ,MAAc,CAAC,YAAY,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IAC5D,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,gCAAgC;IAChC,IAAI,OAAQ,KAAa,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,+CAA+C;AAC/C,gFAAgF;AAEhF,SAAS,4BAA4B,CACnC,KAA2B,EAC3B,UAAkB;IAElB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;IAC/B,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU;QACzB,UAAU;QACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9E,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAsB,EAAE,CAAC,CAAC;YAC7D,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,SAAS,EAAG,CAAC,CAAC,SAA2B,IAAI,QAAQ;YACrD,QAAQ,EAAG,CAAC,CAAC,QAAyB,IAAI,SAAS;YACnD,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,QAAQ,EAAE,CAAC,CAAC,QAAoC;YAChD,UAAU,EAAE,CAAC,CAAC,UAAwC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACxE,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAuC,EACvC,UAAkB;IAElB,uEAAuE;IACvE,wEAAwE;IACxE,mEAAmE;IACnE,0DAA0D;IAC1D,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,UAAU;YACV,QAAQ,EAAE,MAAM;YAChB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAsB,EAAE;gBACzD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO;wBACL,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;wBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;qBACvB,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;oBAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;oBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;oBAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;oBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,8DAA8D;IAC9D,mEAAmE;IACnE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,UAAU;QACV,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACxC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAsB,EAAE;YACxD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAClE,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE;gBAClE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE;gBAC1C,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE;gBAC/B,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE;aAC5B,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,GAAY;IACxC,IACE,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACX,GAAW,CAAC,cAAc,KAAK,cAAc;QAC9C,OAAQ,GAAW,CAAC,KAAK,KAAK,UAAU,EACxC,CAAC;QACD,IAAI,CAAC;YACH,OAAQ,GAA4B,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF,wEAAwE;AACxE,uEAAuE;AACvE,wCAAwC;AACxC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAgB;IAEhB,MAAM,SAAS,GAA6B,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,MAAM,MAAM,GAA+B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,wEAAwE;QACxE,gEAAgE;QAChE,uEAAuE;QACvE,sEAAsE;QACtE,4DAA4D;QAC5D,uEAAuE;QACvE,kEAAkE;QAClE,gEAAgE;QAChE,EAAE;QACF,iEAAiE;QACjE,oEAAoE;QACpE,iEAAiE;QACjE,uEAAuE;QACvE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;QACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,SAAiB,CAAC;QACtB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACpD,6CAA6C;YAC7C,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,SAAS,GAAG,GAAG,OAAO,MAAM,QAAQ,EAAE,CAAC;QACzC,CAAC;QACD,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,2DAA2D;YAC3D,iEAAiE;YACjE,mEAAmE;YACnE,yDAAyD;YACzD,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;AAC5E,CAAC;AAED,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;GAEG;AACH,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAChE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxC,CAAC;gBACJ,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAW;IAEX,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE7D,MAAM,YAAY,GAA6B,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,MAAM,SAAS,GAA+B,EAAE,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC7E,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAChC,IAAI,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACnC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACjD,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,iEAAiE;AACjE,gFAAgF;AAEhF,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,IAAI,KAAK,CACb,2EAA2E;QACzE,+DAA+D,CAClE,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract-extraction.js","sourceRoot":"","sources":["../src/contract-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAuPhD,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAIhD,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACX,GAA+B,CAAC,cAAc,KAAK,sBAAsB;QAC1E,OAAQ,GAA+B,CAAC,MAAM,KAAK,QAAQ,CAC5D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAgC7C,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAClB,OAAQ,GAAW,CAAC,WAAW,KAAK,QAAQ;QAC3C,GAAW,CAAC,WAAW,KAAK,IAAI;QACjC,OAAQ,GAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ;QACrD,OAAQ,GAAW,CAAC,WAAW,CAAC,MAAM,KAAK,QAAQ;QAClD,GAAW,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM;QAC5C,OAAQ,GAAW,CAAC,UAAU,KAAK,QAAQ;QAC1C,GAAW,CAAC,UAAU,KAAK,IAAI,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IAqBzC,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAClB,OAAQ,GAAW,CAAC,KAAK,KAAK,QAAQ;QACrC,GAAW,CAAC,KAAK,KAAK,IAAI;QAC1B,GAAW,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CACvC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,wEAAwE;AACxE,wEAAwE;AACxE,2EAA2E;AAC3E,gFAAgF;AAEhF,MAAM,UAAU,4BAA4B,CAC1C,KAA4C,EAC5C,UAAkB;IAElB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;IAC5B,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,UAAU;QACvB,UAAU;QACV,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAsB,EAAE,CAAC,CAAC;YAC3D,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,SAAS,EAAG,CAAC,CAAC,SAA2B,IAAI,QAAQ;YACrD,QAAQ,EAAG,CAAC,CAAC,QAAyB,IAAI,SAAS;YACnD,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,QAAQ,EAAE,CAAC,CAAC,QAAoC;YAChD,UAAU,EAAE,CAAC,CAAC,UAAwC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAuC,EACvC,UAAkB;IAElB,uEAAuE;IACvE,wEAAwE;IACxE,mEAAmE;IACnE,0DAA0D;IAC1D,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,UAAU;YACV,QAAQ,EAAE,MAAM;YAChB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAsB,EAAE;gBACzD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO;wBACL,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;wBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;qBACvB,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;oBAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;oBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;oBAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;oBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,8DAA8D;IAC9D,mEAAmE;IACnE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,UAAU;QACV,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACxC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAsB,EAAE;YACxD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAClE,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE;gBAClE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE;gBAC1C,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE;gBAC/B,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE;aAC5B,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,GAAY;IACxC,IACE,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACX,GAAW,CAAC,cAAc,KAAK,cAAc;QAC9C,OAAQ,GAAW,CAAC,KAAK,KAAK,UAAU,EACxC,CAAC;QACD,IAAI,CAAC;YACH,OAAQ,GAA4B,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAC7C,UAA8B,EAC9B,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,KAAK,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO;QACL,UAAU;QACV,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,UAAU;QACV,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAmC,EACnC,KAA2B,EAC3B,OAAiC;IAEjC,MAAM,MAAM,GAA+B,EAAE,CAAC;IAE9C,oEAAoE;IACpE,MAAM,YAAY,GAAG,IAAI,GAAG,EAGzB,CAAC;IACJ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC/B,YAAY,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,oEAAoE;IACpE,gEAAgE;IAChE,iBAAiB;IACjB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC7D,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;QAC3D,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAC3D,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,KAAK;YACX,MAAM;YACN,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,OAAO,EAAE,CAAC,CAAC,GAAG;YACd,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,GAAG,CAAC,iBAAiB,KAAK,SAAS;gBACjC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,EAAE;gBACxC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM,CAAC,UAAU;gBACvB,KAAK,EAAE,2CAA2C,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,UAAU,8DAA8D;aAC7J,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElC,8DAA8D;QAC9D,sEAAsE;QACtE,gEAAgE;QAChE,kEAAkE;QAClE,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAyC;YACpD,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACrE,SAAS,EAAE,EAAE;YACb,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ;gBACvB,CAAC,CAAC;oBACE,SAAS,EAAE;wBACT,SAAS,EAAE,IAAa;wBACxB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;qBACrC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,uEAAuE;AACvE,yEAAyE;AACzE,mCAAmC;AACnC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AASpD;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACjD,MAAM,SAAS,GAA6B,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,MAAM,MAAM,GAA+B,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,wEAAwE;QACxE,gEAAgE;QAChE,uEAAuE;QACvE,sEAAsE;QACtE,4DAA4D;QAC5D,uEAAuE;QACvE,kEAAkE;QAClE,gEAAgE;QAChE,EAAE;QACF,iEAAiE;QACjE,oEAAoE;QACpE,iEAAiE;QACjE,uEAAuE;QACvE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;QACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,SAAiB,CAAC;QACtB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACpD,6CAA6C;YAC7C,SAAS,GAAG,OAAO,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,SAAS,GAAG,GAAG,OAAO,MAAM,QAAQ,EAAE,CAAC;QACzC,CAAC;QACD,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,2DAA2D;YAC3D,iEAAiE;YACjE,mEAAmE;YACnE,yDAAyD;YACzD,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAClE,IAAI,MAAM;oBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAgB;IAEhB,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3E,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAChE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBACxC,CAAC;gBACJ,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7B,IACE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC5B,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAW;IAEX,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,YAAY,GAA6B,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,MAAM,SAAS,GAA+B,EAAE,CAAC;IAEjD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAChD,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAExE,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,gDAAgD;AAChD,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,mCAAmC;AACnC,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,0CAA0C;AAC1C,gFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW;IAEX,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC;gBACH,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;YACD,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,SAAS,GACb,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ;gBAC7C,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,GAAG,OAAO,MAAM,QAAQ,EAAE,CAAC;YACjC,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC9C,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,gFAAgF;AAChF,iEAAiE;AACjE,gFAAgF;AAEhF,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,IAAI,KAAK,CACb,2EAA2E;QACzE,+DAA+D,CAClE,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
* ```ts
|
|
29
29
|
* import { extractContractsFromProject } from "@glubean/scanner";
|
|
30
30
|
*
|
|
31
|
-
* const { contracts,
|
|
31
|
+
* const { contracts, attachments, errors } = await extractContractsFromProject(".");
|
|
32
|
+
* // Filter by kind to recover the legacy "flows only" view:
|
|
33
|
+
* const flows = attachments.filter((a) => a.kind === "flow").map((a) => a.flow);
|
|
32
34
|
* ```
|
|
33
35
|
*/
|
|
34
36
|
export { isSpecVersionSupported, SPEC_VERSION, SUPPORTED_SPEC_VERSIONS } from "./spec.js";
|
|
@@ -37,9 +39,8 @@ export { Scanner } from "./scanner.js";
|
|
|
37
39
|
export type { FileSystem, Hasher, MetadataExtractor } from "./scanner.js";
|
|
38
40
|
export { createStaticExtractor, extractAliasesFromSource, extractContractCases, extractFromSource, isGlubeanFile } from "./extractor-static.js";
|
|
39
41
|
export type { ContractStaticMeta, ContractCaseStaticMeta } from "./extractor-static.js";
|
|
40
|
-
export { extractContractFromFile, extractContractsFromProject, isProtocolContract, isFlowContract,
|
|
41
|
-
|
|
42
|
-
export type { NormalizedContractMeta, NormalizedCaseMeta, NormalizedExample, NormalizedParamMeta, NormalizedFlowMeta, NormalizedFlowStep, NormalizedFieldMapping, ExtractedContract, ExtractionResult, CaseLifecycle, CaseSeverity, CaseRequires, CaseDefaultRun, } from "./contract-extraction.js";
|
|
42
|
+
export { extractContractFromFile, extractContractsFromProject, isProtocolContract, isFlowContract, isBootstrapAttachment, bootstrapAttachmentToNormalized, synthesizeAttachments, loadProjectOverlays, isHttpContract, } from "./contract-extraction.js";
|
|
43
|
+
export type { NormalizedContractMeta, NormalizedCaseMeta, NormalizedExample, NormalizedParamMeta, NormalizedFlowMeta, NormalizedFlowStep, NormalizedFieldMapping, NormalizedAttachmentMeta, NormalizedRawAttachment, NormalizedBootstrapOverlayAttachment, NormalizedFlowAttachment, ExtractedContract, ExtractionResult, CaseLifecycle, CaseSeverity, CaseRequires, CaseDefaultRun, } from "./contract-extraction.js";
|
|
43
44
|
export { nodeFs, nodeHasher } from "./fs.js";
|
|
44
45
|
import { Scanner } from "./scanner.js";
|
|
45
46
|
import type { ScanOptions, ScanResult, ValidationResult } from "./types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAG1F,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGlH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChJ,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGxF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACpC,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAU5E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAE5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAqB,GAAG,OAAO,CAGzE"}
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
* ```ts
|
|
29
29
|
* import { extractContractsFromProject } from "@glubean/scanner";
|
|
30
30
|
*
|
|
31
|
-
* const { contracts,
|
|
31
|
+
* const { contracts, attachments, errors } = await extractContractsFromProject(".");
|
|
32
|
+
* // Filter by kind to recover the legacy "flows only" view:
|
|
33
|
+
* const flows = attachments.filter((a) => a.kind === "flow").map((a) => a.flow);
|
|
32
34
|
* ```
|
|
33
35
|
*/
|
|
34
36
|
// Re-export spec constants
|
|
@@ -37,9 +39,9 @@ export { isSpecVersionSupported, SPEC_VERSION, SUPPORTED_SPEC_VERSIONS } from ".
|
|
|
37
39
|
export { Scanner } from "./scanner.js";
|
|
38
40
|
// Re-export static analysis extractor
|
|
39
41
|
export { createStaticExtractor, extractAliasesFromSource, extractContractCases, extractFromSource, isGlubeanFile } from "./extractor-static.js";
|
|
40
|
-
// Re-export runtime contract + flow extraction
|
|
41
|
-
export { extractContractFromFile, extractContractsFromProject, isProtocolContract, isFlowContract, isHttpContract, // deprecated-throw, kept for diagnostic
|
|
42
|
-
|
|
42
|
+
// Re-export runtime contract + flow + attachment extraction
|
|
43
|
+
export { extractContractFromFile, extractContractsFromProject, isProtocolContract, isFlowContract, isBootstrapAttachment, bootstrapAttachmentToNormalized, synthesizeAttachments, loadProjectOverlays, isHttpContract, // deprecated-throw, kept for diagnostic
|
|
44
|
+
} from "./contract-extraction.js";
|
|
43
45
|
// Re-export file system implementations
|
|
44
46
|
export { nodeFs, nodeHasher } from "./fs.js";
|
|
45
47
|
// Imports for convenience functions
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,2BAA2B;AAC3B,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAK1F,yCAAyC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,sCAAsC;AACtC,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGhJ,4DAA4D;AAC5D,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EAAE,wCAAwC;EACzD,MAAM,0BAA0B,CAAC;AAqBlC,wCAAwC;AACxC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE7C,oCAAoC;AACpC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,6CAA6C;AAC7C,MAAM,cAAc,GAAG,IAAI,OAAO,CAChC,MAAM,EACN,UAAU,EACV,YAAY,EACZ,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,IAAI,CAAC,GAAW,EAAE,OAAqB;IACrD,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,cAAsB,YAAY;IAC9D,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC"}
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAY,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElG,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,uCAAuC;IACvC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,sDAAsD;IACtD,IAAI,CACF,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GACpD,aAAa,CAAC,MAAM,CAAC,CAAC;IACzB,yBAAyB;IACzB,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,+BAA+B;IAC/B,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,8BAA8B;AAC9B,MAAM,WAAW,MAAM;IACrB,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED,sDAAsD;AACtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAqBlG;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAoB;gBAG7C,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAqB,EAClC,SAAS,CAAC,EAAE,iBAAiB;IAiB/B;;;OAGG;YACW,cAAc;IAmB5B;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwEtD;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAY,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElG,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,uCAAuC;IACvC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,sDAAsD;IACtD,IAAI,CACF,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GACpD,aAAa,CAAC,MAAM,CAAC,CAAC;IACzB,yBAAyB;IACzB,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,+BAA+B;IAC/B,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,8BAA8B;AAC9B,MAAM,WAAW,MAAM;IACrB,8DAA8D;IAC9D,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED,sDAAsD;AACtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAqBlG;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAoB;gBAG7C,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAqB,EAClC,SAAS,CAAC,EAAE,iBAAiB;IAiB/B;;;OAGG;YACW,cAAc;IAmB5B;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwEtD;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAoMxE"}
|
package/dist/scanner.js
CHANGED
|
@@ -272,21 +272,22 @@ export class Scanner {
|
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
// Phase 5: Extract flow metadata from flow files.
|
|
275
|
-
// extractContractFromFile
|
|
276
|
-
// call it on .flow.ts files so
|
|
275
|
+
// Post-Phase 2f: extractContractFromFile returns flows as `kind: "flow"`
|
|
276
|
+
// entries inside `attachments[]`. We also call it on .flow.ts files so
|
|
277
|
+
// single-file flow modules are picked up.
|
|
277
278
|
const flows = [];
|
|
278
279
|
const allFlowSourceFiles = [...flowFiles, ...contractFiles]; // contract files can also export flows
|
|
279
280
|
const seenFlowIds = new Set();
|
|
280
281
|
for (const filePath of allFlowSourceFiles) {
|
|
281
282
|
const absolutePath = this.fs.resolve ? this.fs.resolve(filePath) : filePath;
|
|
282
283
|
const result = await extractContractFromFile(absolutePath);
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
284
|
+
for (const att of result.attachments) {
|
|
285
|
+
if (att.kind !== "flow")
|
|
286
|
+
continue;
|
|
287
|
+
if (seenFlowIds.has(att.flow.id))
|
|
288
|
+
continue;
|
|
289
|
+
flows.push(att.flow);
|
|
290
|
+
seenFlowIds.add(att.flow.id);
|
|
290
291
|
}
|
|
291
292
|
// Errors already surfaced in contract phase for shared files; only add
|
|
292
293
|
// new errors for flow-only files
|
package/dist/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
|