@cnstra/core 1.5.2 → 1.6.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/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  **Graph-routed, type-safe orchestration for reactive apps — no global event bus.**
4
4
 
5
+ 📚 **[Full Documentation](https://cnstra.org/)** | [Quick Start](https://cnstra.org/docs/core/quick-start) | [API Reference](https://cnstra.org/docs/core/api) | [Recipes](https://cnstra.org/docs/recipes/cancel)
6
+
5
7
  ## 🧠 What is CNStra?
6
8
 
7
9
  **CNStra (Central Nervous System Orchestrator)** models your app as a **typed neuron graph**.
@@ -110,6 +112,12 @@ const myNeuron = neuron('my-neuron', {
110
112
 
111
113
  Adds a dendrite (input receptor) to a neuron. Returns the neuron for chaining.
112
114
 
115
+ The `response` function can return:
116
+ - A single signal: `axon.output.createSignal(data)`
117
+ - An array of signals: `[axon.output1.createSignal(data1), axon.output2.createSignal(data2)]`
118
+ - A Promise of either
119
+ - `undefined`/`void` to end processing
120
+
113
121
  ```typescript
114
122
  myNeuron
115
123
  .dendrite({
@@ -119,6 +127,8 @@ myNeuron
119
127
  if (ctx.abortSignal?.aborted) return; // graceful cancel
120
128
  const prev = ctx.get();
121
129
  ctx.set({ ...prev, handled: true });
130
+
131
+ // Return single signal or array of signals
122
132
  return axon.output.createSignal(result);
123
133
  }
124
134
  });
@@ -189,20 +199,27 @@ const unsubscribe = cns.addResponseListener(r => {
189
199
 
190
200
  #### `stimulate()` Method
191
201
  ```typescript
192
- cns.stimulate(signal, options?)
202
+ cns.stimulate(signal | signal[], options?)
193
203
  ```
194
204
 
195
205
  **Parameters:**
196
- - `signal`: A signal created by `collateral.createSignal(payload)`
206
+ - `signal`: A signal or array of signals created by `collateral.createSignal(payload)`
197
207
  - `options`: Optional stimulation configuration
198
208
 
199
209
  **Returns:** `Promise<void>` that resolves when stimulation completes
200
210
 
201
211
  **Example:**
202
212
  ```typescript
213
+ // Single signal
203
214
  await cns.stimulate(
204
215
  userCreated.createSignal({ id: '123', name: 'John' })
205
216
  );
217
+
218
+ // Multiple signals at once
219
+ await cns.stimulate([
220
+ userCreated.createSignal({ id: '123', name: 'John' }),
221
+ userCreated.createSignal({ id: '456', name: 'Jane' })
222
+ ]);
206
223
  ```
207
224
 
208
225
  ## ⚙️ Stimulation Options
@@ -340,33 +357,6 @@ await cns.stimulate(input.createSignal({ value: 5 }));
340
357
  // Flows: input(5) → middle(10) → output("Final: 10")
341
358
  ```
342
359
 
343
- ### Fan-out Processing
344
-
345
- ```typescript
346
- const trigger = collateral<{ data: string }>('trigger');
347
- const branch1 = collateral<{ result: string }>('branch1');
348
- const branch2 = collateral<{ result: string }>('branch2');
349
-
350
- const processor1 = neuron('proc1', { branch1 }).dendrite({
351
- collateral: trigger,
352
- response: (payload, axon) => {
353
- return axon.branch1.createSignal({ result: `A-${payload.data}` });
354
- }
355
- });
356
-
357
- const processor2 = neuron('proc2', { branch2 }).dendrite({
358
- collateral: trigger,
359
- response: (payload, axon) => {
360
- return axon.branch2.createSignal({ result: `B-${payload.data}` });
361
- }
362
- });
363
-
364
- const cns = new CNS([processor1, processor2]);
365
-
366
- await cns.stimulate(trigger.createSignal({ data: 'test' }));
367
- // Flows: trigger("test") → [branch1("A-test"), branch2("B-test")]
368
- ```
369
-
370
360
  ### Context-Aware Processing
371
361
 
372
362
  ```typescript
@@ -395,6 +385,88 @@ await cns.stimulate(input.createSignal({ increment: 5 })); // count: 5
395
385
  await cns.stimulate(input.createSignal({ increment: 3 })); // count: 8 (separate context)
396
386
  ```
397
387
 
388
+ ### Multiple Signals (Fan-out Pattern)
389
+
390
+ Neurons can return arrays of signals for parallel processing:
391
+
392
+ ```typescript
393
+ const orderPlaced = collateral<{ orderId: string; items: string[] }>('order:placed');
394
+ const updateInventory = collateral<{ orderId: string; item: string }>('update:inventory');
395
+ const sendEmail = collateral<{ orderId: string }>('send:email');
396
+ const logAudit = collateral<{ orderId: string }>('log:audit');
397
+
398
+ const orderProcessor = neuron('order-processor', {
399
+ updateInventory,
400
+ sendEmail,
401
+ logAudit
402
+ }).dendrite({
403
+ collateral: orderPlaced,
404
+ response: (payload, axon) => {
405
+ // Return array of signals - each will be processed independently
406
+ return [
407
+ // Create signal for each item
408
+ ...payload.items.map(item =>
409
+ axon.updateInventory.createSignal({ orderId: payload.orderId, item })
410
+ ),
411
+ // Also send confirmation email
412
+ axon.sendEmail.createSignal({ orderId: payload.orderId }),
413
+ // And log the action
414
+ axon.logAudit.createSignal({ orderId: payload.orderId })
415
+ ];
416
+ }
417
+ });
418
+
419
+ // Downstream neurons process each signal independently
420
+ const inventoryService = neuron('inventory-service', {}).dendrite({
421
+ collateral: updateInventory,
422
+ response: (payload) => {
423
+ console.log(`Updating inventory for ${payload.item}`);
424
+ // Each item gets its own execution
425
+ }
426
+ });
427
+
428
+ const cns = new CNS([orderProcessor, inventoryService /* ... */]);
429
+
430
+ // Single order triggers multiple parallel operations
431
+ await cns.stimulate(
432
+ orderPlaced.createSignal({ orderId: 'ORD-001', items: ['A', 'B', 'C'] })
433
+ );
434
+ // Flows: orderPlaced → [inventory(A), inventory(B), inventory(C), email, audit]
435
+ ```
436
+
437
+ **Conditional Arrays:**
438
+ ```typescript
439
+ const validator = neuron('validator', { success, error, audit }).dendrite({
440
+ collateral: input,
441
+ response: (payload, axon) => {
442
+ const signals = [];
443
+
444
+ // Conditionally add signals
445
+ if (isValid(payload.data)) {
446
+ signals.push(axon.success.createSignal({ validated: payload.data }));
447
+ } else {
448
+ signals.push(axon.error.createSignal({ error: 'Invalid' }));
449
+ }
450
+
451
+ // Always audit
452
+ signals.push(axon.audit.createSignal({ attempted: true }));
453
+
454
+ return signals; // Return empty array to emit nothing
455
+ }
456
+ });
457
+ ```
458
+
459
+ **Starting with Multiple Signals:**
460
+ ```typescript
461
+ // Process multiple orders in parallel
462
+ await cns.stimulate([
463
+ orderPlaced.createSignal({ orderId: 'ORD-001', items: ['X'] }),
464
+ orderPlaced.createSignal({ orderId: 'ORD-002', items: ['Y', 'Z'] })
465
+ ]);
466
+ ```
467
+
468
+ See [Multiple Signals Recipe](https://cnstra.org/docs/recipes/multiple-signals) for more patterns and best practices.
469
+
398
470
  ## 🧠 Memory & Performance
399
471
 
400
472
  ### Memory-Efficient Design
@@ -415,6 +487,8 @@ await cns.stimulate(input.createSignal({ increment: 3 })); // count: 8 (separate
415
487
  - Use synchronous responses when possible
416
488
  - Set reasonable `maxNeuronHops` limits
417
489
  - Implement proper error handling in `onResponse`
490
+ - Use array returns for genuine fan-out patterns, not just convenience
491
+ - Consider concurrency limits when returning many signals
418
492
 
419
493
  ## 🎯 Common Use Cases
420
494
 
package/dist/CNS.d.ts CHANGED
@@ -60,8 +60,8 @@ export declare class CNS<TCollateralName extends string, TNeuronName extends str
60
60
  * Throws aggregated error if violations are found.
61
61
  */
62
62
  private validateUniqueIdentifiers;
63
- addResponseListener(listener: <TInputPayload, TOutputPayload>(response: TCNSStimulationResponse<TCollateralName, TInputPayload, TOutputPayload>) => void): () => void;
64
- wrapOnResponse<T>(local?: (response: T) => void): (response: T) => void;
63
+ addResponseListener(listener: <TInputPayload, TOutputPayload>(response: TCNSStimulationResponse<TCollateralName, TInputPayload, TOutputPayload>) => void | Promise<void>): () => void;
64
+ wrapOnResponse<T>(local?: (response: T) => void | Promise<void>): (response: T) => void | Promise<void>;
65
65
  protected runWithNeuronConcurrency(neuron: TNeuron, fn: () => (() => void) | Promise<() => void>): Promise<void>;
66
66
  private buildIndexes;
67
67
  /**
@@ -104,7 +104,9 @@ export declare class CNS<TCollateralName extends string, TNeuronName extends str
104
104
  getDendrites(): TDendrite[];
105
105
  getCollaterals(): CNSCollateral<TCollateralName, unknown>[];
106
106
  getNeurons(): TNeuron[];
107
+ getCollateralByName<TName extends string = string>(collateralName: TName): CNSCollateral<TName, unknown> | undefined;
108
+ getNeuronByName<TName extends string = string>(neuronName: TName): TNeuron | undefined;
107
109
  getSubscribers(collateralName: TCollateralName): TCNSSubscriber<TNeuron, TDendrite>[];
108
- stimulate<TInputPayload extends TOutputPayload, TOutputPayload>(signal: TCNSSignal<TCollateralName, TInputPayload>, options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload>): void;
110
+ stimulate<TInputPayload extends TOutputPayload, TOutputPayload>(signalOrSignals: TCNSSignal<TCollateralName, TInputPayload> | TCNSSignal<TCollateralName, TInputPayload>[], options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload>): Promise<void>;
109
111
  }
110
112
  //# sourceMappingURL=CNS.d.ts.map
package/dist/CNS.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"CNS.d.ts","sourceRoot":"","sources":["../src/CNS.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CNS.d.ts","sourceRoot":"","sources":["../src/CNS.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TCNSStimulationQueueItem } from './types/TCNSStimulationQueueItem';
1
+ import { TCNSSerializedQueueItem } from './types/TCNSSerializedSignal';
2
2
  import { TCNSNeuron } from './types/TCNSNeuron';
3
3
  import { TCNSDendrite } from './types/TCNSDendrite';
4
4
  export declare class CNSFunctionalQueue<TCollateralName extends string, TNeuronName extends string, TNeuron extends TCNSNeuron<any, TNeuronName, TCollateralName, any, any, any, any>, TDendrite extends TCNSDendrite<any, any, any, any, any, any>> {
@@ -13,13 +13,13 @@ export declare class CNSFunctionalQueue<TCollateralName extends string, TNeuronN
13
13
  protected activeOperations: number;
14
14
  private pumping;
15
15
  private needsPump;
16
- constructor(processor: (item: TCNSStimulationQueueItem<TCollateralName, TNeuronName, TNeuron, TDendrite>) => (() => void) | Promise<() => void>, concurrency?: number | undefined, abortSignal?: AbortSignal | undefined, initialCapacity?: number);
16
+ constructor(processor: (item: TCNSSerializedQueueItem<TCollateralName, TNeuronName>) => (() => void) | Promise<() => void>, concurrency?: number | undefined, abortSignal?: AbortSignal | undefined, initialCapacity?: number);
17
17
  protected get canStartOperation(): boolean;
18
18
  private resize;
19
19
  private dequeue;
20
20
  private enqueueItem;
21
21
  protected pump(): void;
22
- enqueue(x: TCNSStimulationQueueItem<TCollateralName, TNeuronName, TNeuron, TDendrite>): void;
22
+ enqueue(x: TCNSSerializedQueueItem<TCollateralName, TNeuronName>): void;
23
23
  get length(): number;
24
24
  getActiveOperationsCount(): number;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CNSFunctionalQueue.d.ts","sourceRoot":"","sources":["../src/CNSFunctionalQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAAa,kBAAkB,CAC3B,eAAe,SAAS,MAAM,EAC9B,WAAW,SAAS,MAAM,EAC1B,OAAO,SAAS,UAAU,CACtB,GAAG,EACH,WAAW,EACX,eAAe,EACf,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACN,EACD,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAmBxD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAQ1B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IA1BhD,OAAO,CAAC,KAAK,CAKJ;IACT,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAM;IACtB,SAAS,CAAC,gBAAgB,SAAK;IAG/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAGL,SAAS,EAAE,CACxB,IAAI,EAAE,wBAAwB,CAC1B,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,CACZ,KACA,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,EACpB,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,WAAW,CAAC,EAAE,WAAW,YAAA,EAC5C,eAAe,CAAC,EAAE,MAAM;IAQ5B,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAGzC;IAED,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,WAAW;IAiBnB,SAAS,CAAC,IAAI;IAwDd,OAAO,CACH,CAAC,EAAE,wBAAwB,CACvB,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,CACZ;IAQL,IAAI,MAAM,WAET;IAED,wBAAwB;CAG3B"}
1
+ {"version":3,"file":"CNSFunctionalQueue.d.ts","sourceRoot":"","sources":["../src/CNSFunctionalQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAAa,kBAAkB,CAC3B,eAAe,SAAS,MAAM,EAC9B,WAAW,SAAS,MAAM,EAC1B,OAAO,SAAS,UAAU,CACtB,GAAG,EACH,WAAW,EACX,eAAe,EACf,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACN,EACD,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAcxD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM;IACvC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW;IAhBhD,OAAO,CAAC,KAAK,CAA+D;IAC5E,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAM;IACtB,SAAS,CAAC,gBAAgB,SAAK;IAG/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAGL,SAAS,EAAE,CACxB,IAAI,EAAE,uBAAuB,CAAC,eAAe,EAAE,WAAW,CAAC,KAC1D,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,EACpB,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,WAAW,CAAC,EAAE,WAAW,YAAA,EAC5C,eAAe,CAAC,EAAE,MAAM;IAQ5B,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAGzC;IAED,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,WAAW;IAYnB,SAAS,CAAC,IAAI;IAwDd,OAAO,CAAC,CAAC,EAAE,uBAAuB,CAAC,eAAe,EAAE,WAAW,CAAC;IAOhE,IAAI,MAAM,WAET;IAED,wBAAwB;CAG3B"}
@@ -5,6 +5,7 @@ import { TCNSDendrite } from './types/TCNSDendrite';
5
5
  import { TCNSSubscriber } from './types/TCNSSubscriber';
6
6
  import { CNSInstanceNeuronQueue } from './CNSInstanceNeuronQueue';
7
7
  import { TCNSSignal } from './types/TCNSSignal';
8
+ import { TCNSSerializedQueueItem } from './types/TCNSSerializedSignal';
8
9
  export declare class CNSStimulation<TCollateralName extends string, TNeuronName extends string, TNeuron extends TCNSNeuron<any, TNeuronName, TCollateralName, any, any, any, any>, TDendrite extends TCNSDendrite<any, any, any, any, any, any>, TInputPayload, TOutputPayload> {
9
10
  private readonly cns;
10
11
  readonly options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload> | undefined;
@@ -13,12 +14,18 @@ export declare class CNSStimulation<TCollateralName extends string, TNeuronName
13
14
  private readonly nueronVisitMap?;
14
15
  private readonly instanceNeuronQueue;
15
16
  private scheduledCount;
17
+ private completed;
18
+ private resolveCompleted;
19
+ private rejectCompleted;
20
+ private isCompleted;
16
21
  /**
17
22
  * Track active SCCs: SCC index -> count of active neurons in that SCC
18
23
  */
19
24
  private readonly activeSccCounts;
20
25
  readonly id: string;
21
26
  constructor(cns: ICNS<TNeuron, TDendrite>, instanceNeuronQueue: CNSInstanceNeuronQueue<TNeuron>, options?: TCNSStimulationOptions<TCollateralName, TInputPayload, TOutputPayload> | undefined);
27
+ private tryResolveCompleted;
28
+ waitUntilComplete(): Promise<void>;
22
29
  protected get concurrencyEnabled(): boolean;
23
30
  protected get autoCleanupContextsEnabled(): boolean;
24
31
  /**
@@ -42,13 +49,10 @@ export declare class CNSStimulation<TCollateralName extends string, TNeuronName
42
49
  */
43
50
  protected canNeuronBeGuaranteedDone(neuronId: TNeuronName): boolean;
44
51
  protected cleanupCtxIfNeeded(neuron: TNeuron): void;
45
- protected createSubscriberQueueItem(subscriber: TCNSSubscriber<TNeuron, TDendrite>, inputSignal?: TCNSSignal<TCollateralName, any>): {
46
- neuronId: TNeuronName;
47
- subscriber: TCNSSubscriber<TNeuron, TDendrite>;
48
- inputSignal: TCNSSignal<TCollateralName, any> | undefined;
49
- };
52
+ protected createSubscriberQueueItem(subscriber: TCNSSubscriber<TNeuron, TDendrite>, inputSignal?: TCNSSignal<TCollateralName, any>): TCNSSerializedQueueItem<TCollateralName, TNeuronName>;
50
53
  private processQueueItem;
54
+ protected processResponseOrResponses(inputSignal?: TCNSSignal<TCollateralName, TInputPayload>, outputSignalOrSignals?: TCNSSignal<TCollateralName, TOutputPayload> | TCNSSignal<TCollateralName, TOutputPayload>[], error?: any): void;
51
55
  protected processResponse(inputSignal?: TCNSSignal<TCollateralName, TInputPayload>, outputSignal?: TCNSSignal<TCollateralName, TOutputPayload>, error?: any): void;
52
- responseToSignal(signal: TCNSSignal<TCollateralName, TOutputPayload>): void;
56
+ responseToSignal(signalOrSignals: TCNSSignal<TCollateralName, TOutputPayload> | TCNSSignal<TCollateralName, TOutputPayload>[]): void;
53
57
  }
54
58
  //# sourceMappingURL=CNSStimulation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,qBAAa,cAAc,CACvB,eAAe,SAAS,MAAM,EAC9B,WAAW,SAAS,MAAM,EAC1B,OAAO,SAAS,UAAU,CACtB,GAAG,EACH,WAAW,EACX,eAAe,EACf,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACN,EACD,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC5D,aAAa,EACb,cAAc;IAqBV,OAAO,CAAC,QAAQ,CAAC,GAAG;aAEJ,OAAO,CAAC,EAAE,sBAAsB,CAC5C,eAAe,EACf,aAAa,EACb,cAAc,CACjB;IAzBL,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAKpB;IACF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA2B;IAC3D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,cAAc,CAAK;IAE3B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAE7D,SAAgB,EAAE,EAAE,MAAM,CAAC;gBAGN,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAC9C,mBAAmB,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,sBAAsB,CAC5C,eAAe,EACf,aAAa,EACb,cAAc,CACjB,YAAA;IAoBL,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAK1C;IAED,SAAS,KAAK,0BAA0B,IAAI,OAAO,CAElD;IAED;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAMvD;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAMzD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,SAAS,CAAC,yBAAyB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO;IAQnE,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IASnD,SAAS,CAAC,yBAAyB,CAC/B,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAC9C,WAAW,CAAC,EAAE,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC;;;;;IA2BlD,OAAO,CAAC,gBAAgB;IAqExB,SAAS,CAAC,eAAe,CACrB,WAAW,CAAC,EAAE,UAAU,CAAC,eAAe,EAAE,aAAa,CAAC,EACxD,YAAY,CAAC,EAAE,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,EAC1D,KAAK,CAAC,EAAE,GAAG,GACZ,IAAI;IAqDA,gBAAgB,CACnB,MAAM,EAAE,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,GACpD,IAAI;CAWV"}
1
+ {"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,10 @@ type InterNeuronAPI<TContextValue, TNameType extends string, TReceiverCollateral
8
8
  name: TNameType;
9
9
  axon: TAxonType;
10
10
  concurrency?: number;
11
+ maxDuration?: number;
11
12
  dendrites: TCNSDendrite<TContextValue, string, unknown, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>[];
12
13
  setConcurrency: (n: number | undefined) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>;
14
+ setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>;
13
15
  bind: <TFollowAxon extends Record<string, CNSCollateral<any, any>>>(axon: TFollowAxon, dendrites: {
14
16
  [K in keyof TFollowAxon]: TCNSDendrite<TContextValue, NameOf<TFollowAxon, K> & string, PayloadOf<TFollowAxon, K>, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType> | TCNSDendrite<TContextValue, NameOf<TFollowAxon, K> & string, PayloadOf<TFollowAxon, K>, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>['response'];
15
17
  }) => InterNeuronAPI<TContextValue, TNameType, TReceiverCollateralName, TReceiverAxonCollateralPayload, TAxonType>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"}