@glubean/scanner 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ast.d.ts ADDED
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Shared AST helper for the scanner's AST extractors (`extractor-ast.ts`,
3
+ * `contract-ast.ts`) and downstream consumers — exposed as
4
+ * `@glubean/scanner/ast` (the VSCode extension consolidates onto it).
5
+ *
6
+ * Parser: `@babel/parser` (actively maintained, pure JS, no native binary).
7
+ * It parses modern TypeScript natively — `satisfies`, `const` type params,
8
+ * decorators, `<Foo>bar` angle assertions (in `.ts`), import attributes,
9
+ * `using` declarations — so NO source pre-normalization is needed. (We moved off
10
+ * `acorn-typescript`, which was unmaintained since 2024 and could not parse
11
+ * `satisfies`/`const T`, forcing a fragile rewrite hack.)
12
+ *
13
+ * The Babel AST: object literals use `ObjectProperty`, string/number literals
14
+ * are `StringLiteral`/`NumericLiteral`, TS wrappers are `TSAsExpression`,
15
+ * `TSSatisfiesExpression`, `TSNonNullExpression`, `TSTypeAssertion`,
16
+ * `TSInstantiationExpression`. Type-only constructs are ignored — we only read
17
+ * runtime expressions.
18
+ *
19
+ * A thin helper (not raw `parse` calls): the line-number/comment-lookup/
20
+ * `as`-`!`-`satisfies` unwrapping transitions recur across consumers, so
21
+ * centralizing keeps behavior consistent and lets us swap parsers by editing one
22
+ * file.
23
+ */
24
+ export interface SourceFile {
25
+ /** Original raw text — needed to read template-string raw values, line slices. */
26
+ text: string;
27
+ /** Babel `Program` node. */
28
+ program: AnyNode;
29
+ /**
30
+ * Comments collected during parse, in source order. Babel attaches them to
31
+ * nodes too, but we look them up by offset (e.g. `// @contract` markers).
32
+ */
33
+ comments: CommentInfo[];
34
+ }
35
+ export interface CommentInfo {
36
+ /** `false` for line comments (`//`), `true` for block comments (`/* *​/`). */
37
+ block: boolean;
38
+ /** Text inside the delimiters, excluding the `//` or `/* *​/` markers. */
39
+ text: string;
40
+ start: number;
41
+ end: number;
42
+ }
43
+ export type AnyNode = {
44
+ type: string;
45
+ start: number | null;
46
+ end: number | null;
47
+ loc?: {
48
+ start: {
49
+ line: number;
50
+ column: number;
51
+ };
52
+ end: {
53
+ line: number;
54
+ column: number;
55
+ };
56
+ } | null;
57
+ [key: string]: unknown;
58
+ };
59
+ /** Parse TypeScript/JavaScript source into a {@link SourceFile}. */
60
+ export declare function parseSource(content: string, filePath?: string): SourceFile;
61
+ /**
62
+ * Iterate over every `export const` declaration at the top level. Calls `cb`
63
+ * once per declarator (`export const a = 1, b = 2` → two calls).
64
+ *
65
+ * Contract: skips destructuring patterns (`export const { x } = ...` / `[a] =`)
66
+ * — only plain identifier declarators are surfaced, so callers can assume
67
+ * `declarator.id` is an `Identifier`.
68
+ */
69
+ export declare function forEachExportedConst(source: SourceFile, cb: (statement: AnyNode, declaration: AnyNode) => void): void;
70
+ /**
71
+ * Returns `true` if a `// @<marker>` line comment leads the node — i.e. it is on
72
+ * its own line and only whitespace/other comments sit between it and the node.
73
+ * (A trailing comment on the previous statement, `const p = 1; // @x`, does NOT
74
+ * count.)
75
+ */
76
+ export declare function hasLeadingMarker(source: SourceFile, node: AnyNode, marker: string): boolean;
77
+ /**
78
+ * Read a property name as a string. Handles identifier (`key`), string
79
+ * (`"key"`), numeric (`0`), no-substitution template (`` `key` ``), computed
80
+ * string/template (`["key"]`), and shorthand (`{ key }`) keys. Returns undefined
81
+ * for computed expressions that aren't string-resolvable.
82
+ */
83
+ export declare function propertyNameText(node: AnyNode): string | undefined;
84
+ /**
85
+ * Strip TypeScript and grouping wrappers (`expr as T`, `<T>expr`,
86
+ * `expr satisfies T`, `expr!`, `expr<T>`, `(expr)`) so the caller sees the
87
+ * underlying value. Returns undefined if the input is undefined.
88
+ */
89
+ export declare function unwrapExpression(expr: AnyNode | undefined): AnyNode | undefined;
90
+ /**
91
+ * Resolve an expression that should be a string literal (or a no-substitution
92
+ * template literal) to its plain string value. Returns undefined for any other
93
+ * shape — including template literals with substitutions.
94
+ */
95
+ export declare function stringFromExpression(expr: AnyNode | undefined): string | undefined;
96
+ /** Resolve an expression that should be an object literal (stripping type wrappers). */
97
+ export declare function objectFromExpression(expr: AnyNode | undefined): AnyNode | undefined;
98
+ /**
99
+ * Find an object-literal property assignment by key name. Returns the
100
+ * `ObjectProperty` node or undefined. Skips spread/method members.
101
+ */
102
+ export declare function objectProperty(object: AnyNode, name: string): AnyNode | undefined;
103
+ /** Read an object literal's named property as a string (objectProperty + stringFromExpression). */
104
+ export declare function stringProperty(object: AnyNode, name: string): string | undefined;
105
+ /**
106
+ * Walk the method-chain spine looking for the first `.<name>(...)` call (e.g.
107
+ * `.flow("id")`, `.meta(...)`, `.step(...)`). Never descends into arguments or
108
+ * callback bodies — only follows the chain via `callee.object`.
109
+ */
110
+ export declare function findPropertyCall(root: AnyNode, name: string): AnyNode | undefined;
111
+ /**
112
+ * Depth-first walker. Returning `false` from the callback prunes descent into the
113
+ * current node's children (but doesn't abort the whole walk).
114
+ */
115
+ export declare function walk(root: AnyNode, cb: (node: AnyNode) => boolean | undefined | void): void;
116
+ /** 1-based line of a node's start position. */
117
+ export declare function lineOf(node: AnyNode): number;
118
+ /** `true` if the node is a top-level `export` declaration wrapper. */
119
+ export declare function hasExportModifier(node: AnyNode): boolean;
120
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,KAAK,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAID,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAChG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAa,GAAG,UAAU,CA2C9E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,EAClB,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,GACrD,IAAI,CAgBN;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAwB3F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQlE;AAiBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAiB/E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAelF;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAGnF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAUjF;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIhF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAiBjF;AASD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAoB3F;AAED,+CAA+C;AAC/C,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAExD"}
package/dist/ast.js ADDED
@@ -0,0 +1,312 @@
1
+ /**
2
+ * Shared AST helper for the scanner's AST extractors (`extractor-ast.ts`,
3
+ * `contract-ast.ts`) and downstream consumers — exposed as
4
+ * `@glubean/scanner/ast` (the VSCode extension consolidates onto it).
5
+ *
6
+ * Parser: `@babel/parser` (actively maintained, pure JS, no native binary).
7
+ * It parses modern TypeScript natively — `satisfies`, `const` type params,
8
+ * decorators, `<Foo>bar` angle assertions (in `.ts`), import attributes,
9
+ * `using` declarations — so NO source pre-normalization is needed. (We moved off
10
+ * `acorn-typescript`, which was unmaintained since 2024 and could not parse
11
+ * `satisfies`/`const T`, forcing a fragile rewrite hack.)
12
+ *
13
+ * The Babel AST: object literals use `ObjectProperty`, string/number literals
14
+ * are `StringLiteral`/`NumericLiteral`, TS wrappers are `TSAsExpression`,
15
+ * `TSSatisfiesExpression`, `TSNonNullExpression`, `TSTypeAssertion`,
16
+ * `TSInstantiationExpression`. Type-only constructs are ignored — we only read
17
+ * runtime expressions.
18
+ *
19
+ * A thin helper (not raw `parse` calls): the line-number/comment-lookup/
20
+ * `as`-`!`-`satisfies` unwrapping transitions recur across consumers, so
21
+ * centralizing keeps behavior consistent and lets us swap parsers by editing one
22
+ * file.
23
+ */
24
+ import { parse } from "@babel/parser";
25
+ /** Parse TypeScript/JavaScript source into a {@link SourceFile}. */
26
+ export function parseSource(content, filePath = "input.ts") {
27
+ const jsx = filePath.endsWith(".tsx") || filePath.endsWith(".jsx");
28
+ const base = ["typescript", ["importAttributes", { deprecatedAssertSyntax: true }]];
29
+ if (jsx)
30
+ base.push("jsx");
31
+ const options = (decorators) => ({
32
+ sourceType: "module",
33
+ plugins: [...base, ...decorators],
34
+ ranges: true,
35
+ allowImportExportEverywhere: true,
36
+ allowAwaitOutsideFunction: true,
37
+ allowReturnOutsideFunction: true,
38
+ allowSuperOutsideMethod: true,
39
+ allowUndeclaredExports: true,
40
+ });
41
+ // Babel's `decorators` (stage-3) and `decorators-legacy` are mutually
42
+ // exclusive. Legacy is the only mode with PARAMETER decorators (the common
43
+ // experimentalDecorators ecosystem — Angular/Nest); the modern mode (option
44
+ // omitted) accepts BOTH `@dec export class` and `export @dec class` placements
45
+ // but has no parameter decorators. Try legacy first (covers param decorators +
46
+ // `@dec export` + `accessor`); on a parse failure (e.g. a file using the
47
+ // post-export `export @dec` placement), retry with modern, which accepts both
48
+ // placements. The only combo neither parses — `export @dec` together with a
49
+ // parameter decorator — isn't valid under any single TS decorator config.
50
+ let file;
51
+ try {
52
+ file = parse(content, options(["decorators-legacy", "decoratorAutoAccessors"]));
53
+ }
54
+ catch (legacyError) {
55
+ try {
56
+ file = parse(content, options(["decorators", "decoratorAutoAccessors"]));
57
+ }
58
+ catch {
59
+ throw legacyError; // not a decorator-mode mismatch — surface the real error
60
+ }
61
+ }
62
+ const comments = (file.comments ?? []).map((c) => ({
63
+ block: c.type === "CommentBlock",
64
+ text: c.value,
65
+ start: c.start ?? 0,
66
+ end: c.end ?? 0,
67
+ }));
68
+ return { text: content, program: file.program, comments };
69
+ }
70
+ /**
71
+ * Iterate over every `export const` declaration at the top level. Calls `cb`
72
+ * once per declarator (`export const a = 1, b = 2` → two calls).
73
+ *
74
+ * Contract: skips destructuring patterns (`export const { x } = ...` / `[a] =`)
75
+ * — only plain identifier declarators are surfaced, so callers can assume
76
+ * `declarator.id` is an `Identifier`.
77
+ */
78
+ export function forEachExportedConst(source, cb) {
79
+ const body = source.program.body ?? [];
80
+ for (const statement of body) {
81
+ if (statement.type !== "ExportNamedDeclaration")
82
+ continue;
83
+ const declaration = statement.declaration;
84
+ if (!declaration)
85
+ continue;
86
+ if (declaration.type !== "VariableDeclaration")
87
+ continue;
88
+ if (declaration.kind !== "const")
89
+ continue;
90
+ const declarators = declaration.declarations;
91
+ if (!declarators)
92
+ continue;
93
+ for (const declarator of declarators) {
94
+ const id = declarator.id;
95
+ if (id?.type !== "Identifier")
96
+ continue;
97
+ cb(statement, declarator);
98
+ }
99
+ }
100
+ }
101
+ /**
102
+ * Returns `true` if a `// @<marker>` line comment leads the node — i.e. it is on
103
+ * its own line and only whitespace/other comments sit between it and the node.
104
+ * (A trailing comment on the previous statement, `const p = 1; // @x`, does NOT
105
+ * count.)
106
+ */
107
+ export function hasLeadingMarker(source, node, marker) {
108
+ const start = node.start;
109
+ if (start == null)
110
+ return false;
111
+ const candidates = source.comments
112
+ .filter((c) => c.end <= start)
113
+ .sort((a, b) => a.start - b.start);
114
+ if (candidates.length === 0)
115
+ return false;
116
+ const re = new RegExp(String.raw `^\s*@${marker}\s*$`);
117
+ // Walk the contiguous leading-comment block from the node upward: each comment
118
+ // counts while everything from it to the previous thing toward the node
119
+ // (`cursor`) is whitespace. Other comments don't break the chain.
120
+ let cursor = start;
121
+ for (let i = candidates.length - 1; i >= 0; i--) {
122
+ const comment = candidates[i];
123
+ if (!/^\s*$/.test(source.text.slice(comment.end, cursor)))
124
+ break; // code between → block ended
125
+ if (!comment.block && re.test(comment.text)) {
126
+ // Must be a LEADING comment (its own line), not a trailing comment.
127
+ const lineStart = source.text.lastIndexOf("\n", comment.start - 1) + 1;
128
+ if (/^\s*$/.test(source.text.slice(lineStart, comment.start)))
129
+ return true;
130
+ }
131
+ cursor = comment.start;
132
+ }
133
+ return false;
134
+ }
135
+ /**
136
+ * Read a property name as a string. Handles identifier (`key`), string
137
+ * (`"key"`), numeric (`0`), no-substitution template (`` `key` ``), computed
138
+ * string/template (`["key"]`), and shorthand (`{ key }`) keys. Returns undefined
139
+ * for computed expressions that aren't string-resolvable.
140
+ */
141
+ export function propertyNameText(node) {
142
+ if (node.type === "ObjectProperty" || node.type === "ObjectMethod") {
143
+ const key = node.key;
144
+ if (!key)
145
+ return undefined;
146
+ return readKey(key, node.computed === true);
147
+ }
148
+ // Fallback: caller passed the key node directly.
149
+ return readKey(node, false);
150
+ }
151
+ function readKey(key, computed) {
152
+ if (key.type === "Identifier" && !computed)
153
+ return key.name;
154
+ if (key.type === "StringLiteral")
155
+ return key.value;
156
+ if (key.type === "NumericLiteral")
157
+ return String(key.value);
158
+ if (key.type === "TemplateLiteral") {
159
+ const expressions = key.expressions;
160
+ const quasis = key.quasis;
161
+ if (expressions && expressions.length === 0 && quasis && quasis.length === 1) {
162
+ const cooked = quasis[0].value.cooked;
163
+ if (typeof cooked === "string")
164
+ return cooked;
165
+ }
166
+ }
167
+ return undefined;
168
+ }
169
+ /**
170
+ * Strip TypeScript and grouping wrappers (`expr as T`, `<T>expr`,
171
+ * `expr satisfies T`, `expr!`, `expr<T>`, `(expr)`) so the caller sees the
172
+ * underlying value. Returns undefined if the input is undefined.
173
+ */
174
+ export function unwrapExpression(expr) {
175
+ let current = expr;
176
+ while (current) {
177
+ switch (current.type) {
178
+ case "TSAsExpression":
179
+ case "TSTypeAssertion":
180
+ case "TSSatisfiesExpression":
181
+ case "TSNonNullExpression":
182
+ case "TSInstantiationExpression":
183
+ case "ParenthesizedExpression":
184
+ current = current.expression;
185
+ break;
186
+ default:
187
+ return current;
188
+ }
189
+ }
190
+ return current;
191
+ }
192
+ /**
193
+ * Resolve an expression that should be a string literal (or a no-substitution
194
+ * template literal) to its plain string value. Returns undefined for any other
195
+ * shape — including template literals with substitutions.
196
+ */
197
+ export function stringFromExpression(expr) {
198
+ const unwrapped = unwrapExpression(expr);
199
+ if (!unwrapped)
200
+ return undefined;
201
+ if (unwrapped.type === "StringLiteral" && typeof unwrapped.value === "string") {
202
+ return unwrapped.value;
203
+ }
204
+ if (unwrapped.type === "TemplateLiteral") {
205
+ const expressions = unwrapped.expressions;
206
+ const quasis = unwrapped.quasis;
207
+ if (expressions && expressions.length === 0 && quasis && quasis.length === 1) {
208
+ const cooked = quasis[0].value.cooked;
209
+ if (typeof cooked === "string")
210
+ return cooked;
211
+ }
212
+ }
213
+ return undefined;
214
+ }
215
+ /** Resolve an expression that should be an object literal (stripping type wrappers). */
216
+ export function objectFromExpression(expr) {
217
+ const unwrapped = unwrapExpression(expr);
218
+ return unwrapped?.type === "ObjectExpression" ? unwrapped : undefined;
219
+ }
220
+ /**
221
+ * Find an object-literal property assignment by key name. Returns the
222
+ * `ObjectProperty` node or undefined. Skips spread/method members.
223
+ */
224
+ export function objectProperty(object, name) {
225
+ if (object.type !== "ObjectExpression")
226
+ return undefined;
227
+ const properties = object.properties;
228
+ if (!properties)
229
+ return undefined;
230
+ for (const property of properties) {
231
+ if (property.type === "ObjectProperty" && propertyNameText(property) === name) {
232
+ return property;
233
+ }
234
+ }
235
+ return undefined;
236
+ }
237
+ /** Read an object literal's named property as a string (objectProperty + stringFromExpression). */
238
+ export function stringProperty(object, name) {
239
+ const property = objectProperty(object, name);
240
+ if (!property)
241
+ return undefined;
242
+ return stringFromExpression(property.value);
243
+ }
244
+ /**
245
+ * Walk the method-chain spine looking for the first `.<name>(...)` call (e.g.
246
+ * `.flow("id")`, `.meta(...)`, `.step(...)`). Never descends into arguments or
247
+ * callback bodies — only follows the chain via `callee.object`.
248
+ */
249
+ export function findPropertyCall(root, name) {
250
+ let current = unwrapExpression(root);
251
+ while (current && current.type === "CallExpression") {
252
+ const callee = unwrapExpression(current.callee);
253
+ if (!callee)
254
+ break;
255
+ if (callee.type === "MemberExpression") {
256
+ const property = callee.property;
257
+ // Non-computed `.name(...)` only — `obj[name](...)` is a dynamic access.
258
+ if (callee.computed !== true && property.type === "Identifier" && property.name === name) {
259
+ return current;
260
+ }
261
+ current = unwrapExpression(callee.object);
262
+ }
263
+ else {
264
+ current = callee;
265
+ }
266
+ }
267
+ return undefined;
268
+ }
269
+ // Babel attaches non-AST bookkeeping to nodes; skip it so `walk` only descends
270
+ // into real child nodes.
271
+ const _SKIP_KEYS = new Set([
272
+ "type", "start", "end", "loc", "range", "extra",
273
+ "leadingComments", "trailingComments", "innerComments", "comments", "tokens", "errors",
274
+ ]);
275
+ /**
276
+ * Depth-first walker. Returning `false` from the callback prunes descent into the
277
+ * current node's children (but doesn't abort the whole walk).
278
+ */
279
+ export function walk(root, cb) {
280
+ const stack = [root];
281
+ while (stack.length > 0) {
282
+ const node = stack.pop();
283
+ if (cb(node) === false)
284
+ continue;
285
+ for (const key of Object.keys(node)) {
286
+ if (_SKIP_KEYS.has(key))
287
+ continue;
288
+ const value = node[key];
289
+ if (!value)
290
+ continue;
291
+ if (Array.isArray(value)) {
292
+ for (const item of value) {
293
+ if (item && typeof item === "object" && typeof item.type === "string") {
294
+ stack.push(item);
295
+ }
296
+ }
297
+ }
298
+ else if (typeof value === "object" && typeof value.type === "string") {
299
+ stack.push(value);
300
+ }
301
+ }
302
+ }
303
+ }
304
+ /** 1-based line of a node's start position. */
305
+ export function lineOf(node) {
306
+ return node.loc?.start.line ?? 1;
307
+ }
308
+ /** `true` if the node is a top-level `export` declaration wrapper. */
309
+ export function hasExportModifier(node) {
310
+ return node.type === "ExportNamedDeclaration";
311
+ }
312
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
@@ -195,6 +195,29 @@ export type NormalizedFlowStep = {
195
195
  steps: NormalizedFlowStep[];
196
196
  }>;
197
197
  default: NormalizedFlowStep[];
198
+ } | {
199
+ /**
200
+ * Poll (bounded poll-until). Repeats one case until `until` holds, bounded
201
+ * by `timeoutMs` / `maxAttempts` / `perAttemptTimeoutMs`. `until` is the
202
+ * exit predicate (L2 precise, or `{kind:"opaque",...}` when marked).
203
+ */
204
+ kind: "poll";
205
+ name?: string;
206
+ contractId: string;
207
+ caseKey: string;
208
+ protocol: string;
209
+ target: string;
210
+ inputs?: NormalizedFieldMapping[];
211
+ outputs?: NormalizedFieldMapping[];
212
+ accept?: ReadonlyArray<string | number>;
213
+ /** Exit predicate (absent only in the duck-typed fallback path). */
214
+ until?: NormalizedPredicate;
215
+ message?: string;
216
+ every: number;
217
+ backoff: number;
218
+ timeoutMs?: number;
219
+ perAttemptTimeoutMs?: number;
220
+ maxAttempts?: number;
198
221
  };
199
222
  export interface NormalizedFieldMapping {
200
223
  target: string;
@@ -1 +1 @@
1
- {"version":3,"file":"contract-extraction.d.ts","sourceRoot":"","sources":["../src/contract-extraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract-extraction.d.ts","sourceRoot":"","sources":["../src/contract-extraction.ts"],"names":[],"mappings":"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"}
@@ -182,6 +182,26 @@ function mapExtractedStep(s) {
182
182
  default: (s.default ?? []).map(mapExtractedStep),
183
183
  };
184
184
  }
185
+ if (s.kind === "poll") {
186
+ return {
187
+ kind: "poll",
188
+ ...(s.name !== undefined ? { name: s.name } : {}),
189
+ contractId: s.contractId ?? "",
190
+ caseKey: s.caseKey ?? "",
191
+ protocol: s.protocol ?? "",
192
+ target: s.target ?? "",
193
+ inputs: s.inputs,
194
+ outputs: s.outputs,
195
+ ...(Array.isArray(s.accept) ? { accept: s.accept } : {}),
196
+ ...(s.until !== undefined ? { until: s.until } : {}),
197
+ ...(s.message !== undefined ? { message: s.message } : {}),
198
+ every: s.every ?? 0,
199
+ backoff: s.backoff ?? 1,
200
+ ...(s.timeoutMs !== undefined ? { timeoutMs: s.timeoutMs } : {}),
201
+ ...(s.perAttemptTimeoutMs !== undefined ? { perAttemptTimeoutMs: s.perAttemptTimeoutMs } : {}),
202
+ ...(s.maxAttempts !== undefined ? { maxAttempts: s.maxAttempts } : {}),
203
+ };
204
+ }
185
205
  return {
186
206
  kind: "contract-call",
187
207
  name: s.name,
@@ -217,6 +237,25 @@ function mapRuntimeFlowStep(s) {
217
237
  default: (s.default ?? []).map(mapRuntimeFlowStep),
218
238
  };
219
239
  }
240
+ if (s.kind === "poll") {
241
+ // `until` omitted: the runtime exit predicate is a branded builder object
242
+ // (not JSON-safe), like a branch predicate in this fallback path.
243
+ return {
244
+ kind: "poll",
245
+ ...(s.name !== undefined ? { name: s.name } : {}),
246
+ contractId: s.contract?._projection?.id ?? s.ref?.contractId ?? "",
247
+ caseKey: s.caseKey ?? s.ref?.caseKey ?? "",
248
+ protocol: s.ref?.protocol ?? "",
249
+ target: s.ref?.target ?? "",
250
+ ...(Array.isArray(s.bindings?.accept) ? { accept: s.bindings.accept } : {}),
251
+ ...(s.message !== undefined ? { message: s.message } : {}),
252
+ every: s.every ?? 0,
253
+ backoff: s.backoff ?? 1,
254
+ ...(s.timeoutMs !== undefined ? { timeoutMs: s.timeoutMs } : {}),
255
+ ...(s.perAttemptTimeoutMs !== undefined ? { perAttemptTimeoutMs: s.perAttemptTimeoutMs } : {}),
256
+ ...(s.maxAttempts !== undefined ? { maxAttempts: s.maxAttempts } : {}),
257
+ };
258
+ }
220
259
  return {
221
260
  kind: "contract-call",
222
261
  name: s.name,