chainflow 0.1.1 → 0.1.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.
package/README.md CHANGED
@@ -1,10 +1,23 @@
1
1
  <h1 align="center" style="border-bottom: none;">🌊hainflow</h1>
2
2
  <h3 align="center">A library to create dynamic and composable API call workflows.</h3>
3
+ <div align="center">
4
+
5
+ [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/edwinlzs/chainflow/blob/main/LICENSE)
6
+ &nbsp;
7
+ [![NPM version](https://img.shields.io/npm/v/chainflow.svg?style=flat-square)](https://www.npmjs.com/package/chainflow)
8
+ &nbsp;
9
+ [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/edwinlzs/chainflow/on-push.yml?style=flat-square&branch=main)](https://github.com/edwinlzs/chainflow/actions)
10
+ &nbsp;
11
+ </div>
3
12
 
4
13
  ## Not Released Yet
5
14
 
6
15
  Hi! If you are here, you're a bit early. I'm still setting up some stuff for the first release. Check back in later!
7
16
 
17
+ ## Documentation
18
+
19
+ Read the guides over at <https://edwinlzs.github.io/chainflow-docs/> to get started!
20
+
8
21
  ## Use Cases
9
22
 
10
23
  Create multiple sets of API call workflows with this library that can be used to:
@@ -134,19 +147,6 @@ const createUser = origin.post('/user').body({
134
147
  });
135
148
  ```
136
149
 
137
- ### [_EXPERIMENTAL_] - `pool`
138
-
139
- Provide a pool of values to take from when building requests. By default, Chainflow will randomly choose a value from the pool for each call in a non-exhaustive manner.
140
-
141
- ```typescript
142
- const createUser = origin.post('/user').body({
143
- name: pool(['Tom', 'Harry', 'Jane']),
144
- details: {
145
- age: 40,
146
- },
147
- });
148
- ```
149
-
150
150
  ### `gen`
151
151
 
152
152
  Provide a callback that generates values for building requests.
@@ -162,90 +162,109 @@ const createUser = origin.post('/user').body({
162
162
  });
163
163
  ```
164
164
 
165
- ### `source`
165
+ ### `link`
166
166
 
167
- Specify a source node with a callback.
167
+ You can use the `link` function to specify a callback to transform the response value before it is passed to the node.
168
168
 
169
169
  ```typescript
170
170
  const addGreeting = (name: string) => `Hello ${name}`;
171
171
 
172
- createNotification.body({
173
- msg: source(getUser.resp.body.name, addGreeting);
172
+ const createMessage = origin.post('message').body({
173
+ msg: link(getUser.resp.body.name, addGreeting);
174
174
  });
175
175
  ```
176
176
 
177
- ### `sources`
178
-
179
- Specify multiple source nodes that a value can be taken from, with an optional callback.
180
-
181
- ```typescript
182
- createNotification.body({
183
- msg: sources([getUser.resp.body.name, createUser.resp.body.name], addGreeting);
184
- });
185
- ```
177
+ ### `set`
186
178
 
187
- ### `link`
179
+ The `link` has another function signature.
188
180
 
189
- Link a response values to a single request node.
181
+ You can use the `set` method on an endpoint to expose its input nodes, then use the 2nd function signature of `link` as shown below: pass in the input node first (`msg`), then the source node second and optionally a callback third.
190
182
 
191
183
  ```typescript
192
- createNotification.set(({ body: { msg } }) => {
184
+ createMessage.set(({ body: { msg } }) => {
193
185
  link(msg, getUser.resp.body.name);
186
+ link(msg, createUser.resp.body.name);
194
187
  });
195
188
  ```
196
189
 
197
- Optionally, you can pass a callback to transform the response value before it is passed to the node.
190
+ With a callback:
198
191
 
199
192
  ```typescript
200
- createNotification.set(({ body: { msg } }) => {
193
+ createMessage.set(({ body: { msg } }) => {
201
194
  link(msg, getUser.resp.body.name, addGreeting);
195
+ link(msg, createUser.resp.body.name, addGreeting);
202
196
  });
203
197
  ```
204
198
 
205
199
  ### `linkMerge`
206
200
 
207
- Link multiple response values to a single request node with an optional callback to merge the values into a single input value.
201
+ Link multiple response values to a single request node with an optional callback to merge the values into a single input value. This has 4 function signatures:
208
202
 
209
- For the second argument, you can either pass an array of SourceNodes:
203
+ For the argument containing the source nodes, you can either pass an _array_ of SourceNodes:
210
204
 
211
205
  ```typescript
206
+ // note the callback has an array parameter
212
207
  const mergeValues = ([name, favAnimal]: [string, string]) =>
213
208
  `${name} likes ${favAnimal}.`;
214
209
 
215
- createNotification.set(({ body: { msg } }) => {
216
- linkMerge(
217
- msg, // the request node
218
- // specify which source nodes to take values from
219
- [getUser.resp.body.name, favAnimal: getFavAnimal.resp.body.favAnimal],
220
- // callback that takes the source values as its argument
221
- // and returns a single output value for the request node
222
- // callback parameter should look like an array of source values
210
+ const createMessage = origin.post('message').body({
211
+ msg: linkMerge(
212
+ // array of source nodes
213
+ [getUser.resp.body.name, getFavAnimal.resp.body.favAnimal],
223
214
  mergeValues,
224
215
  );
225
216
  });
226
217
  ```
227
218
 
228
- or you can pass an object with SourceNodes as the values:
219
+ or you can pass an _object_ with SourceNodes as the values:
229
220
 
230
221
  ```typescript
222
+ // note the callback has an object parameter
231
223
  const mergeValues = ({ userName, favAnimal }: { userName: string; favAnimal: string }) =>
232
224
  `${userName} likes ${favAnimal}.`;
233
225
 
226
+ const createMessage = origin.post('message').body({
227
+ msg: linkMerge(
228
+ // object of source nodes
229
+ {
230
+ userName: getUser.resp.body.name,
231
+ favAnimal: getFavAnimal.resp.body.favAnimal,
232
+ },
233
+ mergeValues,
234
+ );
235
+ });
236
+ ```
237
+
238
+ alternatively, you can use the `set` method in addition with the other function signature of `linkMerge` (similar to how `link` above has overloads to work with `set`).
239
+
240
+ with array:
241
+
242
+ ```typescript
243
+ createNotification.set(({ body: { msg } }) => {
244
+ linkMerge(
245
+ msg, // the input node
246
+ [getUser.resp.body.name, getFavAnimal.resp.body.favAnimal],
247
+ mergeValues,
248
+ );
249
+ });
250
+ ```
251
+
252
+ with object:
253
+
254
+ ```typescript
234
255
  createNotification.set(({ body: { msg } }) => {
235
256
  linkMerge(
236
- msg,
237
- // specify source nodes and assigns them to a key
257
+ msg, // the input node
238
258
  {
239
259
  userName: getUser.resp.body.name,
240
260
  favAnimal: getFavAnimal.resp.body.favAnimal,
241
261
  },
242
- // callback parameter should look like { key: sourceValue }
243
262
  mergeValues,
244
263
  );
245
264
  });
246
265
  ```
247
266
 
248
- Note that the merging link created by this method will only be used if ALL the source nodes specified are available i.e. if `getUser.resp.body.name` does not have a value, this link will not be used at all.
267
+ Note that the merging link created by this method will only be used if ALL the source nodes specified are available i.e. if either one of `getUser.resp.body.name` or `getFavAnimal.resp.body.favAnimal` does not have a value, this link will not be used at all.
249
268
 
250
269
  ### Call Options
251
270
 
@@ -1,16 +1,11 @@
1
1
  import { SourceNode } from './sourceNode';
2
- import { getNodeValue, setSource, setSources, setValuePool } from './utils/symbols';
3
- /** @experimental How a value pool should choose its values. */
4
- export declare enum VALUE_POOL_SELECT {
5
- UNIFORM = 0
6
- }
2
+ import { getNodeValue, setSource, setSources } from './utils/symbols';
7
3
  export declare enum NodeValue {
8
- ValuePool = 0,
9
- Generator = 1,
10
- Required = 2,
11
- Source = 3,
12
- SourceWithCallback = 4,
13
- Sources = 5
4
+ Generator = 0,
5
+ Required = 1,
6
+ Source = 2,
7
+ SourceWithCallback = 3,
8
+ MergeSourcesWithCallback = 4
14
9
  }
15
10
  type SourceValue = any;
16
11
  export type SourceValues = {
@@ -28,8 +23,6 @@ export declare class InputNode {
28
23
  [setSources](sources: SourceNode[] | {
29
24
  [key: string]: SourceNode;
30
25
  }, callback?: (val: any) => any): void;
31
- /** Sets the pool of values for this input node. */
32
- [setValuePool](valuePool: any[]): void;
33
26
  /** Retrieve value of a node. */
34
27
  [getNodeValue](sourceValues: SourceValues, missingValues: string[][], currentPath: string[]): any;
35
28
  /**
@@ -10,23 +10,17 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _InputNode_instances, _InputNode_isKvObject, _InputNode_default, _InputNode_required, _InputNode_sources, _InputNode_valuePool, _InputNode_valuePoolSelect, _InputNode_generator, _InputNode_matchSourceHash, _InputNode_accessSource, _InputNode_getSingleSourceNodeValue, _InputNode_getMultiSourceNodeValues, _InputNode_selectValue;
13
+ var _InputNode_instances, _InputNode_isKvObject, _InputNode_default, _InputNode_required, _InputNode_sources, _InputNode_generator, _InputNode_matchSourceHash, _InputNode_accessSource, _InputNode_getSingleSourceNodeValue, _InputNode_getMultiSourceNodeValues;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.InputNode = exports.NodeValue = exports.VALUE_POOL_SELECT = void 0;
15
+ exports.InputNode = exports.NodeValue = void 0;
16
16
  const symbols_1 = require("./utils/symbols");
17
- /** @experimental How a value pool should choose its values. */
18
- var VALUE_POOL_SELECT;
19
- (function (VALUE_POOL_SELECT) {
20
- VALUE_POOL_SELECT[VALUE_POOL_SELECT["UNIFORM"] = 0] = "UNIFORM";
21
- })(VALUE_POOL_SELECT || (exports.VALUE_POOL_SELECT = VALUE_POOL_SELECT = {}));
22
17
  var NodeValue;
23
18
  (function (NodeValue) {
24
- NodeValue[NodeValue["ValuePool"] = 0] = "ValuePool";
25
- NodeValue[NodeValue["Generator"] = 1] = "Generator";
26
- NodeValue[NodeValue["Required"] = 2] = "Required";
27
- NodeValue[NodeValue["Source"] = 3] = "Source";
28
- NodeValue[NodeValue["SourceWithCallback"] = 4] = "SourceWithCallback";
29
- NodeValue[NodeValue["Sources"] = 5] = "Sources";
19
+ NodeValue[NodeValue["Generator"] = 0] = "Generator";
20
+ NodeValue[NodeValue["Required"] = 1] = "Required";
21
+ NodeValue[NodeValue["Source"] = 2] = "Source";
22
+ NodeValue[NodeValue["SourceWithCallback"] = 3] = "SourceWithCallback";
23
+ NodeValue[NodeValue["MergeSourcesWithCallback"] = 4] = "MergeSourcesWithCallback";
30
24
  })(NodeValue || (exports.NodeValue = NodeValue = {}));
31
25
  /** A data node for constructing an input object. */
32
26
  class InputNode {
@@ -40,10 +34,6 @@ class InputNode {
40
34
  _InputNode_required.set(this, false);
41
35
  /** Stores what source node values can be passed into this node. */
42
36
  _InputNode_sources.set(this, {});
43
- /** @experimental Stores possible values this node can take. */
44
- _InputNode_valuePool.set(this, []);
45
- /** @experimental Determines what strategy to select from pool of values */
46
- _InputNode_valuePoolSelect.set(this, VALUE_POOL_SELECT.UNIFORM);
47
37
  /** Generator function to generate values on demand for this node. */
48
38
  _InputNode_generator.set(this, void 0);
49
39
  if (val == null) {
@@ -51,9 +41,6 @@ class InputNode {
51
41
  return;
52
42
  }
53
43
  switch (val[symbols_1.nodeValueIdentifier]) {
54
- case NodeValue.ValuePool:
55
- __classPrivateFieldSet(this, _InputNode_valuePool, val.valuePool, "f");
56
- return;
57
44
  case NodeValue.Generator:
58
45
  __classPrivateFieldSet(this, _InputNode_generator, val.generator, "f");
59
46
  return;
@@ -63,14 +50,11 @@ class InputNode {
63
50
  case NodeValue.Source:
64
51
  this[symbols_1.setSource](val);
65
52
  return;
66
- case NodeValue.SourceWithCallback: // TODO: explore refactoring here
53
+ case NodeValue.SourceWithCallback /** @todo explore refactoring here */:
67
54
  this[symbols_1.setSource](val.source, val.callback);
68
55
  return;
69
- case NodeValue.Sources:
70
- // TODO: validation here
71
- val.sources.forEach((source) => {
72
- this[symbols_1.setSource](source, val.callback);
73
- });
56
+ case NodeValue.MergeSourcesWithCallback:
57
+ this[symbols_1.setSources](val.sources, val.callback);
74
58
  return;
75
59
  }
76
60
  switch (typeof val) {
@@ -91,7 +75,7 @@ class InputNode {
91
75
  }
92
76
  }
93
77
  /** Sets a source node for this input node. */
94
- [(_InputNode_isKvObject = new WeakMap(), _InputNode_default = new WeakMap(), _InputNode_required = new WeakMap(), _InputNode_sources = new WeakMap(), _InputNode_valuePool = new WeakMap(), _InputNode_valuePoolSelect = new WeakMap(), _InputNode_generator = new WeakMap(), _InputNode_instances = new WeakSet(), symbols_1.setSource)](source, callback) {
78
+ [(_InputNode_isKvObject = new WeakMap(), _InputNode_default = new WeakMap(), _InputNode_required = new WeakMap(), _InputNode_sources = new WeakMap(), _InputNode_generator = new WeakMap(), _InputNode_instances = new WeakSet(), symbols_1.setSource)](source, callback) {
95
79
  __classPrivateFieldGet(this, _InputNode_sources, "f")[source[symbols_1.nodeHash]] = {
96
80
  path: source[symbols_1.nodePath],
97
81
  undefinedAllowed: source[symbols_1.undefinedAllowed],
@@ -133,10 +117,6 @@ class InputNode {
133
117
  callback,
134
118
  };
135
119
  }
136
- /** Sets the pool of values for this input node. */
137
- [symbols_1.setValuePool](valuePool) {
138
- __classPrivateFieldSet(this, _InputNode_valuePool, valuePool, "f");
139
- }
140
120
  /** Retrieve value of a node. */
141
121
  [symbols_1.getNodeValue](sourceValues, missingValues, currentPath) {
142
122
  const usedSources = []; // stores sourceValues that are already tried
@@ -161,10 +141,6 @@ class InputNode {
161
141
  if (__classPrivateFieldGet(this, _InputNode_generator, "f")) {
162
142
  return __classPrivateFieldGet(this, _InputNode_generator, "f").call(this);
163
143
  }
164
- // attempt to get value from value pool
165
- if (__classPrivateFieldGet(this, _InputNode_valuePool, "f").length > 0) {
166
- return __classPrivateFieldGet(this, _InputNode_instances, "m", _InputNode_selectValue).call(this);
167
- }
168
144
  if (__classPrivateFieldGet(this, _InputNode_isKvObject, "f")) {
169
145
  return this.buildKvObject(currentPath, missingValues, sourceValues);
170
146
  }
@@ -236,13 +212,5 @@ _InputNode_matchSourceHash = function _InputNode_matchSourceHash(sourceValues, u
236
212
  : (sourceVals[info.key] = sourceVal);
237
213
  }
238
214
  return sourceVals;
239
- }, _InputNode_selectValue = function _InputNode_selectValue() {
240
- if (__classPrivateFieldGet(this, _InputNode_valuePool, "f").length === 0)
241
- return;
242
- switch (__classPrivateFieldGet(this, _InputNode_valuePoolSelect, "f")) {
243
- case VALUE_POOL_SELECT.UNIFORM:
244
- default:
245
- return __classPrivateFieldGet(this, _InputNode_valuePool, "f")[Math.floor(Math.random() * __classPrivateFieldGet(this, _InputNode_valuePool, "f").length)];
246
- }
247
215
  };
248
216
  //# sourceMappingURL=inputNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputNode.js","sourceRoot":"","sources":["../../src/core/inputNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,6CASyB;AAEzB,+DAA+D;AAC/D,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,+DAAO,CAAA;AACT,CAAC,EAFW,iBAAiB,iCAAjB,iBAAiB,QAE5B;AAED,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,mDAAS,CAAA;IACT,mDAAS,CAAA;IACT,iDAAQ,CAAA;IACR,6CAAM,CAAA;IACN,qEAAkB,CAAA;IAClB,+CAAO,CAAA;AACT,CAAC,EAPW,SAAS,yBAAT,SAAS,QAOpB;AAiCD,oDAAoD;AACpD,MAAa,SAAS;IAkBpB,YAAY,GAAQ;;QAfpB,+EAA+E;QAC/E,gCAAuB,KAAK,EAAC;QAC7B,iCAAiC;QACjC,qCAAc;QACd,+DAA+D;QAC/D,8BAAqB,KAAK,EAAC;QAC3B,mEAAmE;QACnE,6BAAuD,EAAE,EAAC;QAC1D,+DAA+D;QAC/D,+BAAoB,EAAE,EAAC;QACvB,2EAA2E;QAC3E,qCAAsC,iBAAiB,CAAC,OAAO,EAAC;QAChE,qEAAqE;QACrE,uCAAoC;QAGlC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,uBAAA,IAAI,sBAAY,GAAG,MAAA,CAAC;YACpB,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,CAAC,6BAAmB,CAAC,EAAE,CAAC;YACjC,KAAK,SAAS,CAAC,SAAS;gBACtB,uBAAA,IAAI,wBAAc,GAAG,CAAC,SAAS,MAAA,CAAC;gBAChC,OAAO;YACT,KAAK,SAAS,CAAC,SAAS;gBACtB,uBAAA,IAAI,wBAAc,GAAG,CAAC,SAAS,MAAA,CAAC;gBAChC,OAAO;YACT,KAAK,SAAS,CAAC,QAAQ;gBACrB,uBAAA,IAAI,uBAAa,IAAI,MAAA,CAAC;gBACtB,OAAO;YACT,KAAK,SAAS,CAAC,MAAM;gBACnB,IAAI,CAAC,mBAAS,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,KAAK,SAAS,CAAC,kBAAkB,EAAE,iCAAiC;gBAClE,IAAI,CAAC,mBAAS,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1C,OAAO;YACT,KAAK,SAAS,CAAC,OAAO;gBACpB,wBAAwB;gBACxB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAkB,EAAE,EAAE;oBACzC,IAAI,CAAC,mBAAS,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,OAAO;QACX,CAAC;QAED,QAAQ,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,uDAAuD;oBACvD,uBAAA,IAAI,sBAAY,GAAG,MAAA,CAAC;oBACpB,MAAM;gBACR,CAAC;gBAED,uBAAA,IAAI,yBAAe,IAAI,MAAA,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;oBACxC,IAAY,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;gBACH,MAAM;YACR;gBACE,uBAAA,IAAI,sBAAY,GAAG,MAAA,CAAC;gBACpB,MAAM;QACV,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,oTAAC,mBAAS,EAAC,CAAC,MAAkB,EAAE,QAA4B;QAC1D,uBAAA,IAAI,0BAAS,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC,GAAG;YAChC,IAAI,EAAE,MAAM,CAAC,kBAAQ,CAAC;YACtB,gBAAgB,EAAE,MAAM,CAAC,0BAAgB,CAAC;YAC1C,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,wFAAwF;IACxF,CAAC,oBAAU,CAAC,CACV,OAAqD,EACrD,QAA4B;QAE5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,IAAI,UAA+B,CAAC;QACpC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC;YACf,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClC,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAQ,CAAC,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,kBAAQ,CAAC;oBACtB,gBAAgB,EAAE,MAAM,CAAC,0BAAgB,CAAC;oBAC1C,IAAI;iBACL,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzD,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAQ,CAAC,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,kBAAQ,CAAC;oBACtB,gBAAgB,EAAE,MAAM,CAAC,0BAAgB,CAAC;oBAC1C,IAAI;oBACJ,GAAG;iBACJ,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uBAAA,IAAI,0BAAS,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;YACrD,UAAU;YACV,OAAO;YACP,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,CAAC,sBAAY,CAAC,CAAC,SAAgB;QAC7B,uBAAA,IAAI,wBAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED,gCAAgC;IAChC,CAAC,sBAAY,CAAC,CAAC,YAA0B,EAAE,aAAyB,EAAE,WAAqB;QACzF,MAAM,WAAW,GAAa,EAAE,CAAC,CAAC,6CAA6C;QAC/E,uDAAuD;QACvD,IAAI,UAAU,GAAG,uBAAA,IAAI,wDAAiB,MAArB,IAAI,EAAkB,YAAY,EAAE,WAAW,CAAC,CAAC;QAClE,OAAO,UAAU,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,uBAAA,IAAI,0BAAS,CAAC,UAAU,CAAE,CAAC;YAE1C,IAAI,SAAS,CAAC;YACd,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;gBAC3B,SAAS,GAAG,uBAAA,IAAI,iEAA0B,MAA9B,IAAI,EAA2B,MAAM,EAAE,YAAY,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,uBAAA,IAAI,iEAA0B,MAA9B,IAAI,EACd,UAAU,EACV,MAAM,CAAC,IAAI,EACX,YAAY,EACZ,MAAM,CAAC,gBAAgB,CACxB,CAAC;YACJ,CAAC;YAED,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,kBAAkB,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACzF,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,UAAU,GAAG,uBAAA,IAAI,wDAAiB,MAArB,IAAI,EAAkB,YAAY,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC;QAED,+CAA+C;QAC/C,IAAI,uBAAA,IAAI,4BAAW,EAAE,CAAC;YACpB,OAAO,uBAAA,IAAI,4BAAW,MAAf,IAAI,CAAa,CAAC;QAC3B,CAAC;QAED,uCAAuC;QACvC,IAAI,uBAAA,IAAI,4BAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,uBAAA,IAAI,oDAAa,MAAjB,IAAI,CAAe,CAAC;QAC7B,CAAC;QAED,IAAI,uBAAA,IAAI,6BAAY,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,2EAA2E;QAC3E,IAAI,uBAAA,IAAI,0BAAS,KAAK,SAAS,IAAI,uBAAA,IAAI,2BAAU,EAAE,CAAC;YAClD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,OAAO,uBAAA,IAAI,0BAAS,CAAC;IACvB,CAAC;IAgFD;;;OAGG;IACH,aAAa,CAAC,WAAqB,EAAE,aAAyB,EAAE,YAA0B;QACxF,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;YACrD,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,sBAAY,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;YACpE,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAS,CAAC,CAAC;IAChB,CAAC;CACF;AAtQD,8BAsQC;iEAvFkB,YAA0B,EAAE,WAAqB;IAChE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,0BAAS,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,6CAA6C;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B;YACE,+BAA+B;YAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EACvF,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,6DAGa,OAAY,EAAE,IAAc,EAAE,gBAA0B;IACpE,IAAI,SAAS,GAAG,OAAO,CAAC;IAExB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,6CAA6C;QAC7C,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvD,IAAI,gBAAgB;gBAAE,OAAO,SAAS,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QAC1B,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,qFAIC,IAAY,EACZ,IAAc,EACd,YAA0B,EAC1B,gBAA0B;IAE1B,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,CAAC;IAE5C,iCAAiC;IACjC,OAAO,uBAAA,IAAI,qDAAc,MAAlB,IAAI,EAAe,YAAY,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;AAClE,CAAC,qFAGyB,OAAiB,EAAE,YAA0B;IACrE,IAAI,UAAkD,CAAC;IACvD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,uBAAA,IAAI,iEAA0B,MAA9B,IAAI,EAA2B,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrF,oEAAoE;QACpE,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,CAAC,OAAO;YACb,CAAC,CAAE,UAAwB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3C,CAAC,CAAC,CAAE,UAAyC,CAAC,IAAI,CAAC,GAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;IAIC,IAAI,uBAAA,IAAI,4BAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACzC,QAAQ,uBAAA,IAAI,kCAAiB,EAAE,CAAC;QAC9B,KAAK,iBAAiB,CAAC,OAAO,CAAC;QAC/B;YACE,OAAO,uBAAA,IAAI,4BAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,uBAAA,IAAI,4BAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"inputNode.js","sourceRoot":"","sources":["../../src/core/inputNode.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,5 @@
1
1
  import { NodeValue } from '../inputNode';
2
2
  import { nodeValueIdentifier } from './symbols';
3
- /** Defines a set of values to choose from when constructing an input. */
4
- export declare const pool: (valuePool: any[]) => {
5
- valuePool: any[];
6
- [nodeValueIdentifier]: NodeValue;
7
- };
8
3
  /** Provides a generator function to produce a value for an input. */
9
4
  export declare const gen: (generator: () => any) => {
10
5
  generator: () => any;
@@ -1,14 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.required = exports.gen = exports.pool = void 0;
3
+ exports.required = exports.gen = void 0;
4
4
  const inputNode_1 = require("../inputNode");
5
5
  const symbols_1 = require("./symbols");
6
- /** Defines a set of values to choose from when constructing an input. */
7
- const pool = (valuePool) => ({
8
- valuePool,
9
- [symbols_1.nodeValueIdentifier]: inputNode_1.NodeValue.ValuePool,
10
- });
11
- exports.pool = pool;
12
6
  /** Provides a generator function to produce a value for an input. */
13
7
  const gen = (generator) => ({
14
8
  generator,
@@ -1 +1 @@
1
- {"version":3,"file":"initializers.js","sourceRoot":"","sources":["../../../src/core/utils/initializers.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,uCAAgD;AAEhD,yEAAyE;AAClE,MAAM,IAAI,GAAG,CAAC,SAAgB,EAAE,EAAE,CAAC,CAAC;IACzC,SAAS;IACT,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,SAAS;CAC3C,CAAC,CAAC;AAHU,QAAA,IAAI,QAGd;AAEH,qEAAqE;AAC9D,MAAM,GAAG,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;IAC5C,SAAS;IACT,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,SAAS;CAC3C,CAAC,CAAC;AAHU,QAAA,GAAG,OAGb;AAEH;kDACkD;AAC3C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,QAAQ;CAC1C,CAAC,CAAC;AAFU,QAAA,QAAQ,YAElB"}
1
+ {"version":3,"file":"initializers.js","sourceRoot":"","sources":["../../../src/core/utils/initializers.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,uCAAgD;AAEhD,qEAAqE;AAC9D,MAAM,GAAG,GAAG,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC;IAC5C,SAAS;IACT,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,SAAS;CAC3C,CAAC,CAAC;AAHU,QAAA,GAAG,OAGb;AAEH;kDACkD;AAC3C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,QAAQ;CAC1C,CAAC,CAAC;AAFU,QAAA,QAAQ,YAElB"}
@@ -1,24 +1,71 @@
1
- import { InputNode } from '../inputNode';
1
+ import { InputNode, NodeValue } from '../inputNode';
2
+ import { nodeValueIdentifier } from './symbols';
2
3
  import { SourceNode } from '../sourceNode';
3
- /**
4
- * Link a Source node to a Input node.
5
- * @param dest the input node that should take a value from a source.
6
- * @param source the source node that will provide the value for a input.
7
- * @param callback an optional function that is called on the source source value.
8
- */
9
- export declare const link: (dest: InputNode, source: SourceNode, callback?: ((val: any) => any) | undefined) => void;
10
- /**
11
- * Links multiple Source nodes to a Input node via a callback.
12
- * @param dest the input node that should take a value from the callback.
13
- * @param sources an array of source nodes that will be passed into the callback.
14
- * @param callback a function to merge the sources into a single source for the dest.
15
- */
16
- export declare const linkMerge: (dest: InputNode, sources: SourceNode[] | {
17
- [key: string]: SourceNode;
18
- }, callback?: ((val: any) => any) | undefined) => void;
4
+ interface SourceInfo {
5
+ [nodeValueIdentifier]: NodeValue;
6
+ source: SourceNode;
7
+ callback: ((val: any) => any) | undefined;
8
+ }
9
+ /** Overload signatures for `linkMerge` function. */
10
+ interface Link {
11
+ /**
12
+ * Link a Source node to an Input node.
13
+ * @param source the source node that will provide the value for an input.
14
+ * @param callback an optional function that is called on the source source value.
15
+ */
16
+ (source: SourceNode, callback?: (val: any) => any): SourceInfo;
17
+ /**
18
+ * Link a Source node to an Input node.
19
+ * @param dest the input node that should take a value from a source.
20
+ * @param source the source node that will provide the value for an input.
21
+ * @param callback an optional function that is called on the source source value.
22
+ */
23
+ (dest: InputNode, source: SourceNode, callback?: (val: any) => any): void;
24
+ }
25
+ export declare const link: Link;
26
+ interface MergeSourcesInfo {
27
+ [nodeValueIdentifier]: NodeValue;
28
+ sources: SourceNode[];
29
+ callback: ((val: any) => any) | undefined;
30
+ }
31
+ /** Overload signatures for `linkMerge` function. */
32
+ interface LinkMerge {
33
+ /**
34
+ * Links multiple Source nodes to an Input node via a callback.
35
+ * @param sources an array of source nodes to merge values from.
36
+ * @param callback a function to merge the sources into a single source for the dest.
37
+ */
38
+ (sources: SourceNode[], callback?: (val: any) => any): MergeSourcesInfo;
39
+ /**
40
+ * Links multiple Source nodes to an Input node via a callback.
41
+ * @param sources an object with source nodes to merge values from.
42
+ * @param callback a function to merge the sources into a single source for the dest.
43
+ */
44
+ (sources: {
45
+ [key: string]: SourceNode;
46
+ }, callback?: (val: any) => any): void;
47
+ /**
48
+ * Links multiple Source nodes to an Input node via a callback.
49
+ * @param dest the input node that should take a value from the callback.
50
+ * @param sources an array of source nodes to merge values from.
51
+ * @param callback a function to merge the sources into a single source for the dest.
52
+ */
53
+ (dest: InputNode, sources: SourceNode[], callback?: (val: any) => any): void;
54
+ /**
55
+ * Links multiple Source nodes to an Input node via a callback.
56
+ * @param dest the input node that should take a value from the callback.
57
+ * @param sources an object with source nodes to merge values from.
58
+ * @param callback a function to merge the sources into a single source for the dest.
59
+ */
60
+ (dest: InputNode, sources: {
61
+ [key: string]: SourceNode;
62
+ }, callback?: (val: any) => any): void;
63
+ }
64
+ export declare const linkMerge: LinkMerge;
19
65
  /**
20
66
  * Modifier function that allows a SourceNode to return `undefined` values to an input node.
21
67
  * Note that doing so will make it such that this SourceNode will ALWAYS be used to retrieve
22
68
  * a value for any linked input node, unless there is another SourceNode with higher priority.
23
69
  */
24
70
  export declare const allowUndefined: (source: SourceNode) => SourceNode;
71
+ export {};
@@ -1,27 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.allowUndefined = exports.linkMerge = exports.link = void 0;
4
+ const inputNode_1 = require("../inputNode");
4
5
  const symbols_1 = require("./symbols");
5
- /**
6
- * Link a Source node to a Input node.
7
- * @param dest the input node that should take a value from a source.
8
- * @param source the source node that will provide the value for a input.
9
- * @param callback an optional function that is called on the source source value.
10
- */
11
- const link = (dest, source, callback) => {
12
- dest[symbols_1.setSource](source, callback);
13
- };
14
- exports.link = link;
15
- /**
16
- * Links multiple Source nodes to a Input node via a callback.
17
- * @param dest the input node that should take a value from the callback.
18
- * @param sources an array of source nodes that will be passed into the callback.
19
- * @param callback a function to merge the sources into a single source for the dest.
20
- */
21
- const linkMerge = (dest, sources, callback) => {
22
- dest[symbols_1.setSources](sources, callback);
23
- };
24
- exports.linkMerge = linkMerge;
6
+ exports.link = ((...args) => {
7
+ if (['function', 'undefined'].includes(typeof args[1])) {
8
+ const [source, callback] = args;
9
+ return {
10
+ [symbols_1.nodeValueIdentifier]: inputNode_1.NodeValue.SourceWithCallback,
11
+ source,
12
+ callback,
13
+ };
14
+ }
15
+ else {
16
+ const [dest, source, callback] = args;
17
+ dest[symbols_1.setSource](source, callback);
18
+ }
19
+ });
20
+ exports.linkMerge = ((...args) => {
21
+ if (['function', 'undefined'].includes(typeof args[1])) {
22
+ const [sources, callback] = args;
23
+ return {
24
+ [symbols_1.nodeValueIdentifier]: inputNode_1.NodeValue.MergeSourcesWithCallback,
25
+ sources,
26
+ callback,
27
+ };
28
+ }
29
+ else {
30
+ const [dest, source, callback] = args;
31
+ dest[symbols_1.setSources](source, callback);
32
+ }
33
+ });
25
34
  /**
26
35
  * Modifier function that allows a SourceNode to return `undefined` values to an input node.
27
36
  * Note that doing so will make it such that this SourceNode will ALWAYS be used to retrieve
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/core/utils/link.ts"],"names":[],"mappings":";;;AACA,uCAAoE;AAGpE;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,MAAkB,EAAE,QAA4B,EAAE,EAAE;IACxF,IAAI,CAAC,mBAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf;AAEF;;;;;GAKG;AACI,MAAM,SAAS,GAAG,CACvB,IAAe,EACf,OAAqD,EACrD,QAA4B,EAC5B,EAAE;IACF,IAAI,CAAC,oBAAU,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEF;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAE,EAAE;IACnD,MAAM,CAAC,0BAAgB,CAAC,GAAG,IAAI,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/core/utils/link.ts"],"names":[],"mappings":";;;AAAA,4CAAoD;AACpD,uCAAyF;AA0B5E,QAAA,IAAI,GAAS,CAAC,CAAC,GAAG,IAAsB,EAAE,EAAE;IACvD,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAA8D,CAAC;QAC1F,OAAO;YACL,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,kBAAkB;YACnD,MAAM;YACN,QAAQ;SACT,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAkD,CAAC;QACpF,IAAI,CAAC,mBAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;AACH,CAAC,CAAS,CAAC;AAsCE,QAAA,SAAS,GAAc,CAAC,CAAC,GAAG,IAA2B,EAAE,EAAE;IACtE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,IAG3B,CAAC;QACF,OAAO;YACL,CAAC,6BAAmB,CAAC,EAAE,qBAAS,CAAC,wBAAwB;YACzD,OAAO;YACP,QAAQ;SACT,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,IAIhC,CAAC;QACF,IAAI,CAAC,oBAAU,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAc,CAAC;AAEhB;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAE,EAAE;IACnD,MAAM,CAAC,0BAAgB,CAAC,GAAG,IAAI,CAAC;IAChC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB"}
@@ -1,6 +1,5 @@
1
1
  export declare const setSource: unique symbol;
2
2
  export declare const setSources: unique symbol;
3
- export declare const setValuePool: unique symbol;
4
3
  export declare const getNodeValue: unique symbol;
5
4
  export declare const nodeHash: unique symbol;
6
5
  export declare const nodePath: unique symbol;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.undefinedAllowed = exports.nodeValueIdentifier = exports.nodePath = exports.nodeHash = exports.getNodeValue = exports.setValuePool = exports.setSources = exports.setSource = void 0;
3
+ exports.undefinedAllowed = exports.nodeValueIdentifier = exports.nodePath = exports.nodeHash = exports.getNodeValue = exports.setSources = exports.setSource = void 0;
4
4
  exports.setSource = Symbol('setSource');
5
5
  exports.setSources = Symbol('setSources');
6
- exports.setValuePool = Symbol('setValuePool');
7
6
  exports.getNodeValue = Symbol('getNodeValue');
8
7
  exports.nodeHash = Symbol('nodeHash');
9
8
  exports.nodePath = Symbol('nodePath');
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/core/utils/symbols.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAChC,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/core/utils/symbols.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAChC,QAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from './core/chainflow';
2
2
  export * from './core/utils/initializers';
3
- export * from './core/utils/source';
4
3
  export * from './core/inputNode';
5
4
  export * from './core/utils/link';
6
5
  export * from './http/endpoint';
package/dist/index.js CHANGED
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./core/chainflow"), exports);
18
18
  __exportStar(require("./core/utils/initializers"), exports);
19
- __exportStar(require("./core/utils/source"), exports);
20
19
  __exportStar(require("./core/inputNode"), exports);
21
20
  __exportStar(require("./core/utils/link"), exports);
22
21
  __exportStar(require("./http/endpoint"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4DAA0C;AAC1C,sDAAoC;AACpC,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4DAA0C;AAC1C,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chainflow",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "build dynamic and flexible API workflows",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",