@cnstra/core 2.2.1 → 2.4.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 +28 -6
- package/dist/CNS.d.ts +7 -1
- package/dist/CNS.d.ts.map +1 -1
- package/dist/CNSNetwork.d.ts +8 -15
- package/dist/CNSNetwork.d.ts.map +1 -1
- package/dist/CNSStimulation.d.ts +1 -1
- package/dist/CNSStimulation.d.ts.map +1 -1
- package/dist/factory/index.d.ts +94 -67
- package/dist/factory/index.d.ts.map +1 -1
- package/dist/index.cjs +103 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +101 -71
- package/dist/index.js.map +1 -1
- package/dist/types/TCNSDendrite.d.ts +3 -8
- package/dist/types/TCNSDendrite.d.ts.map +1 -1
- package/dist/types/TCNSHandlerContext.d.ts +24 -0
- package/dist/types/TCNSHandlerContext.d.ts.map +1 -0
- package/dist/types/TCNSNeuron.d.ts +1 -1
- package/dist/types/TCNSNeuron.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/CNSTaskQueue.d.ts +0 -12
- package/dist/CNSTaskQueue.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
# @cnstra/core
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Orchestration engine for TypeScript — deterministic, embeddable, in-memory.**
|
|
4
4
|
|
|
5
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)
|
|
6
6
|
|
|
7
7
|
## What is CNStra?
|
|
8
8
|
|
|
9
|
-
**CNStra (Central Nervous System Orchestrator)
|
|
9
|
+
**CNStra** (Central Nervous System Orchestrator) models your app's control flow as a graph of **neurons** wired together by **typed signals**. You orchestrate work by wiring the graph — not by standing up an event bus.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Instead of an event bus that broadcasts to whoever happens to be listening, CNStra keeps the flow explicit. You start a run with `cns.stimulate(signal)`, and it walks the graph deterministically — one hop at a time, `collateral → dendrite → returned signal` — until nothing is left to fire. A neuron receives a signal on one of its dendrites, does its work, and returns the next signal; that returned signal **is** the edge to the next neuron. No hidden subscribers, no fan-out you can't trace.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **
|
|
13
|
+
Four primitives:
|
|
14
|
+
|
|
15
|
+
- **Collateral** — a typed channel; a signal is a payload sent on one.
|
|
16
|
+
- **Neuron** — a unit of logic with one or more dendrites.
|
|
17
|
+
- **Dendrite** — a handler that reacts to a collateral and returns the next signal.
|
|
18
|
+
- **Signal** — what actually flows through a run.
|
|
19
|
+
|
|
20
|
+
Because traversal is deterministic and hop-bounded, a run is reproducible and easy to reason about — which is what makes CNStra a good fit for:
|
|
21
|
+
|
|
22
|
+
- **Jobs & workers**, **webhooks & integrations**, **ETL / pipelines**
|
|
23
|
+
- **Retries, timeouts, cancellation**, and **saga-style compensations**
|
|
24
|
+
|
|
25
|
+
Zero dependencies. No pub/sub. In-memory.
|
|
16
26
|
|
|
17
27
|
👉 **[Read the full documentation →](https://cnstra.org/)**
|
|
18
28
|
|
|
@@ -94,6 +104,18 @@ export const registry = createPersistRegistry({ deckNeuron, cardNeuron });
|
|
|
94
104
|
// explicit collateral names: { 'deck-neuron': { neuron: deckNeuron, collaterals: { deckCreated: 'deck-created' } } }
|
|
95
105
|
```
|
|
96
106
|
|
|
107
|
+
**CNS + registry from one map:** if you're going to build both, `createCNS` lists the
|
|
108
|
+
neuron set once and returns both — they derive from the same map, so the names can never
|
|
109
|
+
drift from the runtime graph. Accepts the same explicit-name syntax as `createPersistRegistry`.
|
|
110
|
+
|
|
111
|
+
```ts
|
|
112
|
+
import { createCNS } from '@cnstra/core';
|
|
113
|
+
|
|
114
|
+
const { cns, registry } = createCNS({ deckNeuron, cardNeuron });
|
|
115
|
+
// `cns` is the runtime engine; `registry` carries the names for devtools/mcp/persistence.
|
|
116
|
+
// Don't need naming/persistence? Just use `new CNS([deckNeuron, cardNeuron])` directly.
|
|
117
|
+
```
|
|
118
|
+
|
|
97
119
|
## Documentation
|
|
98
120
|
|
|
99
121
|
- **[Quick Start Guide](https://cnstra.org/docs/core/quick-start)** — Get up and running in minutes
|
package/dist/CNS.d.ts
CHANGED
|
@@ -26,7 +26,13 @@ export declare class CNS<TNeuron extends TCNSNeuron<any, any>, TDendrite extends
|
|
|
26
26
|
* Global response listeners applied to every stimulation.
|
|
27
27
|
*/
|
|
28
28
|
private readonly globalResponseListeners;
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Shared, app/organism-wide value handed to every dendrite as `ctx.global`.
|
|
31
|
+
* Stored untyped (the type is baked into neurons via `neuronFactory().withGlobal<T>()`);
|
|
32
|
+
* CNS is just a passthrough carrier, so injecting it here never touches the hot path.
|
|
33
|
+
*/
|
|
34
|
+
readonly global?: unknown;
|
|
35
|
+
constructor(neurons: TNeuron[], options?: TCNSOptions | undefined, global?: unknown);
|
|
30
36
|
addResponseListener(listener: (response: TCNSStimulationResponse) => void | Promise<void>): () => void;
|
|
31
37
|
private wrapOnResponse;
|
|
32
38
|
stimulate(signalOrSignals: TCNSSignal<CNSCollateral<unknown>> | TCNSSignal<CNSCollateral<unknown>>[], options?: TCNSStimulationOptions<TCNSStimulationResponse>): CNSStimulation<TNeuron, TDendrite>;
|
package/dist/CNS.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CNS.d.ts","sourceRoot":"","sources":["../src/CNS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,GAAG,CACZ,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC7E,YAAW,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"CNS.d.ts","sourceRoot":"","sources":["../src/CNS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,GAAG,CACZ,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAC7E,YAAW,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;IA6B7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;aACrB,OAAO,CAAC,EAAE,WAAW;IA5BzC;;OAEG;IACH,SAAgB,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAExD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,kCACI;IAE1C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAEjC;IAEP;;;;OAIG;IACH,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC;gBAGV,OAAO,EAAE,OAAO,EAAE,EACrB,OAAO,CAAC,EAAE,WAAW,YAAA,EACrC,MAAM,CAAC,EAAE,OAAO;IAMb,mBAAmB,CACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACtE,MAAM,IAAI;IAWb,OAAO,CAAC,cAAc;IAmDf,SAAS,CACZ,eAAe,EACT,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAC1C,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,GAC1D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;IAYrC;;OAEG;IACI,QAAQ,CACX,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAC1C,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,GAC1D,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;CAWxC"}
|
package/dist/CNSNetwork.d.ts
CHANGED
|
@@ -7,8 +7,13 @@ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite
|
|
|
7
7
|
/**
|
|
8
8
|
* Strongly Connected Components of the neuron graph.
|
|
9
9
|
* Each component is a set of neuron objects that can reach each other.
|
|
10
|
+
*
|
|
11
|
+
* Computed lazily on first access: the SCC machinery is only needed for
|
|
12
|
+
* `autoCleanupContexts` (off by default), so most networks never pay for it.
|
|
10
13
|
*/
|
|
11
|
-
|
|
14
|
+
private _stronglyConnectedComponents;
|
|
15
|
+
private sccBuilt;
|
|
16
|
+
get stronglyConnectedComponents(): Set<TNeuron>[];
|
|
12
17
|
/**
|
|
13
18
|
* Quick lookup: neuron -> SCC index for fast reachability checks.
|
|
14
19
|
*/
|
|
@@ -26,18 +31,10 @@ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite
|
|
|
26
31
|
* Built once at construction time.
|
|
27
32
|
*/
|
|
28
33
|
private subIndex;
|
|
29
|
-
private dendriteIndex;
|
|
30
|
-
private collateralIndex;
|
|
31
34
|
private parentNeuronByCollateral;
|
|
32
35
|
constructor(neurons: TNeuron[]);
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
* - (legacy) collateral instances used to be single-owner; in object-identity routing
|
|
36
|
-
* a collateral can be emitted by multiple neurons (fan-in), so we no longer
|
|
37
|
-
* enforce single ownership here.
|
|
38
|
-
* Throws aggregated error if violations are found.
|
|
39
|
-
*/
|
|
40
|
-
private validateUniqueIdentifiers;
|
|
36
|
+
/** Build the SCC analysis the first time anything needs it. */
|
|
37
|
+
private ensureSCC;
|
|
41
38
|
/**
|
|
42
39
|
* Build the neuron graph where neurons are connected if one can stimulate the other.
|
|
43
40
|
*/
|
|
@@ -55,10 +52,6 @@ export declare class CNSNetwork<TNeuron extends TCNSNeuron<any, any>, TDendrite
|
|
|
55
52
|
* Uses topological sort for efficient computation
|
|
56
53
|
*/
|
|
57
54
|
private buildSCCAncestors;
|
|
58
|
-
/**
|
|
59
|
-
* Get outgoing edges for a given SCC index
|
|
60
|
-
*/
|
|
61
|
-
private getOutgoingEdges;
|
|
62
55
|
/**
|
|
63
56
|
* Check if a neuron can be reached again (including self-calling).
|
|
64
57
|
* Returns true if the neuron is in a strongly connected component with more than one member,
|
package/dist/CNSNetwork.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CNSNetwork.d.ts","sourceRoot":"","sources":["../src/CNSNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,UAAU,CACnB,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"CNSNetwork.d.ts","sourceRoot":"","sources":["../src/CNSNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,UAAU,CACnB,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IA2CjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAzCpC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAW,2BAA2B,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAGvD;IAED;;OAEG;IACH,OAAO,CAAC,WAAW,CAA8B;IAEjD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAuC;IAErD;;OAEG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAGZ;IAEJ,OAAO,CAAC,wBAAwB,CAA8C;gBAEjD,OAAO,EAAE,OAAO,EAAE;IAM/C,+DAA+D;IAC/D,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiCxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAqEhB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,OAAO;IASxC;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAK/D;;;OAGG;IACI,yBAAyB,CAC5B,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO;IA6BV,OAAO,CAAC,YAAY;IAsBb,2BAA2B,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC;IAM9D,YAAY;IAaZ,cAAc;IAUd,cAAc,CACjB,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,GACnC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;CAG1C"}
|
package/dist/CNSStimulation.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare class CNSStimulation<TNeuron extends TCNSNeuron<any, any>, TDendr
|
|
|
23
23
|
private activeTasks?;
|
|
24
24
|
private pumping;
|
|
25
25
|
private needsPump;
|
|
26
|
-
private readonly
|
|
26
|
+
private readonly neuronVisitMap?;
|
|
27
27
|
private readonly instanceNeuronQueue;
|
|
28
28
|
private scheduledCount;
|
|
29
29
|
private pendingTasks?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,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;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"CNSStimulation.d.ts","sourceRoot":"","sources":["../src/CNSStimulation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,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;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAoEhD,qBAAa,cAAc,CACvB,OAAO,SAAS,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,SAAS,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aA0DvD,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;aAE5B,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC;IAvD7E,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAM/C,OAAO,CAAC,MAAM,CAAC,CAAuD;IACtE,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,WAAW,CAAC,CAAyC;IAE7D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,YAAY,CAAC,CAAyC;IAE9D,OAAO,CAAC,WAAW,CAAC,CAAkD;IAItE,OAAO,CAAC,SAAS,CAAC,CAAgB;IAClC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAoB;IAE3C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAEF;IAE1B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAsB;gBAGnC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAC5C,mBAAmB,EAAE,sBAAsB,CAAC,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,YAAA,EACzE,UAAU,CAAC,EAAE,CACT,QAAQ,EAAE,uBAAuB,KAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,cAAc;IAMtB,kEAAkE;IAClE,OAAO,KAAK,GAAG,GAEd;IAID,OAAO,KAAK,iBAAiB,GAM5B;IAED,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,YAAY;IAWpB,uEAAuE;IACvE,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,IAAI;IA0DZ,OAAO,CAAC,mBAAmB;IAgDpB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBzC;;OAEG;IACI,qBAAqB,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE;IASnE;;OAEG;IACI,cAAc,IAAI,KAAK,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAIxE;;OAEG;IACI,UAAU,IAAI,2BAA2B;IAIhD;;OAEG;IACI,YAAY,CACf,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,GAC3C,IAAI;IAOP,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAK1C;IAED,SAAS,KAAK,0BAA0B,IAAI,OAAO,CAElD;IAED;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMjD;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMnD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAS7D,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAUnD,SAAS,CAAC,yBAAyB,CAC/B,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,EAC9C,WAAW,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IA6BpD,OAAO,CAAC,qBAAqB;IA0D7B,OAAO,CAAC,UAAU;IA4IlB,SAAS,CAAC,0BAA0B,CAChC,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,WAAW,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAChD,qBAAqB,CAAC,EAChB,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,EAC1C,KAAK,CAAC,EAAE,GAAG,GACZ,IAAI;IAmBP,SAAS,CAAC,eAAe,CACrB,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,WAAW,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAChD,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EACjD,KAAK,CAAC,EAAE,GAAG,GACZ,IAAI;IAwHA,gBAAgB,CACnB,eAAe,EACT,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAClC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,GAC3C,IAAI;CAcV"}
|
package/dist/factory/index.d.ts
CHANGED
|
@@ -1,109 +1,106 @@
|
|
|
1
|
+
import { CNS } from '../CNS';
|
|
1
2
|
import { CNSCollateral } from '../CNSCollateral';
|
|
2
3
|
import { CNSPersistOptionsRegistry } from '../CNSPersistOptionsRegistry';
|
|
3
4
|
import { TCNSAxon } from '../types/TCNSAxon';
|
|
5
|
+
import { TCNSOptions } from '../types/TCNSOptions';
|
|
4
6
|
import { TCNSDendrite } from '../types/TCNSDendrite';
|
|
5
|
-
import {
|
|
7
|
+
import { TCNSHandlerContext } from '../types/TCNSHandlerContext';
|
|
6
8
|
import { TNCNeuronResponseReturn } from '../types/TCNSNeuronResponseReturn';
|
|
7
9
|
import { TCNSNeuron } from '../types/TCNSNeuron';
|
|
8
|
-
import { ICNS } from '../interfaces/ICNS';
|
|
9
10
|
import { TCNSModality } from '../types/TCNSModality';
|
|
10
11
|
import { TCNSAfferentPath } from '../types/TCNSAfferentPath';
|
|
11
12
|
export declare const collateral: <TPayload = undefined>() => CNSCollateral<TPayload>;
|
|
12
13
|
type CollateralPayloadUnion<TCollaterals extends readonly CNSCollateral<unknown>[]> = {
|
|
13
14
|
[K in keyof TCollaterals]: TCollaterals[K] extends CNSCollateral<infer P> ? P : never;
|
|
14
15
|
}[number];
|
|
15
|
-
type InterNeuronAPI<TContextValue, TAxonType extends TCNSAxon = TCNSAxon> = {
|
|
16
|
+
type InterNeuronAPI<TContextValue, TAxonType extends TCNSAxon = TCNSAxon, TGlobal = unknown> = {
|
|
16
17
|
axon: TAxonType;
|
|
17
18
|
concurrency?: number;
|
|
18
19
|
maxDuration?: number;
|
|
19
|
-
dendrites: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType>[];
|
|
20
|
-
setConcurrency: (n: number | undefined) => InterNeuronAPI<TContextValue, TAxonType>;
|
|
21
|
-
setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TContextValue, TAxonType>;
|
|
20
|
+
dendrites: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType, TGlobal>[];
|
|
21
|
+
setConcurrency: (n: number | undefined) => InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
22
|
+
setMaxDuration: (ms: number | undefined) => InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
22
23
|
bind: <TFollowAxon extends Record<string, CNSCollateral<unknown>>>(axon: TFollowAxon, dendrites: {
|
|
23
|
-
[K in keyof TFollowAxon]: TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType> | TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType>['response'];
|
|
24
|
-
}) => InterNeuronAPI<TContextValue, TAxonType>;
|
|
24
|
+
[K in keyof TFollowAxon]: TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType, TGlobal> | TCNSDendrite<TContextValue, TFollowAxon[K], TAxonType, TGlobal>['response'];
|
|
25
|
+
}) => InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
25
26
|
dendrite: {
|
|
26
27
|
<TSenderCollateral extends CNSCollateral<unknown>>(s: {
|
|
27
28
|
collateral: TSenderCollateral;
|
|
28
|
-
response: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx:
|
|
29
|
-
|
|
30
|
-
cns?: ICNS<any, any>;
|
|
31
|
-
stimulation?: any;
|
|
32
|
-
}) => TNCNeuronResponseReturn<TAxonType>;
|
|
33
|
-
}): InterNeuronAPI<TContextValue, TAxonType>;
|
|
29
|
+
response: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
|
|
30
|
+
}): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
34
31
|
<TCollaterals extends readonly [
|
|
35
32
|
CNSCollateral<unknown>,
|
|
36
33
|
...CNSCollateral<unknown>[]
|
|
37
34
|
]>(s: {
|
|
38
35
|
collateral: TCollaterals;
|
|
39
|
-
response: (payload: CollateralPayloadUnion<TCollaterals>, axon: TAxonType, ctx:
|
|
40
|
-
|
|
41
|
-
cns?: ICNS<any, any>;
|
|
42
|
-
stimulation?: any;
|
|
43
|
-
}) => TNCNeuronResponseReturn<TAxonType>;
|
|
44
|
-
}): InterNeuronAPI<TContextValue, TAxonType>;
|
|
36
|
+
response: (payload: CollateralPayloadUnion<TCollaterals>, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
|
|
37
|
+
}): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
45
38
|
<TPayloadUnion>(s: {
|
|
46
39
|
collateral: CNSCollateral<unknown>[];
|
|
47
|
-
response: (payload: TPayloadUnion, axon: TAxonType, ctx:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
stimulation?: any;
|
|
51
|
-
}) => TNCNeuronResponseReturn<TAxonType>;
|
|
52
|
-
}): InterNeuronAPI<TContextValue, TAxonType>;
|
|
53
|
-
(s: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType>): InterNeuronAPI<TContextValue, TAxonType>;
|
|
40
|
+
response: (payload: TPayloadUnion, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
|
|
41
|
+
}): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
42
|
+
(s: TCNSDendrite<TContextValue, CNSCollateral<unknown>, TAxonType, TGlobal>): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
54
43
|
};
|
|
55
44
|
modalityDendrite: {
|
|
56
45
|
<TSenderCollateral extends CNSCollateral<unknown>, TResult>(s: {
|
|
57
46
|
collateral: TSenderCollateral;
|
|
58
47
|
modality: TCNSModality;
|
|
59
|
-
afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}) => TResult | Promise<TResult>>;
|
|
64
|
-
default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
|
|
65
|
-
abortSignal?: AbortSignal;
|
|
66
|
-
cns?: ICNS<any, any>;
|
|
67
|
-
stimulation?: any;
|
|
68
|
-
}) => TResult | Promise<TResult>;
|
|
69
|
-
output: (result: TResult, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
|
|
70
|
-
abortSignal?: AbortSignal;
|
|
71
|
-
cns?: ICNS<any, any>;
|
|
72
|
-
stimulation?: any;
|
|
73
|
-
}) => TNCNeuronResponseReturn<TAxonType>;
|
|
74
|
-
}): InterNeuronAPI<TContextValue, TAxonType>;
|
|
48
|
+
afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>>;
|
|
49
|
+
default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>;
|
|
50
|
+
output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
|
|
51
|
+
}): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
75
52
|
<TSenderCollateral extends CNSCollateral<unknown>, TResult>(s: {
|
|
76
53
|
collateral: TSenderCollateral;
|
|
77
54
|
modalities: Array<{
|
|
78
55
|
modality: TCNSModality;
|
|
79
|
-
afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx:
|
|
80
|
-
|
|
81
|
-
cns?: ICNS<any, any>;
|
|
82
|
-
stimulation?: any;
|
|
83
|
-
}) => TResult | Promise<TResult>>;
|
|
84
|
-
default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
|
|
85
|
-
abortSignal?: AbortSignal;
|
|
86
|
-
cns?: ICNS<any, any>;
|
|
87
|
-
stimulation?: any;
|
|
88
|
-
}) => TResult | Promise<TResult>;
|
|
56
|
+
afferentPaths?: Map<TCNSAfferentPath, (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>>;
|
|
57
|
+
default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>;
|
|
89
58
|
}>;
|
|
90
|
-
default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
stimulation?: any;
|
|
94
|
-
}) => TResult | Promise<TResult>;
|
|
95
|
-
output: (result: TResult, axon: TAxonType, ctx: TCNSLocalContextValueStore<TContextValue> & {
|
|
96
|
-
abortSignal?: AbortSignal;
|
|
97
|
-
cns?: ICNS<any, any>;
|
|
98
|
-
stimulation?: any;
|
|
99
|
-
}) => TNCNeuronResponseReturn<TAxonType>;
|
|
100
|
-
}): InterNeuronAPI<TContextValue, TAxonType>;
|
|
59
|
+
default?: (payload: TSenderCollateral extends CNSCollateral<infer P> ? P : never, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TResult | Promise<TResult>;
|
|
60
|
+
output: (result: TResult, axon: TAxonType, ctx: TCNSHandlerContext<TContextValue, TGlobal>) => TNCNeuronResponseReturn<TAxonType>;
|
|
61
|
+
}): InterNeuronAPI<TContextValue, TAxonType, TGlobal>;
|
|
101
62
|
};
|
|
102
63
|
};
|
|
103
|
-
export declare const neuron: <TContextValue, TProvidedAxon extends Record<string, CNSCollateral<unknown
|
|
104
|
-
|
|
105
|
-
|
|
64
|
+
export declare const neuron: <TContextValue, TProvidedAxon extends Record<string, CNSCollateral<unknown>>, TGlobal = unknown>(axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TCNSAxon<TProvidedAxon>, TGlobal>;
|
|
65
|
+
/**
|
|
66
|
+
* A composable neuron factory. Each `.withX<T>()` returns a *new typed view* of
|
|
67
|
+
* the same underlying builder (the layers are type-only — zero runtime cost, no
|
|
68
|
+
* per-activation overhead), so you bake your ctx additions once and reuse them
|
|
69
|
+
* everywhere. Layers compose in any order and never touch the handler signature.
|
|
70
|
+
*
|
|
71
|
+
* `TExt` is the accumulated ctx extension: each layer *intersects* its own fields
|
|
72
|
+
* into it, so a base factory (`TExt = unknown`) hands neurons the plain ctx bag —
|
|
73
|
+
* nothing is forced onto anyone who didn't ask for it. `withGlobal<T>()` is the
|
|
74
|
+
* built-in layer; make `T` an object to carry as much as you want (store, clock,
|
|
75
|
+
* logger, …) through the single runtime channel wired at `createCNS`/`new CNS`.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* // src/neurons/factory.ts — ctx shape baked once
|
|
79
|
+
* type TGlobal = { store: Store; now(): number; newId(): string };
|
|
80
|
+
* export const { neuron } = neuronFactory().withGlobal<TGlobal>().withCtx<TCtx>();
|
|
81
|
+
*
|
|
82
|
+
* // any neuron file — plain value, reaches deps via ctx.global
|
|
83
|
+
* export const taskNeuron = neuron({ taskCreated }).bind({ createTask }, {
|
|
84
|
+
* createTask: ({ title }, axon, { global }) =>
|
|
85
|
+
* axon.taskCreated.createSignal({ id: global.newId(), title, at: global.now() }),
|
|
86
|
+
* });
|
|
87
|
+
*/
|
|
88
|
+
export type TNeuronFactory<TContextValue, TExt = unknown> = {
|
|
89
|
+
/** Bake the per-stimulation, per-neuron context value type (`ctx.get()/set()`). */
|
|
90
|
+
withCtx: <T>() => TNeuronFactory<T, TExt>;
|
|
91
|
+
/** Add `{ global: T }` to ctx; the value is injected once at `createCNS`/`new CNS`. */
|
|
92
|
+
withGlobal: <T>() => TNeuronFactory<TContextValue, TExt & {
|
|
93
|
+
global: T;
|
|
94
|
+
}>;
|
|
95
|
+
neuron: <TProvidedAxon extends Record<string, CNSCollateral<unknown>>>(axon: TProvidedAxon) => InterNeuronAPI<TContextValue, TCNSAxon<TProvidedAxon>, TExt>;
|
|
106
96
|
};
|
|
97
|
+
export declare const neuronFactory: <TContextValue = undefined, TExt = unknown>() => TNeuronFactory<TContextValue, TExt>;
|
|
98
|
+
/** Sugar: `neuronFactory().withCtx<T>()`. Still exposes `.neuron`, so existing usage is unchanged. */
|
|
99
|
+
export declare const withCtx: <TContextValue>() => TNeuronFactory<TContextValue>;
|
|
100
|
+
/** Sugar: `neuronFactory().withGlobal<T>()`. */
|
|
101
|
+
export declare const withGlobal: <T>() => TNeuronFactory<undefined, {
|
|
102
|
+
global: T;
|
|
103
|
+
}>;
|
|
107
104
|
export declare const afferentPath: (parentAfferentPath?: TCNSAfferentPath) => TCNSAfferentPath;
|
|
108
105
|
export declare const modality: (afferentPaths: Record<string | number, TCNSAfferentPath>) => TCNSModality;
|
|
109
106
|
type CNSRegistryValue<N extends TCNSNeuron<any, any>> = N | (N extends TCNSNeuron<any, infer TAxon> ? {
|
|
@@ -129,5 +126,35 @@ type CNSRegistryValue<N extends TCNSNeuron<any, any>> = N | (N extends TCNSNeuro
|
|
|
129
126
|
* });
|
|
130
127
|
*/
|
|
131
128
|
export declare const createPersistRegistry: <TMap extends Record<string, TCNSNeuron<any, any>>>(namedNeurons: { [K in keyof TMap]: CNSRegistryValue<TMap[K]>; }) => CNSPersistOptionsRegistry;
|
|
129
|
+
/**
|
|
130
|
+
* Creates a CNS and its CNSPersistOptionsRegistry from a single plain object of
|
|
131
|
+
* named neurons, so the neuron set is listed exactly once.
|
|
132
|
+
*
|
|
133
|
+
* `cns` is the runtime engine; `registry` carries the names used by devtools,
|
|
134
|
+
* mcp and persistence. Both derive from the same map, so they can never drift.
|
|
135
|
+
* If you don't need naming/persistence, just use `new CNS([...])` directly —
|
|
136
|
+
* this factory is purely additive.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* const { cns, registry } = createCNS({
|
|
140
|
+
* task: createTaskNeuron(store),
|
|
141
|
+
* comment: createCommentNeuron(store),
|
|
142
|
+
* });
|
|
143
|
+
*
|
|
144
|
+
* // Explicit names / collateral names work exactly like createPersistRegistry:
|
|
145
|
+
* const { cns, registry } = createCNS({
|
|
146
|
+
* 'task-neuron': { neuron: taskNeuron, collaterals: { taskCreated: 'task-created' } },
|
|
147
|
+
* });
|
|
148
|
+
*
|
|
149
|
+
* // Inject the shared `global` once — it surfaces as `ctx.global` in every neuron
|
|
150
|
+
* // (type it once via `neuronFactory().withGlobal<T>()`). Swappable per instance:
|
|
151
|
+
* const { cns } = createCNS(map, { global: { store, now, newId } });
|
|
152
|
+
*/
|
|
153
|
+
export declare const createCNS: <TMap extends Record<string, TCNSNeuron<any, any>>, TGlobal = undefined>(namedNeurons: { [K in keyof TMap]: CNSRegistryValue<TMap[K]>; }, options?: TCNSOptions & {
|
|
154
|
+
global?: TGlobal;
|
|
155
|
+
}) => {
|
|
156
|
+
cns: CNS<TCNSNeuron<any, any>>;
|
|
157
|
+
registry: CNSPersistOptionsRegistry;
|
|
158
|
+
};
|
|
132
159
|
export {};
|
|
133
160
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"}
|