@glubean/scanner 0.5.1 → 0.7.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/types.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Scanner types - shared between scanner consumers.
3
3
  */
4
4
  import type { ContractStaticMeta } from "./extractor-static.js";
5
- import type { NormalizedFlowMeta } from "./contract-extraction.js";
5
+ import type { NormalizedContractMeta, NormalizedWorkflowMeta } from "./contract-extraction.js";
6
6
  /** Export metadata for a single test export */
7
7
  export interface ExportMeta {
8
8
  type: "test";
@@ -42,6 +42,18 @@ export interface ExportMeta {
42
42
  * registered test metadata (i.e., for `test.pick` tests).
43
43
  */
44
44
  groupId?: string;
45
+ /**
46
+ * Set when this export is a vNext `workflow(...)` (static AST detection).
47
+ * Downstream consumers classify it as a graph orchestrator ("flow"-kind
48
+ * runnable) without importing the file.
49
+ */
50
+ workflow?: true;
51
+ /**
52
+ * A workflow's `skip: "reason"` (WorkflowMeta.skip is a string; TestMeta.skip
53
+ * is boolean) — mirrors TestMeta.deferred so skipped workflows are excluded
54
+ * from the --upload branch/poll gate like deferred flows.
55
+ */
56
+ deferred?: string;
45
57
  /** JavaScript export name (e.g., "myTest" or "default") */
46
58
  exportName: string;
47
59
  /** Source location */
@@ -101,10 +113,25 @@ export interface BundleMetadata {
101
113
  */
102
114
  contracts?: ContractStaticMeta[];
103
115
  /**
104
- * Flow metadata extracted from .flow.ts files (v0.2+).
105
- * Populated from the scanner's runtime extractor (`_extracted` on FlowContract).
116
+ * FULL normalized contract projection lossless mirror of the SDK's
117
+ * `_extracted` form (schemas / needsSchema / runnability / given /
118
+ * verifyRules). This is the source of truth for the Cloud
119
+ * contract/workflow metadata snapshot. `contracts` (above) remains the
120
+ * down-converted flat view for existing consumers.
121
+ *
122
+ * MUST be redacted before upload — the projection can carry examples,
123
+ * default headers, and `extensions`/`meta` blobs that may contain secrets.
124
+ */
125
+ contractsProjection?: NormalizedContractMeta[];
126
+ /**
127
+ * vNext workflow projections (S2.6) — the JSON-safe graded node view read
128
+ * off `BuiltWorkflow._projection` for workflows exported from runtime-
129
+ * extractable files (.flow.ts / .contract.ts). Consumed by Cloud/agents.
130
+ * A workflow authored in `.test.ts` is discovered/runnable but carries no
131
+ * projection here — the scanner never imports test files (safety
132
+ * invariant); move it to a `.flow.ts` to get the graded projection.
106
133
  */
107
- flows?: NormalizedFlowMeta[];
134
+ workflows?: NormalizedWorkflowMeta[];
108
135
  }
109
136
  /** Result of scanning a directory */
110
137
  export interface ScanResult {
@@ -126,10 +153,21 @@ export interface ScanResult {
126
153
  */
127
154
  contracts: ContractStaticMeta[];
128
155
  /**
129
- * Flow metadata extracted from .flow.ts files (v0.2+).
130
- * Independent from contracts consumed by projection/visualization tools.
156
+ * FULL normalized contract projection (schemas / needsSchema / runnability /
157
+ * given / verifyRules), mirroring the SDK's `_extracted` form. This is the
158
+ * lossless source `contracts` (above) is down-converted from. Consumed by
159
+ * the Cloud metadata-snapshot upload path; `contracts` is retained for
160
+ * existing flat/coverage consumers.
161
+ *
162
+ * Absent for contracts recovered via the static-regex fallback (runtime
163
+ * import failed) — that degraded path produces only `ContractStaticMeta`.
164
+ */
165
+ contractsProjection?: NormalizedContractMeta[];
166
+ /**
167
+ * vNext workflow projections (S2.6) — graded node views read off
168
+ * `BuiltWorkflow._projection` during runtime extraction.
131
169
  */
132
- flows?: NormalizedFlowMeta[];
170
+ workflows?: NormalizedWorkflowMeta[];
133
171
  }
134
172
  /** Options for scanning */
135
173
  export interface ScanOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAE/F,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;IAClD,wDAAwD;IACxD,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,yDAAyD;IACzD,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,mCAAmC;AACnC,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC;IACnB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC/C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,qCAAqC;AACrC,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC/C;;;OAGG;IACH,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,2BAA2B;AAC3B,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
package/package.json CHANGED
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "name": "@glubean/scanner",
3
- "version": "0.5.1",
3
+ "version": "0.7.0",
4
+ "engines": {
5
+ "node": ">=22"
6
+ },
4
7
  "type": "module",
5
8
  "exports": {
6
9
  ".": {