@dryvcode/author 0.0.1

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 (286) hide show
  1. package/README.md +341 -0
  2. package/dist/behavior/duration.d.ts +7 -0
  3. package/dist/behavior/duration.d.ts.map +1 -0
  4. package/dist/behavior/duration.js +20 -0
  5. package/dist/behavior/duration.js.map +1 -0
  6. package/dist/behavior/event.d.ts +23 -0
  7. package/dist/behavior/event.d.ts.map +1 -0
  8. package/dist/behavior/event.js +57 -0
  9. package/dist/behavior/event.js.map +1 -0
  10. package/dist/behavior/failure.d.ts +19 -0
  11. package/dist/behavior/failure.d.ts.map +1 -0
  12. package/dist/behavior/failure.js +48 -0
  13. package/dist/behavior/failure.js.map +1 -0
  14. package/dist/behavior/index.d.ts +6 -0
  15. package/dist/behavior/index.d.ts.map +1 -0
  16. package/dist/behavior/index.js +6 -0
  17. package/dist/behavior/index.js.map +1 -0
  18. package/dist/behavior/operation.d.ts +72 -0
  19. package/dist/behavior/operation.d.ts.map +1 -0
  20. package/dist/behavior/operation.js +193 -0
  21. package/dist/behavior/operation.js.map +1 -0
  22. package/dist/behavior/policy.d.ts +29 -0
  23. package/dist/behavior/policy.d.ts.map +1 -0
  24. package/dist/behavior/policy.js +80 -0
  25. package/dist/behavior/policy.js.map +1 -0
  26. package/dist/composition/application.d.ts +28 -0
  27. package/dist/composition/application.d.ts.map +1 -0
  28. package/dist/composition/application.js +64 -0
  29. package/dist/composition/application.js.map +1 -0
  30. package/dist/composition/feature.d.ts +37 -0
  31. package/dist/composition/feature.d.ts.map +1 -0
  32. package/dist/composition/feature.js +82 -0
  33. package/dist/composition/feature.js.map +1 -0
  34. package/dist/composition/index.d.ts +3 -0
  35. package/dist/composition/index.d.ts.map +1 -0
  36. package/dist/composition/index.js +3 -0
  37. package/dist/composition/index.js.map +1 -0
  38. package/dist/contracts/behavior.d.ts +106 -0
  39. package/dist/contracts/behavior.d.ts.map +1 -0
  40. package/dist/contracts/behavior.js +2 -0
  41. package/dist/contracts/behavior.js.map +1 -0
  42. package/dist/contracts/composition.d.ts +20 -0
  43. package/dist/contracts/composition.d.ts.map +1 -0
  44. package/dist/contracts/composition.js +2 -0
  45. package/dist/contracts/composition.js.map +1 -0
  46. package/dist/contracts/definitions.d.ts +286 -0
  47. package/dist/contracts/definitions.d.ts.map +1 -0
  48. package/dist/contracts/definitions.js +35 -0
  49. package/dist/contracts/definitions.js.map +1 -0
  50. package/dist/contracts/expressions.d.ts +44 -0
  51. package/dist/contracts/expressions.d.ts.map +1 -0
  52. package/dist/contracts/expressions.js +2 -0
  53. package/dist/contracts/expressions.js.map +1 -0
  54. package/dist/contracts/foundation.d.ts +141 -0
  55. package/dist/contracts/foundation.d.ts.map +1 -0
  56. package/dist/contracts/foundation.js +2 -0
  57. package/dist/contracts/foundation.js.map +1 -0
  58. package/dist/contracts/index.d.ts +10 -0
  59. package/dist/contracts/index.d.ts.map +1 -0
  60. package/dist/contracts/index.js +10 -0
  61. package/dist/contracts/index.js.map +1 -0
  62. package/dist/contracts/interaction.d.ts +52 -0
  63. package/dist/contracts/interaction.d.ts.map +1 -0
  64. package/dist/contracts/interaction.js +2 -0
  65. package/dist/contracts/interaction.js.map +1 -0
  66. package/dist/contracts/interfaces.d.ts +73 -0
  67. package/dist/contracts/interfaces.d.ts.map +1 -0
  68. package/dist/contracts/interfaces.js +2 -0
  69. package/dist/contracts/interfaces.js.map +1 -0
  70. package/dist/contracts/orchestration.d.ts +56 -0
  71. package/dist/contracts/orchestration.d.ts.map +1 -0
  72. package/dist/contracts/orchestration.js +2 -0
  73. package/dist/contracts/orchestration.js.map +1 -0
  74. package/dist/contracts/project.d.ts +70 -0
  75. package/dist/contracts/project.d.ts.map +1 -0
  76. package/dist/contracts/project.js +2 -0
  77. package/dist/contracts/project.js.map +1 -0
  78. package/dist/data/index.d.ts +2 -0
  79. package/dist/data/index.d.ts.map +1 -0
  80. package/dist/data/index.js +2 -0
  81. package/dist/data/index.js.map +1 -0
  82. package/dist/data/storage.d.ts +23 -0
  83. package/dist/data/storage.d.ts.map +1 -0
  84. package/dist/data/storage.js +93 -0
  85. package/dist/data/storage.js.map +1 -0
  86. package/dist/definitions/expressions/expression.d.ts +49 -0
  87. package/dist/definitions/expressions/expression.d.ts.map +1 -0
  88. package/dist/definitions/expressions/expression.js +181 -0
  89. package/dist/definitions/expressions/expression.js.map +1 -0
  90. package/dist/definitions/expressions/index.d.ts +2 -0
  91. package/dist/definitions/expressions/index.d.ts.map +1 -0
  92. package/dist/definitions/expressions/index.js +2 -0
  93. package/dist/definitions/expressions/index.js.map +1 -0
  94. package/dist/definitions/index.d.ts +7 -0
  95. package/dist/definitions/index.d.ts.map +1 -0
  96. package/dist/definitions/index.js +7 -0
  97. package/dist/definitions/index.js.map +1 -0
  98. package/dist/definitions/properties/advanced.d.ts +27 -0
  99. package/dist/definitions/properties/advanced.d.ts.map +1 -0
  100. package/dist/definitions/properties/advanced.js +95 -0
  101. package/dist/definitions/properties/advanced.js.map +1 -0
  102. package/dist/definitions/properties/base.d.ts +29 -0
  103. package/dist/definitions/properties/base.d.ts.map +1 -0
  104. package/dist/definitions/properties/base.js +60 -0
  105. package/dist/definitions/properties/base.js.map +1 -0
  106. package/dist/definitions/properties/composite.d.ts +14 -0
  107. package/dist/definitions/properties/composite.d.ts.map +1 -0
  108. package/dist/definitions/properties/composite.js +41 -0
  109. package/dist/definitions/properties/composite.js.map +1 -0
  110. package/dist/definitions/properties/enumeration.d.ts +17 -0
  111. package/dist/definitions/properties/enumeration.d.ts.map +1 -0
  112. package/dist/definitions/properties/enumeration.js +48 -0
  113. package/dist/definitions/properties/enumeration.js.map +1 -0
  114. package/dist/definitions/properties/generic.d.ts +22 -0
  115. package/dist/definitions/properties/generic.d.ts.map +1 -0
  116. package/dist/definitions/properties/generic.js +61 -0
  117. package/dist/definitions/properties/generic.js.map +1 -0
  118. package/dist/definitions/properties/index.d.ts +12 -0
  119. package/dist/definitions/properties/index.d.ts.map +1 -0
  120. package/dist/definitions/properties/index.js +3 -0
  121. package/dist/definitions/properties/index.js.map +1 -0
  122. package/dist/definitions/properties/metadata.d.ts +6 -0
  123. package/dist/definitions/properties/metadata.d.ts.map +1 -0
  124. package/dist/definitions/properties/metadata.js +4 -0
  125. package/dist/definitions/properties/metadata.js.map +1 -0
  126. package/dist/definitions/properties/primitive.d.ts +66 -0
  127. package/dist/definitions/properties/primitive.d.ts.map +1 -0
  128. package/dist/definitions/properties/primitive.js +266 -0
  129. package/dist/definitions/properties/primitive.js.map +1 -0
  130. package/dist/definitions/properties/property.d.ts +171 -0
  131. package/dist/definitions/properties/property.d.ts.map +1 -0
  132. package/dist/definitions/properties/property.js +211 -0
  133. package/dist/definitions/properties/property.js.map +1 -0
  134. package/dist/definitions/properties/temporal.d.ts +37 -0
  135. package/dist/definitions/properties/temporal.d.ts.map +1 -0
  136. package/dist/definitions/properties/temporal.js +115 -0
  137. package/dist/definitions/properties/temporal.js.map +1 -0
  138. package/dist/definitions/schemas/field.d.ts +123 -0
  139. package/dist/definitions/schemas/field.d.ts.map +1 -0
  140. package/dist/definitions/schemas/field.js +329 -0
  141. package/dist/definitions/schemas/field.js.map +1 -0
  142. package/dist/definitions/schemas/index.d.ts +6 -0
  143. package/dist/definitions/schemas/index.d.ts.map +1 -0
  144. package/dist/definitions/schemas/index.js +6 -0
  145. package/dist/definitions/schemas/index.js.map +1 -0
  146. package/dist/definitions/schemas/projection.d.ts +90 -0
  147. package/dist/definitions/schemas/projection.d.ts.map +1 -0
  148. package/dist/definitions/schemas/projection.js +146 -0
  149. package/dist/definitions/schemas/projection.js.map +1 -0
  150. package/dist/definitions/schemas/relation.d.ts +12 -0
  151. package/dist/definitions/schemas/relation.d.ts.map +1 -0
  152. package/dist/definitions/schemas/relation.js +27 -0
  153. package/dist/definitions/schemas/relation.js.map +1 -0
  154. package/dist/definitions/schemas/schema.d.ts +46 -0
  155. package/dist/definitions/schemas/schema.d.ts.map +1 -0
  156. package/dist/definitions/schemas/schema.js +134 -0
  157. package/dist/definitions/schemas/schema.js.map +1 -0
  158. package/dist/definitions/schemas/source.d.ts +30 -0
  159. package/dist/definitions/schemas/source.d.ts.map +1 -0
  160. package/dist/definitions/schemas/source.js +73 -0
  161. package/dist/definitions/schemas/source.js.map +1 -0
  162. package/dist/definitions/types/expressions.d.ts +28 -0
  163. package/dist/definitions/types/expressions.d.ts.map +1 -0
  164. package/dist/definitions/types/expressions.js +81 -0
  165. package/dist/definitions/types/expressions.js.map +1 -0
  166. package/dist/definitions/types/index.d.ts +4 -0
  167. package/dist/definitions/types/index.d.ts.map +1 -0
  168. package/dist/definitions/types/index.js +4 -0
  169. package/dist/definitions/types/index.js.map +1 -0
  170. package/dist/definitions/types/parameter.d.ts +9 -0
  171. package/dist/definitions/types/parameter.d.ts.map +1 -0
  172. package/dist/definitions/types/parameter.js +24 -0
  173. package/dist/definitions/types/parameter.js.map +1 -0
  174. package/dist/definitions/types/spec.d.ts +26 -0
  175. package/dist/definitions/types/spec.d.ts.map +1 -0
  176. package/dist/definitions/types/spec.js +74 -0
  177. package/dist/definitions/types/spec.js.map +1 -0
  178. package/dist/foundation/declaration.d.ts +24 -0
  179. package/dist/foundation/declaration.d.ts.map +1 -0
  180. package/dist/foundation/declaration.js +43 -0
  181. package/dist/foundation/declaration.js.map +1 -0
  182. package/dist/foundation/group.d.ts +55 -0
  183. package/dist/foundation/group.d.ts.map +1 -0
  184. package/dist/foundation/group.js +199 -0
  185. package/dist/foundation/group.js.map +1 -0
  186. package/dist/foundation/index.d.ts +7 -0
  187. package/dist/foundation/index.d.ts.map +1 -0
  188. package/dist/foundation/index.js +7 -0
  189. package/dist/foundation/index.js.map +1 -0
  190. package/dist/foundation/metadata.d.ts +22 -0
  191. package/dist/foundation/metadata.d.ts.map +1 -0
  192. package/dist/foundation/metadata.js +43 -0
  193. package/dist/foundation/metadata.js.map +1 -0
  194. package/dist/foundation/ref.d.ts +200 -0
  195. package/dist/foundation/ref.d.ts.map +1 -0
  196. package/dist/foundation/ref.js +230 -0
  197. package/dist/foundation/ref.js.map +1 -0
  198. package/dist/foundation/scope.d.ts +13 -0
  199. package/dist/foundation/scope.d.ts.map +1 -0
  200. package/dist/foundation/scope.js +63 -0
  201. package/dist/foundation/scope.js.map +1 -0
  202. package/dist/foundation/value-declaration.d.ts +9 -0
  203. package/dist/foundation/value-declaration.d.ts.map +1 -0
  204. package/dist/foundation/value-declaration.js +2 -0
  205. package/dist/foundation/value-declaration.js.map +1 -0
  206. package/dist/index.d.ts +16 -0
  207. package/dist/index.d.ts.map +1 -0
  208. package/dist/index.js +15 -0
  209. package/dist/index.js.map +1 -0
  210. package/dist/interaction/index.d.ts +3 -0
  211. package/dist/interaction/index.d.ts.map +1 -0
  212. package/dist/interaction/index.js +3 -0
  213. package/dist/interaction/index.js.map +1 -0
  214. package/dist/interaction/part.d.ts +58 -0
  215. package/dist/interaction/part.d.ts.map +1 -0
  216. package/dist/interaction/part.js +178 -0
  217. package/dist/interaction/part.js.map +1 -0
  218. package/dist/interaction/view.d.ts +34 -0
  219. package/dist/interaction/view.d.ts.map +1 -0
  220. package/dist/interaction/view.js +109 -0
  221. package/dist/interaction/view.js.map +1 -0
  222. package/dist/interfaces/facet.d.ts +6 -0
  223. package/dist/interfaces/facet.d.ts.map +1 -0
  224. package/dist/interfaces/facet.js +2 -0
  225. package/dist/interfaces/facet.js.map +1 -0
  226. package/dist/interfaces/http.d.ts +39 -0
  227. package/dist/interfaces/http.d.ts.map +1 -0
  228. package/dist/interfaces/http.js +109 -0
  229. package/dist/interfaces/http.js.map +1 -0
  230. package/dist/interfaces/index.d.ts +7 -0
  231. package/dist/interfaces/index.d.ts.map +1 -0
  232. package/dist/interfaces/index.js +7 -0
  233. package/dist/interfaces/index.js.map +1 -0
  234. package/dist/interfaces/representation.d.ts +14 -0
  235. package/dist/interfaces/representation.d.ts.map +1 -0
  236. package/dist/interfaces/representation.js +25 -0
  237. package/dist/interfaces/representation.js.map +1 -0
  238. package/dist/interfaces/schedule.d.ts +14 -0
  239. package/dist/interfaces/schedule.d.ts.map +1 -0
  240. package/dist/interfaces/schedule.js +46 -0
  241. package/dist/interfaces/schedule.js.map +1 -0
  242. package/dist/interfaces/surface.d.ts +22 -0
  243. package/dist/interfaces/surface.d.ts.map +1 -0
  244. package/dist/interfaces/surface.js +44 -0
  245. package/dist/interfaces/surface.js.map +1 -0
  246. package/dist/interfaces/websocket.d.ts +11 -0
  247. package/dist/interfaces/websocket.d.ts.map +1 -0
  248. package/dist/interfaces/websocket.js +25 -0
  249. package/dist/interfaces/websocket.js.map +1 -0
  250. package/dist/orchestration/index.d.ts +4 -0
  251. package/dist/orchestration/index.d.ts.map +1 -0
  252. package/dist/orchestration/index.js +4 -0
  253. package/dist/orchestration/index.js.map +1 -0
  254. package/dist/orchestration/steps.d.ts +41 -0
  255. package/dist/orchestration/steps.d.ts.map +1 -0
  256. package/dist/orchestration/steps.js +105 -0
  257. package/dist/orchestration/steps.js.map +1 -0
  258. package/dist/orchestration/value-source.d.ts +8 -0
  259. package/dist/orchestration/value-source.d.ts.map +1 -0
  260. package/dist/orchestration/value-source.js +10 -0
  261. package/dist/orchestration/value-source.js.map +1 -0
  262. package/dist/orchestration/workflow.d.ts +38 -0
  263. package/dist/orchestration/workflow.d.ts.map +1 -0
  264. package/dist/orchestration/workflow.js +116 -0
  265. package/dist/orchestration/workflow.js.map +1 -0
  266. package/dist/project/index.d.ts +2 -0
  267. package/dist/project/index.d.ts.map +1 -0
  268. package/dist/project/index.js +2 -0
  269. package/dist/project/index.js.map +1 -0
  270. package/dist/project/project.d.ts +27 -0
  271. package/dist/project/project.d.ts.map +1 -0
  272. package/dist/project/project.js +161 -0
  273. package/dist/project/project.js.map +1 -0
  274. package/dist/project/registry.d.ts +33 -0
  275. package/dist/project/registry.d.ts.map +1 -0
  276. package/dist/project/registry.js +58 -0
  277. package/dist/project/registry.js.map +1 -0
  278. package/dist/project/snapshot.d.ts +4 -0
  279. package/dist/project/snapshot.d.ts.map +1 -0
  280. package/dist/project/snapshot.js +15 -0
  281. package/dist/project/snapshot.js.map +1 -0
  282. package/dist/version.d.ts +3 -0
  283. package/dist/version.d.ts.map +1 -0
  284. package/dist/version.js +3 -0
  285. package/dist/version.js.map +1 -0
  286. package/package.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../../src/definitions/properties/composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,4BAA4B,CACvC,OAAO,SAAS,cAAc,GAAG,cAAc,CAC/C,SAAQ,uBAAuB,CAC/B,WAAW,EACX,iBAAiB,CAAC,OAAO,CAAC,EAC1B,SAAS,CACV;;IAEC,OAAO,CAAC,WAAW,CAAgC;IAEnD,YAAY,WAAW,EAAE,OAAO,EAG/B;IAED,UAAU,CAAC,GAAG,MAAM,EAAE,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAG7D;IAED,iBAAiB,IAAI,mBAAmB,CASvC;IAEQ,OAAO,IAAI,sBAAsB,CAYzC;CACF;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,cAAc,EACtD,WAAW,EAAE,CAAC,GACb,4BAA4B,CAAC,CAAC,CAAC,CAEjC"}
@@ -0,0 +1,41 @@
1
+ import { PropertyDeclarationBase } from "./base.js";
2
+ export class CompositePropertyDeclaration extends PropertyDeclarationBase {
3
+ #fields;
4
+ _invariants = [];
5
+ constructor(fieldsValue) {
6
+ super("composite");
7
+ this.#fields = { ...fieldsValue };
8
+ }
9
+ invariants(...values) {
10
+ this._invariants = [...values];
11
+ return this;
12
+ }
13
+ toInlineTypeState() {
14
+ const fields = {};
15
+ const required = [];
16
+ for (const key of Object.keys(this.#fields).sort()) {
17
+ const field = this.#fields[key];
18
+ fields[key] = field.toInlineTypeState();
19
+ if (!field.isOptional())
20
+ required.push(key);
21
+ }
22
+ return { kind: "object", fields, required };
23
+ }
24
+ toState() {
25
+ const mapped = {};
26
+ for (const key of Object.keys(this.#fields).sort()) {
27
+ mapped[key] = this.#fields[key].toCompositeState();
28
+ }
29
+ return {
30
+ identity: this.identity,
31
+ kind: "composite",
32
+ fields: mapped,
33
+ invariants: this._invariants.map((value) => value.ref()),
34
+ ...this.propertyMetadataState(),
35
+ };
36
+ }
37
+ }
38
+ export function composite(fieldsValue) {
39
+ return new CompositePropertyDeclaration(fieldsValue);
40
+ }
41
+ //# sourceMappingURL=composite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite.js","sourceRoot":"","sources":["../../../src/definitions/properties/composite.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,MAAM,OAAO,4BAEX,SAAQ,uBAIT;IACU,OAAO,CAAU;IAClB,WAAW,GAA6B,EAAE,CAAC;IAEnD,YAAY,WAAoB;QAC9B,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,WAAW,EAAa,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,GAAG,MAAyC;QACrD,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,MAAM,MAAM,GAAwC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAEQ,OAAO;QACd,MAAM,MAAM,GAAwC,EAAE,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC,gBAAgB,EAAE,CAAC;QACtD,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACxD,GAAG,IAAI,CAAC,qBAAqB,EAAE;SAChC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,SAAS,CACvB,WAAc;IAEd,OAAO,IAAI,4BAA4B,CAAC,WAAW,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { EnumMemberState, EnumPropertyState, QueryDomain } from "../../contracts/index.js";
2
+ import { PropertyDeclarationBase } from "./base.js";
3
+ export declare class EnumPropertyDeclaration<T extends string | number | boolean, D extends Extract<QueryDomain, "scalar" | "temporal"> = "scalar"> extends PropertyDeclarationBase<"enum", T, D> {
4
+ #private;
5
+ private _ordered;
6
+ constructor(values: Readonly<Record<string, EnumMemberState>>);
7
+ ordered(): EnumPropertyDeclaration<T, "temporal">;
8
+ ordered(value: true): EnumPropertyDeclaration<T, "temporal">;
9
+ ordered(value: false): EnumPropertyDeclaration<T, "scalar">;
10
+ toState(): EnumPropertyState;
11
+ }
12
+ export declare function enumMember(value: string | number | boolean, options?: {
13
+ readonly title?: string;
14
+ readonly description?: string;
15
+ }): EnumMemberState;
16
+ export declare function enumeration<const T extends Readonly<Record<string, string | number | boolean | EnumMemberState>>>(values: T): EnumPropertyDeclaration<T[keyof T] extends EnumMemberState ? T[keyof T]["value"] : Extract<T[keyof T], string | number | boolean>, "scalar">;
17
+ //# sourceMappingURL=enumeration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enumeration.d.ts","sourceRoot":"","sources":["../../../src/definitions/properties/enumeration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAMxE,qBAAa,uBAAuB,CAClC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EACnC,CAAC,SAAS,OAAO,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,QAAQ,CAChE,SAAQ,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;;IAE7C,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAM5D;IAED,OAAO,IAAI,uBAAuB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,uBAAuB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAMnD,OAAO,IAAI,iBAAiB,CAQpC;CACF;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAChC,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACvE,eAAe,CAejB;AAED,wBAAgB,WAAW,CACzB,KAAK,CAAC,CAAC,SAAS,QAAQ,CACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC,CAC5D,EAED,MAAM,EAAE,CAAC,GACR,uBAAuB,CACxB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,eAAe,GAC9B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAClD,QAAQ,CACT,CAYA"}
@@ -0,0 +1,48 @@
1
+ import { requireText } from "../../foundation/metadata.js";
2
+ import { PropertyDeclarationBase } from "./base.js";
3
+ export class EnumPropertyDeclaration extends PropertyDeclarationBase {
4
+ #values;
5
+ _ordered = false;
6
+ constructor(values) {
7
+ super("enum");
8
+ if (Object.keys(values).length === 0) {
9
+ throw new TypeError("enum values must not be empty");
10
+ }
11
+ this.#values = { ...values };
12
+ }
13
+ ordered(value = true) {
14
+ this._ordered = value;
15
+ return this;
16
+ }
17
+ toState() {
18
+ return {
19
+ identity: this.identity,
20
+ kind: "enum",
21
+ values: { ...this.#values },
22
+ ordered: this._ordered,
23
+ ...this.propertyMetadataState(),
24
+ };
25
+ }
26
+ }
27
+ export function enumMember(value, options = {}) {
28
+ return {
29
+ value,
30
+ ...(options.title === undefined
31
+ ? {}
32
+ : { title: requireText(options.title, "enum member title") }),
33
+ ...(options.description === undefined
34
+ ? {}
35
+ : {
36
+ description: requireText(options.description, "enum member description"),
37
+ }),
38
+ };
39
+ }
40
+ export function enumeration(values) {
41
+ const members = {};
42
+ for (const key of Object.keys(values).sort()) {
43
+ const value = values[key];
44
+ members[key] = typeof value === "object" ? { ...value } : { value };
45
+ }
46
+ return new EnumPropertyDeclaration(members);
47
+ }
48
+ //# sourceMappingURL=enumeration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enumeration.js","sourceRoot":"","sources":["../../../src/definitions/properties/enumeration.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAMxE,MAAM,OAAO,uBAGX,SAAQ,uBAAqC;IACpC,OAAO,CAAkC;IAC1C,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,MAAiD;QAC3D,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/B,CAAC;IAKD,OAAO,CAAC,KAAK,GAAG,IAAI;QAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,OAAO,IAA4C,CAAC;IACtD,CAAC;IAEQ,OAAO;QACd,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;YAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,GAAG,IAAI,CAAC,qBAAqB,EAAE;SAChC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CACxB,KAAgC,EAChC,OAAO,GAA+D,EAAE;IAExE,OAAO;QACL,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;YAC7B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,WAAW,EAAE,WAAW,CACtB,OAAO,CAAC,WAAW,EACnB,yBAAyB,CAC1B;aACF,CAAC;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAKzB,MAAS;IAOT,MAAM,OAAO,GAAoC,EAAE,CAAC;IACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAKzC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { GenericApplicationPropertyState, GenericDefinitionPropertyState, TypeExpressionState } from "../../contracts/index.js";
2
+ import type { TypeParameter } from "../types/parameter.js";
3
+ import type { PropertyRef } from "../../foundation/ref.js";
4
+ import { PropertyDeclarationBase } from "./base.js";
5
+ declare abstract class GenericPropertyDeclarationBase<T> extends PropertyDeclarationBase<"generic", T, "complex"> {
6
+ protected constructor();
7
+ }
8
+ export declare class GenericDefinitionPropertyDeclaration<T = unknown> extends GenericPropertyDeclarationBase<T> {
9
+ #private;
10
+ constructor(parameters: readonly TypeParameter[], value: TypeExpressionState);
11
+ parameterCount(): number;
12
+ bodyExpressionState(): TypeExpressionState;
13
+ toState(): GenericDefinitionPropertyState;
14
+ }
15
+ export declare class GenericApplicationPropertyDeclaration<T = unknown> extends GenericPropertyDeclarationBase<T> {
16
+ #private;
17
+ constructor(target: PropertyRef<"generic", unknown, "complex">, arguments_: readonly TypeExpressionState[]);
18
+ expressionState(): TypeExpressionState;
19
+ toState(): GenericApplicationPropertyState;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=generic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../src/definitions/properties/generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,8BAA8B,EAC9B,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,uBAAe,8BAA8B,CAC3C,CAAC,CACD,SAAQ,uBAAuB,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC;IACxD,SAAS,eAER;CACF;AAED,qBAAa,oCAAoC,CAC/C,CAAC,GAAG,OAAO,CACX,SAAQ,8BAA8B,CAAC,CAAC,CAAC;;IAIzC,YACE,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,KAAK,EAAE,mBAAmB,EAQ3B;IAED,cAAc,IAAI,MAAM,CAEvB;IAED,mBAAmB,IAAI,mBAAmB,CAEzC;IAEQ,OAAO,IAAI,8BAA8B,CASjD;CACF;AAED,qBAAa,qCAAqC,CAChD,CAAC,GAAG,OAAO,CACX,SAAQ,8BAA8B,CAAC,CAAC,CAAC;;IAIzC,YACE,MAAM,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAClD,UAAU,EAAE,SAAS,mBAAmB,EAAE,EAK3C;IAED,eAAe,IAAI,mBAAmB,CAMrC;IAEQ,OAAO,IAAI,+BAA+B,CASlD;CACF"}
@@ -0,0 +1,61 @@
1
+ import { PropertyDeclarationBase } from "./base.js";
2
+ class GenericPropertyDeclarationBase extends PropertyDeclarationBase {
3
+ constructor() {
4
+ super("generic");
5
+ }
6
+ }
7
+ export class GenericDefinitionPropertyDeclaration extends GenericPropertyDeclarationBase {
8
+ #parameters;
9
+ #value;
10
+ constructor(parameters, value) {
11
+ super();
12
+ if (parameters.length === 0) {
13
+ throw new TypeError("generic definitions require at least one parameter");
14
+ }
15
+ this.#parameters = [...parameters];
16
+ this.#value = value;
17
+ }
18
+ parameterCount() {
19
+ return this.#parameters.length;
20
+ }
21
+ bodyExpressionState() {
22
+ return this.#value;
23
+ }
24
+ toState() {
25
+ return {
26
+ identity: this.identity,
27
+ kind: "generic",
28
+ genericKind: "definition",
29
+ parameters: this.#parameters.map((value) => value.toState()),
30
+ value: this.#value,
31
+ ...this.propertyMetadataState(),
32
+ };
33
+ }
34
+ }
35
+ export class GenericApplicationPropertyDeclaration extends GenericPropertyDeclarationBase {
36
+ #target;
37
+ #arguments;
38
+ constructor(target, arguments_) {
39
+ super();
40
+ this.#target = target;
41
+ this.#arguments = [...arguments_];
42
+ }
43
+ expressionState() {
44
+ return {
45
+ kind: "generic",
46
+ target: this.#target.ref(),
47
+ arguments: [...this.#arguments],
48
+ };
49
+ }
50
+ toState() {
51
+ return {
52
+ identity: this.identity,
53
+ kind: "generic",
54
+ genericKind: "application",
55
+ target: this.#target.ref(),
56
+ arguments: [...this.#arguments],
57
+ ...this.propertyMetadataState(),
58
+ };
59
+ }
60
+ }
61
+ //# sourceMappingURL=generic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../src/definitions/properties/generic.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,MAAe,8BAEb,SAAQ,uBAAgD;IACxD;QACE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,oCAEX,SAAQ,8BAAiC;IAChC,WAAW,CAA2B;IACtC,MAAM,CAAsB;IAErC,YACE,UAAoC,EACpC,KAA0B;QAE1B,KAAK,EAAE,CAAC;QACR,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEQ,OAAO;QACd,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC5D,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,GAAG,IAAI,CAAC,qBAAqB,EAAE;SAChC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,qCAEX,SAAQ,8BAAiC;IAChC,OAAO,CAA6C;IACpD,UAAU,CAAiC;IAEpD,YACE,MAAkD,EAClD,UAA0C;QAE1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,eAAe;QACb,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;SAChC,CAAC;IACJ,CAAC;IAEQ,OAAO;QACd,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/B,GAAG,IAAI,CAAC,qBAAqB,EAAE;SAChC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ export { property } from "./property.js";
2
+ export type { DecimalPropertyOptions, NumberFormatOptions, PropertyInput, UnionPropertyInput, } from "./property.js";
3
+ export { enumMember } from "./enumeration.js";
4
+ export type { LengthConstraintInput, NumberPropertyOptions, PatternConstraintInput, RangeConstraintInput, } from "./primitive.js";
5
+ export type { BooleanPropertyDeclaration, NumberPropertyDeclaration, StringPropertyDeclaration, } from "./primitive.js";
6
+ export type { TemporalBoundInput, TemporalIntervalValue, TemporalPropertyDeclaration, TemporalPropertyOptions, TemporalRangeInput, } from "./temporal.js";
7
+ export type { PropertyLifecycleInput } from "./base.js";
8
+ export type { EnumPropertyDeclaration } from "./enumeration.js";
9
+ export type { CompositePropertyDeclaration } from "./composite.js";
10
+ export type { LiteralPropertyDeclaration, RecordPropertyDeclaration, TuplePropertyDeclaration, UnionPropertyDeclaration, } from "./advanced.js";
11
+ export type { GenericApplicationPropertyDeclaration, GenericDefinitionPropertyDeclaration, } from "./generic.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/definitions/properties/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,YAAY,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AACvF,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { property } from "./property.js";
2
+ export { enumMember } from "./enumeration.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/definitions/properties/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAO7D,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { CanonicalValue } from "../../contracts/index.js";
2
+ export interface DefinitionMetadata {
3
+ readonly examples: readonly CanonicalValue[];
4
+ }
5
+ export declare function definitionMetadata(examples: readonly CanonicalValue[]): DefinitionMetadata;
6
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/definitions/properties/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CAC9C;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,kBAAkB,CAEpB"}
@@ -0,0 +1,4 @@
1
+ export function definitionMetadata(examples) {
2
+ return { examples: [...examples] };
3
+ }
4
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/definitions/properties/metadata.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,kBAAkB,CAChC,QAAmC;IAEnC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,66 @@
1
+ import type { BooleanPropertyState, CanonicalValue, NumberKindState, NumberPropertyState, StringFormatState, StringKindState, StringPropertyState } from "../../contracts/index.js";
2
+ import { PropertyDeclarationBase } from "./base.js";
3
+ export type LengthConstraintInput = {
4
+ readonly exact: number;
5
+ readonly min?: never;
6
+ readonly max?: never;
7
+ } | {
8
+ readonly exact?: never;
9
+ readonly min?: number;
10
+ readonly max?: number;
11
+ };
12
+ export interface RangeConstraintInput {
13
+ readonly min?: number;
14
+ readonly max?: number;
15
+ }
16
+ export interface PatternConstraintInput {
17
+ readonly match?: readonly string[];
18
+ readonly starts?: readonly string[];
19
+ readonly ends?: readonly string[];
20
+ readonly allow?: readonly string[];
21
+ readonly deny?: readonly string[];
22
+ }
23
+ export interface NumberPropertyOptions {
24
+ readonly format?: string;
25
+ readonly range?: RangeConstraintInput;
26
+ readonly multipleOf?: number;
27
+ readonly bits?: number;
28
+ readonly unsigned?: boolean;
29
+ readonly precision?: number;
30
+ readonly scale?: number;
31
+ /** ISO 4217 code; money properties only. */
32
+ readonly currency?: string;
33
+ /** The amount counts minor units (cents); money properties only, and integer. */
34
+ readonly minorUnits?: true;
35
+ }
36
+ export declare class StringPropertyDeclaration extends PropertyDeclarationBase<"primitive", string, "string"> {
37
+ #private;
38
+ private _length;
39
+ private _pattern;
40
+ constructor(kind: StringKindState, format?: StringFormatState);
41
+ length(value: LengthConstraintInput): this;
42
+ pattern(value: PatternConstraintInput): this;
43
+ toState(): StringPropertyState;
44
+ }
45
+ export declare class NumberPropertyDeclaration extends PropertyDeclarationBase<"primitive", number, "number"> {
46
+ #private;
47
+ private _range;
48
+ private _multipleOf;
49
+ constructor(kind: NumberKindState, options?: NumberPropertyOptions);
50
+ range(value: RangeConstraintInput): this;
51
+ between(min: number, max: number): this;
52
+ atLeast(min: number): this;
53
+ atMost(max: number): this;
54
+ multipleOf(value: number): this;
55
+ toState(): NumberPropertyState;
56
+ }
57
+ export declare class BooleanPropertyDeclaration extends PropertyDeclarationBase<"primitive", boolean, "scalar"> {
58
+ constructor();
59
+ toState(): BooleanPropertyState;
60
+ }
61
+ export declare function textProperty(): StringPropertyDeclaration;
62
+ export declare function formattedStringProperty(format: StringFormatState): StringPropertyDeclaration;
63
+ export declare function numberProperty(kind?: NumberKindState, options?: NumberPropertyOptions): NumberPropertyDeclaration;
64
+ export declare function booleanProperty(): BooleanPropertyDeclaration;
65
+ export declare function canonicalExamples(values: readonly CanonicalValue[]): CanonicalValue[];
66
+ //# sourceMappingURL=primitive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../../../src/definitions/properties/primitive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,266 @@
1
+ import { STRING_FORMATS } from "../../contracts/index.js";
2
+ import { requireText } from "../../foundation/metadata.js";
3
+ import { PropertyDeclarationBase } from "./base.js";
4
+ const opaqueStringFormats = new Set(["uuid", "ulid", "base64", "hex", "jwt"]);
5
+ function lengthConstraint(value) {
6
+ const exact = value.exact;
7
+ const min = value.min;
8
+ const max = value.max;
9
+ if (exact !== undefined) {
10
+ if (!Number.isInteger(exact) || exact < 0) {
11
+ throw new TypeError("length exact must be a non-negative integer");
12
+ }
13
+ return { exact };
14
+ }
15
+ if (min === undefined && max === undefined) {
16
+ throw new TypeError("length requires exact or at least one of min/max");
17
+ }
18
+ for (const [name, item] of [
19
+ ["min", min],
20
+ ["max", max],
21
+ ]) {
22
+ if (item !== undefined && (!Number.isInteger(item) || item < 0)) {
23
+ throw new TypeError(`length ${name} must be a non-negative integer`);
24
+ }
25
+ }
26
+ if (min !== undefined && max !== undefined && min > max) {
27
+ throw new TypeError("length min must not exceed max");
28
+ }
29
+ return {
30
+ ...(min === undefined ? {} : { min }),
31
+ ...(max === undefined ? {} : { max }),
32
+ };
33
+ }
34
+ function rangeConstraint(value) {
35
+ if (value.min === undefined && value.max === undefined) {
36
+ throw new TypeError("range requires at least one of min/max");
37
+ }
38
+ if (value.min !== undefined &&
39
+ value.max !== undefined &&
40
+ value.min > value.max) {
41
+ throw new TypeError("range min must not exceed max");
42
+ }
43
+ return {
44
+ ...(value.min === undefined ? {} : { min: value.min }),
45
+ ...(value.max === undefined ? {} : { max: value.max }),
46
+ };
47
+ }
48
+ function patternConstraint(value) {
49
+ const result = {};
50
+ for (const name of ["match", "starts", "ends", "allow", "deny"]) {
51
+ const entries = value[name];
52
+ if (entries === undefined)
53
+ continue;
54
+ if (entries.length === 0) {
55
+ throw new TypeError(`pattern ${name} must not be empty`);
56
+ }
57
+ const normalized = entries.map((entry) => requireText(entry, `pattern ${name} entry`));
58
+ if (new Set(normalized).size !== normalized.length) {
59
+ throw new TypeError(`pattern ${name} entries must be unique`);
60
+ }
61
+ result[name] = [...normalized].sort();
62
+ }
63
+ if (Object.keys(result).length === 0) {
64
+ throw new TypeError("pattern requires at least one matching constraint");
65
+ }
66
+ return result;
67
+ }
68
+ export class StringPropertyDeclaration extends PropertyDeclarationBase {
69
+ #stringKind;
70
+ #format;
71
+ _length;
72
+ _pattern;
73
+ constructor(kind, format) {
74
+ super("primitive");
75
+ this.#stringKind = kind;
76
+ if (kind === "text" && format !== undefined) {
77
+ throw new TypeError("text string properties must not define a format");
78
+ }
79
+ if (kind === "format" && format === undefined) {
80
+ throw new TypeError("formatted string properties require a format");
81
+ }
82
+ if (format !== undefined &&
83
+ !STRING_FORMATS.includes(format)) {
84
+ throw new TypeError(`unknown string format ${JSON.stringify(format)}; use text with a pattern instead`);
85
+ }
86
+ this.#format = format;
87
+ }
88
+ length(value) {
89
+ if (this.#format !== undefined && opaqueStringFormats.has(this.#format)) {
90
+ throw new TypeError(`opaque string format ${JSON.stringify(this.#format)} cannot define length`);
91
+ }
92
+ this._length = lengthConstraint(value);
93
+ return this;
94
+ }
95
+ pattern(value) {
96
+ if (this.#format !== undefined && opaqueStringFormats.has(this.#format)) {
97
+ throw new TypeError(`opaque string format ${JSON.stringify(this.#format)} cannot define pattern`);
98
+ }
99
+ this._pattern = patternConstraint(value);
100
+ return this;
101
+ }
102
+ toState() {
103
+ return {
104
+ identity: this.identity,
105
+ kind: "primitive",
106
+ type: "string",
107
+ primitiveKind: this.#stringKind,
108
+ ...(this.#format === undefined ? {} : { format: this.#format }),
109
+ ...(this._length === undefined ? {} : { length: { ...this._length } }),
110
+ ...(this._pattern === undefined
111
+ ? {}
112
+ : {
113
+ pattern: Object.fromEntries(Object.entries(this._pattern).map(([key, entries]) => [
114
+ key,
115
+ [...entries],
116
+ ])),
117
+ }),
118
+ ...this.propertyMetadataState(),
119
+ };
120
+ }
121
+ }
122
+ export class NumberPropertyDeclaration extends PropertyDeclarationBase {
123
+ #numberKind;
124
+ #format;
125
+ #bits;
126
+ #unsigned;
127
+ #precision;
128
+ #scale;
129
+ #currency;
130
+ #minorUnits;
131
+ _range;
132
+ _multipleOf;
133
+ constructor(kind, options = {}) {
134
+ super("primitive");
135
+ this.#numberKind = kind;
136
+ this.#format =
137
+ options.format === undefined
138
+ ? undefined
139
+ : requireText(options.format, "number format");
140
+ if (kind === "integer") {
141
+ if (options.precision !== undefined || options.scale !== undefined) {
142
+ throw new TypeError("integer number properties cannot define precision or scale");
143
+ }
144
+ }
145
+ else if (options.bits !== undefined || options.unsigned !== undefined) {
146
+ throw new TypeError("bits and unsigned are only valid for integer number properties");
147
+ }
148
+ if (options.bits !== undefined) {
149
+ if (!Number.isInteger(options.bits) || options.bits <= 0) {
150
+ throw new TypeError("number bits must be a positive integer");
151
+ }
152
+ }
153
+ if (kind === "decimal") {
154
+ if (options.precision === undefined || options.scale === undefined) {
155
+ throw new TypeError("decimal number properties require precision and scale");
156
+ }
157
+ if (!Number.isInteger(options.precision) || options.precision <= 0) {
158
+ throw new TypeError("decimal precision must be a positive integer");
159
+ }
160
+ if (!Number.isInteger(options.scale) || options.scale < 0) {
161
+ throw new TypeError("decimal scale must be a non-negative integer");
162
+ }
163
+ if (options.scale > options.precision) {
164
+ throw new TypeError("decimal scale must not exceed precision");
165
+ }
166
+ }
167
+ else if (options.precision !== undefined || options.scale !== undefined) {
168
+ throw new TypeError("precision and scale are only valid for decimal number properties");
169
+ }
170
+ if ((options.currency !== undefined || options.minorUnits) &&
171
+ options.format !== "money") {
172
+ throw new TypeError("currency and minorUnits are only valid for money properties");
173
+ }
174
+ if (options.format === "money") {
175
+ if (options.minorUnits && kind !== "integer") {
176
+ throw new TypeError("money in minor units must be an integer");
177
+ }
178
+ if (!options.minorUnits && kind !== "decimal") {
179
+ throw new TypeError("money in major units must be a decimal");
180
+ }
181
+ }
182
+ if (options.currency !== undefined &&
183
+ !/^[A-Z]{3}$/.test(options.currency)) {
184
+ throw new TypeError("currency must be an ISO 4217 code such as KES");
185
+ }
186
+ this.#currency = options.currency;
187
+ this.#minorUnits = options.minorUnits;
188
+ this.#bits = options.bits;
189
+ this.#unsigned = options.unsigned;
190
+ this.#precision = options.precision;
191
+ this.#scale = options.scale;
192
+ if (options.range !== undefined)
193
+ this._range = rangeConstraint(options.range);
194
+ if (options.multipleOf !== undefined)
195
+ this.multipleOf(options.multipleOf);
196
+ }
197
+ range(value) {
198
+ this._range = rangeConstraint(value);
199
+ return this;
200
+ }
201
+ between(min, max) {
202
+ return this.range({ min, max });
203
+ }
204
+ atLeast(min) {
205
+ return this.range({ min });
206
+ }
207
+ atMost(max) {
208
+ return this.range({ max });
209
+ }
210
+ multipleOf(value) {
211
+ if (!Number.isFinite(value) || value <= 0) {
212
+ throw new TypeError("multipleOf must be a positive finite number");
213
+ }
214
+ this._multipleOf = value;
215
+ return this;
216
+ }
217
+ toState() {
218
+ return {
219
+ identity: this.identity,
220
+ kind: "primitive",
221
+ type: "number",
222
+ primitiveKind: this.#numberKind,
223
+ ...(this.#format === undefined ? {} : { format: this.#format }),
224
+ ...(this._range === undefined ? {} : { range: { ...this._range } }),
225
+ ...(this._multipleOf === undefined
226
+ ? {}
227
+ : { multipleOf: this._multipleOf }),
228
+ ...(this.#bits === undefined ? {} : { bits: this.#bits }),
229
+ ...(this.#unsigned === undefined ? {} : { unsigned: this.#unsigned }),
230
+ ...(this.#precision === undefined ? {} : { precision: this.#precision }),
231
+ ...(this.#scale === undefined ? {} : { scale: this.#scale }),
232
+ ...(this.#currency === undefined ? {} : { currency: this.#currency }),
233
+ ...(this.#minorUnits === undefined ? {} : { minorUnits: true }),
234
+ ...this.propertyMetadataState(),
235
+ };
236
+ }
237
+ }
238
+ export class BooleanPropertyDeclaration extends PropertyDeclarationBase {
239
+ constructor() {
240
+ super("primitive");
241
+ }
242
+ toState() {
243
+ return {
244
+ identity: this.identity,
245
+ kind: "primitive",
246
+ type: "boolean",
247
+ ...this.propertyMetadataState(),
248
+ };
249
+ }
250
+ }
251
+ export function textProperty() {
252
+ return new StringPropertyDeclaration("text");
253
+ }
254
+ export function formattedStringProperty(format) {
255
+ return new StringPropertyDeclaration("format", format);
256
+ }
257
+ export function numberProperty(kind = "number", options = {}) {
258
+ return new NumberPropertyDeclaration(kind, options);
259
+ }
260
+ export function booleanProperty() {
261
+ return new BooleanPropertyDeclaration();
262
+ }
263
+ export function canonicalExamples(values) {
264
+ return [...values];
265
+ }
266
+ //# sourceMappingURL=primitive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive.js","sourceRoot":"","sources":["../../../src/definitions/properties/primitive.ts"],"names":[],"mappings":"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"}