@fougere/core 0.10.0-alpha.0 → 0.11.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CallIdentity.d.ts.map +1 -1
- package/dist/CallIdentity.js +2 -0
- package/dist/CallIdentity.js.map +1 -1
- package/dist/Constraint.d.ts +1 -1
- package/dist/Constraint.d.ts.map +1 -1
- package/dist/Source.d.ts.map +1 -1
- package/dist/Source.js +4 -3
- package/dist/Source.js.map +1 -1
- package/dist/boot/Hosting.d.ts +38 -0
- package/dist/boot/Hosting.d.ts.map +1 -0
- package/dist/boot/Hosting.js +2 -0
- package/dist/boot/Hosting.js.map +1 -0
- package/dist/boot/Peer.d.ts +16 -0
- package/dist/boot/Peer.d.ts.map +1 -0
- package/dist/boot/Peer.js +2 -0
- package/dist/boot/Peer.js.map +1 -0
- package/dist/boot/bootstrap.d.ts.map +1 -1
- package/dist/boot/bootstrap.js +122 -20
- package/dist/boot/bootstrap.js.map +1 -1
- package/dist/boot/declared.d.ts.map +1 -1
- package/dist/boot/declared.js +35 -3
- package/dist/boot/declared.js.map +1 -1
- package/dist/boot/install.d.ts +10 -0
- package/dist/boot/install.d.ts.map +1 -1
- package/dist/boot/install.js +11 -2
- package/dist/boot/install.js.map +1 -1
- package/dist/boot/peerOver.d.ts +4 -0
- package/dist/boot/peerOver.d.ts.map +1 -0
- package/dist/boot/peerOver.js +12 -0
- package/dist/boot/peerOver.js.map +1 -0
- package/dist/boot/relations.d.ts +54 -0
- package/dist/boot/relations.d.ts.map +1 -0
- package/dist/boot/relations.js +150 -0
- package/dist/boot/relations.js.map +1 -0
- package/dist/boot/together.d.ts +3 -0
- package/dist/boot/together.d.ts.map +1 -1
- package/dist/boot/together.js +2 -1
- package/dist/boot/together.js.map +1 -1
- package/dist/contract.d.ts +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js.map +1 -1
- package/dist/dispatch/Dependent.d.ts +19 -0
- package/dist/dispatch/Dependent.d.ts.map +1 -0
- package/dist/dispatch/Dependent.js +2 -0
- package/dist/dispatch/Dependent.js.map +1 -0
- package/dist/dispatch/Dispatcher.d.ts +14 -1
- package/dist/dispatch/Dispatcher.d.ts.map +1 -1
- package/dist/dispatch/Dispatcher.js +36 -8
- package/dist/dispatch/Dispatcher.js.map +1 -1
- package/dist/dispatch/Journal.d.ts +25 -0
- package/dist/dispatch/Journal.d.ts.map +1 -0
- package/dist/dispatch/Journal.js +3 -0
- package/dist/dispatch/Journal.js.map +1 -0
- package/dist/dispatch/RelationCheck.d.ts +22 -0
- package/dist/dispatch/RelationCheck.d.ts.map +1 -0
- package/dist/dispatch/RelationCheck.js +2 -0
- package/dist/dispatch/RelationCheck.js.map +1 -0
- package/dist/dispatch/Release.d.ts +36 -0
- package/dist/dispatch/Release.d.ts.map +1 -0
- package/dist/dispatch/Release.js +124 -0
- package/dist/dispatch/Release.js.map +1 -0
- package/dist/dispatch/StorageGuard.d.ts +18 -1
- package/dist/dispatch/StorageGuard.d.ts.map +1 -1
- package/dist/dispatch/StorageGuard.js +57 -1
- package/dist/dispatch/StorageGuard.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/wire/Emit.d.ts +9 -0
- package/dist/wire/Emit.d.ts.map +1 -1
- package/dist/wire/Emit.js +16 -0
- package/dist/wire/Emit.js.map +1 -1
- package/dist/wire/Invocation.d.ts +2 -1
- package/dist/wire/Invocation.d.ts.map +1 -1
- package/dist/wire/Invocation.js +4 -1
- package/dist/wire/Invocation.js.map +1 -1
- package/dist/wire/InvocationContext.d.ts +2 -0
- package/dist/wire/InvocationContext.d.ts.map +1 -1
- package/dist/wire/SignedCall.d.ts +2 -0
- package/dist/wire/SignedCall.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/CallIdentity.ts +2 -0
- package/src/Constraint.ts +1 -1
- package/src/Source.ts +3 -2
- package/src/boot/Hosting.ts +38 -0
- package/src/boot/Peer.ts +15 -0
- package/src/boot/bootstrap.ts +142 -20
- package/src/boot/declared.ts +35 -3
- package/src/boot/install.ts +23 -2
- package/src/boot/peerOver.ts +17 -0
- package/src/boot/relations.ts +172 -0
- package/src/boot/together.ts +5 -1
- package/src/contract.ts +1 -0
- package/src/dispatch/Dependent.ts +19 -0
- package/src/dispatch/Dispatcher.ts +43 -7
- package/src/dispatch/Journal.ts +26 -0
- package/src/dispatch/RelationCheck.ts +21 -0
- package/src/dispatch/Release.ts +156 -0
- package/src/dispatch/StorageGuard.ts +62 -0
- package/src/index.ts +5 -0
- package/src/wire/Emit.ts +23 -0
- package/src/wire/Invocation.ts +3 -1
- package/src/wire/InvocationContext.ts +2 -0
- package/src/wire/SignedCall.ts +2 -0
package/dist/boot/install.js
CHANGED
|
@@ -11,6 +11,7 @@ import { inheritsCrud, subjectOf } from '../prefab/CrudConstructor.js';
|
|
|
11
11
|
import { repositoryKeyOf } from '../prefab/RepositoryConstructor.js';
|
|
12
12
|
import { storageKeyOf } from '../storage/Storage.js';
|
|
13
13
|
import { declares } from '../Source.js';
|
|
14
|
+
import { heldBy, refuseUnwritableNull, releasing } from './relations.js';
|
|
14
15
|
import { presenterKeyOf } from '../prefab/presenter.js';
|
|
15
16
|
import { collectorKeyOf } from '../prefab/collector.js';
|
|
16
17
|
import { RouteAddress } from '../wire/RouteAddress.js';
|
|
@@ -34,6 +35,9 @@ export async function installFrond(frond, assembly) {
|
|
|
34
35
|
}
|
|
35
36
|
const scope = container.createScope();
|
|
36
37
|
const frondLog = log.child(frond.name);
|
|
38
|
+
// The frond's own voice, a child of the APP logger and never of `log` — which is the
|
|
39
|
+
// boot's, so a service's line would have claimed `boot:` long after the boot was over.
|
|
40
|
+
scope.registerValue('Logger', container.resolve('Logger').child(frond.name));
|
|
37
41
|
// `reads:` is what makes a cross-source reader exist here, and the list IS its
|
|
38
42
|
// environment — a source holding none of these is never opened. Registered under
|
|
39
43
|
// the type's own name, which is the key `depKeyOf` already derives for a plain
|
|
@@ -115,6 +119,7 @@ export async function installFrond(frond, assembly) {
|
|
|
115
119
|
// When a handler declares Crud(Entity, Output), scope the storage via .output(Output)
|
|
116
120
|
if (options.storageFactory) {
|
|
117
121
|
const unenforced = [];
|
|
122
|
+
const release = releasing(assembly.hosting);
|
|
118
123
|
for (const entity of frond.entities) {
|
|
119
124
|
const key = storageKeyOf(entity.name);
|
|
120
125
|
const source = options.sourceOf?.(entity.name) ?? 'db';
|
|
@@ -133,7 +138,10 @@ export async function installFrond(frond, assembly) {
|
|
|
133
138
|
// arrived. Same order the client facade has held since `StorageGuard` existed.
|
|
134
139
|
const linked = wrapping('Storage', seams.get('Storage') ?? [], scoped, (dep) => scope.resolve(dep));
|
|
135
140
|
// Storage is a way out like the client surface — see `StorageGuard`.
|
|
136
|
-
|
|
141
|
+
refused.push(...refuseUnwritableNull(entity.entityClass, entity.name, entity.filePath));
|
|
142
|
+
const relations = heldBy(entity.entityClass, entity.name, assembly.hosting);
|
|
143
|
+
assembly.relations.push(...relations);
|
|
144
|
+
const guarded = new StorageGuard(entity.entityClass.getFields(), entity.name, {}, relations, release).guard(linked);
|
|
137
145
|
scope.registerValue(key, guarded);
|
|
138
146
|
// The default repository IS the guarded port — it already answers every gesture a
|
|
139
147
|
// declared one forwards, so the two forms have the same shape and a handler reads
|
|
@@ -175,6 +183,7 @@ export async function installFrond(frond, assembly) {
|
|
|
175
183
|
sourceOf: options.sourceOf,
|
|
176
184
|
transacts: options.transacts,
|
|
177
185
|
transacted: options.transacted,
|
|
186
|
+
hosting: assembly.hosting,
|
|
178
187
|
log: frondLog,
|
|
179
188
|
}, refused);
|
|
180
189
|
// Register presenters in scope — PascalCase type name (e.g. 'PostPresenter')
|
|
@@ -320,7 +329,7 @@ export async function installFrond(frond, assembly) {
|
|
|
320
329
|
? { view: outputSchema.getFields() }
|
|
321
330
|
: {}),
|
|
322
331
|
outOfView: (message) => frondLog.warn(message),
|
|
323
|
-
}).guard(scoped);
|
|
332
|
+
}, heldBy(entity.entityClass, entity.name, assembly.hosting), releasing(assembly.hosting)).guard(scoped);
|
|
324
333
|
surfaceScope.registerValue(storageKeyOf(entity.name), guarded);
|
|
325
334
|
surfaceScope.registerValue(repositoryKeyOf(entity.name), guarded);
|
|
326
335
|
}
|
package/dist/boot/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/boot/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/boot/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peerOver.d.ts","sourceRoot":"","sources":["../../src/boot/peerOver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAUnD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** The two readings core serves everywhere, asked of one process over one transport. */
|
|
2
|
+
import { Invocation } from '../wire/Invocation.js';
|
|
3
|
+
import { RPC_ENTITY } from '../wire/RpcAnswer.js';
|
|
4
|
+
export function peerOver(transport) {
|
|
5
|
+
const ask = (op, params) => transport({ entity: RPC_ENTITY, op }, { ...Invocation.empty, params: params });
|
|
6
|
+
return {
|
|
7
|
+
missing: async (entity, keys) => (await ask('holds', { entity, keys })).missing,
|
|
8
|
+
dependents: (entity) => ask('dependents', { entity }),
|
|
9
|
+
release: async (entity, key, visited) => { await ask('release', { entity, key, visited }); },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=peerOver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peerOver.js","sourceRoot":"","sources":["../../src/boot/peerOver.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,MAAM,UAAU,QAAQ,CAAC,SAAoB;IAC3C,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,MAA+B,EAAE,EAAE,CAC1D,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAe,EAAE,CAAC,CAAC;IAE1F,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAC7B,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAqC,CAAC,OAAO;QACrF,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** Who holds a `ref()`: the source it lives in, this process, or nobody. */
|
|
2
|
+
import { type SchemaView } from '@fougere/schema';
|
|
3
|
+
import type { Dependent } from '../dispatch/Dependent.js';
|
|
4
|
+
import type { RelationCheck } from '../dispatch/RelationCheck.js';
|
|
5
|
+
import type { Hosting } from './Hosting.js';
|
|
6
|
+
import type { Diagnostic } from '../diagnostic.js';
|
|
7
|
+
import type { Releasing } from '../dispatch/Release.js';
|
|
8
|
+
/**
|
|
9
|
+
* The references a foreign key cannot hold, each as a read the guard makes before the write.
|
|
10
|
+
*
|
|
11
|
+
* Documented: [entities](https://fougere.dev/docs/schema/entities).
|
|
12
|
+
*/
|
|
13
|
+
export declare function heldBy(entity: SchemaView, name: string, hosting: Hosting): RelationCheck[];
|
|
14
|
+
/**
|
|
15
|
+
* The rows that name this entity's, and what becomes of them — the dual of `heldBy`.
|
|
16
|
+
*
|
|
17
|
+
* Read over EVERY entity of the app, because a namer is declared wherever its own frond is,
|
|
18
|
+
* and the target learns of it from nowhere else. What a key already holds is left out: the
|
|
19
|
+
* engine answers it at the rows, inside the delete's own transaction.
|
|
20
|
+
*
|
|
21
|
+
* Documented: [entities](https://fougere.dev/docs/schema/entities).
|
|
22
|
+
*/
|
|
23
|
+
export declare function dependentsOf(target: string, hosting: Hosting): Dependent[];
|
|
24
|
+
/**
|
|
25
|
+
* `set null` on a field that may not hold one — refused where the FIELD is, not in `ref()`.
|
|
26
|
+
*
|
|
27
|
+
* `optional()` wraps a `ref()` and is applied after it, so only the field the entity ended up
|
|
28
|
+
* declaring knows whether null is admitted. Asked here rather than at the target, because the
|
|
29
|
+
* declaration is the namer's and so is the fix.
|
|
30
|
+
*/
|
|
31
|
+
export declare function refuseUnwritableNull(entity: SchemaView, name: string, filePath: string): Diagnostic[];
|
|
32
|
+
/** The checks nothing in this process can answer — asked once every frond has registered. */
|
|
33
|
+
export declare function unheldAmong(checks: readonly RelationCheck[], hosting: Hosting): string[];
|
|
34
|
+
/**
|
|
35
|
+
* What a release asks the boot, built once per app — the same `Hosting` the guard reads.
|
|
36
|
+
*
|
|
37
|
+
* `dependentsOf` is answered per call rather than cached: a frond installed after this one
|
|
38
|
+
* brings rows that name an entity already registered, and a table taken at boot would miss
|
|
39
|
+
* exactly the crossings this exists for.
|
|
40
|
+
*/
|
|
41
|
+
export declare function releasing(hosting: Hosting): Releasing;
|
|
42
|
+
/**
|
|
43
|
+
* A release this process can START and cannot FINISH.
|
|
44
|
+
*
|
|
45
|
+
* Read from what is HERE and never asked of anyone: an entity states `cascade` or `set null`,
|
|
46
|
+
* and nothing registered a journal — both facts are local, so the line is too. The same shape
|
|
47
|
+
* as `unique declared, and the source does not enforce it`, one rung up: what is declared, and
|
|
48
|
+
* what this process cannot keep.
|
|
49
|
+
*
|
|
50
|
+
* Silent when a key holds every hop: the engine carries those out in one statement, and there
|
|
51
|
+
* is no half-done state for anybody to finish.
|
|
52
|
+
*/
|
|
53
|
+
export declare function unfinishable(hosting: Hosting): string[];
|
|
54
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/boot/relations.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAQ,MAAM,wBAAwB,CAAC;AA4C9D;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,EAAE,CA0B1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAI1E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAiBrG;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAIxF;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAQrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAYvD"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/** Who holds a `ref()`: the source it lives in, this process, or nobody. */
|
|
2
|
+
import { lowerFirst, Role, Shapes } from '@fougere/schema';
|
|
3
|
+
/**
|
|
4
|
+
* Does a foreign key hold this reference? Both sides in ONE source that keeps relations — two
|
|
5
|
+
* databases share no constraint, and a frond behind `remotes:` registers no storage here at
|
|
6
|
+
* all. So the PAIR decides, never the engine.
|
|
7
|
+
*
|
|
8
|
+
* And the pair is not enough: an engine's cascade does not pass through the guard, so a hop it
|
|
9
|
+
* owns above a hop it does not would take rows out with nothing left to release THEIR rows. One
|
|
10
|
+
* unkeyed hop anywhere below and the guard takes the whole tree — the engine's own cascade then
|
|
11
|
+
* finds nothing left to do, since the guard walks deepest first and the row goes last.
|
|
12
|
+
*/
|
|
13
|
+
function keyed(namer, target, hosting, seen = new Set()) {
|
|
14
|
+
const pair = hosting.hostedHere(namer)
|
|
15
|
+
&& hosting.hostedHere(target)
|
|
16
|
+
&& hosting.sourceOf(namer) === hosting.sourceOf(target)
|
|
17
|
+
&& hosting.enforces(hosting.sourceOf(namer), 'relation');
|
|
18
|
+
if (!pair || seen.has(namer))
|
|
19
|
+
return pair;
|
|
20
|
+
seen.add(namer);
|
|
21
|
+
return referencesTo(namer, hosting).every(({ entity }) => keyed(entity, namer, hosting, seen));
|
|
22
|
+
}
|
|
23
|
+
/** Every field of every entity that names `target` — read over the whole app, both ways need it. */
|
|
24
|
+
function referencesTo(target, hosting) {
|
|
25
|
+
const found = [];
|
|
26
|
+
for (const [entity, schema] of hosting.entities()) {
|
|
27
|
+
for (const [field, declared] of Object.entries(schema.getFields())) {
|
|
28
|
+
const role = Role.of(declared);
|
|
29
|
+
if (role.isReference && role.target?.name && lowerFirst(role.target.name) === target) {
|
|
30
|
+
found.push({ entity, field, role });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return found;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The references a foreign key cannot hold, each as a read the guard makes before the write.
|
|
38
|
+
*
|
|
39
|
+
* Documented: [entities](https://fougere.dev/docs/schema/entities).
|
|
40
|
+
*/
|
|
41
|
+
export function heldBy(entity, name, hosting) {
|
|
42
|
+
const checks = [];
|
|
43
|
+
for (const [field, declared] of Object.entries(entity.getFields())) {
|
|
44
|
+
const role = Role.of(declared);
|
|
45
|
+
if (!role.isReference || !role.target?.name)
|
|
46
|
+
continue;
|
|
47
|
+
const target = lowerFirst(role.target.name);
|
|
48
|
+
if (keyed(name, target, hosting))
|
|
49
|
+
continue;
|
|
50
|
+
checks.push({
|
|
51
|
+
field,
|
|
52
|
+
target,
|
|
53
|
+
missing: async (keys) => {
|
|
54
|
+
const storage = hosting.storageOf(target);
|
|
55
|
+
// Nothing here holds those rows — the process that does answers the same reading,
|
|
56
|
+
// so the question crosses rather than being given up on.
|
|
57
|
+
if (!storage)
|
|
58
|
+
return hosting.peerOf(target)?.missing(target, keys) ?? [];
|
|
59
|
+
const found = await storage.findByKeys(keys.map(String));
|
|
60
|
+
return keys.filter((key) => !found.has(String(key)));
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return checks;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The rows that name this entity's, and what becomes of them — the dual of `heldBy`.
|
|
68
|
+
*
|
|
69
|
+
* Read over EVERY entity of the app, because a namer is declared wherever its own frond is,
|
|
70
|
+
* and the target learns of it from nowhere else. What a key already holds is left out: the
|
|
71
|
+
* engine answers it at the rows, inside the delete's own transaction.
|
|
72
|
+
*
|
|
73
|
+
* Documented: [entities](https://fougere.dev/docs/schema/entities).
|
|
74
|
+
*/
|
|
75
|
+
export function dependentsOf(target, hosting) {
|
|
76
|
+
return referencesTo(target, hosting)
|
|
77
|
+
.filter(({ entity }) => !keyed(entity, target, hosting))
|
|
78
|
+
.map(({ entity, field, role }) => ({ entity, field, onDelete: role.onDelete ?? 'restrict' }));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* `set null` on a field that may not hold one — refused where the FIELD is, not in `ref()`.
|
|
82
|
+
*
|
|
83
|
+
* `optional()` wraps a `ref()` and is applied after it, so only the field the entity ended up
|
|
84
|
+
* declaring knows whether null is admitted. Asked here rather than at the target, because the
|
|
85
|
+
* declaration is the namer's and so is the fix.
|
|
86
|
+
*/
|
|
87
|
+
export function refuseUnwritableNull(entity, name, filePath) {
|
|
88
|
+
const refused = [];
|
|
89
|
+
for (const [field, declared] of Object.entries(entity.getFields())) {
|
|
90
|
+
if (Role.of(declared).onDelete !== 'set null' || Shapes.isNullable(declared.shape))
|
|
91
|
+
continue;
|
|
92
|
+
refused.push({
|
|
93
|
+
severity: 'blocking',
|
|
94
|
+
code: 'on-delete-null-refused',
|
|
95
|
+
filePath,
|
|
96
|
+
subject: `${name}.${field}`,
|
|
97
|
+
message: `${name}.${field} states onDelete 'set null', and the field admits no null — so the `
|
|
98
|
+
+ 'row could neither be emptied nor kept. Wrap it in `optional()`, or state `cascade` '
|
|
99
|
+
+ 'to take the row out with its target.',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return refused;
|
|
103
|
+
}
|
|
104
|
+
/** The checks nothing in this process can answer — asked once every frond has registered. */
|
|
105
|
+
export function unheldAmong(checks, hosting) {
|
|
106
|
+
return checks
|
|
107
|
+
.filter((check) => hosting.storageOf(check.target) === undefined)
|
|
108
|
+
.map((check) => `${check.field} → ${check.target}`);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* What a release asks the boot, built once per app — the same `Hosting` the guard reads.
|
|
112
|
+
*
|
|
113
|
+
* `dependentsOf` is answered per call rather than cached: a frond installed after this one
|
|
114
|
+
* brings rows that name an entity already registered, and a table taken at boot would miss
|
|
115
|
+
* exactly the crossings this exists for.
|
|
116
|
+
*/
|
|
117
|
+
export function releasing(hosting) {
|
|
118
|
+
return {
|
|
119
|
+
dependentsOf: (entity) => dependentsOf(entity, hosting),
|
|
120
|
+
rowsOf: (entity) => hosting.storageOf(entity),
|
|
121
|
+
schemaOf: (entity) => hosting.entities().get(entity),
|
|
122
|
+
peers: () => hosting.peers(),
|
|
123
|
+
journal: (entity) => hosting.journal(entity),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* A release this process can START and cannot FINISH.
|
|
128
|
+
*
|
|
129
|
+
* Read from what is HERE and never asked of anyone: an entity states `cascade` or `set null`,
|
|
130
|
+
* and nothing registered a journal — both facts are local, so the line is too. The same shape
|
|
131
|
+
* as `unique declared, and the source does not enforce it`, one rung up: what is declared, and
|
|
132
|
+
* what this process cannot keep.
|
|
133
|
+
*
|
|
134
|
+
* Silent when a key holds every hop: the engine carries those out in one statement, and there
|
|
135
|
+
* is no half-done state for anybody to finish.
|
|
136
|
+
*/
|
|
137
|
+
export function unfinishable(hosting) {
|
|
138
|
+
if (hosting.journal('') !== undefined)
|
|
139
|
+
return [];
|
|
140
|
+
const found = [];
|
|
141
|
+
for (const [entity] of hosting.entities()) {
|
|
142
|
+
for (const dependent of dependentsOf(entity, hosting)) {
|
|
143
|
+
if (dependent.onDelete === 'restrict')
|
|
144
|
+
continue;
|
|
145
|
+
found.push(`${dependent.entity}.${dependent.field} → ${entity} (${dependent.onDelete})`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return found;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=relations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/boot/relations.ts"],"names":[],"mappings":"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"}
|
package/dist/boot/together.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Container } from '@fougere/container';
|
|
|
3
3
|
import { type StorageFactory } from '../storage/StorageFactory.js';
|
|
4
4
|
import type { Logger } from '../builtin/Logger.js';
|
|
5
5
|
import type { ProviderEntry } from '../descriptor/ProviderEntry.js';
|
|
6
|
+
import type { Hosting } from './Hosting.js';
|
|
6
7
|
import type { Diagnostic } from '../diagnostic.js';
|
|
7
8
|
/** Everything the boot knows that a frame needs, gathered once for every frond. */
|
|
8
9
|
export interface FrameWorld {
|
|
@@ -16,6 +17,8 @@ export interface FrameWorld {
|
|
|
16
17
|
/** Whether that source hands one out — asked before the frame is built, not at the call. */
|
|
17
18
|
transacts?: (source: string) => boolean;
|
|
18
19
|
transacted?: <R>(source: string, fn: (storageFactory: StorageFactory) => Promise<R>) => Promise<R>;
|
|
20
|
+
/** What a member's references ask before a write — the answer its frond's own storage gets. */
|
|
21
|
+
hosting: Hosting;
|
|
19
22
|
log: Logger;
|
|
20
23
|
}
|
|
21
24
|
/** Register one frame per key a handler or provider of this frond asked for. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"together.d.ts","sourceRoot":"","sources":["../../src/boot/together.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,kFAAkF;IAClF,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,4FAA4F;IAC5F,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACnG,GAAG,EAAE,MAAM,CAAC;CACb;AAuHD,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,QAAQ,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EACnD,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,UAAU,EAAE,GACpB,IAAI,CAqEN"}
|
|
1
|
+
{"version":3,"file":"together.d.ts","sourceRoot":"","sources":["../../src/boot/together.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,kFAAkF;IAClF,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,4FAA4F;IAC5F,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACnG,+FAA+F;IAC/F,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAuHD,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,QAAQ,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EACnD,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,UAAU,EAAE,GACpB,IAAI,CAqEN"}
|
package/dist/boot/together.js
CHANGED
|
@@ -7,6 +7,7 @@ import { ambient } from '#ambient';
|
|
|
7
7
|
import { upperFirst, lowerFirst } from '@fougere/schema';
|
|
8
8
|
import { entityOfStorageKey, membersOfTogetherKey, storageKeyOf } from '../storage/Storage.js';
|
|
9
9
|
import { StorageGuard } from '../dispatch/StorageGuard.js';
|
|
10
|
+
import { heldBy, releasing } from './relations.js';
|
|
10
11
|
import { recording, unwind } from './frame.js';
|
|
11
12
|
/** Each declared name, resolved to what it designates — or nothing, and why. */
|
|
12
13
|
function resolve(names, declared, world, asked, refused) {
|
|
@@ -123,7 +124,7 @@ export function registerFrames(scope, wanted, providers, world, refused) {
|
|
|
123
124
|
remoteMembers(members, world, asked, refused);
|
|
124
125
|
uncoveredWrites(members, world, asked, refused);
|
|
125
126
|
const sources = new Set(members.entities.map((member) => world.sourceOf?.(member.name) ?? 'db'));
|
|
126
|
-
const validator = (storage, name, schema) => new StorageGuard(schema.getFields(), name).guard(storage);
|
|
127
|
+
const validator = (storage, name, schema) => new StorageGuard(schema.getFields(), name, {}, heldBy(schema, name, world.hosting), releasing(world.hosting)).guard(storage);
|
|
127
128
|
// One engine and a way into it: the engine gives the unwind AND the isolation. The
|
|
128
129
|
// question goes to the source these members live in — a composition answering for the
|
|
129
130
|
// default one would compensate a frame whose own engine holds transactions.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"together.js","sourceRoot":"","sources":["../../src/boot/together.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAgB,MAAM,uBAAuB,CAAC;AAI7G,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"together.js","sourceRoot":"","sources":["../../src/boot/together.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export type { Comparison } from './storage/Comparison.js';
|
|
|
7
7
|
export { toPublicError } from './wire/http-error.js';
|
|
8
8
|
export { Invocation } from './wire/Invocation.js';
|
|
9
9
|
export type { InvocationContext } from './wire/InvocationContext.js';
|
|
10
|
+
export type { PartialInvocation } from './wire/PartialInvocation.js';
|
|
10
11
|
export { Call } from './wire/Call.js';
|
|
11
12
|
export { RouteAddress } from './wire/RouteAddress.js';
|
|
12
13
|
export type { FrondCall } from './wire/FrondCall.js';
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,qFAAqF;AACrF,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEtE,mFAAmF;AACnF,sFAAsF;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,qFAAqF;AACrF,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEtE,mFAAmF;AACnF,sFAAsF;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,uFAAuF;AACvF,gEAAgE;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,wFAAwF;AACxF,8EAA8E;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG3D,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAkBhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,6DAA6D;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAoC,EACpC,SAA+C,EAC/C,KAAkC;IAElC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GACjB,OAAO,SAAS,KAAK,QAAQ;QAC3B,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAE,MAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC;QACnF,CAAC,CAAC,CAAC,MAAmB,EAAE,SAAS,CAAC,CAAC;IACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { OnDelete } from '@fougere/schema';
|
|
2
|
+
/**
|
|
3
|
+
* A `ref()` read from the TARGET's side: rows that name it, and what becomes of them.
|
|
4
|
+
*
|
|
5
|
+
* The dual of `RelationCheck`, which reads the same declaration from the child's side to judge
|
|
6
|
+
* a write. Only what no foreign key holds reaches here — a key answers at the rows, inside the
|
|
7
|
+
* delete's own transaction, and nothing in this process would see it happen.
|
|
8
|
+
*
|
|
9
|
+
* Documented: [entities](https://fougere.dev/docs/schema/entities).
|
|
10
|
+
*/
|
|
11
|
+
export interface Dependent {
|
|
12
|
+
/** The entity whose rows name the target — `post`. */
|
|
13
|
+
entity: string;
|
|
14
|
+
/** The field carrying the key — `authorId`. */
|
|
15
|
+
field: string;
|
|
16
|
+
/** Unstated is `restrict`: what a foreign key does when nothing is said. */
|
|
17
|
+
onDelete: OnDelete;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=Dependent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dependent.d.ts","sourceRoot":"","sources":["../../src/dispatch/Dependent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,QAAQ,EAAE,QAAQ,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dependent.js","sourceRoot":"","sources":["../../src/dispatch/Dependent.ts"],"names":[],"mappings":""}
|
|
@@ -4,13 +4,26 @@ import type { DispatchPort } from './DispatchPort.js';
|
|
|
4
4
|
import type { RoutePolicy } from './RoutePolicy.js';
|
|
5
5
|
import { RouteRegistry } from './RouteRegistry.js';
|
|
6
6
|
import type { InFlight } from './InFlight.js';
|
|
7
|
+
import type { Journal } from './Journal.js';
|
|
7
8
|
/** Resolves and executes every call through the same transverse lifecycle. */
|
|
8
9
|
export declare class Dispatcher implements DispatchPort {
|
|
9
10
|
private readonly routes;
|
|
10
11
|
private readonly inFlight;
|
|
11
12
|
private readonly lifecycle;
|
|
12
13
|
private readonly policy?;
|
|
13
|
-
|
|
14
|
+
private readonly journalOf?;
|
|
15
|
+
constructor(routes: RouteRegistry, inFlight: InFlight, lifecycle?: DispatchLifecycle, policy?: RoutePolicy | undefined, journalOf?: (() => Journal | undefined) | undefined);
|
|
16
|
+
/** The route that answers this address, or the refusal naming what is served instead. */
|
|
17
|
+
private routeFor;
|
|
18
|
+
/**
|
|
19
|
+
* A kept call publishes no dispatch event and enters no flight: it has not been answered,
|
|
20
|
+
* and counting it here would report one call spanning the days until its hour.
|
|
21
|
+
*
|
|
22
|
+
* Its address is resolved all the same. What is kept is made hours later, by then against
|
|
23
|
+
* whatever the app still serves — so an address nothing answers is refused to the caller who
|
|
24
|
+
* can still fix it, rather than to a beat nobody is watching.
|
|
25
|
+
*/
|
|
26
|
+
private keep;
|
|
14
27
|
dispatch(call: Call): Promise<unknown>;
|
|
15
28
|
}
|
|
16
29
|
//# sourceMappingURL=Dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/dispatch/Dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/dispatch/Dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,8EAA8E;AAC9E,qBAAa,UAAW,YAAW,YAAY;IAE3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAJV,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,QAAQ,EAClB,SAAS,oBAA0B,EACnC,MAAM,CAAC,EAAE,WAAW,YAAA,EACpB,SAAS,CAAC,GAAE,MAAM,OAAO,GAAG,SAAS,aAAA;IAGxD,yFAAyF;YAC3E,QAAQ;IAYtB;;;;;;;OAOG;YACW,IAAI;IAgBZ,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;CAyB7C"}
|