@intellia/workflow-sdk 0.3.1 → 0.3.2

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.
@@ -12,7 +12,7 @@ const defineToolWorkflow = (spec) => ({
12
12
  if (spec.outputNodeId !== undefined)
13
13
  ids.reserve(spec.outputNodeId);
14
14
  const root = new builder_js_1.Builder(ids);
15
- const output = spec.build(root, (0, refs_js_1.handleFor)("$.results.trigger"));
15
+ const output = (0, refs_js_1.encodeBuildOutput)(spec.build(root, (0, refs_js_1.handleFor)("$.results.trigger")));
16
16
  return Object.assign(Object.assign({ name: spec.name, description: (_a = spec.description) !== null && _a !== void 0 ? _a : spec.name, slug: spec.slug, kind: "tool", trigger: { type: "json", name: spec.triggerName, input: spec.input }, scope: root.scope, output, outputSchema: spec.output, ids, endNodeId: spec.endNodeId, endNodeName: spec.endNodeName, outputNodeId: spec.outputNodeId, outputNodeName: spec.outputNodeName }, (spec.labels ? { labels: spec.labels } : {})), (spec.triggers ? { triggers: spec.triggers } : {}));
17
17
  },
18
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"define-tool-workflow.js","sourceRoot":"","sources":["../../src/define-tool-workflow.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AACpD,uCAAmD;AAyB5C,MAAM,kBAAkB,GAAG,CAChC,IAAuC,EACvB,EAAE,CAAC,CAAC;IACpB,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,wBAAW,EAAE,CAAC;QAC9B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAA,mBAAS,EAAS,mBAAmB,CAAC,CAAC,CAAC;QAExE,qCACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACpE,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,YAAY,EAAE,IAAI,CAAC,MAAM,EACzB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC;AA5BU,QAAA,kBAAkB,sBA4B5B"}
1
+ {"version":3,"file":"define-tool-workflow.js","sourceRoot":"","sources":["../../src/define-tool-workflow.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AACpD,uCAAsE;AAyB/D,MAAM,kBAAkB,GAAG,CAChC,IAAuC,EACvB,EAAE,CAAC,CAAC;IACpB,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,wBAAW,EAAE,CAAC;QAC9B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAA,mBAAS,EAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAE3F,qCACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACpE,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,YAAY,EAAE,IAAI,CAAC,MAAM,EACzB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC;AA5BU,QAAA,kBAAkB,sBA4B5B"}
@@ -5,7 +5,7 @@ const builder_js_1 = require("./builder.js");
5
5
  const refs_js_1 = require("./refs.js");
6
6
  const defineWorkflow = (spec) => ({
7
7
  record() {
8
- var _a, _b;
8
+ var _a;
9
9
  const ids = new builder_js_1.IdAllocator();
10
10
  // Reserved before `build()` runs, so a body node's auto-derived id
11
11
  // yields to it (via allocate()'s suffixing) rather than claiming it
@@ -16,10 +16,12 @@ const defineWorkflow = (spec) => ({
16
16
  ids.reserve(spec.outputNodeId);
17
17
  const root = new builder_js_1.Builder(ids);
18
18
  const trigger = (0, refs_js_1.handleFor)("$.results.trigger");
19
- const output = (_a = spec.build(root, trigger)) !== null && _a !== void 0 ? _a : undefined;
19
+ // `null` means no output, like `undefined`: an untyped build may return either.
20
+ const built = spec.build(root, trigger);
21
+ const output = built == null ? undefined : (0, refs_js_1.encodeBuildOutput)(built);
20
22
  const failureScope = root.recordBranch(spec.onFailure);
21
23
  const triggerSpec = { type: spec.trigger.type, name: spec.trigger.name, input: spec.trigger.input };
22
- return Object.assign({ name: spec.name, description: (_b = spec.description) !== null && _b !== void 0 ? _b : spec.name, slug: spec.slug, kind: "standard", trigger: triggerSpec, scope: root.scope, output, onFailure: failureScope, ids, endNodeId: spec.endNodeId, endNodeName: spec.endNodeName, outputNodeId: spec.outputNodeId, outputNodeName: spec.outputNodeName }, (spec.triggers ? { triggers: spec.triggers } : {}));
24
+ return Object.assign({ name: spec.name, description: (_a = spec.description) !== null && _a !== void 0 ? _a : spec.name, slug: spec.slug, kind: "standard", trigger: triggerSpec, scope: root.scope, output, onFailure: failureScope, ids, endNodeId: spec.endNodeId, endNodeName: spec.endNodeName, outputNodeId: spec.outputNodeId, outputNodeName: spec.outputNodeName }, (spec.triggers ? { triggers: spec.triggers } : {}));
23
25
  },
24
26
  });
25
27
  exports.defineWorkflow = defineWorkflow;
@@ -1 +1 @@
1
- {"version":3,"file":"define-workflow.js","sourceRoot":"","sources":["../../src/define-workflow.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AACpD,uCAAmD;AAoB5C,MAAM,cAAc,GAAG,CAAS,IAA0B,EAAkB,EAAE,CAAC,CAAC;IACrF,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,wBAAW,EAAE,CAAC;QAC9B,mEAAmE;QACnE,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAS,mBAAmB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,SAAS,CAAC;QAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEjH,uBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,SAAS,EAAE,YAAY,EACvB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC;AAjCU,QAAA,cAAc,kBAiCxB"}
1
+ {"version":3,"file":"define-workflow.js","sourceRoot":"","sources":["../../src/define-workflow.ts"],"names":[],"mappings":";;;AACA,6CAAoD;AACpD,uCAAsE;AAoB/D,MAAM,cAAc,GAAG,CAAS,IAA0B,EAAkB,EAAE,CAAC,CAAC;IACrF,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,wBAAW,EAAE,CAAC;QAC9B,mEAAmE;QACnE,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAS,mBAAmB,CAAC,CAAC;QACvD,gFAAgF;QAChF,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,2BAAiB,EAAC,KAAK,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEjH,uBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,SAAS,EAAE,YAAY,EACvB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC;AAnCU,QAAA,cAAc,kBAmCxB"}
package/dist/cjs/refs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeValue = exports.tpl = exports.handleFor = exports.tplText = exports.isTpl = exports.refPath = exports.isRef = void 0;
3
+ exports.encodeBuildOutput = exports.encodeValue = exports.tpl = exports.handleFor = exports.tplText = exports.isTpl = exports.refPath = exports.isRef = void 0;
4
4
  const REF = Symbol.for("hutly.workflow.ref");
5
5
  const TPL = Symbol.for("hutly.workflow.tpl");
6
6
  const isRef = (v) => typeof v === "object" && v !== null && REF in v;
@@ -36,17 +36,35 @@ const tpl = (strings, ...vals) => {
36
36
  return { [TPL]: out };
37
37
  };
38
38
  exports.tpl = tpl;
39
- const encodeValue = (v) => {
39
+ // The YAML emitter drops a function or symbol value, or fails without naming
40
+ // where it was, so encoding throws with the path that holds it.
41
+ const encodeAt = (v, at) => {
40
42
  if ((0, exports.isRef)(v))
41
43
  return (0, exports.refPath)(v);
42
44
  if ((0, exports.isTpl)(v))
43
45
  return (0, exports.tplText)(v);
46
+ if (typeof v === "function" || typeof v === "symbol") {
47
+ throw new Error(`Cannot encode a ${typeof v} at "${at || "(root)"}": use a node reference, tpl\`…\`, or a JSON literal`);
48
+ }
44
49
  if (Array.isArray(v))
45
- return v.map(exports.encodeValue);
50
+ return v.map((x, i) => encodeAt(x, `${at}[${i}]`));
46
51
  if (v !== null && typeof v === "object") {
47
- return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, (0, exports.encodeValue)(x)]));
52
+ return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, encodeAt(x, at ? `${at}.${k}` : k)]));
48
53
  }
49
54
  return v;
50
55
  };
56
+ const encodeValue = (v) => encodeAt(v, "");
51
57
  exports.encodeValue = encodeValue;
58
+ // A workflow's output is an object of fields. A whole node handle encodes to a
59
+ // bare JSONPath string, which no output schema accepts.
60
+ const encodeBuildOutput = (v) => {
61
+ if ((0, exports.isRef)(v)) {
62
+ throw new Error(`build() returned a whole node reference (${(0, exports.refPath)(v)}); return an object of fields instead, e.g. wf.output({ field: node.field })`);
63
+ }
64
+ if (v === null || typeof v !== "object" || Array.isArray(v) || (0, exports.isTpl)(v)) {
65
+ throw new Error(`build() must return an object of fields, e.g. wf.output({ field: node.field })`);
66
+ }
67
+ return (0, exports.encodeValue)(v);
68
+ };
69
+ exports.encodeBuildOutput = encodeBuildOutput;
52
70
  //# sourceMappingURL=refs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Builder, IdAllocator } from "./builder.js";
2
- import { handleFor } from "./refs.js";
2
+ import { encodeBuildOutput, handleFor } from "./refs.js";
3
3
  export const defineToolWorkflow = (spec) => ({
4
4
  record() {
5
5
  var _a;
@@ -9,7 +9,7 @@ export const defineToolWorkflow = (spec) => ({
9
9
  if (spec.outputNodeId !== undefined)
10
10
  ids.reserve(spec.outputNodeId);
11
11
  const root = new Builder(ids);
12
- const output = spec.build(root, handleFor("$.results.trigger"));
12
+ const output = encodeBuildOutput(spec.build(root, handleFor("$.results.trigger")));
13
13
  return Object.assign(Object.assign({ name: spec.name, description: (_a = spec.description) !== null && _a !== void 0 ? _a : spec.name, slug: spec.slug, kind: "tool", trigger: { type: "json", name: spec.triggerName, input: spec.input }, scope: root.scope, output, outputSchema: spec.output, ids, endNodeId: spec.endNodeId, endNodeName: spec.endNodeName, outputNodeId: spec.outputNodeId, outputNodeName: spec.outputNodeName }, (spec.labels ? { labels: spec.labels } : {})), (spec.triggers ? { triggers: spec.triggers } : {}));
14
14
  },
15
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"define-tool-workflow.js","sourceRoot":"","sources":["../../src/define-tool-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,SAAS,EAAe,MAAM,WAAW,CAAC;AAyBnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAuC,EACvB,EAAE,CAAC,CAAC;IACpB,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAS,mBAAmB,CAAC,CAAC,CAAC;QAExE,qCACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACpE,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,YAAY,EAAE,IAAI,CAAC,MAAM,EACzB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"define-tool-workflow.js","sourceRoot":"","sources":["../../src/define-tool-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAe,MAAM,WAAW,CAAC;AAyBtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAuC,EACvB,EAAE,CAAC,CAAC;IACpB,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAE3F,qCACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACpE,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,YAAY,EAAE,IAAI,CAAC,MAAM,EACzB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC5C,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { Builder, IdAllocator } from "./builder.js";
2
- import { handleFor } from "./refs.js";
2
+ import { encodeBuildOutput, handleFor } from "./refs.js";
3
3
  export const defineWorkflow = (spec) => ({
4
4
  record() {
5
- var _a, _b;
5
+ var _a;
6
6
  const ids = new IdAllocator();
7
7
  // Reserved before `build()` runs, so a body node's auto-derived id
8
8
  // yields to it (via allocate()'s suffixing) rather than claiming it
@@ -13,10 +13,12 @@ export const defineWorkflow = (spec) => ({
13
13
  ids.reserve(spec.outputNodeId);
14
14
  const root = new Builder(ids);
15
15
  const trigger = handleFor("$.results.trigger");
16
- const output = (_a = spec.build(root, trigger)) !== null && _a !== void 0 ? _a : undefined;
16
+ // `null` means no output, like `undefined`: an untyped build may return either.
17
+ const built = spec.build(root, trigger);
18
+ const output = built == null ? undefined : encodeBuildOutput(built);
17
19
  const failureScope = root.recordBranch(spec.onFailure);
18
20
  const triggerSpec = { type: spec.trigger.type, name: spec.trigger.name, input: spec.trigger.input };
19
- return Object.assign({ name: spec.name, description: (_b = spec.description) !== null && _b !== void 0 ? _b : spec.name, slug: spec.slug, kind: "standard", trigger: triggerSpec, scope: root.scope, output, onFailure: failureScope, ids, endNodeId: spec.endNodeId, endNodeName: spec.endNodeName, outputNodeId: spec.outputNodeId, outputNodeName: spec.outputNodeName }, (spec.triggers ? { triggers: spec.triggers } : {}));
21
+ return Object.assign({ name: spec.name, description: (_a = spec.description) !== null && _a !== void 0 ? _a : spec.name, slug: spec.slug, kind: "standard", trigger: triggerSpec, scope: root.scope, output, onFailure: failureScope, ids, endNodeId: spec.endNodeId, endNodeName: spec.endNodeName, outputNodeId: spec.outputNodeId, outputNodeName: spec.outputNodeName }, (spec.triggers ? { triggers: spec.triggers } : {}));
20
22
  },
21
23
  });
22
24
  //# sourceMappingURL=define-workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-workflow.js","sourceRoot":"","sources":["../../src/define-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,SAAS,EAAe,MAAM,WAAW,CAAC;AAoBnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAS,IAA0B,EAAkB,EAAE,CAAC,CAAC;IACrF,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,mEAAmE;QACnE,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAS,mBAAmB,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,mCAAI,SAAS,CAAC;QAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEjH,uBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,SAAS,EAAE,YAAY,EACvB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"define-workflow.js","sourceRoot":"","sources":["../../src/define-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAe,MAAM,WAAW,CAAC;AAoBtE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAS,IAA0B,EAAkB,EAAE,CAAC,CAAC;IACrF,MAAM;;QACJ,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,mEAAmE;QACnE,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAS,mBAAmB,CAAC,CAAC;QACvD,gFAAgF;QAChF,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEjH,uBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,IAAI,EAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EACN,SAAS,EAAE,YAAY,EACvB,GAAG,EACH,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAChC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrD;IACJ,CAAC;CACF,CAAC,CAAC"}
package/dist/esm/refs.js CHANGED
@@ -27,16 +27,33 @@ export const tpl = (strings, ...vals) => {
27
27
  }
28
28
  return { [TPL]: out };
29
29
  };
30
- export const encodeValue = (v) => {
30
+ // The YAML emitter drops a function or symbol value, or fails without naming
31
+ // where it was, so encoding throws with the path that holds it.
32
+ const encodeAt = (v, at) => {
31
33
  if (isRef(v))
32
34
  return refPath(v);
33
35
  if (isTpl(v))
34
36
  return tplText(v);
37
+ if (typeof v === "function" || typeof v === "symbol") {
38
+ throw new Error(`Cannot encode a ${typeof v} at "${at || "(root)"}": use a node reference, tpl\`…\`, or a JSON literal`);
39
+ }
35
40
  if (Array.isArray(v))
36
- return v.map(encodeValue);
41
+ return v.map((x, i) => encodeAt(x, `${at}[${i}]`));
37
42
  if (v !== null && typeof v === "object") {
38
- return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, encodeValue(x)]));
43
+ return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, encodeAt(x, at ? `${at}.${k}` : k)]));
39
44
  }
40
45
  return v;
41
46
  };
47
+ export const encodeValue = (v) => encodeAt(v, "");
48
+ // A workflow's output is an object of fields. A whole node handle encodes to a
49
+ // bare JSONPath string, which no output schema accepts.
50
+ export const encodeBuildOutput = (v) => {
51
+ if (isRef(v)) {
52
+ throw new Error(`build() returned a whole node reference (${refPath(v)}); return an object of fields instead, e.g. wf.output({ field: node.field })`);
53
+ }
54
+ if (v === null || typeof v !== "object" || Array.isArray(v) || isTpl(v)) {
55
+ throw new Error(`build() must return an object of fields, e.g. wf.output({ field: node.field })`);
56
+ }
57
+ return encodeValue(v);
58
+ };
42
59
  //# sourceMappingURL=refs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/refs.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAiB7C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAgB,EAAE,CAChD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAgB,EAAE,CAChD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,QAAgB,EAAa,EAAE,CAC1D,IAAI,KAAK,CAAC,EAAe,EAAE;IACzB,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAC;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC/C,OAAO,SAAS,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,IAAI,KAAK,GAAG,CAAC;IACtB,CAAC;CACF,CAAC,CAAC;AAEL,uEAAuE;AACvE,MAAM,YAAY,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;AAExF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAA6B,EAAE,GAAG,IAAe,EAAW,EAAE;IAChF,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,6EAA6E;AAC7E,gEAAgE;AAChE,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAE,EAAU,EAAW,EAAE;IACnD,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,QAAQ,EAAE,IAAI,QAAQ,sDAAsD,CAAC,CAAC;IAC3H,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAEpE,+EAA+E;AAC/E,wDAAwD;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAA2B,EAAE;IACvE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4CAA4C,OAAO,CAAC,CAAC,CAAC,8EAA8E,CACrI,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,WAAW,CAAC,CAAC,CAA4B,CAAC;AACnD,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intellia/workflow-sdk",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "license": "MIT",
5
5
  "description": "TypeScript authoring surface for Hutly workflows",
6
6
  "publishConfig": {