@kairos-es/codec 1.0.0-alpha.4 → 1.0.0-alpha.6
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 +2 -2
- package/dist/cjs/MetadataSource.js +1 -1
- package/dist/cjs/MetadataSource.js.map +1 -1
- package/dist/cjs/Serializer.js +3 -3
- package/dist/cjs/Serializer.js.map +1 -1
- package/dist/cjs/Uuid.js +6 -3
- package/dist/cjs/Uuid.js.map +1 -1
- package/dist/cjs/decider.js +1 -1
- package/dist/cjs/decisionModel.js +1 -1
- package/dist/cjs/decisionModel.js.map +1 -1
- package/dist/cjs/decode.js +5 -5
- package/dist/cjs/decode.js.map +1 -1
- package/dist/cjs/deserialiseThenDecode.js +1 -1
- package/dist/cjs/deserialiseThenDecode.js.map +1 -1
- package/dist/cjs/errors.js +6 -4
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/event.js.map +1 -1
- package/dist/cjs/precondition.js +2 -2
- package/dist/cjs/precondition.js.map +1 -1
- package/dist/cjs/projection.js +9 -10
- package/dist/cjs/projection.js.map +1 -1
- package/dist/cjs/readLedger.js +3 -3
- package/dist/cjs/readLedger.js.map +1 -1
- package/dist/cjs/registry.js.map +1 -1
- package/dist/cjs/toEvent.js +4 -4
- package/dist/cjs/toEvent.js.map +1 -1
- package/dist/dts-cjs/MetadataSource.d.ts +8 -0
- package/dist/{dts → dts-cjs}/MetadataSource.d.ts.map +1 -1
- package/dist/{dts → dts-cjs}/Serializer.d.ts +3 -3
- package/dist/{dts → dts-cjs}/Serializer.d.ts.map +1 -1
- package/dist/{dts → dts-cjs}/Uuid.d.ts +6 -3
- package/dist/{dts → dts-cjs}/Uuid.d.ts.map +1 -1
- package/dist/{dts → dts-cjs}/decider.d.ts +7 -7
- package/dist/{dts → dts-cjs}/decider.d.ts.map +1 -1
- package/dist/{dts → dts-cjs}/decision.d.ts +2 -2
- package/dist/{dts → dts-cjs}/decode.d.ts +3 -3
- package/dist/{dts → dts-cjs}/decode.d.ts.map +1 -1
- package/dist/{dts → dts-cjs}/deserialiseThenDecode.d.ts +3 -3
- package/dist/{dts → dts-cjs}/deserialiseThenDecode.d.ts.map +1 -1
- package/dist/{dts → dts-cjs}/errors.d.ts +4 -3
- package/dist/dts-cjs/errors.d.ts.map +1 -0
- package/dist/{dts → dts-cjs}/event.d.ts +18 -8
- package/dist/dts-cjs/event.d.ts.map +1 -0
- package/dist/dts-cjs/package.json +3 -0
- package/dist/{dts → dts-cjs}/precondition.d.ts +2 -2
- package/dist/{dts → dts-cjs}/projection.d.ts +2 -2
- package/dist/dts-cjs/projection.d.ts.map +1 -0
- package/dist/{dts → dts-cjs}/readLedger.d.ts +4 -4
- package/dist/{dts → dts-cjs}/readLedger.d.ts.map +1 -1
- package/dist/{dts → dts-cjs}/toEvent.d.ts +2 -2
- package/dist/dts-esm/MetadataSource.d.ts +8 -0
- package/dist/dts-esm/MetadataSource.d.ts.map +1 -0
- package/dist/dts-esm/Serializer.d.ts +27 -0
- package/dist/dts-esm/Serializer.d.ts.map +1 -0
- package/dist/dts-esm/Uuid.d.ts +22 -0
- package/dist/dts-esm/Uuid.d.ts.map +1 -0
- package/dist/dts-esm/decider.d.ts +206 -0
- package/dist/dts-esm/decider.d.ts.map +1 -0
- package/dist/dts-esm/decision.d.ts +161 -0
- package/dist/dts-esm/decision.d.ts.map +1 -0
- package/dist/dts-esm/decisionModel.d.ts +149 -0
- package/dist/dts-esm/decisionModel.d.ts.map +1 -0
- package/dist/dts-esm/decode.d.ts +92 -0
- package/dist/dts-esm/decode.d.ts.map +1 -0
- package/dist/dts-esm/deserialiseThenDecode.d.ts +62 -0
- package/dist/dts-esm/deserialiseThenDecode.d.ts.map +1 -0
- package/dist/dts-esm/errors.d.ts +80 -0
- package/dist/dts-esm/errors.d.ts.map +1 -0
- package/dist/dts-esm/event.d.ts +81 -0
- package/dist/dts-esm/event.d.ts.map +1 -0
- package/dist/dts-esm/index.d.ts +134 -0
- package/dist/dts-esm/index.d.ts.map +1 -0
- package/dist/dts-esm/package.json +3 -0
- package/dist/dts-esm/precondition.d.ts +244 -0
- package/dist/dts-esm/precondition.d.ts.map +1 -0
- package/dist/dts-esm/projection.d.ts +56 -0
- package/dist/dts-esm/projection.d.ts.map +1 -0
- package/dist/dts-esm/readLedger.d.ts +263 -0
- package/dist/dts-esm/readLedger.d.ts.map +1 -0
- package/dist/dts-esm/registry.d.ts +46 -0
- package/dist/dts-esm/registry.d.ts.map +1 -0
- package/dist/dts-esm/toEvent.d.ts +45 -0
- package/dist/dts-esm/toEvent.d.ts.map +1 -0
- package/dist/esm/MetadataSource.js +1 -1
- package/dist/esm/MetadataSource.js.map +1 -1
- package/dist/esm/Serializer.js +3 -3
- package/dist/esm/Serializer.js.map +1 -1
- package/dist/esm/Uuid.js +6 -3
- package/dist/esm/Uuid.js.map +1 -1
- package/dist/esm/decider.js +1 -1
- package/dist/esm/decisionModel.js +1 -1
- package/dist/esm/decisionModel.js.map +1 -1
- package/dist/esm/decode.js +5 -5
- package/dist/esm/decode.js.map +1 -1
- package/dist/esm/deserialiseThenDecode.js +1 -1
- package/dist/esm/deserialiseThenDecode.js.map +1 -1
- package/dist/esm/errors.js +6 -4
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/event.js.map +1 -1
- package/dist/esm/precondition.js +2 -2
- package/dist/esm/precondition.js.map +1 -1
- package/dist/esm/projection.js +9 -10
- package/dist/esm/projection.js.map +1 -1
- package/dist/esm/readLedger.js +3 -3
- package/dist/esm/readLedger.js.map +1 -1
- package/dist/esm/registry.js.map +1 -1
- package/dist/esm/toEvent.js +4 -4
- package/dist/esm/toEvent.js.map +1 -1
- package/package.json +12 -7
- package/src/MetadataSource.ts +2 -2
- package/src/Serializer.ts +4 -4
- package/src/Uuid.ts +7 -4
- package/src/decider.ts +9 -9
- package/src/decision.ts +1 -1
- package/src/decisionModel.ts +1 -1
- package/src/decode.ts +12 -18
- package/src/deserialiseThenDecode.ts +5 -5
- package/src/errors.ts +6 -4
- package/src/event.ts +19 -9
- package/src/precondition.ts +3 -3
- package/src/projection.ts +15 -20
- package/src/readLedger.ts +7 -7
- package/src/registry.ts +1 -1
- package/src/toEvent.ts +4 -4
- package/dist/dts/MetadataSource.d.ts +0 -8
- package/dist/dts/errors.d.ts.map +0 -1
- package/dist/dts/event.d.ts.map +0 -1
- package/dist/dts/projection.d.ts.map +0 -1
- /package/dist/{dts → dts-cjs}/decision.d.ts.map +0 -0
- /package/dist/{dts → dts-cjs}/decisionModel.d.ts +0 -0
- /package/dist/{dts → dts-cjs}/decisionModel.d.ts.map +0 -0
- /package/dist/{dts → dts-cjs}/index.d.ts +0 -0
- /package/dist/{dts → dts-cjs}/index.d.ts.map +0 -0
- /package/dist/{dts → dts-cjs}/precondition.d.ts.map +0 -0
- /package/dist/{dts → dts-cjs}/registry.d.ts +0 -0
- /package/dist/{dts → dts-cjs}/registry.d.ts.map +0 -0
- /package/dist/{dts → dts-cjs}/toEvent.d.ts.map +0 -0
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Schema-first codec with an encryption seam for kairos-es (ADR-0004).
|
|
|
8
8
|
single shared Effect instance (per [ADR-0003](../../docs/adr)):
|
|
9
9
|
|
|
10
10
|
```sh
|
|
11
|
-
pnpm add @kairos-es/codec@alpha @kairos-es/core@alpha effect@^
|
|
11
|
+
pnpm add @kairos-es/codec@alpha @kairos-es/core@alpha effect@^4.0.5
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
The typed-payload to opaque-bytes seam: `event(type, fields, tagsFor)` defines a
|
|
@@ -37,7 +37,7 @@ that def's schema, and an erased `evolve(state, decoded)` that reads
|
|
|
37
37
|
things the builder does for you, a hand-written slice must do itself:
|
|
38
38
|
|
|
39
39
|
- **Keep the def's requirement in the schema cast** —
|
|
40
|
-
`def.schema as unknown as Schema.
|
|
40
|
+
`def.schema as unknown as Schema.Decoder<unknown, R>` with the def's own
|
|
41
41
|
`R`. Cast a def that needs a service to `never` instead, and the slice compiles
|
|
42
42
|
without that service and dies at run time.
|
|
43
43
|
- **Check `decoded.sequenced.event.type` in `evolve`.** It is handed every event its
|
|
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.MetadataSource = void 0;
|
|
7
7
|
var _effect = require("effect");
|
|
8
|
-
class MetadataSource extends /*#__PURE__*/_effect.Context.
|
|
8
|
+
class MetadataSource extends /*#__PURE__*/_effect.Context.Service()('@kairos-es/codec/MetadataSource') {}
|
|
9
9
|
exports.MetadataSource = MetadataSource;
|
|
10
10
|
//# sourceMappingURL=MetadataSource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataSource.js","names":["_effect","require","MetadataSource","Context","
|
|
1
|
+
{"version":3,"file":"MetadataSource.js","names":["_effect","require","MetadataSource","Context","Service","exports"],"sources":["../../src/MetadataSource.ts"],"sourcesContent":[null],"mappings":";;;;;;AAsCA,IAAAA,OAAA,GAAAC,OAAA;AAEM,MAAOC,cAAe,sBAAQC,eAAO,CAACC,OAAO,EAA4B,CAC7E,iCAAiC,CAClC;AAAAC,OAAA,CAAAH,cAAA,GAAAA,cAAA","ignoreList":[]}
|
package/dist/cjs/Serializer.js
CHANGED
|
@@ -7,8 +7,8 @@ exports.SerializerDefault = exports.Serializer = void 0;
|
|
|
7
7
|
var _effect = require("effect");
|
|
8
8
|
/**
|
|
9
9
|
* The pluggable serialiser: the `Uint8Array` <-> value boundary applied
|
|
10
|
-
* *outside* `Schema`. Encode is `Schema.
|
|
11
|
-
* `deserialise` then `Schema.
|
|
10
|
+
* *outside* `Schema`. Encode is `Schema.encodeEffect` then `serialise`; decode is
|
|
11
|
+
* `deserialise` then `Schema.decodeUnknownEffect`. Both codec paths read the same
|
|
12
12
|
* `Serializer` from context, so encode and decode cannot mismatch; swapping
|
|
13
13
|
* JSON for msgpack is a different layer with no schema or call-site changes.
|
|
14
14
|
*
|
|
@@ -18,7 +18,7 @@ var _effect = require("effect");
|
|
|
18
18
|
* a trivial `Layer.succeed`.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
class Serializer extends /*#__PURE__*/_effect.Context.
|
|
21
|
+
class Serializer extends /*#__PURE__*/_effect.Context.Service()('@kairos-es/codec/Serializer') {}
|
|
22
22
|
exports.Serializer = Serializer;
|
|
23
23
|
const encoder = /*#__PURE__*/new TextEncoder();
|
|
24
24
|
const decoder = /*#__PURE__*/new TextDecoder();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Serializer.js","names":["_effect","require","Serializer","Context","
|
|
1
|
+
{"version":3,"file":"Serializer.js","names":["_effect","require","Serializer","Context","Service","exports","encoder","TextEncoder","decoder","TextDecoder","SerializerDefault","Layer","succeed","serialise","v","encode","JSON","stringify","deserialise","b","parse","decode"],"sources":["../../src/Serializer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAYA,IAAAA,OAAA,GAAAC,OAAA;AAZA;;;;;;;;;;;;;AAcM,MAAOC,UAAW,sBAAQC,eAAO,CAACC,OAAO,EAM5C,CAAC,6BAA6B,CAAC;AAAAC,OAAA,CAAAH,UAAA,GAAAA,UAAA;AAElC,MAAMI,OAAO,gBAAG,IAAIC,WAAW,EAAE;AACjC,MAAMC,OAAO,gBAAG,IAAIC,WAAW,EAAE;AAEjC;;;;;AAKO,MAAMC,iBAAiB,GAAAL,OAAA,CAAAK,iBAAA,gBAA4BC,aAAK,CAACC,OAAO,CACrEV,UAAU,EACV;EACEW,SAAS,EAAGC,CAAC,IAAKR,OAAO,CAACS,MAAM,CAACC,IAAI,CAACC,SAAS,CAACH,CAAC,CAAC,CAAC;EACnDI,WAAW,EAAGC,CAAC,IAAKH,IAAI,CAACI,KAAK,CAACZ,OAAO,CAACa,MAAM,CAACF,CAAC,CAAC;CACjD,CACF","ignoreList":[]}
|
package/dist/cjs/Uuid.js
CHANGED
|
@@ -18,7 +18,7 @@ var _effect = require("effect");
|
|
|
18
18
|
* layer gets a repeatable sequence.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
class Uuid extends /*#__PURE__*/_effect.Context.
|
|
21
|
+
class Uuid extends /*#__PURE__*/_effect.Context.Service()('@kairos-es/codec/Uuid') {}
|
|
22
22
|
/** Live uuid generation via WebCrypto (no `node:crypto`). */
|
|
23
23
|
exports.Uuid = Uuid;
|
|
24
24
|
const UuidLive = exports.UuidLive = /*#__PURE__*/_effect.Layer.succeed(Uuid, {
|
|
@@ -27,9 +27,12 @@ const UuidLive = exports.UuidLive = /*#__PURE__*/_effect.Layer.succeed(Uuid, {
|
|
|
27
27
|
/**
|
|
28
28
|
* A deterministic uuid layer for suites, wrapping core's shared
|
|
29
29
|
* `makeSequentialUuid` (the single source of truth for the counter scheme).
|
|
30
|
-
* Each layer
|
|
30
|
+
* Each BUILD of the layer makes a fresh generator, so it owns its own counter and
|
|
31
31
|
* yields a stable v4-shaped sequence `00000000-0000-4000-8000-<12 hex>` starting
|
|
32
|
-
* at `...000000000000`.
|
|
32
|
+
* at `...000000000000`. A build is not one per `Effect.provide`: Effect memoises
|
|
33
|
+
* a layer across the provisions that share a memo map, so a nested second
|
|
34
|
+
* provision of this layer continues the counter rather than restarting it, and
|
|
35
|
+
* `Layer.fresh` is the way to ask for a restart. Generation is wrapped in `Effect.sync` because the
|
|
33
36
|
* generator advances its counter (a side effect on each call).
|
|
34
37
|
*/
|
|
35
38
|
const UuidTest = exports.UuidTest = /*#__PURE__*/_effect.Layer.sync(Uuid, () => {
|
package/dist/cjs/Uuid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Uuid.js","names":["_testing","require","_effect","Uuid","Context","
|
|
1
|
+
{"version":3,"file":"Uuid.js","names":["_testing","require","_effect","Uuid","Context","Service","exports","UuidLive","Layer","succeed","generate","Effect","sync","globalThis","crypto","randomUUID","UuidTest","next","makeSequentialUuid"],"sources":["../../src/Uuid.ts"],"sourcesContent":[null],"mappings":";;;;;;AAWA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAZA;;;;;;;;;;;;AAcM,MAAOE,IAAK,sBAAQC,eAAO,CAACC,OAAO,EAGtC,CAAC,uBAAuB,CAAC;AAE5B;AAAAC,OAAA,CAAAH,IAAA,GAAAA,IAAA;AACO,MAAMI,QAAQ,GAAAD,OAAA,CAAAC,QAAA,gBAAsBC,aAAK,CAACC,OAAO,CAACN,IAAI,EAAE;EAC7DO,QAAQ,eAAEC,cAAM,CAACC,IAAI,CAAC,MAAMC,UAAU,CAACC,MAAM,CAACC,UAAU,EAAE;CAC3D,CAAC;AAEF;;;;;;;;;;;AAWO,MAAMC,QAAQ,GAAAV,OAAA,CAAAU,QAAA,gBAAsBR,aAAK,CAACI,IAAI,CAACT,IAAI,EAAE,MAAK;EAC/D,MAAMc,IAAI,GAAG,IAAAC,2BAAkB,GAAE;EACjC,OAAO;IAAER,QAAQ,EAAEC,cAAM,CAACC,IAAI,CAACK,IAAI;EAAC,CAAE;AACxC,CAAC,CAAC","ignoreList":[]}
|
package/dist/cjs/decider.js
CHANGED
|
@@ -50,7 +50,7 @@ var _decisionModel = require("./decisionModel.js");
|
|
|
50
50
|
* append condition the read produced. That IS the optimistic-concurrency
|
|
51
51
|
* contract, in production and in a scenario alike — which is also why the
|
|
52
52
|
* Given/When/Then surface built on it exercises the real fold and the real store
|
|
53
|
-
* rather than a mock. It is a free function rather than a `Context.
|
|
53
|
+
* rather than a mock. It is a free function rather than a `Context.Service`,
|
|
54
54
|
* so it is still not the "production command-runner service method" a retrying
|
|
55
55
|
* `Layer` would need (ADR-0008): the correct retry remains
|
|
56
56
|
* `retryOnConflict(runDecider(...))`, wrapping the whole cycle so a fresh read
|
|
@@ -124,7 +124,7 @@ const modelAtHead = projections => _effect.Effect.gen(function* () {
|
|
|
124
124
|
head
|
|
125
125
|
} = yield* store.read(composite.query);
|
|
126
126
|
const decoded = decode(events);
|
|
127
|
-
const state = yield* _effect.Stream.runFold(decoded, composite.initialState, (acc, event) => composite.evolve(acc, event));
|
|
127
|
+
const state = yield* _effect.Stream.runFold(decoded, () => composite.initialState, (acc, event) => composite.evolve(acc, event));
|
|
128
128
|
// LAZY: only once the fold has run to completion. A read that failed
|
|
129
129
|
// part-way folded a PREFIX, and a head recorded for it is a claim it did not
|
|
130
130
|
// earn — so the line below is unreachable on that path, deliberately.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisionModel.js","names":["_core","require","_effect","_decode","_readLedger","modelAtHead","projections","Effect","gen","store","DcbEventStore","decode","decodeSlices","composite","composeProjections","assertServableAddition","closeHop","recordQuery","query","events","head","read","decoded","state","Stream","runFold","initialState","acc","event","evolve","exports","buildDecisionModel","ambient","ambientLayeredCondition","Option","isSome","appendCondition","value","failIfEventsMatch","after"],"sources":["../../src/decisionModel.ts"],"sourcesContent":[null],"mappings":";;;;;;AAiCA,IAAAA,KAAA,GAAAC,OAAA;AAQA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,WAAA,GAAAH,OAAA;AA7CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDO,MAAMI,WAAW,GACtBC,WAAc,IAMdC,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,KAAK,GAAG,OAAOC,mBAAa;EAElC;EACA;EACA;EACA,MAAMC,MAAM,GAAG,IAAAC,oBAAY,EAACN,WAAW,CAAC;EAExC;EACA,MAAMO,SAAS,GAAG,IAAAC,wBAAkB,EAClCR,WAA4C,CAC7C;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO,IAAAS,kCAAsB,EAACT,WAA4C,CAAC;EAE3E;EACA;EACA;EACA,MAAMU,QAAQ,GAAG,OAAO,IAAAC,uBAAW,EAACJ,SAAS,CAACK,KAAK,CAAC;EAEpD,MAAM;IAAEC,MAAM;IAAEC;EAAI,CAAE,GAAG,OAAOX,KAAK,CAACY,IAAI,CAACR,SAAS,CAACK,KAAK,CAAC;EAE3D,MAAMI,OAAO,GAAGX,MAAM,CAACQ,MAAM,CAAC;EAE9B,MAAMI,KAAK,GAAI,OAAOC,cAAM,CAACC,OAAO,CAClCH,OAAO,
|
|
1
|
+
{"version":3,"file":"decisionModel.js","names":["_core","require","_effect","_decode","_readLedger","modelAtHead","projections","Effect","gen","store","DcbEventStore","decode","decodeSlices","composite","composeProjections","assertServableAddition","closeHop","recordQuery","query","events","head","read","decoded","state","Stream","runFold","initialState","acc","event","evolve","exports","buildDecisionModel","ambient","ambientLayeredCondition","Option","isSome","appendCondition","value","failIfEventsMatch","after"],"sources":["../../src/decisionModel.ts"],"sourcesContent":[null],"mappings":";;;;;;AAiCA,IAAAA,KAAA,GAAAC,OAAA;AAQA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,WAAA,GAAAH,OAAA;AA7CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDO,MAAMI,WAAW,GACtBC,WAAc,IAMdC,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,KAAK,GAAG,OAAOC,mBAAa;EAElC;EACA;EACA;EACA,MAAMC,MAAM,GAAG,IAAAC,oBAAY,EAACN,WAAW,CAAC;EAExC;EACA,MAAMO,SAAS,GAAG,IAAAC,wBAAkB,EAClCR,WAA4C,CAC7C;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO,IAAAS,kCAAsB,EAACT,WAA4C,CAAC;EAE3E;EACA;EACA;EACA,MAAMU,QAAQ,GAAG,OAAO,IAAAC,uBAAW,EAACJ,SAAS,CAACK,KAAK,CAAC;EAEpD,MAAM;IAAEC,MAAM;IAAEC;EAAI,CAAE,GAAG,OAAOX,KAAK,CAACY,IAAI,CAACR,SAAS,CAACK,KAAK,CAAC;EAE3D,MAAMI,OAAO,GAAGX,MAAM,CAACQ,MAAM,CAAC;EAE9B,MAAMI,KAAK,GAAI,OAAOC,cAAM,CAACC,OAAO,CAClCH,OAAO,EACP,MAAMT,SAAS,CAACa,YAAY,EAC5B,CAACC,GAAG,EAAEC,KAAK,KAAKf,SAAS,CAACgB,MAAM,CAACF,GAAG,EAAEC,KAAK,CAAC,CACvB;EAEvB;EACA;EACA;EACA,OAAOZ,QAAQ,CAACI,IAAI,CAAC;EAErB,OAAO;IAAEG,KAAK;IAAEH;EAAI,CAAE;AACxB,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAAU,OAAA,CAAAzB,WAAA,GAAAA,WAAA;AA0CO,MAAM0B,kBAAkB,GAC7BzB,WAAc,IASdC,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAM;IAAEe,KAAK;IAAEH;EAAI,CAAE,GAAG,OAAOf,WAAW,CAACC,WAAW,CAAC;EAEvD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM0B,OAAO,GAAG,OAAOC,mCAAuB;EAC9C,IAAIC,cAAM,CAACC,MAAM,CAACH,OAAO,CAAC,EAAE;IAC1B,OAAO;MAAET,KAAK;MAAEa,eAAe,EAAEJ,OAAO,CAACK;IAAK,CAAE;EAClD;EAEA;EACA,OAAO;IACLd,KAAK;IACLa,eAAe,EAAE;MACfE,iBAAiB,EAAE,IAAAxB,wBAAkB,EACnCR,WAA4C,CAC7C,CAACY,KAAK;MACPqB,KAAK,EAAEnB;;GAEV;AACH,CAAC,CAAC;AAAAU,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
package/dist/cjs/decode.js
CHANGED
|
@@ -35,9 +35,9 @@ var _Serializer = require("./Serializer.js");
|
|
|
35
35
|
* last, an ordering the record does not express and its author never chose.
|
|
36
36
|
* Every event of that type is then decoded against the wrong def for one of the
|
|
37
37
|
* slices, and where the two shapes overlap that failure is SILENT rather than a
|
|
38
|
-
* `CodecError`: `Schema.
|
|
39
|
-
* (`effect@
|
|
40
|
-
* `'error'`
|
|
38
|
+
* `CodecError`: `Schema.decodeUnknownEffect` defaults `onExcessProperty` to
|
|
39
|
+
* `'ignore'` (`effect@4`'s `SchemaAST.ts` runs its excess-key loop only under
|
|
40
|
+
* `'error'`), so a field the other def declared is dropped, not
|
|
41
41
|
* reported, and the fold downstream is handed a payload quietly missing it.
|
|
42
42
|
*
|
|
43
43
|
* **Why a throw, and why here rather than at the read side's wiring gate.**
|
|
@@ -51,8 +51,8 @@ var _Serializer = require("./Serializer.js");
|
|
|
51
51
|
* the write path merges before its first `store.read`, and the read side
|
|
52
52
|
* merges after that gate and before it forks the pipeline — and inside
|
|
53
53
|
* their `Effect.gen`s a throw becomes a DEFECT rather than an escaping exception
|
|
54
|
-
* (`effect@
|
|
55
|
-
* `
|
|
54
|
+
* (`effect@4`'s fibre run loop catches a thrown value and converts it with
|
|
55
|
+
* `exitDie`), which is the classification a mis-wiring already has on both
|
|
56
56
|
* sides of the library.
|
|
57
57
|
*
|
|
58
58
|
* The sentence names BOTH slices. The two halves of this mistake are in
|
package/dist/cjs/decode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","names":["_effect","require","_deserialiseThenDecode","_errors","_Serializer","mergeSliceSchemas","projections","schemas","Map","contributedBy","key","Object","keys","slice","type","schema","owner","get","undefined","Error","set","decodeEvents","events","Stream","unwrap","Effect","map","Serializer","serializer","pipe","mapEffect","sequenced","event","fail","CodecError","reason","deserialiseThenDecode","data","payload","decodeSlices","slices","exports"],"sources":["../../src/decode.ts"],"sourcesContent":[null],"mappings":";;;;;;AAiDA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAMI,iBAAiB,GACrBC,WAAc,
|
|
1
|
+
{"version":3,"file":"decode.js","names":["_effect","require","_deserialiseThenDecode","_errors","_Serializer","mergeSliceSchemas","projections","schemas","Map","contributedBy","key","Object","keys","slice","type","schema","owner","get","undefined","Error","set","decodeEvents","events","Stream","unwrap","Effect","map","Serializer","serializer","pipe","mapEffect","sequenced","event","fail","CodecError","reason","deserialiseThenDecode","data","payload","decodeSlices","slices","exports"],"sources":["../../src/decode.ts"],"sourcesContent":[null],"mappings":";;;;;;AAiDA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,MAAMI,iBAAiB,GACrBC,WAAc,IACoD;EAClE,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAAqD;EAC5E;EACA;EACA;EACA;EACA,MAAMC,aAAa,GAAG,IAAID,GAAG,EAAkB;EAC/C,KAAK,MAAME,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACN,WAAW,CAAC,EAAE;IAC1C,MAAMO,KAAK,GAAGP,WAAW,CAACI,GAAG,CAAC;IAC9B,KAAK,MAAM,CAACI,IAAI,EAAEC,MAAM,CAAC,IAAIF,KAAK,CAACN,OAAO,EAAE;MAC1C,MAAMS,KAAK,GAAGP,aAAa,CAACQ,GAAG,CAACH,IAAI,CAAC;MACrC,IAAIE,KAAK,KAAKE,SAAS,IAAIX,OAAO,CAACU,GAAG,CAACH,IAAI,CAAC,KAAKC,MAAM,EAAE;QACvD,MAAM,IAAII,KAAK,CACb,yBAAyBL,IAAI,gBAAgBE,KAAK,UAAUN,GAAG,KAAK,GAClE,gEAAgE,GAChE,kEAAkE,GAClE,+BAA+B,CAClC;MACH;MACAH,OAAO,CAACa,GAAG,CAACN,IAAI,EAAEC,MAAmD,CAAC;MACtEN,aAAa,CAACW,GAAG,CAACN,IAAI,EAAEJ,GAAG,CAAC;IAC9B;EACF;EACA,OAAOH,OAAO;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAMc,YAAY,GACXd,OAAyD,IAE5De,MAA2C,IAE3CC,cAAM,CAACC,MAAM,CACXC,cAAM,CAACC,GAAG,CAACC,sBAAU,EAAGC,UAAU,IAChCN,MAAM,CAACO,IAAI,CACTN,cAAM,CAACO,SAAS,CAAEC,SAAS,IAAI;EAC7B,MAAMhB,MAAM,GAAGR,OAAO,CAACU,GAAG,CAACc,SAAS,CAACC,KAAK,CAAClB,IAAI,CAAC;EAChD,IAAIC,MAAM,KAAKG,SAAS,EAAE;IACxB,OAAOO,cAAM,CAACQ,IAAI,CAChB,IAAIC,kBAAU,CAAC;MACbC,MAAM,EAAE,6BAA6BJ,SAAS,CAACC,KAAK,CAAClB,IAAI;KAC1D,CAAC,CACH;EACH;EACA,OAAO,IAAAsB,4CAAqB,EAC1BR,UAAU,EACVb,MAAM,EACNgB,SAAS,CAACC,KAAK,CAACK,IAAI,CACrB,CAACR,IAAI,CACJJ,cAAM,CAACC,GAAG,CAAEY,OAAO,KAAoB;IAAEP,SAAS;IAAEO;EAAO,CAAE,CAAC,CAAC,CAChE;AACH,CAAC,CAAC,CACH,CACF,CACF;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCO,MAAMC,YAAY,GACvBC,MAAS,IAOLnB,YAAY,CAAChB,iBAAiB,CAACmC,MAAM,CAAC,CAAC;AAAAC,OAAA,CAAAF,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ const deserialiseThenDecode = (serializer, schema, bytes) => _effect.Effect.try(
|
|
|
12
12
|
reason: 'deserialise',
|
|
13
13
|
cause
|
|
14
14
|
})
|
|
15
|
-
}).pipe(_effect.Effect.flatMap(raw => _effect.Schema.
|
|
15
|
+
}).pipe(_effect.Effect.flatMap(raw => _effect.Schema.decodeUnknownEffect(schema)(raw).pipe(_effect.Effect.mapError(cause => new _errors.CodecError({
|
|
16
16
|
reason: 'decode',
|
|
17
17
|
cause
|
|
18
18
|
})))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialiseThenDecode.js","names":["_effect","require","_errors","deserialiseThenDecode","serializer","schema","bytes","Effect","try","deserialise","catch","cause","CodecError","reason","pipe","flatMap","raw","Schema","
|
|
1
|
+
{"version":3,"file":"deserialiseThenDecode.js","names":["_effect","require","_errors","deserialiseThenDecode","serializer","schema","bytes","Effect","try","deserialise","catch","cause","CodecError","reason","pipe","flatMap","raw","Schema","decodeUnknownEffect","mapError","exports"],"sources":["../../src/deserialiseThenDecode.ts"],"sourcesContent":[null],"mappings":";;;;;;AAyDA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGO,MAAME,qBAAqB,GAAGA,CACnCC,UAAoD,EACpDC,MAAkC,EAClCC,KAAiB,KAEjBC,cAAM,CAACC,GAAG,CAAC;EACTA,GAAG,EAAEA,CAAA,KAAMJ,UAAU,CAACK,WAAW,CAACH,KAAK,CAAC;EACxCI,KAAK,EAAGC,KAAK,IAAK,IAAIC,kBAAU,CAAC;IAAEC,MAAM,EAAE,aAAa;IAAEF;EAAK,CAAE;CAClE,CAAC,CAACG,IAAI,CACLP,cAAM,CAACQ,OAAO,CAAEC,GAAG,IACjBC,cAAM,CAACC,mBAAmB,CAACb,MAAM,CAAC,CAACW,GAAG,CAAC,CAACF,IAAI,CAC1CP,cAAM,CAACY,QAAQ,CAAER,KAAK,IAAK,IAAIC,kBAAU,CAAC;EAAEC,MAAM,EAAE,QAAQ;EAAEF;AAAK,CAAE,CAAC,CAAC,CACxE,CACF,CACF;AAAAS,OAAA,CAAAjB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
package/dist/cjs/errors.js
CHANGED
|
@@ -10,7 +10,8 @@ var _effect = require("effect");
|
|
|
10
10
|
* never defects.
|
|
11
11
|
*
|
|
12
12
|
* `CodecError` covers every serialisation/`Schema` failure on the codec path
|
|
13
|
-
* (deserialise threw, `Schema.
|
|
13
|
+
* (deserialise threw, `Schema.decodeUnknownEffect`/`encodeEffect` produced a
|
|
14
|
+
* `SchemaError`, a
|
|
14
15
|
* wrong/absent encryption key surfaced through a `Schema` transform, or a
|
|
15
16
|
* `tagsFor` mapper threw while deriving an event's tags). It carries a
|
|
16
17
|
* human-readable `reason` and the underlying `cause` (exact-optional).
|
|
@@ -45,9 +46,10 @@ class CodecError extends /*#__PURE__*/_effect.Data.TaggedError('CodecError') {
|
|
|
45
46
|
*
|
|
46
47
|
* A GETTER rather than a second field, so `reason` stays the single declaration.
|
|
47
48
|
* It is visible because `Data.TaggedError`'s constructor is
|
|
48
|
-
* `super(args?.message, …)` followed by
|
|
49
|
-
* against `effect@
|
|
50
|
-
* nothing shadows this prototype accessor
|
|
49
|
+
* `super(args?.message, …)` followed by copying the args' own enumerable keys
|
|
50
|
+
* onto the instance (verified against `effect@4`'s `internal/core.ts`): the
|
|
51
|
+
* args above carry no `message`, so nothing shadows this prototype accessor
|
|
52
|
+
* with an own property.
|
|
51
53
|
*/
|
|
52
54
|
get message() {
|
|
53
55
|
return this.reason;
|
package/dist/cjs/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","names":["_effect","require","CodecError","Data","TaggedError","message","reason","exports","UnknownEventType","type"],"sources":["../../src/errors.ts"],"sourcesContent":[null],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"errors.js","names":["_effect","require","CodecError","Data","TaggedError","message","reason","exports","UnknownEventType","type"],"sources":["../../src/errors.ts"],"sourcesContent":[null],"mappings":";;;;;;AAcA,IAAAA,OAAA,GAAAC,OAAA;AAdA;;;;;;;;;;;;;;;AAgBA;AACM,MAAOC,UAAW,sBAAQC,YAAI,CAACC,WAAW,CAAC,YAAY,CAG3D;EACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BA,IAAaC,OAAOA,CAAA;IAClB,OAAO,IAAI,CAACC,MAAM;EACpB;;AAGF;AAAAC,OAAA,CAAAL,UAAA,GAAAA,UAAA;AACM,MAAOM,gBAAiB,sBAAQL,YAAI,CAACC,WAAW,CAAC,kBAAkB,CAEvE;EACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BA,IAAaC,OAAOA,CAAA;IAClB,OAAO,eAAe,IAAI,CAACI,IAAI,0BAA0B;EAC3D","ignoreList":[]}
|
package/dist/cjs/event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","names":["_effect","require","event","type","fields","tagsFor","schema","Schema","Struct","exports"],"sources":["../../src/event.ts"],"sourcesContent":[null],"mappings":";;;;;;AA+BA,IAAAA,OAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"event.js","names":["_effect","require","event","type","fields","tagsFor","schema","Schema","Struct","exports"],"sources":["../../src/event.ts"],"sourcesContent":[null],"mappings":";;;;;;AA+BA,IAAAA,OAAA,GAAAC,OAAA;AAyCA;;;;;;;;AAQO,MAAMC,KAAK,GAAGA,CAInBC,IAAU,EACVC,MAAc,EACdC,OAA4C,KAK1C;EACF,MAAMC,MAAM,GAAGC,cAAM,CAACC,MAAM,CAACJ,MAAM,CAAC;EACpC,OAAO;IACL;IACAD,IAAI,EAAEA,IAAwB;IAC9BG,MAAM;IACND;GACD;AACH,CAAC;AAAAI,OAAA,CAAAP,KAAA,GAAAA,KAAA","ignoreList":[]}
|
package/dist/cjs/precondition.js
CHANGED
|
@@ -86,7 +86,7 @@ const decideOnly = (decider, command) => _effect.Effect.gen(function* () {
|
|
|
86
86
|
* condition here. If that turns up in practice, a composing override is the
|
|
87
87
|
* additive answer and this hatch is not it.
|
|
88
88
|
*
|
|
89
|
-
* `Effect.
|
|
89
|
+
* `Effect.updateContext` over
|
|
90
90
|
* `Context.omit(AppendIsOwned)` is what lets it through the store's ownership
|
|
91
91
|
* refusal — the one route, and `AppendIsOwned.ts` owns why removing the marker is
|
|
92
92
|
* the shape rather than a second tag or a sanctioning flag.
|
|
@@ -116,7 +116,7 @@ reason) => _effect.Effect.flatMap(_core.DcbEventStore, store =>
|
|
|
116
116
|
// channel), so nothing here will fail to compile if this is deleted — what
|
|
117
117
|
// catches it is `test/appendOwnership.test.ts` in the source repository, not the
|
|
118
118
|
// type checker.
|
|
119
|
-
_effect.Effect.
|
|
119
|
+
_effect.Effect.updateContext(store.append(events), context => _effect.Context.omit(_core.AppendIsOwned)(context)));
|
|
120
120
|
/**
|
|
121
121
|
* Open a bracket over ONE decision: evaluate the precondition inside it, hand its
|
|
122
122
|
* output to the body under the precondition's tag, and append what the body
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precondition.js","names":["_core","require","_effect","_decision","_decisionModel","_readLedger","decideOnly","decider","command","Effect","gen","ReadLedger","state","modelAtHead","projections","decide","exports","unsafeAppend","events","reason","flatMap","DcbEventStore","store","
|
|
1
|
+
{"version":3,"file":"precondition.js","names":["_core","require","_effect","_decision","_decisionModel","_readLedger","decideOnly","decider","command","Effect","gen","ReadLedger","state","modelAtHead","projections","decide","exports","unsafeAppend","events","reason","flatMap","DcbEventStore","store","updateContext","append","context","Context","omit","AppendIsOwned","transact","precondition","body","ledger","makeReadLedger","output","proof","evaluate","pipe","provideService","tag","provide","Layer","merge","layer","succeed","by","isUnchanged","condition","deriveLayeredCondition","hops","undefined","NoReadsRecorded"],"sources":["../../src/precondition.ts"],"sourcesContent":[null],"mappings":";;;;;;AAwGA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAKA,IAAAG,cAAA,GAAAH,OAAA;AAGA,IAAAI,WAAA,GAAAJ,OAAA;AAsCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDO,MAAMK,UAAU,GAAGA,CAOxBC,OAAqC,EACrCC,OAAgB,KAMhBC,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,OAAOC,sBAAU;EAEjB,MAAM;IAAEC;EAAK,CAAE,GAAG,OAAO,IAAAC,0BAAW,EAACN,OAAO,CAACO,WAAW,CAACN,OAAO,CAAC,CAAC;EAClE,OAAO,OAAOD,OAAO,CAACQ,MAAM,CAACH,KAAK,EAAEJ,OAAO,CAAC;AAC9C,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;AAAAQ,OAAA,CAAAV,UAAA,GAAAA,UAAA;AAsBO,MAAMW,YAAY,GAAGA,CAC1BC,MAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,MAAc,KAEdV,cAAM,CAACW,OAAO,CAACC,mBAAa,EAAGC,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAb,cAAM,CAACc,aAAa,CAClBD,KAAK,CAACE,MAAM,CAACN,MAAM,CAAC,EACnBO,OAA+B,IAAKC,eAAO,CAACC,IAAI,CAACC,mBAAa,CAAC,CAACH,OAAO,CAAC,CAC1E,CACF;AAEH;;;;;;;;;;;;;;;;;;;;;;;AAAAT,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAuBO,MAAMY,QAAQ,GACGC,YAA+C,IAEnEC,IAA4B,IAQ5BtB,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMY,KAAK,GAAG,OAAOD,mBAAa;EAClC,MAAMW,MAAM,GAAG,OAAOC,0BAAc;EAEpC,MAAMC,MAAM,GAAmB,OAAOzB,cAAM,CAACC,GAAG,CAAC,aAAS;IACxD;IACA;IACA;IACA,MAAMyB,KAAK,GAAG,OAAOL,YAAY,CAACM,QAAQ;IAC1C,OAAO,OAAOL,IAAI,CAACM,IAAI,CAAC5B,cAAM,CAAC6B,cAAc,CAACR,YAAY,CAACS,GAAG,EAAEJ,KAAK,CAAC,CAAC;EACzE,CAAC,CAAC,CAACE,IAAI;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA5B,cAAM,CAAC+B,OAAO,CACZC,aAAK,CAACC,KAAK,CACTV,MAAM,CAACW,KAAK,EACZF,aAAK,CAACG,OAAO,CAAChB,mBAAa,EAAE;IAAEiB,EAAE,EAAE;EAAU,CAAE,CAAC,CACjD,CACF,CACF;EAED;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,IAAAC,qBAAW,EAACZ,MAAM,CAAC,EAAE;IACvB,OAAOA,MAA2B;EACpC;EAEA,MAAMa,SAAS,GAAG,IAAAC,kCAAsB,EAAC,OAAOhB,MAAM,CAACiB,IAAI,CAAC;EAC5D,IAAIF,SAAS,KAAKG,SAAS,EAAE;IAC3B,OAAO,OAAO,IAAIC,2BAAe,EAAE;EACrC;EAEA,OAAQ,OAAO7B,KAAK,CAACE,MAAM,CAACU,MAAM,EAAEa,SAAS,CAAC;AAChD,CAAC,CAAC;AAAA/B,OAAA,CAAAa,QAAA,GAAAA,QAAA","ignoreList":[]}
|
package/dist/cjs/projection.js
CHANGED
|
@@ -12,7 +12,7 @@ var _core = require("@kairos-es/core");
|
|
|
12
12
|
* A `SliceProjection<S, R>` is a core `AnyProjection<S>` (directly composable —
|
|
13
13
|
* its `evolve` folds a `DecodedEvent`) enriched with the `type -> Schema` map
|
|
14
14
|
* `decodeSlices` merges and decodes through. That map's value type carries `R`
|
|
15
|
-
* covariantly (`Schema<unknown,
|
|
15
|
+
* covariantly (`Schema.Decoder<unknown, R>`), so the union of the defs'
|
|
16
16
|
* requirements flows to the decision model with no cast (and no phantom marker).
|
|
17
17
|
* Because `evolve` is already erased, a built slice drops straight into
|
|
18
18
|
* `composeProjections` — no `AnyProjection.of` ceremony.
|
|
@@ -57,18 +57,17 @@ const projection = initialState => {
|
|
|
57
57
|
// The entry type is annotated `R | R2` rather than inferred, and that
|
|
58
58
|
// annotation is what carries the requirement forward — `build` reads `R`
|
|
59
59
|
// straight off this map, so `RequirementOf` ultimately reads it from here.
|
|
60
|
-
// Widening the copied `R` entries into it costs nothing: `Schema`
|
|
61
|
-
// declared `<
|
|
60
|
+
// Widening the copied `R` entries into it costs nothing: `Schema.Decoder`
|
|
61
|
+
// is declared `<out T, out RD>` upstream, hence covariant in its
|
|
62
62
|
// requirement.
|
|
63
63
|
const nextSchemas = new Map(schemas);
|
|
64
|
-
// Erasing `A`/`I`
|
|
65
|
-
//
|
|
66
|
-
// `Schema<unknown, unknown, R2>` are unrelated in either direction. It is
|
|
64
|
+
// Erasing `A`/`I` needs no cast: a `Schema.Codec` is covariant in both, so
|
|
65
|
+
// `Codec<A, I, R2, R2>` is already a `Decoder<unknown, R2>`. The erasure is
|
|
67
66
|
// sound because the payload is only ever read back through `evolve`, which
|
|
68
|
-
// re-narrows by event type via the matching `fold`.
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
67
|
+
// re-narrows by event type via the matching `fold`. What survives it is
|
|
68
|
+
// `R2`, the def's DECODING requirement — an `Encrypted` field's `CipherKey`
|
|
69
|
+
// is not nothing — and that is the half a slice ever spends, since a slice
|
|
70
|
+
// decodes and never encodes.
|
|
72
71
|
nextSchemas.set(def.type, def.schema);
|
|
73
72
|
const nextFolds = new Map(folds);
|
|
74
73
|
// Contravariance in the payload parameter, so this one is a cast too: the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","names":["_core","require","projection","initialState","make","schemas","folds","on","def","fold","has","type","Error","nextSchemas","Map","set","schema","nextFolds","build","options","types","keys","map","t","EventType","query","items","tags","evolve","state","decoded","get","sequenced","event","undefined","payload","exports"],"sources":["../../src/projection.ts"],"sourcesContent":[null],"mappings":";;;;;;AAmBA,IAAAA,KAAA,GAAAC,OAAA;AAnBA;;;;;;;;;;;;;;;;;;;;AA6DA;;;;AAIO,MAAMC,UAAU,GAAOC,YAAe,IAAiC;EAC5E;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,IAAI,GAAGA,CACXC,
|
|
1
|
+
{"version":3,"file":"projection.js","names":["_core","require","projection","initialState","make","schemas","folds","on","def","fold","has","type","Error","nextSchemas","Map","set","schema","nextFolds","build","options","types","keys","map","t","EventType","query","items","tags","evolve","state","decoded","get","sequenced","event","undefined","payload","exports"],"sources":["../../src/projection.ts"],"sourcesContent":[null],"mappings":";;;;;;AAmBA,IAAAA,KAAA,GAAAC,OAAA;AAnBA;;;;;;;;;;;;;;;;;;;;AA6DA;;;;AAIO,MAAMC,UAAU,GAAOC,YAAe,IAAiC;EAC5E;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,IAAI,GAAGA,CACXC,OAAwD,EACxDC,KAA6D,MAChC;IAC7BC,EAAE,EAAEA,CACFC,GAAuB,EACvBC,IAAiC,KACD;MAChC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAIJ,OAAO,CAACK,GAAG,CAACF,GAAG,CAACG,IAAI,CAAC,EAAE;QACzB,MAAM,IAAIC,KAAK,CACb,yBAAyBJ,GAAG,CAACG,IAAI,mCAAmC,GAClE,gEAAgE,GAChE,gCAAgC,CACnC;MACH;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAME,WAAW,GAAG,IAAIC,GAAG,CACzBT,OAAO,CACR;MACD;MACA;MACA;MACA;MACA;MACA;MACA;MACAQ,WAAW,CAACE,GAAG,CAACP,GAAG,CAACG,IAAI,EAAEH,GAAG,CAACQ,MAAM,CAAC;MACrC,MAAMC,SAAS,GAAG,IAAIH,GAAG,CAACR,KAAK,CAAC;MAChC;MACA;MACA;MACAW,SAAS,CAACF,GAAG,CAACP,GAAG,CAACG,IAAI,EAAEF,IAAyC,CAAC;MAClE,OAAOL,IAAI,CAASS,WAAW,EAAEI,SAAS,CAAC;IAC7C,CAAC;IACDC,KAAK,EAAGC,OAAO,IAAI;MACjB;MACA;MACA,MAAMC,KAAK,GAAG,CAAC,GAAGf,OAAO,CAACgB,IAAI,EAAE,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKC,eAAS,CAACpB,IAAI,CAACmB,CAAC,CAAC,CAAC;MAC/D,MAAME,KAAK,GAAU;QACnBC,KAAK,EAAE,CAAC;UAAEN,KAAK;UAAEO,IAAI,EAAER,OAAO,EAAEQ,IAAI,IAAI;QAAE,CAAE;OAC7C;MACD,OAAO;QACLxB,YAAY;QACZsB,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACApB,OAAO,EAAE,IAAIS,GAAG,CAACT,OAAO,CAAC;QACzB;QACA;QACA;QACA;QACA;QACA;QACAuB,MAAM,EAAEA,CAACC,KAAK,EAAEC,OAAqB,KAAI;UACvC,MAAMrB,IAAI,GAAGH,KAAK,CAACyB,GAAG,CAACD,OAAO,CAACE,SAAS,CAACC,KAAK,CAACtB,IAAI,CAAC;UACpD,OAAOF,IAAI,KAAKyB,SAAS,GAAGL,KAAK,GAAGpB,IAAI,CAACoB,KAAU,EAAEC,OAAO,CAACK,OAAO,CAAC;QACvE;OACD;IACH;GACD,CAAC;EACF;EACA;EACA,OAAO/B,IAAI,CAAQ,IAAIU,GAAG,EAAE,EAAE,IAAIA,GAAG,EAAE,CAAC;AAC1C,CAAC;AAAAsB,OAAA,CAAAlC,UAAA,GAAAA,UAAA","ignoreList":[]}
|
package/dist/cjs/readLedger.js
CHANGED
|
@@ -14,7 +14,7 @@ var _effect = require("effect");
|
|
|
14
14
|
* requirement channel nothing is exactly what makes this change additive.
|
|
15
15
|
* `modelAtHead` is that path and is why the rule exists.
|
|
16
16
|
*
|
|
17
|
-
* A BRACKET-ONLY function is the opposite case and yields the
|
|
17
|
+
* A BRACKET-ONLY function is the opposite case and yields the service deliberately.
|
|
18
18
|
* `decideOnly` does, and naming the requirement is what turns *"call me inside a
|
|
19
19
|
* bracket"* from a runtime defect into a compile error — presence being the one
|
|
20
20
|
* direction the type system can decide here. So the test is what the function
|
|
@@ -24,7 +24,7 @@ var _effect = require("effect");
|
|
|
24
24
|
* Recording is two-phase, and `record`'s own doc below owns why and what shape the
|
|
25
25
|
* second phase takes.
|
|
26
26
|
*/
|
|
27
|
-
class ReadLedger extends /*#__PURE__*/_effect.Context.
|
|
27
|
+
class ReadLedger extends /*#__PURE__*/_effect.Context.Service()('@kairos-es/codec/ReadLedger') {}
|
|
28
28
|
/**
|
|
29
29
|
* Raised when a bracket closes having recorded no read at all.
|
|
30
30
|
*
|
|
@@ -235,5 +235,5 @@ const assertServableAddition = projections => withLedger(undefined, ledger => _e
|
|
|
235
235
|
* than from its own single read.
|
|
236
236
|
*/
|
|
237
237
|
exports.assertServableAddition = assertServableAddition;
|
|
238
|
-
const ambientLayeredCondition = exports.ambientLayeredCondition = /*#__PURE__*/withLedger(/*#__PURE__*/_effect.Option.none(), ledger => _effect.Effect.map(ledger.hops, hops => _effect.Option.
|
|
238
|
+
const ambientLayeredCondition = exports.ambientLayeredCondition = /*#__PURE__*/withLedger(/*#__PURE__*/_effect.Option.none(), ledger => _effect.Effect.map(ledger.hops, hops => _effect.Option.fromNullishOr(deriveLayeredCondition(hops))));
|
|
239
239
|
//# sourceMappingURL=readLedger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readLedger.js","names":["_core","require","_effect","ReadLedger","Context","
|
|
1
|
+
{"version":3,"file":"readLedger.js","names":["_core","require","_effect","ReadLedger","Context","Service","exports","NoReadsRecorded","Data","TaggedError","message","TaglessSliceInLedger","sliceKey","deriveLayeredCondition","hops","length","undefined","merged","unionQueries","map","hop","query","arrived","flatMap","head","after","reduce","a","b","ORIGIN","failIfEventsMatch","makeReadLedger","Effect","gen","ref","Ref","make","layer","Layer","succeed","record","modify","update","current","index","get","withLedger","absent","f","serviceOption","ledger","Option","isNone","value","NO_CLOSE","void","recordQuery","taglessKeys","projections","Object","entries","filter","projection","items","some","item","tags","key","unionWouldBeUnservable","existing","incoming","union","h","unknownQueryKeyFault","servableQueryFault","assertServableAddition","composeProjections","offending","ambientLayeredCondition","none","fromNullishOr"],"sources":["../../src/readLedger.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","names":["_effect","require","_deserialiseThenDecode","_errors","_Serializer","makeRegistry","defs","map","Map","def","has","type","Error","set","schema","decode","event","Effect","gen","get","undefined","fail","UnknownEventType","serializer","Serializer","payload","deserialiseThenDecode","data","exports"],"sources":["../../src/registry.ts"],"sourcesContent":[null],"mappings":";;;;;;AA2BA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAqBO,MAAMI,YAAY,GACvBC,IAAU,IAC2B;EACrC,MAAMC,GAAG,GAAG,IAAIC,GAAG,
|
|
1
|
+
{"version":3,"file":"registry.js","names":["_effect","require","_deserialiseThenDecode","_errors","_Serializer","makeRegistry","defs","map","Map","def","has","type","Error","set","schema","decode","event","Effect","gen","get","undefined","fail","UnknownEventType","serializer","Serializer","payload","deserialiseThenDecode","data","exports"],"sources":["../../src/registry.ts"],"sourcesContent":[null],"mappings":";;;;;;AA2BA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAqBO,MAAMI,YAAY,GACvBC,IAAU,IAC2B;EACrC,MAAMC,GAAG,GAAG,IAAIC,GAAG,EAA4C;EAC/D,KAAK,MAAMC,GAAG,IAAIH,IAAI,EAAE;IACtB,IAAIC,GAAG,CAACG,GAAG,CAACD,GAAG,CAACE,IAAI,CAAC,EAAE;MACrB,MAAM,IAAIC,KAAK,CAAC,yBAAyBH,GAAG,CAACE,IAAI,eAAe,CAAC;IACnE;IACAJ,GAAG,CAACM,GAAG,CAACJ,GAAG,CAACE,IAAI,EAAEF,GAAG,CAACK,MAAM,CAAC;EAC/B;EACA,OAAO;IACLC,MAAM,EAAGC,KAAK,IACZC,cAAM,CAACC,GAAG,CAAC,aAAS;MAClB,MAAMJ,MAAM,GAAGP,GAAG,CAACY,GAAG,CAACH,KAAK,CAACL,IAAI,CAAC;MAClC,IAAIG,MAAM,KAAKM,SAAS,EAAE;QACxB,OAAO,OAAOH,cAAM,CAACI,IAAI,CAAC,IAAIC,wBAAgB,CAAC;UAAEX,IAAI,EAAEK,KAAK,CAACL;QAAI,CAAE,CAAC,CAAC;MACvE;MACA,MAAMY,UAAU,GAAG,OAAOC,sBAAU;MACpC,MAAMC,OAAO,GAAG,OAAO,IAAAC,4CAAqB,EAC1CH,UAAU,EACVT,MAAM,EACNE,KAAK,CAACW,IAAI,CACX;MACD,OAAO;QAAEhB,IAAI,EAAEK,KAAK,CAACL,IAAI;QAAEc;MAAO,CAAE;MACpC;MACA;MACA;MACA;IACF,CAAC;GAKJ;AACH,CAAC;AAAAG,OAAA,CAAAvB,YAAA,GAAAA,YAAA","ignoreList":[]}
|
package/dist/cjs/toEvent.js
CHANGED
|
@@ -12,8 +12,8 @@ var _Serializer = require("./Serializer.js");
|
|
|
12
12
|
var _Uuid = require("./Uuid.js");
|
|
13
13
|
/**
|
|
14
14
|
* Event production (codec edge-helper): turn a typed payload into a wire
|
|
15
|
-
* `DcbEvent`. Encode is `Schema.
|
|
16
|
-
* `CodecError`; any encryption transform runs here, *before* serialisation)
|
|
15
|
+
* `DcbEvent`. Encode is `Schema.encodeEffect(def.schema)` (a `SchemaError`
|
|
16
|
+
* becomes a `CodecError`; any encryption transform runs here, *before* serialisation)
|
|
17
17
|
* then `serialiser.serialise`. The wire `tags` are derived from the def's
|
|
18
18
|
* required `tagsFor` mapper (ADR-0006) — they are never hand-passed, so two
|
|
19
19
|
* command sites emitting the same event type cannot tag it differently. A mapper
|
|
@@ -67,7 +67,7 @@ const toEvent = (def, payload, options) => _effect.Effect.gen(function* () {
|
|
|
67
67
|
// store shares anything with its caller; that is each store's guarantee.)
|
|
68
68
|
const given = options?.metadata === undefined ? _effect.Option.getOrElse(yield* _effect.Effect.serviceOption(_MetadataSource.MetadataSource), () => ({})) : options.metadata;
|
|
69
69
|
const metadata = {
|
|
70
|
-
...(yield* _effect.Schema.
|
|
70
|
+
...(yield* _effect.Schema.decodeUnknownEffect(_core.Metadata)(given).pipe(_effect.Effect.mapError(cause => new _errors.CodecError({
|
|
71
71
|
reason: 'metadata',
|
|
72
72
|
cause
|
|
73
73
|
}))))
|
|
@@ -85,7 +85,7 @@ const toEvent = (def, payload, options) => _effect.Effect.gen(function* () {
|
|
|
85
85
|
})
|
|
86
86
|
});
|
|
87
87
|
const serializer = yield* _Serializer.Serializer;
|
|
88
|
-
const encoded = yield* _effect.Schema.
|
|
88
|
+
const encoded = yield* _effect.Schema.encodeEffect(def.schema)(payload).pipe(_effect.Effect.mapError(cause => new _errors.CodecError({
|
|
89
89
|
reason: 'encode',
|
|
90
90
|
cause
|
|
91
91
|
})));
|
package/dist/cjs/toEvent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toEvent.js","names":["_core","require","_effect","_errors","_MetadataSource","_Serializer","_Uuid","toEvent","def","payload","options","Effect","gen","given","metadata","undefined","Option","getOrElse","serviceOption","MetadataSource","Schema","
|
|
1
|
+
{"version":3,"file":"toEvent.js","names":["_core","require","_effect","_errors","_MetadataSource","_Serializer","_Uuid","toEvent","def","payload","options","Effect","gen","given","metadata","undefined","Option","getOrElse","serviceOption","MetadataSource","Schema","decodeUnknownEffect","Metadata","pipe","mapError","cause","CodecError","reason","tags","try","tagsFor","catch","serializer","Serializer","encoded","encodeEffect","schema","data","serialise","uuid","Uuid","generate","occurredAt","DateTime","now","type","exports"],"sources":["../../src/toEvent.ts"],"sourcesContent":[null],"mappings":";;;;;;AAoBA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AA1BA;;;;;;;;;;;;;;;;;;;;;AA4BA;;;;;;;;;;;;;AAaO,MAAMM,OAAO,GAAGA,CACrBC,GAAsB,EACtBC,OAAU,EACVC,OAIC,KAEDC,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,KAAK,GACTH,OAAO,EAAEI,QAAQ,KAAKC,SAAS,GAC3BC,cAAM,CAACC,SAAS,CACd,OAAON,cAAM,CAACO,aAAa,CAACC,8BAAc,CAAC,EAC3C,OAAiB,EAAE,CAAC,CACrB,GACDT,OAAO,CAACI,QAAQ;EACtB,MAAMA,QAAQ,GAAa;IACzB,IAAI,OAAOM,cAAM,CAACC,mBAAmB,CAACC,cAAQ,CAAC,CAACT,KAAK,CAAC,CAACU,IAAI,CACzDZ,cAAM,CAACa,QAAQ,CACZC,KAAK,IAAK,IAAIC,kBAAU,CAAC;MAAEC,MAAM,EAAE,UAAU;MAAEF;IAAK,CAAE,CAAC,CACzD,CACF;GACF;EACD;EACA;EACA;EACA;EACA;EACA,MAAMG,IAAI,GAAG,OAAOjB,cAAM,CAACkB,GAAG,CAAC;IAC7BA,GAAG,EAAEA,CAAA,KAAMrB,GAAG,CAACsB,OAAO,CAACrB,OAAO,CAAC;IAC/BsB,KAAK,EAAGN,KAAK,IAAK,IAAIC,kBAAU,CAAC;MAAEC,MAAM,EAAE,MAAM;MAAEF;IAAK,CAAE;GAC3D,CAAC;EACF,MAAMO,UAAU,GAAG,OAAOC,sBAAU;EACpC,MAAMC,OAAO,GAAG,OAAOd,cAAM,CAACe,YAAY,CAAC3B,GAAG,CAAC4B,MAAM,CAAC,CAAC3B,OAAO,CAAC,CAACc,IAAI,CAClEZ,cAAM,CAACa,QAAQ,CAAEC,KAAK,IAAK,IAAIC,kBAAU,CAAC;IAAEC,MAAM,EAAE,QAAQ;IAAEF;EAAK,CAAE,CAAC,CAAC,CACxE;EACD,MAAMY,IAAI,GAAGL,UAAU,CAACM,SAAS,CAACJ,OAAO,CAAC;EAC1C,MAAMK,IAAI,GAAG7B,OAAO,EAAE6B,IAAI,KAAK,OAAO,CAAC,OAAOC,UAAI,EAAEC,QAAQ,CAAC;EAC7D,MAAMC,UAAU,GAAGhC,OAAO,EAAEgC,UAAU,KAAK,OAAOC,gBAAQ,CAACC,GAAG,CAAC;EAC/D,OAAO;IACLC,IAAI,EAAErC,GAAG,CAACqC,IAAI;IACdR,IAAI;IACJT,IAAI;IACJW,IAAI;IACJG,UAAU;IACV5B;GACD;AACH,CAAC,CAAC;AAAAgC,OAAA,CAAAvC,OAAA,GAAAA,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Context } from 'effect';
|
|
2
|
+
declare const MetadataSource_base: Context.ServiceClass<MetadataSource, "@kairos-es/codec/MetadataSource", {
|
|
3
|
+
readonly [x: string]: string;
|
|
4
|
+
}>;
|
|
5
|
+
export declare class MetadataSource extends MetadataSource_base {
|
|
6
|
+
}
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=MetadataSource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataSource.d.ts","sourceRoot":"","sources":["../../src/MetadataSource.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;;;;AAEhC,qBAAa,cAAe,SAAQ,
|
|
1
|
+
{"version":3,"file":"MetadataSource.d.ts","sourceRoot":"","sources":["../../src/MetadataSource.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;;;;AAEhC,qBAAa,cAAe,SAAQ,mBAEnC;CAAG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The pluggable serialiser: the `Uint8Array` <-> value boundary applied
|
|
3
|
-
* *outside* `Schema`. Encode is `Schema.
|
|
4
|
-
* `deserialise` then `Schema.
|
|
3
|
+
* *outside* `Schema`. Encode is `Schema.encodeEffect` then `serialise`; decode is
|
|
4
|
+
* `deserialise` then `Schema.decodeUnknownEffect`. Both codec paths read the same
|
|
5
5
|
* `Serializer` from context, so encode and decode cannot mismatch; swapping
|
|
6
6
|
* JSON for msgpack is a different layer with no schema or call-site changes.
|
|
7
7
|
*
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* a trivial `Layer.succeed`.
|
|
12
12
|
*/
|
|
13
13
|
import { Context, Layer } from 'effect';
|
|
14
|
-
declare const Serializer_base: Context.
|
|
14
|
+
declare const Serializer_base: Context.ServiceClass<Serializer, "@kairos-es/codec/Serializer", {
|
|
15
15
|
readonly serialise: (v: unknown) => Uint8Array;
|
|
16
16
|
readonly deserialise: (b: Uint8Array) => unknown;
|
|
17
17
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Serializer.d.ts","sourceRoot":"","sources":["../../src/Serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;;wBAKf,CAAC,CAAC,EAAE,OAAO,KAAK,UAAU;0BACxB,CAAC,CAAC,EAAE,UAAU,KAAK,OAAO;;AAJpD,qBAAa,UAAW,SAAQ,
|
|
1
|
+
{"version":3,"file":"Serializer.d.ts","sourceRoot":"","sources":["../../src/Serializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;;wBAKf,CAAC,CAAC,EAAE,OAAO,KAAK,UAAU;0BACxB,CAAC,CAAC,EAAE,UAAU,KAAK,OAAO;;AAJpD,qBAAa,UAAW,SAAQ,eAME;CAAG;AAKrC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAMrD,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context, Effect, Layer } from 'effect';
|
|
2
|
-
declare const Uuid_base: Context.
|
|
2
|
+
declare const Uuid_base: Context.ServiceClass<Uuid, "@kairos-es/codec/Uuid", {
|
|
3
3
|
readonly generate: Effect.Effect<string>;
|
|
4
4
|
}>;
|
|
5
5
|
export declare class Uuid extends Uuid_base {
|
|
@@ -9,9 +9,12 @@ export declare const UuidLive: Layer.Layer<Uuid>;
|
|
|
9
9
|
/**
|
|
10
10
|
* A deterministic uuid layer for suites, wrapping core's shared
|
|
11
11
|
* `makeSequentialUuid` (the single source of truth for the counter scheme).
|
|
12
|
-
* Each layer
|
|
12
|
+
* Each BUILD of the layer makes a fresh generator, so it owns its own counter and
|
|
13
13
|
* yields a stable v4-shaped sequence `00000000-0000-4000-8000-<12 hex>` starting
|
|
14
|
-
* at `...000000000000`.
|
|
14
|
+
* at `...000000000000`. A build is not one per `Effect.provide`: Effect memoises
|
|
15
|
+
* a layer across the provisions that share a memo map, so a nested second
|
|
16
|
+
* provision of this layer continues the counter rather than restarting it, and
|
|
17
|
+
* `Layer.fresh` is the way to ask for a restart. Generation is wrapped in `Effect.sync` because the
|
|
15
18
|
* generator advances its counter (a side effect on each call).
|
|
16
19
|
*/
|
|
17
20
|
export declare const UuidTest: Layer.Layer<Uuid>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Uuid.d.ts","sourceRoot":"","sources":["../../src/Uuid.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;;uBAIxB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;AAF5C,qBAAa,IAAK,SAAQ,
|
|
1
|
+
{"version":3,"file":"Uuid.d.ts","sourceRoot":"","sources":["../../src/Uuid.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;;uBAIxB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;AAF5C,qBAAa,IAAK,SAAQ,SAGE;CAAG;AAE/B,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAErC,CAAA;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAGrC,CAAA"}
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
* append condition the read produced. That IS the optimistic-concurrency
|
|
40
40
|
* contract, in production and in a scenario alike — which is also why the
|
|
41
41
|
* Given/When/Then surface built on it exercises the real fold and the real store
|
|
42
|
-
* rather than a mock. It is a free function rather than a `Context.
|
|
42
|
+
* rather than a mock. It is a free function rather than a `Context.Service`,
|
|
43
43
|
* so it is still not the "production command-runner service method" a retrying
|
|
44
44
|
* `Layer` would need (ADR-0008): the correct retry remains
|
|
45
45
|
* `retryOnConflict(runDecider(...))`, wrapping the whole cycle so a fresh read
|
|
@@ -132,7 +132,7 @@ export interface Decider<P extends Record<string, SliceProjection>, Command, E =
|
|
|
132
132
|
* unioning them. Against the shaped target `E` therefore came out as whichever
|
|
133
133
|
* branch won, and every other branch was then rejected against it. Inference to
|
|
134
134
|
* a NAKED type variable takes the union whole, which is why `Eff` is the
|
|
135
|
-
* parameter and `Effect.
|
|
135
|
+
* parameter and `Effect.Error` / `Effect.Services` recover the two
|
|
136
136
|
* channels afterwards: those do distribute across a union of effects.
|
|
137
137
|
*
|
|
138
138
|
* The constraint on `Eff` is load-bearing twice over. It is what still refuses a
|
|
@@ -170,13 +170,13 @@ export interface Decider<P extends Record<string, SliceProjection>, Command, E =
|
|
|
170
170
|
* them in would state the same requirement twice and make an ordinary decider
|
|
171
171
|
* read as though it carried an extra one, though the set `runDecider` ends up
|
|
172
172
|
* asking for is identical either way. The exclusion cannot swallow a caller's
|
|
173
|
-
* own service by accident: a `Context.
|
|
174
|
-
* a literal `
|
|
175
|
-
* `@kairos-es/codec/Serializer` matches — and a
|
|
173
|
+
* own service by accident: a `Context.Service` class's requirement type carries
|
|
174
|
+
* its key as a literal `key` field, so only a service declared under `@kairos-es/codec/Uuid` or
|
|
175
|
+
* `@kairos-es/codec/Serializer` matches — and a service under that key IS that
|
|
176
176
|
* service, context being keyed by the same string at runtime.
|
|
177
177
|
*/
|
|
178
|
-
export declare function decider<P extends Record<string, SliceProjection>, Command, Eff extends Effect.Effect<Arr.NonEmptyReadonlyArray<DcbEvent>, unknown, unknown>>(projections: (command: Command) => P, decide: (state: CompositeState<P>, command: Command) => Eff): Decider<P, Command, Effect.
|
|
179
|
-
export declare function decider<P extends Record<string, SliceProjection>, Command, Eff extends Effect.Effect<DecisionOutput, unknown, unknown>>(projections: (command: Command) => P, decide: (state: CompositeState<P>, command: Command) => Eff): Decider<P, Command, Effect.
|
|
178
|
+
export declare function decider<P extends Record<string, SliceProjection>, Command, Eff extends Effect.Effect<Arr.NonEmptyReadonlyArray<DcbEvent>, unknown, unknown>>(projections: (command: Command) => P, decide: (state: CompositeState<P>, command: Command) => Eff): Decider<P, Command, Effect.Error<Eff>, Exclude<Effect.Services<Eff>, Serializer | Uuid>>;
|
|
179
|
+
export declare function decider<P extends Record<string, SliceProjection>, Command, Eff extends Effect.Effect<DecisionOutput, unknown, unknown>>(projections: (command: Command) => P, decide: (state: CompositeState<P>, command: Command) => Eff): Decider<P, Command, Effect.Error<Eff>, Exclude<Effect.Services<Eff>, Serializer | Uuid>, DecisionOutput>;
|
|
180
180
|
/**
|
|
181
181
|
* Run the full DCB command cycle for a decider against the ambient
|
|
182
182
|
* `DcbEventStore`: build the decision model (real read + decode + fold), decide,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decider.d.ts","sourceRoot":"","sources":["../../src/decider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,QAAQ,EACT,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAElC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,OAAO,CACtB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,OAAO,EACP,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,CAAC,SAAS,cAAc,GAAG,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IAE9D,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAA;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAgB,OAAO,CACrB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACzC,OAAO,EACP,GAAG,SAAS,MAAM,CAAC,MAAM,CACvB,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EACnC,OAAO,EACP,OAAO,CACR,EAED,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,EACpC,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,KAAK,GAAG,GAC1D,OAAO,CACR,CAAC,EACD,OAAO,EACP,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"decider.d.ts","sourceRoot":"","sources":["../../src/decider.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
* channels; an overloaded step would lose both to `unknown`.
|
|
67
67
|
*
|
|
68
68
|
* `decider(…)` cannot be served by a conditional at all. Its `O` is derived from
|
|
69
|
-
* the SUCCESS of an effect type variable, and `Effect.
|
|
69
|
+
* the SUCCESS of an effect type variable, and `Effect.Success` of a type
|
|
70
70
|
* variable is itself deferred, so a wrapper that copies `decider`'s own generics
|
|
71
71
|
* would get a `Decider` whose `O` nothing can resolve, and a runner result that
|
|
72
72
|
* is not `Position`. So `decider` is declared TWICE, which asks the question by
|
|
@@ -100,7 +100,7 @@ export declare const UnchangedTypeId: unique symbol;
|
|
|
100
100
|
export type UnchangedTypeId = typeof UnchangedTypeId;
|
|
101
101
|
declare const Unchanged_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Readonly<A> & {
|
|
102
102
|
readonly _tag: "Unchanged";
|
|
103
|
-
};
|
|
103
|
+
} & import("effect/Pipeable").Pipeable;
|
|
104
104
|
/**
|
|
105
105
|
* "Nothing to do: this work is already done." A runner that receives it appends
|
|
106
106
|
* nothing and returns it in place of a `Position`.
|