@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.
Files changed (137) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/MetadataSource.js +1 -1
  3. package/dist/cjs/MetadataSource.js.map +1 -1
  4. package/dist/cjs/Serializer.js +3 -3
  5. package/dist/cjs/Serializer.js.map +1 -1
  6. package/dist/cjs/Uuid.js +6 -3
  7. package/dist/cjs/Uuid.js.map +1 -1
  8. package/dist/cjs/decider.js +1 -1
  9. package/dist/cjs/decisionModel.js +1 -1
  10. package/dist/cjs/decisionModel.js.map +1 -1
  11. package/dist/cjs/decode.js +5 -5
  12. package/dist/cjs/decode.js.map +1 -1
  13. package/dist/cjs/deserialiseThenDecode.js +1 -1
  14. package/dist/cjs/deserialiseThenDecode.js.map +1 -1
  15. package/dist/cjs/errors.js +6 -4
  16. package/dist/cjs/errors.js.map +1 -1
  17. package/dist/cjs/event.js.map +1 -1
  18. package/dist/cjs/precondition.js +2 -2
  19. package/dist/cjs/precondition.js.map +1 -1
  20. package/dist/cjs/projection.js +9 -10
  21. package/dist/cjs/projection.js.map +1 -1
  22. package/dist/cjs/readLedger.js +3 -3
  23. package/dist/cjs/readLedger.js.map +1 -1
  24. package/dist/cjs/registry.js.map +1 -1
  25. package/dist/cjs/toEvent.js +4 -4
  26. package/dist/cjs/toEvent.js.map +1 -1
  27. package/dist/dts-cjs/MetadataSource.d.ts +8 -0
  28. package/dist/{dts → dts-cjs}/MetadataSource.d.ts.map +1 -1
  29. package/dist/{dts → dts-cjs}/Serializer.d.ts +3 -3
  30. package/dist/{dts → dts-cjs}/Serializer.d.ts.map +1 -1
  31. package/dist/{dts → dts-cjs}/Uuid.d.ts +6 -3
  32. package/dist/{dts → dts-cjs}/Uuid.d.ts.map +1 -1
  33. package/dist/{dts → dts-cjs}/decider.d.ts +7 -7
  34. package/dist/{dts → dts-cjs}/decider.d.ts.map +1 -1
  35. package/dist/{dts → dts-cjs}/decision.d.ts +2 -2
  36. package/dist/{dts → dts-cjs}/decode.d.ts +3 -3
  37. package/dist/{dts → dts-cjs}/decode.d.ts.map +1 -1
  38. package/dist/{dts → dts-cjs}/deserialiseThenDecode.d.ts +3 -3
  39. package/dist/{dts → dts-cjs}/deserialiseThenDecode.d.ts.map +1 -1
  40. package/dist/{dts → dts-cjs}/errors.d.ts +4 -3
  41. package/dist/dts-cjs/errors.d.ts.map +1 -0
  42. package/dist/{dts → dts-cjs}/event.d.ts +18 -8
  43. package/dist/dts-cjs/event.d.ts.map +1 -0
  44. package/dist/dts-cjs/package.json +3 -0
  45. package/dist/{dts → dts-cjs}/precondition.d.ts +2 -2
  46. package/dist/{dts → dts-cjs}/projection.d.ts +2 -2
  47. package/dist/dts-cjs/projection.d.ts.map +1 -0
  48. package/dist/{dts → dts-cjs}/readLedger.d.ts +4 -4
  49. package/dist/{dts → dts-cjs}/readLedger.d.ts.map +1 -1
  50. package/dist/{dts → dts-cjs}/toEvent.d.ts +2 -2
  51. package/dist/dts-esm/MetadataSource.d.ts +8 -0
  52. package/dist/dts-esm/MetadataSource.d.ts.map +1 -0
  53. package/dist/dts-esm/Serializer.d.ts +27 -0
  54. package/dist/dts-esm/Serializer.d.ts.map +1 -0
  55. package/dist/dts-esm/Uuid.d.ts +22 -0
  56. package/dist/dts-esm/Uuid.d.ts.map +1 -0
  57. package/dist/dts-esm/decider.d.ts +206 -0
  58. package/dist/dts-esm/decider.d.ts.map +1 -0
  59. package/dist/dts-esm/decision.d.ts +161 -0
  60. package/dist/dts-esm/decision.d.ts.map +1 -0
  61. package/dist/dts-esm/decisionModel.d.ts +149 -0
  62. package/dist/dts-esm/decisionModel.d.ts.map +1 -0
  63. package/dist/dts-esm/decode.d.ts +92 -0
  64. package/dist/dts-esm/decode.d.ts.map +1 -0
  65. package/dist/dts-esm/deserialiseThenDecode.d.ts +62 -0
  66. package/dist/dts-esm/deserialiseThenDecode.d.ts.map +1 -0
  67. package/dist/dts-esm/errors.d.ts +80 -0
  68. package/dist/dts-esm/errors.d.ts.map +1 -0
  69. package/dist/dts-esm/event.d.ts +81 -0
  70. package/dist/dts-esm/event.d.ts.map +1 -0
  71. package/dist/dts-esm/index.d.ts +134 -0
  72. package/dist/dts-esm/index.d.ts.map +1 -0
  73. package/dist/dts-esm/package.json +3 -0
  74. package/dist/dts-esm/precondition.d.ts +244 -0
  75. package/dist/dts-esm/precondition.d.ts.map +1 -0
  76. package/dist/dts-esm/projection.d.ts +56 -0
  77. package/dist/dts-esm/projection.d.ts.map +1 -0
  78. package/dist/dts-esm/readLedger.d.ts +263 -0
  79. package/dist/dts-esm/readLedger.d.ts.map +1 -0
  80. package/dist/dts-esm/registry.d.ts +46 -0
  81. package/dist/dts-esm/registry.d.ts.map +1 -0
  82. package/dist/dts-esm/toEvent.d.ts +45 -0
  83. package/dist/dts-esm/toEvent.d.ts.map +1 -0
  84. package/dist/esm/MetadataSource.js +1 -1
  85. package/dist/esm/MetadataSource.js.map +1 -1
  86. package/dist/esm/Serializer.js +3 -3
  87. package/dist/esm/Serializer.js.map +1 -1
  88. package/dist/esm/Uuid.js +6 -3
  89. package/dist/esm/Uuid.js.map +1 -1
  90. package/dist/esm/decider.js +1 -1
  91. package/dist/esm/decisionModel.js +1 -1
  92. package/dist/esm/decisionModel.js.map +1 -1
  93. package/dist/esm/decode.js +5 -5
  94. package/dist/esm/decode.js.map +1 -1
  95. package/dist/esm/deserialiseThenDecode.js +1 -1
  96. package/dist/esm/deserialiseThenDecode.js.map +1 -1
  97. package/dist/esm/errors.js +6 -4
  98. package/dist/esm/errors.js.map +1 -1
  99. package/dist/esm/event.js.map +1 -1
  100. package/dist/esm/precondition.js +2 -2
  101. package/dist/esm/precondition.js.map +1 -1
  102. package/dist/esm/projection.js +9 -10
  103. package/dist/esm/projection.js.map +1 -1
  104. package/dist/esm/readLedger.js +3 -3
  105. package/dist/esm/readLedger.js.map +1 -1
  106. package/dist/esm/registry.js.map +1 -1
  107. package/dist/esm/toEvent.js +4 -4
  108. package/dist/esm/toEvent.js.map +1 -1
  109. package/package.json +12 -7
  110. package/src/MetadataSource.ts +2 -2
  111. package/src/Serializer.ts +4 -4
  112. package/src/Uuid.ts +7 -4
  113. package/src/decider.ts +9 -9
  114. package/src/decision.ts +1 -1
  115. package/src/decisionModel.ts +1 -1
  116. package/src/decode.ts +12 -18
  117. package/src/deserialiseThenDecode.ts +5 -5
  118. package/src/errors.ts +6 -4
  119. package/src/event.ts +19 -9
  120. package/src/precondition.ts +3 -3
  121. package/src/projection.ts +15 -20
  122. package/src/readLedger.ts +7 -7
  123. package/src/registry.ts +1 -1
  124. package/src/toEvent.ts +4 -4
  125. package/dist/dts/MetadataSource.d.ts +0 -8
  126. package/dist/dts/errors.d.ts.map +0 -1
  127. package/dist/dts/event.d.ts.map +0 -1
  128. package/dist/dts/projection.d.ts.map +0 -1
  129. /package/dist/{dts → dts-cjs}/decision.d.ts.map +0 -0
  130. /package/dist/{dts → dts-cjs}/decisionModel.d.ts +0 -0
  131. /package/dist/{dts → dts-cjs}/decisionModel.d.ts.map +0 -0
  132. /package/dist/{dts → dts-cjs}/index.d.ts +0 -0
  133. /package/dist/{dts → dts-cjs}/index.d.ts.map +0 -0
  134. /package/dist/{dts → dts-cjs}/precondition.d.ts.map +0 -0
  135. /package/dist/{dts → dts-cjs}/registry.d.ts +0 -0
  136. /package/dist/{dts → dts-cjs}/registry.d.ts.map +0 -0
  137. /package/dist/{dts → dts-cjs}/toEvent.d.ts.map +0 -0
package/src/readLedger.ts CHANGED
@@ -98,7 +98,7 @@ export interface Hop {
98
98
  * requirement channel nothing is exactly what makes this change additive.
99
99
  * `modelAtHead` is that path and is why the rule exists.
100
100
  *
101
- * A BRACKET-ONLY function is the opposite case and yields the tag deliberately.
101
+ * A BRACKET-ONLY function is the opposite case and yields the service deliberately.
102
102
  * `decideOnly` does, and naming the requirement is what turns *"call me inside a
103
103
  * bracket"* from a runtime defect into a compile error — presence being the one
104
104
  * direction the type system can decide here. So the test is what the function
@@ -108,7 +108,7 @@ export interface Hop {
108
108
  * Recording is two-phase, and `record`'s own doc below owns why and what shape the
109
109
  * second phase takes.
110
110
  */
111
- export class ReadLedger extends Context.Tag('@kairos-es/codec/ReadLedger')<
111
+ export class ReadLedger extends Context.Service<
112
112
  ReadLedger,
113
113
  {
114
114
  /**
@@ -127,14 +127,14 @@ export class ReadLedger extends Context.Tag('@kairos-es/codec/ReadLedger')<
127
127
  readonly record: (query: Query) => Effect.Effect<CloseHop>
128
128
  readonly hops: Effect.Effect<ReadonlyArray<Hop>>
129
129
  }
130
- >() {}
130
+ >()('@kairos-es/codec/ReadLedger') {}
131
131
 
132
132
  /**
133
133
  * Fill in a recorded hop's head. Never called if the read does not complete.
134
134
  *
135
135
  * On the package's public surface because it is already ON it: `record` returns
136
- * one, `ReadLedger` is exported, so a consumer holding the tag holds this type and
137
- * could not name it. `Hop` was exported and this was not — the same interface, two
136
+ * one, `ReadLedger` is exported, so a consumer holding the service holds this
137
+ * type and could not name it. `Hop` was exported and this was not — the same interface, two
138
138
  * treatments.
139
139
  */
140
140
  export type CloseHop = (head: Position) => Effect.Effect<void>
@@ -303,7 +303,7 @@ export const makeReadLedger: Effect.Effect<{
303
303
  */
304
304
  const withLedger = <A, E = never>(
305
305
  absent: A,
306
- f: (ledger: Context.Tag.Service<ReadLedger>) => Effect.Effect<A, E>,
306
+ f: (ledger: Context.Service.Shape<typeof ReadLedger>) => Effect.Effect<A, E>,
307
307
  ): Effect.Effect<A, E> =>
308
308
  Effect.flatMap(Effect.serviceOption(ReadLedger), (ledger) =>
309
309
  Option.isNone(ledger) ? Effect.succeed(absent) : f(ledger.value),
@@ -405,6 +405,6 @@ export const ambientLayeredCondition: Effect.Effect<
405
405
  Option.Option<AppendCondition>
406
406
  > = withLedger(Option.none<AppendCondition>(), (ledger) =>
407
407
  Effect.map(ledger.hops, (hops) =>
408
- Option.fromNullable(deriveLayeredCondition(hops)),
408
+ Option.fromNullishOr(deriveLayeredCondition(hops)),
409
409
  ),
410
410
  )
package/src/registry.ts CHANGED
@@ -53,7 +53,7 @@ type RequirementOfDefs<Defs extends ReadonlyArray<EventDefAny>> =
53
53
  export const makeRegistry = <Defs extends ReadonlyArray<EventDefAny>>(
54
54
  defs: Defs,
55
55
  ): Registry<RequirementOfDefs<Defs>> => {
56
- const map = new Map<string, Schema.Schema<unknown, unknown, unknown>>()
56
+ const map = new Map<string, Schema.Decoder<unknown, unknown>>()
57
57
  for (const def of defs) {
58
58
  if (map.has(def.type)) {
59
59
  throw new Error(`duplicate event type '${def.type}' in registry`)
package/src/toEvent.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Event production (codec edge-helper): turn a typed payload into a wire
3
- * `DcbEvent`. Encode is `Schema.encode(def.schema)` (a `ParseError` becomes a
4
- * `CodecError`; any encryption transform runs here, *before* serialisation)
3
+ * `DcbEvent`. Encode is `Schema.encodeEffect(def.schema)` (a `SchemaError`
4
+ * becomes a `CodecError`; any encryption transform runs here, *before* serialisation)
5
5
  * then `serialiser.serialise`. The wire `tags` are derived from the def's
6
6
  * required `tagsFor` mapper (ADR-0006) — they are never hand-passed, so two
7
7
  * command sites emitting the same event type cannot tag it differently. A mapper
@@ -77,7 +77,7 @@ export const toEvent = <A, I, R>(
77
77
  )
78
78
  : options.metadata
79
79
  const metadata: Metadata = {
80
- ...(yield* Schema.decodeUnknown(Metadata)(given).pipe(
80
+ ...(yield* Schema.decodeUnknownEffect(Metadata)(given).pipe(
81
81
  Effect.mapError(
82
82
  (cause) => new CodecError({ reason: 'metadata', cause }),
83
83
  ),
@@ -93,7 +93,7 @@ export const toEvent = <A, I, R>(
93
93
  catch: (cause) => new CodecError({ reason: 'tags', cause }),
94
94
  })
95
95
  const serializer = yield* Serializer
96
- const encoded = yield* Schema.encode(def.schema)(payload).pipe(
96
+ const encoded = yield* Schema.encodeEffect(def.schema)(payload).pipe(
97
97
  Effect.mapError((cause) => new CodecError({ reason: 'encode', cause })),
98
98
  )
99
99
  const data = serializer.serialise(encoded)
@@ -1,8 +0,0 @@
1
- import { Context } from 'effect';
2
- declare const MetadataSource_base: Context.TagClass<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 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAeA,2EAA2E;AAC3E,qBAAa,UAAW,SAAQ,gBAA+B;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB,CAAC;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;;;;AAED,kFAAkF;AAClF,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAC;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B;;;;;GAKG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK;IAC3D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7B;AAED;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,EAEnC,MAAM,IAAI,EACV,QAAQ,MAAM,EACd,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAC3C;IACD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;CAStD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EACL,KAAK,aAAa,EAIlB,KAAK,GAAG,EACT,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,CAC/D,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;CAC1E;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK;IAC7C;;;;;;;OAOG;IACH,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EACT,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EACvB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,GAChC,iBAAiB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/B;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAC/E;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,cAAc,CAAC,KAAG,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAiGzE,CAAA"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes