@glubean/scanner 0.2.2 → 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.
@@ -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
- /** Result of extracting contracts/flows from one or more files. */
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
- flows?: NormalizedFlowMeta[];
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.
@@ -204,14 +316,87 @@ export declare function protocolContractToNormalized(value: {
204
316
  _extracted: any;
205
317
  }, exportName: string): NormalizedContractMeta;
206
318
  /**
207
- * Extract contracts + flows from a single file by dynamic import.
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.
322
+ */
323
+ export interface BootstrapOverlayMarker {
324
+ exportName: string;
325
+ testId: string;
326
+ contractId: string;
327
+ caseKey: string;
328
+ }
329
+ /**
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.
350
+ *
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.
355
+ */
356
+ export declare function synthesizeAttachments(contracts: NormalizedContractMeta[], flows: NormalizedFlowMeta[], markers: BootstrapOverlayMarker[]): {
357
+ attachments: NormalizedAttachmentMeta[];
358
+ errors: ExtractionResult["errors"];
359
+ };
360
+ /**
361
+ * Extract contracts + attachments from a single file by dynamic import.
208
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`.
209
367
  */
210
368
  export declare function extractContractFromFile(filePath: string): Promise<ExtractionResult>;
211
369
  /**
212
- * Extract contracts + flows from all recognized files in a project.
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.
213
378
  */
214
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
+ }>;
215
400
  /** @deprecated Removed in v0.2 — HTTP now goes through isProtocolContract. */
216
401
  export declare function isHttpContract(_val: unknown): never;
217
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;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAIvD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACpC,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEN,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EACF;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC9B;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GACnC;QAAE,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;IACvD,WAAW,EAAE;QACX,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,KAAK,CAAC;YACX,GAAG,EAAE,MAAM,CAAC;YACZ,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,IAAI,CAAC,EAAE,OAAO,CAAC;SAChB,CAAC,CAAC;KACJ,CAAC;IAGF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAWA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;IACnD,KAAK,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;QACpC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;QACvC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KACnB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,YAAY,CAAC,EAAE,IAAI,CAAC;QACpB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;KACnB,CAAC;CACH,CAOA;AAYD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE;IAAE,WAAW,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAA;CAAE,EAC5C,UAAU,EAAE,MAAM,GACjB,sBAAsB,CA8BxB;AA0GD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CAwD3B;AA4BD;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAoB3B;AAMD,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAKnD"}
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.
@@ -90,6 +110,10 @@ export function protocolContractToNormalized(value, exportName) {
90
110
  extensions: c.extensions,
91
111
  schemas: c.schemas,
92
112
  meta: c.meta,
113
+ given: c.given,
114
+ runnability: c.runnability,
115
+ hasNeeds: c.hasNeeds,
116
+ needsSchema: c.needsSchema,
93
117
  })),
94
118
  };
95
119
  }
@@ -180,20 +204,133 @@ function autoBuildFlowBuilder(val) {
180
204
  }
181
205
  return val;
182
206
  }
183
- // =============================================================================
184
- // File-level extraction
185
- // =============================================================================
186
- // Per-path mtime cache used by extractContractFromFile() to decide when
187
- // to bust Node's ESM module cache on re-import. See the comment inside
188
- // that function for the full reasoning.
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.
189
322
  const _importMtimeCache = new Map();
190
323
  /**
191
- * Extract contracts + flows from a single file by dynamic import.
192
- * One file's import failure does not block others.
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.
193
329
  */
194
- export async function extractContractFromFile(filePath) {
330
+ async function collectRawMaterials(filePath) {
195
331
  const contracts = [];
196
332
  const flows = [];
333
+ const markers = [];
197
334
  const errors = [];
198
335
  const absolutePath = resolve(filePath);
199
336
  try {
@@ -242,19 +379,47 @@ export async function extractContractFromFile(filePath) {
242
379
  else if (isProtocolContract(value)) {
243
380
  contracts.push(protocolContractToNormalized(value, exportName));
244
381
  }
382
+ else if (isBootstrapAttachment(value)) {
383
+ const marker = bootstrapAttachmentToNormalized(value, exportName);
384
+ if (marker)
385
+ markers.push(marker);
386
+ }
245
387
  }
246
388
  }
247
389
  catch (err) {
248
390
  const message = err instanceof Error ? err.message : String(err);
249
391
  errors.push({ file: absolutePath, error: message });
250
392
  }
251
- return { contracts, flows: flows.length > 0 ? flows : undefined, errors };
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
+ };
252
411
  }
253
412
  // =============================================================================
254
413
  // Project-level extraction
255
414
  // =============================================================================
256
415
  /**
257
- * Find all .contract.{ts,js,mjs} and .flow.{ts,js,mjs} files in a directory tree.
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.
258
423
  */
259
424
  function findContractAndFlowFiles(dir) {
260
425
  const files = [];
@@ -267,7 +432,9 @@ function findContractAndFlowFiles(dir) {
267
432
  walk(full);
268
433
  else {
269
434
  const base = basename(entry);
270
- if (base.includes(".contract.") || base.includes(".flow.")) {
435
+ if (base.includes(".contract.") ||
436
+ base.includes(".flow.") ||
437
+ base.includes(".bootstrap.")) {
271
438
  files.push(full);
272
439
  }
273
440
  }
@@ -277,29 +444,95 @@ function findContractAndFlowFiles(dir) {
277
444
  return files;
278
445
  }
279
446
  /**
280
- * Extract contracts + flows from all recognized files in a project.
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.
281
455
  */
282
456
  export async function extractContractsFromProject(dir) {
283
457
  const files = findContractAndFlowFiles(dir);
284
- if (files.length === 0)
285
- return { contracts: [], errors: [] };
458
+ if (files.length === 0) {
459
+ return { contracts: [], attachments: [], errors: [] };
460
+ }
286
461
  const allContracts = [];
287
462
  const allFlows = [];
463
+ const allMarkers = [];
288
464
  const allErrors = [];
289
465
  for (const filePath of files) {
290
- const { contracts, flows, errors } = await extractContractFromFile(filePath);
291
- allContracts.push(...contracts);
292
- if (flows)
293
- allFlows.push(...flows);
294
- 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);
295
471
  }
472
+ const synth = synthesizeAttachments(allContracts, allFlows, allMarkers);
296
473
  return {
297
474
  contracts: allContracts,
298
- flows: allFlows.length > 0 ? allFlows : undefined,
299
- errors: allErrors,
475
+ attachments: synth.attachments,
476
+ errors: [...allErrors, ...synth.errors],
300
477
  };
301
478
  }
302
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
+ // =============================================================================
303
536
  // Backward-compat: isHttpContract — removed permanently in v0.2.
304
537
  // =============================================================================
305
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;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;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":"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"}
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, flows, errors } = await extractContractsFromProject(".");
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,8 +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, isHttpContract, } from "./contract-extraction.js";
41
- 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";
42
44
  export { nodeFs, nodeHasher } from "./fs.js";
43
45
  import { Scanner } from "./scanner.js";
44
46
  import type { ScanOptions, ScanResult, ValidationResult } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;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,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,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"}
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, flows, errors } = await extractContractsFromProject(".");
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,8 +39,8 @@ 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
+ // Re-export runtime contract + flow + attachment extraction
43
+ export { extractContractFromFile, extractContractsFromProject, isProtocolContract, isFlowContract, isBootstrapAttachment, bootstrapAttachmentToNormalized, synthesizeAttachments, loadProjectOverlays, isHttpContract, // deprecated-throw, kept for diagnostic
42
44
  } from "./contract-extraction.js";
43
45
  // Re-export file system implementations
44
46
  export { nodeFs, nodeHasher } from "./fs.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;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,+CAA+C;AAC/C,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,cAAc,EACd,cAAc,EAAE,wCAAwC;EACzD,MAAM,0BAA0B,CAAC;AAiBlC,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"}
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"}
@@ -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;CAqMxE"}
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 already returns both contracts and flows; we also
276
- // call it on .flow.ts files so single-file flow modules are picked up.
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
- if (result.flows) {
284
- for (const flow of result.flows) {
285
- if (!seenFlowIds.has(flow.id)) {
286
- flows.push(flow);
287
- seenFlowIds.add(flow.id);
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
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glubean/scanner",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {