@fougere/schema 0.12.0-alpha.0 → 0.12.1-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.
Files changed (192) hide show
  1. package/dist/SchemaError.js +1 -1
  2. package/dist/SchemaError.js.map +1 -1
  3. package/dist/axis/Axes.d.ts +16 -0
  4. package/dist/axis/Axes.d.ts.map +1 -0
  5. package/dist/axis/Axes.js +27 -0
  6. package/dist/axis/Axes.js.map +1 -0
  7. package/dist/axis/Axis.d.ts +5 -9
  8. package/dist/axis/Axis.d.ts.map +1 -1
  9. package/dist/axis/Axis.js +1 -10
  10. package/dist/axis/Axis.js.map +1 -1
  11. package/dist/axis/boundary/Boundary.d.ts +29 -3
  12. package/dist/axis/boundary/Boundary.d.ts.map +1 -1
  13. package/dist/axis/boundary/Boundary.js +12 -9
  14. package/dist/axis/boundary/Boundary.js.map +1 -1
  15. package/dist/axis/boundary/Decoder.d.ts +8 -2
  16. package/dist/axis/boundary/Decoder.d.ts.map +1 -1
  17. package/dist/axis/lifecycle/Lifecycle.d.ts +16 -4
  18. package/dist/axis/lifecycle/Lifecycle.d.ts.map +1 -1
  19. package/dist/axis/lifecycle/Lifecycle.js +18 -7
  20. package/dist/axis/lifecycle/Lifecycle.js.map +1 -1
  21. package/dist/axis/lifecycle/apply.d.ts.map +1 -1
  22. package/dist/axis/lifecycle/apply.js +2 -3
  23. package/dist/axis/lifecycle/apply.js.map +1 -1
  24. package/dist/axis/role/Role.d.ts +18 -6
  25. package/dist/axis/role/Role.d.ts.map +1 -1
  26. package/dist/axis/role/Role.js +30 -16
  27. package/dist/axis/role/Role.js.map +1 -1
  28. package/dist/axis/shape/{Formats.d.ts → StringFormats.d.ts} +3 -3
  29. package/dist/axis/shape/StringFormats.d.ts.map +1 -0
  30. package/dist/axis/shape/{Formats.js → StringFormats.js} +3 -3
  31. package/dist/axis/shape/StringFormats.js.map +1 -0
  32. package/dist/field/Field.d.ts +11 -5
  33. package/dist/field/Field.d.ts.map +1 -1
  34. package/dist/field/Field.js +5 -3
  35. package/dist/field/Field.js.map +1 -1
  36. package/dist/field/FieldFormat.d.ts +9 -0
  37. package/dist/field/FieldFormat.d.ts.map +1 -0
  38. package/dist/field/FieldFormat.js +12 -0
  39. package/dist/field/FieldFormat.js.map +1 -0
  40. package/dist/field/FougereFieldAxes.d.ts +3 -0
  41. package/dist/field/FougereFieldAxes.d.ts.map +1 -0
  42. package/dist/field/FougereFieldAxes.js +2 -0
  43. package/dist/field/FougereFieldAxes.js.map +1 -0
  44. package/dist/field/Meta.d.ts +5 -3
  45. package/dist/field/Meta.d.ts.map +1 -1
  46. package/dist/field/Meta.js +2 -1
  47. package/dist/field/Meta.js.map +1 -1
  48. package/dist/index.d.ts +6 -3
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4 -3
  51. package/dist/index.js.map +1 -1
  52. package/dist/lib/Format.d.ts +56 -0
  53. package/dist/lib/Format.d.ts.map +1 -0
  54. package/dist/lib/Format.js +95 -0
  55. package/dist/lib/Format.js.map +1 -0
  56. package/dist/lib/JsonSchema.d.ts +2 -0
  57. package/dist/lib/JsonSchema.d.ts.map +1 -0
  58. package/dist/lib/JsonSchema.js +2 -0
  59. package/dist/lib/JsonSchema.js.map +1 -0
  60. package/dist/lib/Registry.d.ts +4 -2
  61. package/dist/lib/Registry.d.ts.map +1 -1
  62. package/dist/lib/Registry.js +11 -5
  63. package/dist/lib/Registry.js.map +1 -1
  64. package/dist/lib/ValidationResult.d.ts +2 -0
  65. package/dist/lib/ValidationResult.d.ts.map +1 -1
  66. package/dist/lib/ValidationResult.js +6 -0
  67. package/dist/lib/ValidationResult.js.map +1 -1
  68. package/dist/projection/Visibility.d.ts +11 -0
  69. package/dist/projection/Visibility.d.ts.map +1 -1
  70. package/dist/projection/Visibility.js +22 -0
  71. package/dist/projection/Visibility.js.map +1 -1
  72. package/dist/projection/card/Card.d.ts.map +1 -1
  73. package/dist/projection/card/Card.js +12 -9
  74. package/dist/projection/card/Card.js.map +1 -1
  75. package/dist/projection/card/CardForm.d.ts +7 -0
  76. package/dist/projection/card/CardForm.d.ts.map +1 -0
  77. package/dist/projection/card/CardForm.js +2 -0
  78. package/dist/projection/card/CardForm.js.map +1 -0
  79. package/dist/projection/card/CardForms.d.ts +10 -0
  80. package/dist/projection/card/CardForms.d.ts.map +1 -0
  81. package/dist/projection/card/CardForms.js +12 -0
  82. package/dist/projection/card/CardForms.js.map +1 -0
  83. package/dist/projection/card/Change.d.ts +2 -2
  84. package/dist/projection/card/Change.d.ts.map +1 -1
  85. package/dist/projection/card/Diff.js +2 -2
  86. package/dist/projection/card/Diff.js.map +1 -1
  87. package/dist/projection/card/FieldExtension.d.ts +4 -2
  88. package/dist/projection/card/FieldExtension.d.ts.map +1 -1
  89. package/dist/projection/card/RoleDescriptor.d.ts +9 -2
  90. package/dist/projection/card/RoleDescriptor.d.ts.map +1 -1
  91. package/dist/projection/card/RoleDescriptor.js +40 -1
  92. package/dist/projection/card/RoleDescriptor.js.map +1 -1
  93. package/dist/projection/card/admission.d.ts +0 -14
  94. package/dist/projection/card/admission.d.ts.map +1 -1
  95. package/dist/projection/card/admission.js +0 -20
  96. package/dist/projection/card/admission.js.map +1 -1
  97. package/dist/validator/FieldDeclarationValidator.d.ts.map +1 -1
  98. package/dist/validator/FieldDeclarationValidator.js +5 -17
  99. package/dist/validator/FieldDeclarationValidator.js.map +1 -1
  100. package/dist/validator/FieldValueValidator.d.ts.map +1 -1
  101. package/dist/validator/FieldValueValidator.js +9 -27
  102. package/dist/validator/FieldValueValidator.js.map +1 -1
  103. package/dist/validator/JsonSchemaValidator.d.ts +23 -0
  104. package/dist/validator/JsonSchemaValidator.d.ts.map +1 -0
  105. package/dist/validator/JsonSchemaValidator.js +113 -0
  106. package/dist/validator/JsonSchemaValidator.js.map +1 -0
  107. package/dist/vocabulary/vocabulary.js +7 -5
  108. package/dist/vocabulary/vocabulary.js.map +1 -1
  109. package/package.json +1 -1
  110. package/src/SchemaError.ts +1 -1
  111. package/src/axis/Axes.ts +34 -0
  112. package/src/axis/Axis.ts +5 -20
  113. package/src/axis/boundary/Boundary.ts +23 -11
  114. package/src/axis/boundary/Decoder.ts +1 -1
  115. package/src/axis/lifecycle/Lifecycle.ts +28 -11
  116. package/src/axis/lifecycle/apply.ts +11 -5
  117. package/src/axis/role/Role.ts +35 -19
  118. package/src/axis/shape/{Formats.ts → StringFormats.ts} +2 -2
  119. package/src/field/Field.ts +18 -8
  120. package/src/field/FieldFormat.ts +18 -0
  121. package/src/field/FougereFieldAxes.ts +2 -0
  122. package/src/field/Meta.ts +5 -3
  123. package/src/index.ts +6 -3
  124. package/src/lib/Format.ts +139 -0
  125. package/src/lib/JsonSchema.ts +1 -0
  126. package/src/lib/Registry.ts +14 -6
  127. package/src/lib/ValidationResult.ts +8 -0
  128. package/src/projection/Visibility.ts +22 -0
  129. package/src/projection/card/Card.ts +12 -9
  130. package/src/projection/card/CardForm.ts +8 -0
  131. package/src/projection/card/CardForms.ts +13 -0
  132. package/src/projection/card/Change.ts +2 -2
  133. package/src/projection/card/Diff.ts +2 -2
  134. package/src/projection/card/FieldExtension.ts +5 -2
  135. package/src/projection/card/RoleDescriptor.ts +48 -2
  136. package/src/projection/card/admission.ts +0 -33
  137. package/src/validator/FieldDeclarationValidator.ts +5 -17
  138. package/src/validator/FieldValueValidator.ts +10 -35
  139. package/src/validator/JsonSchemaValidator.ts +142 -0
  140. package/src/vocabulary/vocabulary.ts +7 -5
  141. package/dist/axis/boundary/BoundaryAxis.d.ts +0 -4
  142. package/dist/axis/boundary/BoundaryAxis.d.ts.map +0 -1
  143. package/dist/axis/boundary/BoundaryAxis.js +0 -30
  144. package/dist/axis/boundary/BoundaryAxis.js.map +0 -1
  145. package/dist/axis/boundary/BoundaryRef.d.ts +0 -3
  146. package/dist/axis/boundary/BoundaryRef.d.ts.map +0 -1
  147. package/dist/axis/boundary/BoundaryRef.js +0 -2
  148. package/dist/axis/boundary/BoundaryRef.js.map +0 -1
  149. package/dist/axis/boundary/BoundaryRules.d.ts +0 -9
  150. package/dist/axis/boundary/BoundaryRules.d.ts.map +0 -1
  151. package/dist/axis/boundary/BoundaryRules.js +0 -2
  152. package/dist/axis/boundary/BoundaryRules.js.map +0 -1
  153. package/dist/axis/lifecycle/Clock.d.ts +0 -10
  154. package/dist/axis/lifecycle/Clock.d.ts.map +0 -1
  155. package/dist/axis/lifecycle/Clock.js +0 -19
  156. package/dist/axis/lifecycle/Clock.js.map +0 -1
  157. package/dist/axis/lifecycle/LifecycleAxis.d.ts +0 -4
  158. package/dist/axis/lifecycle/LifecycleAxis.d.ts.map +0 -1
  159. package/dist/axis/lifecycle/LifecycleAxis.js +0 -52
  160. package/dist/axis/lifecycle/LifecycleAxis.js.map +0 -1
  161. package/dist/axis/lifecycle/LifecycleRules.d.ts +0 -12
  162. package/dist/axis/lifecycle/LifecycleRules.d.ts.map +0 -1
  163. package/dist/axis/lifecycle/LifecycleRules.js +0 -3
  164. package/dist/axis/lifecycle/LifecycleRules.js.map +0 -1
  165. package/dist/axis/role/RoleAxis.d.ts +0 -5
  166. package/dist/axis/role/RoleAxis.d.ts.map +0 -1
  167. package/dist/axis/role/RoleAxis.js +0 -93
  168. package/dist/axis/role/RoleAxis.js.map +0 -1
  169. package/dist/axis/role/RoleRules.d.ts +0 -8
  170. package/dist/axis/role/RoleRules.d.ts.map +0 -1
  171. package/dist/axis/role/RoleRules.js +0 -2
  172. package/dist/axis/role/RoleRules.js.map +0 -1
  173. package/dist/axis/shape/Formats.d.ts.map +0 -1
  174. package/dist/axis/shape/Formats.js.map +0 -1
  175. package/dist/projection/card/RelationDescriptor.d.ts +0 -5
  176. package/dist/projection/card/RelationDescriptor.d.ts.map +0 -1
  177. package/dist/projection/card/RelationDescriptor.js +0 -2
  178. package/dist/projection/card/RelationDescriptor.js.map +0 -1
  179. package/dist/validator/AdapterFieldValidator.d.ts +0 -14
  180. package/dist/validator/AdapterFieldValidator.d.ts.map +0 -1
  181. package/dist/validator/AdapterFieldValidator.js +0 -37
  182. package/dist/validator/AdapterFieldValidator.js.map +0 -1
  183. package/src/axis/boundary/BoundaryAxis.ts +0 -32
  184. package/src/axis/boundary/BoundaryRef.ts +0 -3
  185. package/src/axis/boundary/BoundaryRules.ts +0 -4
  186. package/src/axis/lifecycle/Clock.ts +0 -22
  187. package/src/axis/lifecycle/LifecycleAxis.ts +0 -55
  188. package/src/axis/lifecycle/LifecycleRules.ts +0 -9
  189. package/src/axis/role/RoleAxis.ts +0 -104
  190. package/src/axis/role/RoleRules.ts +0 -8
  191. package/src/projection/card/RelationDescriptor.ts +0 -3
  192. package/src/validator/AdapterFieldValidator.ts +0 -41
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/field/Field.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,OAAO,KAAK;IACP,KAAK,CAAQ;IACb,IAAI,CAAa;IACjB,SAAS,CAAkB;IAC3B,QAAQ,CAAe;IACvB,IAAI,CAAQ;IAIrB,YAAY,IAAsB,EAAE,GAAY;QAC9C,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,WAAW,CACnB,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QACtC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,SAAS,IAAI,OAAO;gBACtB,MAAM,IAAI,WAAW,CACnB,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;oBACrF,iCAAiC,OAAO,CAAC,OAAO,GAAG,CACtD,CAAC;QACN,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,yBAAyB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7D,CAAC;IAED,IAAI,CAAQ,SAAoC;QAC9C,OAAO,IAAI,KAAK,CAAI,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/field/Field.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD,MAAM,OAAO,KAAK;IACP,KAAK,CAAQ;IACb,IAAI,CAAa;IACjB,SAAS,CAAkB;IAC3B,QAAQ,CAAe;IACvB,IAAI,CAAQ;IAIrB,YAAY,IAAsB,EAAE,GAAY;QAC9C,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAE3D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,WAAW,CACnB,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtB,MAAM,MAAM,GAAG,IAA0C,CAAC;QAE1D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7B,IAA2C,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QACtC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,SAAS,IAAI,OAAO;gBACtB,MAAM,IAAI,WAAW,CACnB,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;oBACrF,iCAAiC,OAAO,CAAC,OAAO,GAAG,CACtD,CAAC;QACN,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,yBAAyB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7D,CAAC;IAED,IAAI,CAAQ,SAAoC;QAC9C,OAAO,IAAI,KAAK,CAAI,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import type { Axis } from '../axis/Axis.js';
2
+ import type { JsonSchema } from '../lib/JsonSchema.js';
3
+ /**
4
+ * What a field may state, composed from the keys that state a format: each is carried whole and
5
+ * cited by its `$id`, so the document travels alone and a key keeps its own identity. `shape` is
6
+ * JSON Schema itself, and `Shapes.is` is what reads it.
7
+ */
8
+ export declare function fieldFormat(axes: readonly [string, Axis][]): JsonSchema;
9
+ //# sourceMappingURL=FieldFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldFormat.d.ts","sourceRoot":"","sources":["../../src/field/FieldFormat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,UAAU,CAOvE"}
@@ -0,0 +1,12 @@
1
+ import { Format } from '../lib/Format.js';
2
+ import { META_FORMAT } from './Meta.js';
3
+ /**
4
+ * What a field may state, composed from the keys that state a format: each is carried whole and
5
+ * cited by its `$id`, so the document travels alone and a key keeps its own identity. `shape` is
6
+ * JSON Schema itself, and `Shapes.is` is what reads it.
7
+ */
8
+ export function fieldFormat(axes) {
9
+ const document = axes.reduce((held, [slot, axis]) => held.cites(slot, axis.format), Format.of('field').key('shape', Format.anything));
10
+ return document.cites('meta', META_FORMAT).closed().schema;
11
+ }
12
+ //# sourceMappingURL=FieldFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldFormat.js","sourceRoot":"","sources":["../../src/field/FieldFormat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAA+B;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EACrD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CACjD,CAAC;IAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,MAAoB,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface FougereFieldAxes {
2
+ }
3
+ //# sourceMappingURL=FougereFieldAxes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FougereFieldAxes.d.ts","sourceRoot":"","sources":["../../src/field/FougereFieldAxes.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;CAAG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FougereFieldAxes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FougereFieldAxes.js","sourceRoot":"","sources":["../../src/field/FougereFieldAxes.ts"],"names":[],"mappings":""}
@@ -1,4 +1,6 @@
1
- export interface Meta {
2
- description?: string;
3
- }
1
+ import { Format, type Accepted } from '../lib/Format.js';
2
+ export declare const META_FORMAT: Format<{
3
+ description?: string | undefined;
4
+ }>;
5
+ export type Meta = Accepted<typeof META_FORMAT>;
4
6
  //# sourceMappingURL=Meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.d.ts","sourceRoot":"","sources":["../../src/field/Meta.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"Meta.d.ts","sourceRoot":"","sources":["../../src/field/Meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,WAAW;;EAAmE,CAAC;AAE5F,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ import { Format } from '../lib/Format.js';
2
+ export const META_FORMAT = Format.of('field/meta').key('description', Format.text).closed();
2
3
  //# sourceMappingURL=Meta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/field/Meta.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/field/Meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,kBAAkB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -33,12 +33,15 @@ export type { Diff } from './projection/card/Diff.js';
33
33
  export type { SetDiff } from './projection/card/SetDiff.js';
34
34
  export type { SetDiffOptions } from './projection/card/SetDiffOptions.js';
35
35
  export * from './lib/index.js';
36
- export { Formats } from './axis/shape/Formats.js';
36
+ export { StringFormats } from './axis/shape/StringFormats.js';
37
37
  export { Generators } from './axis/lifecycle/Generators.js';
38
38
  export { Boundaries } from './axis/boundary/Decoder.js';
39
- export { Clock } from './axis/lifecycle/Clock.js';
40
39
  export { type FougereEntityAdapters } from './entity/FougereEntityAdapters.js';
41
40
  export { InputValidator } from './validator/InputValidator.js';
42
41
  export { FieldValueValidator } from './validator/FieldValueValidator.js';
43
- export { AdapterFieldValidator } from './validator/AdapterFieldValidator.js';
42
+ export { JsonSchemaValidator } from './validator/JsonSchemaValidator.js';
43
+ export type { JsonSchema } from './lib/JsonSchema.js';
44
+ export { Axes } from './axis/Axes.js';
45
+ export { Format } from './lib/Format.js';
46
+ export type { Axis } from './axis/Axis.js';
44
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,YAAY,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,YAAY,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAE1E,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,11 +17,12 @@ export { Bundle } from './projection/card/Bundle.js';
17
17
  export { Visibility } from './projection/Visibility.js';
18
18
  export { Cases } from './projection/Cases.js';
19
19
  export * from './lib/index.js';
20
- export { Formats } from './axis/shape/Formats.js';
20
+ export { StringFormats } from './axis/shape/StringFormats.js';
21
21
  export { Generators } from './axis/lifecycle/Generators.js';
22
22
  export { Boundaries } from './axis/boundary/Decoder.js';
23
- export { Clock } from './axis/lifecycle/Clock.js';
24
23
  export { InputValidator } from './validator/InputValidator.js';
25
24
  export { FieldValueValidator } from './validator/FieldValueValidator.js';
26
- export { AdapterFieldValidator } from './validator/AdapterFieldValidator.js';
25
+ export { JsonSchemaValidator } from './validator/JsonSchemaValidator.js';
26
+ export { Axes } from './axis/Axes.js';
27
+ export { Format } from './lib/Format.js';
27
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAiB,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAyB,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAU9C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAiB,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAyB,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAU9C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import type { JsonSchema } from './JsonSchema.js';
2
+ type Stated = JsonSchema | boolean;
3
+ /** The values a format lets in, as a type — `Accepted<typeof Lifecycle.format>`. */
4
+ export type Accepted<F> = F extends Format<infer T> ? T : never;
5
+ /**
6
+ * How a format is written here: its keys, never its JSON Schema. `$id`, `$ref`, `$defs` and the
7
+ * closing are produced, and what it accepts is carried as a TYPE, so a declaration is stated once.
8
+ * FR : on écrit les clés d'un format ; le document et le type sont produits.
9
+ * `Format.of('axis/tenancy').key('scope', Format.tokens(SCOPES)).closed()`
10
+ */
11
+ export declare class Format<T = unknown> {
12
+ private readonly stated;
13
+ readonly id?: string | undefined;
14
+ static readonly anything: Format<unknown>;
15
+ static readonly text: Format<string>;
16
+ static readonly flag: Format<boolean>;
17
+ readonly _admits?: T;
18
+ protected constructor(stated: Stated, id?: string | undefined);
19
+ /** `Format.tokens(['now', 'optional'])` → `Instance does not match any of ["now","optional"].` */
20
+ static tokens<const Words extends readonly string[]>(words: Words): Format<Words[number]>;
21
+ /** A word or a shape, told apart by TYPE, so a refusal names the half the value belongs to. */
22
+ static either<Word, Shape>(word: Format<Word>, shape: Format<Shape>): Format<Word | Shape>;
23
+ /** One of these keys and no other — `{ value }` or `{ generate }`, never both and never neither. */
24
+ static exactlyOne<Keys extends Record<string, Format<unknown>>>(keys: Keys): Format<{
25
+ [K in keyof Keys]: {
26
+ [P in K]: Accepted<Keys[K]>;
27
+ };
28
+ }[keyof Keys]>;
29
+ /** A name resolves under this project's own space; another one states its whole `$id`. */
30
+ static of(id?: string): ObjectFormat<object>;
31
+ /** What `of` does for an object, for a format that is not one — `either`, a list of words. */
32
+ static named<Value>(id: string, format: Format<Value>): Format<Value>;
33
+ /** The type JSON Schema cannot carry: a generator's name, a thunk to an entity. */
34
+ as<Value>(): Format<Value>;
35
+ get schema(): Stated;
36
+ }
37
+ export declare class ObjectFormat<T extends object> extends Format<T> {
38
+ private readonly keys;
39
+ private readonly cited;
40
+ private readonly needed;
41
+ constructor(id?: string);
42
+ key<Name extends string, Value>(name: Name, format: Format<Value>): ObjectFormat<T & {
43
+ [K in Name]?: Value;
44
+ }>;
45
+ /** A key carried whole and pointed at by its `$id`, so it keeps an identity of its own. */
46
+ cites<Name extends string, Value>(name: Name, format: Format<Value>): ObjectFormat<T & {
47
+ [K in Name]?: Value;
48
+ }>;
49
+ needs<Name extends keyof T & string>(...names: Name[]): ObjectFormat<Omit<T, Name> & Required<Pick<T, Name>>>;
50
+ /** These keys and no other: a name nothing states is refused UNDER that name. */
51
+ closed(): Format<{
52
+ [K in keyof T]: T[K];
53
+ }>;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=Format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../src/lib/Format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { SchemaError } from '../SchemaError.js';
2
+ const HERE = 'https://fougere.dev/schema/';
3
+ const absolute = (id) => id === undefined || id.includes('://') ? id : `${HERE}${id}`;
4
+ /**
5
+ * How a format is written here: its keys, never its JSON Schema. `$id`, `$ref`, `$defs` and the
6
+ * closing are produced, and what it accepts is carried as a TYPE, so a declaration is stated once.
7
+ * FR : on écrit les clés d'un format ; le document et le type sont produits.
8
+ * `Format.of('axis/tenancy').key('scope', Format.tokens(SCOPES)).closed()`
9
+ */
10
+ export class Format {
11
+ stated;
12
+ id;
13
+ static anything = new Format(true);
14
+ static text = new Format({ type: 'string' });
15
+ static flag = new Format({ type: 'boolean' });
16
+ constructor(stated, id) {
17
+ this.stated = stated;
18
+ this.id = id;
19
+ }
20
+ /** `Format.tokens(['now', 'optional'])` → `Instance does not match any of ["now","optional"].` */
21
+ static tokens(words) {
22
+ return new Format({ enum: [...words] });
23
+ }
24
+ /** A word or a shape, told apart by TYPE, so a refusal names the half the value belongs to. */
25
+ static either(word, shape) {
26
+ return new Format({
27
+ if: { type: 'string' },
28
+ then: word.schema,
29
+ else: shape.schema,
30
+ });
31
+ }
32
+ /** One of these keys and no other — `{ value }` or `{ generate }`, never both and never neither. */
33
+ static exactlyOne(keys) {
34
+ return new Format({
35
+ type: 'object',
36
+ properties: Object.fromEntries(Object.entries(keys).map(([key, format]) => [key, format.schema])),
37
+ propertyNames: { enum: Object.keys(keys) },
38
+ minProperties: 1,
39
+ maxProperties: 1,
40
+ });
41
+ }
42
+ /** A name resolves under this project's own space; another one states its whole `$id`. */
43
+ static of(id) {
44
+ return new ObjectFormat(absolute(id));
45
+ }
46
+ /** What `of` does for an object, for a format that is not one — `either`, a list of words. */
47
+ static named(id, format) {
48
+ const named = absolute(id);
49
+ return new Format({ $id: named, ...format.schema }, named);
50
+ }
51
+ /** The type JSON Schema cannot carry: a generator's name, a thunk to an entity. */
52
+ as() {
53
+ return this;
54
+ }
55
+ get schema() {
56
+ return this.stated;
57
+ }
58
+ }
59
+ export class ObjectFormat extends Format {
60
+ keys = new Map();
61
+ cited = new Map();
62
+ needed = [];
63
+ constructor(id) {
64
+ super(true, id);
65
+ }
66
+ key(name, format) {
67
+ this.keys.set(name, format.schema);
68
+ return this;
69
+ }
70
+ /** A key carried whole and pointed at by its `$id`, so it keeps an identity of its own. */
71
+ cites(name, format) {
72
+ if (!format.id) {
73
+ throw new SchemaError(`A format cited as '${name}' states no \`$id\`, so nothing can point at it.`);
74
+ }
75
+ this.keys.set(name, { $ref: format.id });
76
+ this.cited.set(name, format.schema);
77
+ return this;
78
+ }
79
+ needs(...names) {
80
+ this.needed.push(...names);
81
+ return this;
82
+ }
83
+ /** These keys and no other: a name nothing states is refused UNDER that name. */
84
+ closed() {
85
+ return new Format({
86
+ ...(this.id ? { $id: this.id } : {}),
87
+ type: 'object',
88
+ properties: Object.fromEntries(this.keys),
89
+ propertyNames: { enum: [...this.keys.keys()] },
90
+ ...(this.needed.length ? { required: [...this.needed] } : {}),
91
+ ...(this.cited.size ? { $defs: Object.fromEntries(this.cited) } : {}),
92
+ }, this.id);
93
+ }
94
+ }
95
+ //# sourceMappingURL=Format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Format.js","sourceRoot":"","sources":["../../src/lib/Format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type { Schema as JsonSchema } from '@cfworker/json-schema';
2
+ //# sourceMappingURL=JsonSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonSchema.d.ts","sourceRoot":"","sources":["../../src/lib/JsonSchema.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=JsonSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonSchema.js","sourceRoot":"","sources":["../../src/lib/JsonSchema.ts"],"names":[],"mappings":""}
@@ -1,11 +1,13 @@
1
1
  export declare class Registry<T> {
2
2
  private readonly label;
3
3
  private readonly hint?;
4
- private readonly entries;
4
+ private readonly held;
5
5
  constructor(label: string, hint?: string | undefined, entries?: Iterable<readonly [string, T]>);
6
6
  register(name: string, value: T): T;
7
7
  find(name: string): T | undefined;
8
8
  resolve(name: string, path?: string): T;
9
- private get names();
9
+ get names(): string[];
10
+ get entries(): [string, T][];
11
+ get all(): T[];
10
12
  }
11
13
  //# sourceMappingURL=Registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../src/lib/Registry.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAQ,CAAC,CAAC;IAInB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAJxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,YACmB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,YAAA,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAGzC;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIlC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAEhC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAStC;IAED,OAAO,KAAK,KAAK,GAEhB;CACF"}
1
+ {"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../src/lib/Registry.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAQ,CAAC,CAAC;IAInB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAJxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,YACmB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,YAAA,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAGzC;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIlC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAEhC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAStC;IAED,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAE3B;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAEb;CACF"}
@@ -2,18 +2,18 @@ import { SchemaError } from '../SchemaError.js';
2
2
  export class Registry {
3
3
  label;
4
4
  hint;
5
- entries;
5
+ held;
6
6
  constructor(label, hint, entries) {
7
7
  this.label = label;
8
8
  this.hint = hint;
9
- this.entries = new Map(entries);
9
+ this.held = new Map(entries);
10
10
  }
11
11
  register(name, value) {
12
- this.entries.set(name, value);
12
+ this.held.set(name, value);
13
13
  return value;
14
14
  }
15
15
  find(name) {
16
- return this.entries.get(name);
16
+ return this.held.get(name);
17
17
  }
18
18
  resolve(name, path) {
19
19
  const found = this.find(name);
@@ -23,7 +23,13 @@ export class Registry {
23
23
  `This process answers ${this.names.join(', ') || 'nothing yet'}.`);
24
24
  }
25
25
  get names() {
26
- return [...this.entries.keys()];
26
+ return [...this.held.keys()];
27
+ }
28
+ get entries() {
29
+ return [...this.held];
30
+ }
31
+ get all() {
32
+ return [...this.held.values()];
27
33
  }
28
34
  }
29
35
  //# sourceMappingURL=Registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../src/lib/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,QAAQ;IAIA,KAAK;IACL,IAAI;IAJN,OAAO,CAAiB;IAEzC,YACmB,KAAa,EACb,IAAa,EAC9B,OAAwC;qBAFvB,KAAK;oBACL,IAAI;QAGrB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAAQ;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAa;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,IAAI,WAAW,CACnB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;YAChG,wBAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,CACpE,CAAC;IACJ,CAAC;IAED,IAAY,KAAK;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../src/lib/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,QAAQ;IAIA,KAAK;IACL,IAAI;IAJN,IAAI,CAAiB;IAEtC,YACmB,KAAa,EACb,IAAa,EAC9B,OAAwC;qBAFvB,KAAK;oBACL,IAAI;QAGrB,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAa;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,IAAI,WAAW,CACnB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;YAChG,wBAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -11,4 +11,6 @@ export type ValidationResult<T> = {
11
11
  * reason the value stays segmented: this one cannot be read back.
12
12
  */
13
13
  export declare const dotted: (path: readonly string[]) => string;
14
+ /** `#/city/zip` — a JSON Pointer fragment, and `~1`/`~0` are how it spells `/` and `~`. */
15
+ export declare const locationOf: (instanceLocation: string) => string[];
14
16
  //# sourceMappingURL=ValidationResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationResult.d.ts","sourceRoot":"","sources":["../../src/lib/ValidationResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,MAAM,SAAU,SAAS,MAAM,EAAE,KAAG,MAAwB,CAAC"}
1
+ {"version":3,"file":"ValidationResult.d.ts","sourceRoot":"","sources":["../../src/lib/ValidationResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,MAAM,SAAU,SAAS,MAAM,EAAE,KAAG,MAAwB,CAAC;AAE1E,2FAA2F;AAC3F,eAAO,MAAM,UAAU,qBAAsB,MAAM,KAAG,MAAM,EAKU,CAAC"}
@@ -3,4 +3,10 @@
3
3
  * reason the value stays segmented: this one cannot be read back.
4
4
  */
5
5
  export const dotted = (path) => path.join('.');
6
+ /** `#/city/zip` — a JSON Pointer fragment, and `~1`/`~0` are how it spells `/` and `~`. */
7
+ export const locationOf = (instanceLocation) => instanceLocation
8
+ .replace(/^#/, '')
9
+ .split('/')
10
+ .filter(Boolean)
11
+ .map((segment) => segment.replace(/~1/g, '/').replace(/~0/g, '~'));
6
12
  //# sourceMappingURL=ValidationResult.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../src/lib/ValidationResult.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAuB,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"ValidationResult.js","sourceRoot":"","sources":["../../src/lib/ValidationResult.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAuB,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1E,2FAA2F;AAC3F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,gBAAwB,EAAY,EAAE,CAC/D,gBAAgB;KACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;KACjB,KAAK,CAAC,GAAG,CAAC;KACV,MAAM,CAAC,OAAO,CAAC;KACf,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC"}
@@ -6,6 +6,17 @@ export declare class Visibility {
6
6
  /** A write-only secret is absent from the type, not just from the value. */
7
7
  get input(): Fields;
8
8
  get output(): Fields;
9
+ /**
10
+ * The dual of `encode`, read where a caller RECEIVES a row.
11
+ *
12
+ * `date-time` means a `Date` on both sides, and only the outgoing half was ever applied: a
13
+ * handler answered `new Date(0)`, the facade encoded it, and the caller was handed
14
+ * `"1970-01-01T00:00:00.000Z"` while its type said `Date` — locally as well as across a wire.
15
+ *
16
+ * It converts and never judges: what arrives was validated where it was produced, so a value
17
+ * the codec refuses is kept as it came rather than replaced or thrown over.
18
+ */
19
+ decode(record: Record<string, unknown>): Record<string, unknown>;
9
20
  encode(record: Record<string, unknown>): Record<string, unknown>;
10
21
  }
11
22
  //# sourceMappingURL=Visibility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.d.ts","sourceRoot":"","sources":["../../src/projection/Visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,UAAU;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO,eAAgD;IAEvD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAEpC;IAED,4EAA4E;IAC5E,IAAI,KAAK,IAAI,MAAM,CAWlB;IAED,IAAI,MAAM,IAAI,MAAM,CAOnB;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAc/D;CACF"}
1
+ {"version":3,"file":"Visibility.d.ts","sourceRoot":"","sources":["../../src/projection/Visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,qBAAa,UAAU;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO,eAAgD;IAEvD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAEpC;IAED,4EAA4E;IAC5E,IAAI,KAAK,IAAI,MAAM,CAWlB;IAED,IAAI,MAAM,IAAI,MAAM,CAOnB;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU/D;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAc/D;CACF"}
@@ -35,6 +35,28 @@ export class Visibility {
35
35
  }
36
36
  return result;
37
37
  }
38
+ /**
39
+ * The dual of `encode`, read where a caller RECEIVES a row.
40
+ *
41
+ * `date-time` means a `Date` on both sides, and only the outgoing half was ever applied: a
42
+ * handler answered `new Date(0)`, the facade encoded it, and the caller was handed
43
+ * `"1970-01-01T00:00:00.000Z"` while its type said `Date` — locally as well as across a wire.
44
+ *
45
+ * It converts and never judges: what arrives was validated where it was produced, so a value
46
+ * the codec refuses is kept as it came rather than replaced or thrown over.
47
+ */
48
+ decode(record) {
49
+ const out = { ...record };
50
+ for (const [key, field] of Object.entries(this.fields)) {
51
+ const value = record[key];
52
+ if (!(key in record) || value === null || value === undefined)
53
+ continue;
54
+ const verdict = Boundary.of(field).decode(value);
55
+ if ('value' in verdict)
56
+ out[key] = verdict.value;
57
+ }
58
+ return out;
59
+ }
38
60
  encode(record) {
39
61
  const out = { ...record };
40
62
  for (const [key, field] of Object.entries(this.fields)) {
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","sourceRoot":"","sources":["../../src/projection/Visibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,MAAM,OAAO,UAAU;IACgB,MAAM;IAA3C,YAAqC,MAAc;sBAAd,MAAM;IAAW,CAAC;IAEvD,MAAM,CAAC,EAAE,CAAC,MAAc;QACtB,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,4EAA4E;IAC5E,IAAI,KAAK;QACP,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,SAAS;gBAAE,SAAS;YAC7B,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,eAAe;gBAAE,SAAS;YAClD,IAAI,IAAI,CAAC,YAAY;gBAAE,SAAS;YAChC,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ;gBAAE,SAAS;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM;QACR,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS;gBAAE,SAAS;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAA+B;QACpC,MAAM,GAAG,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;gBAAE,SAAS;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YACpD,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"Visibility.js","sourceRoot":"","sources":["../../src/projection/Visibility.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/projection/card/Card.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAErD;;;;GAIG;AACH,qBAAa,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACd,QAAQ,CAAC,UAAU,EAAE,gBAAgB;IAAzD,OAAO,eAAsD;IAE7D,MAAM,CAAC,UAAU,CAAC,OAAO,SAAS,MAAM,EACtC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,EAC3B,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAyBvB;IAED,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAE/E;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEzC;IAED,IAAI,MAAM,IAAI,WAAW,GAAG,SAAS,CAEpC;IAED,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAqC1E;IAED,sFAAsF;IACtF,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,WAAgB,GAAG,IAAI,CAEjD;CACF"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/projection/card/Card.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAW,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAErD;;;;GAIG;AACH,qBAAa,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACd,QAAQ,CAAC,UAAU,EAAE,gBAAgB;IAAzD,OAAO,eAAsD;IAE7D,MAAM,CAAC,UAAU,CAAC,OAAO,SAAS,MAAM,EACtC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,EAC3B,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAyBvB;IAED,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAE/E;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEzC;IAED,IAAI,MAAM,IAAI,WAAW,GAAG,SAAS,CAEpC;IAED,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAqC1E;IAED,sFAAsF;IACtF,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,GAAE,WAAgB,GAAG,IAAI,CAEjD;CACF"}
@@ -1,4 +1,5 @@
1
- import { EXTENSION_AXES } from '../../axis/Axis.js';
1
+ import { Axes } from '../../axis/Axes.js';
2
+ import { CardForms } from './CardForms.js';
2
3
  import { clean, isObject } from '../../lib/utils.js';
3
4
  import { Field } from '../../field/Field.js';
4
5
  import { SchemaConstraints } from '../../SchemaConstraints.js';
@@ -100,13 +101,14 @@ export class Card {
100
101
  */
101
102
  function describeExtension(field, key) {
102
103
  const extension = {};
103
- for (const axis of EXTENSION_AXES) {
104
- const declared = field[axis.slot];
104
+ for (const slot of Axes.names) {
105
+ const declared = field[slot];
105
106
  if (declared === undefined)
106
107
  continue;
107
- const wire = axis.describe(declared, key);
108
+ const form = CardForms.find(slot);
109
+ const wire = form ? form.describe(declared, key) : declared;
108
110
  if (wire !== undefined)
109
- extension[axis.slot] = wire;
111
+ extension[slot] = wire;
110
112
  }
111
113
  clean(extension);
112
114
  return Object.keys(extension).length ? extension : undefined;
@@ -168,10 +170,11 @@ function reconstructField(property, key, resolve) {
168
170
  admitPatterns(shape, `Field '${key}'`);
169
171
  const extension = property['x-fougere'];
170
172
  const axes = {};
171
- for (const axis of EXTENSION_AXES) {
172
- const wire = extension?.[axis.slot];
173
+ for (const slot of Axes.names) {
174
+ const wire = extension?.[slot];
175
+ const form = CardForms.find(slot);
173
176
  if (wire !== undefined)
174
- axes[axis.slot] = axis.reconstruct(wire, resolve);
177
+ axes[slot] = form ? form.reconstruct(wire, resolve) : wire;
175
178
  }
176
179
  return new Field({
177
180
  shape,
@@ -179,7 +182,7 @@ function reconstructField(property, key, resolve) {
179
182
  meta: property.description !== undefined
180
183
  ? { description: property.description }
181
184
  : undefined,
182
- });
185
+ }, key);
183
186
  }
184
187
  /**
185
188
  * Writes a group onto EVERY member — a wire reader sees one field at a time.
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/projection/card/Card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/projection/card/Card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Resolver } from '../../axis/Resolver.js';
2
+ /** How a card writes what an axis declared, and reads it back — stated by the card, not the axis. */
3
+ export interface CardForm<Declared = unknown, Wire = unknown> {
4
+ describe(value: Declared, key: string): Wire | undefined;
5
+ reconstruct(wire: Wire, resolve?: Resolver): Declared;
6
+ }
7
+ //# sourceMappingURL=CardForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardForm.d.ts","sourceRoot":"","sources":["../../../src/projection/card/CardForm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,qGAAqG;AACrG,MAAM,WAAW,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO;IAC1D,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEzD,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACvD"}