@fougere/schema 0.2.0-alpha.2 → 0.4.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/README.md +1 -1
  2. package/dist/EntityAdapters.d.ts +26 -0
  3. package/dist/EntityAdapters.d.ts.map +1 -0
  4. package/dist/EntityAdapters.js +71 -0
  5. package/dist/EntityAdapters.js.map +1 -0
  6. package/dist/EntityDeclarations.d.ts +15 -0
  7. package/dist/EntityDeclarations.d.ts.map +1 -0
  8. package/dist/EntityDeclarations.js +2 -0
  9. package/dist/EntityDeclarations.js.map +1 -0
  10. package/dist/axis/Axis.d.ts +12 -0
  11. package/dist/axis/Axis.d.ts.map +1 -0
  12. package/dist/axis/Axis.js +11 -0
  13. package/dist/axis/Axis.js.map +1 -0
  14. package/dist/axis/Meta.d.ts +4 -0
  15. package/dist/axis/Meta.d.ts.map +1 -0
  16. package/dist/axis/Meta.js +2 -0
  17. package/dist/axis/Meta.js.map +1 -0
  18. package/dist/axis/boundary/Boundaries.d.ts +20 -0
  19. package/dist/axis/boundary/Boundaries.d.ts.map +1 -0
  20. package/dist/axis/boundary/Boundaries.js +31 -0
  21. package/dist/axis/boundary/Boundaries.js.map +1 -0
  22. package/dist/axis/boundary/Boundary.d.ts +26 -0
  23. package/dist/axis/boundary/Boundary.d.ts.map +1 -0
  24. package/dist/axis/boundary/Boundary.js +53 -0
  25. package/dist/axis/boundary/Boundary.js.map +1 -0
  26. package/dist/axis/boundary/BoundaryAxis.d.ts +4 -0
  27. package/dist/axis/boundary/BoundaryAxis.d.ts.map +1 -0
  28. package/dist/axis/boundary/BoundaryAxis.js +30 -0
  29. package/dist/axis/boundary/BoundaryAxis.js.map +1 -0
  30. package/dist/axis/lifecycle/Clock.d.ts +18 -0
  31. package/dist/axis/lifecycle/Clock.d.ts.map +1 -0
  32. package/dist/axis/lifecycle/Clock.js +25 -0
  33. package/dist/axis/lifecycle/Clock.js.map +1 -0
  34. package/dist/axis/lifecycle/Generators.d.ts +18 -0
  35. package/dist/axis/lifecycle/Generators.d.ts.map +1 -0
  36. package/dist/axis/lifecycle/Generators.js +38 -0
  37. package/dist/axis/lifecycle/Generators.js.map +1 -0
  38. package/dist/axis/lifecycle/Lifecycle.d.ts +28 -0
  39. package/dist/axis/lifecycle/Lifecycle.d.ts.map +1 -0
  40. package/dist/axis/lifecycle/Lifecycle.js +38 -0
  41. package/dist/axis/lifecycle/Lifecycle.js.map +1 -0
  42. package/dist/axis/lifecycle/LifecycleAxis.d.ts +4 -0
  43. package/dist/axis/lifecycle/LifecycleAxis.d.ts.map +1 -0
  44. package/dist/axis/lifecycle/LifecycleAxis.js +47 -0
  45. package/dist/axis/lifecycle/LifecycleAxis.js.map +1 -0
  46. package/dist/axis/lifecycle/apply.d.ts +6 -0
  47. package/dist/axis/lifecycle/apply.d.ts.map +1 -0
  48. package/dist/axis/lifecycle/apply.js +34 -0
  49. package/dist/axis/lifecycle/apply.js.map +1 -0
  50. package/dist/axis/role/Relation.d.ts +20 -0
  51. package/dist/axis/role/Relation.d.ts.map +1 -0
  52. package/dist/axis/role/Relation.js +21 -0
  53. package/dist/axis/role/Relation.js.map +1 -0
  54. package/dist/axis/role/Role.d.ts +26 -0
  55. package/dist/axis/role/Role.d.ts.map +1 -0
  56. package/dist/axis/role/Role.js +40 -0
  57. package/dist/axis/role/Role.js.map +1 -0
  58. package/dist/axis/role/RoleAxis.d.ts +5 -0
  59. package/dist/axis/role/RoleAxis.d.ts.map +1 -0
  60. package/dist/axis/role/RoleAxis.js +102 -0
  61. package/dist/axis/role/RoleAxis.js.map +1 -0
  62. package/dist/axis/shape/Formats.d.ts +8 -0
  63. package/dist/axis/shape/Formats.d.ts.map +1 -0
  64. package/dist/axis/shape/Formats.js +10 -0
  65. package/dist/axis/shape/Formats.js.map +1 -0
  66. package/dist/axis/shape/Shape.d.ts +58 -0
  67. package/dist/axis/shape/Shape.d.ts.map +1 -0
  68. package/dist/{field/shape.js → axis/shape/Shape.js} +10 -25
  69. package/dist/axis/shape/Shape.js.map +1 -0
  70. package/dist/card/Bundle.d.ts +15 -0
  71. package/dist/card/Bundle.d.ts.map +1 -0
  72. package/dist/card/Bundle.js +67 -0
  73. package/dist/card/Bundle.js.map +1 -0
  74. package/dist/card/Card.d.ts +27 -0
  75. package/dist/card/Card.d.ts.map +1 -0
  76. package/dist/card/Card.js +230 -0
  77. package/dist/card/Card.js.map +1 -0
  78. package/dist/card/Descriptor.d.ts +55 -0
  79. package/dist/card/Descriptor.d.ts.map +1 -0
  80. package/dist/card/Descriptor.js +2 -0
  81. package/dist/card/Descriptor.js.map +1 -0
  82. package/dist/card/EntityTypeSource.d.ts +12 -0
  83. package/dist/card/EntityTypeSource.d.ts.map +1 -0
  84. package/dist/card/EntityTypeSource.js +78 -0
  85. package/dist/card/EntityTypeSource.js.map +1 -0
  86. package/dist/card/FacadeTypeSource.d.ts +19 -0
  87. package/dist/card/FacadeTypeSource.d.ts.map +1 -0
  88. package/dist/card/FacadeTypeSource.js +40 -0
  89. package/dist/card/FacadeTypeSource.js.map +1 -0
  90. package/dist/card/admission.d.ts +9 -0
  91. package/dist/card/admission.d.ts.map +1 -0
  92. package/dist/card/admission.js +16 -0
  93. package/dist/card/admission.js.map +1 -0
  94. package/dist/card/diff.d.ts +96 -0
  95. package/dist/card/diff.d.ts.map +1 -0
  96. package/dist/card/diff.js +2 -0
  97. package/dist/card/diff.js.map +1 -0
  98. package/dist/constraint/FieldGroup.d.ts +21 -0
  99. package/dist/constraint/FieldGroup.d.ts.map +1 -0
  100. package/dist/constraint/FieldGroup.js +65 -0
  101. package/dist/constraint/FieldGroup.js.map +1 -0
  102. package/dist/constraint/Unique.d.ts +4 -0
  103. package/dist/constraint/Unique.d.ts.map +1 -0
  104. package/dist/constraint/Unique.js +4 -0
  105. package/dist/constraint/Unique.js.map +1 -0
  106. package/dist/entity.d.ts +4 -19
  107. package/dist/entity.d.ts.map +1 -1
  108. package/dist/entity.js +8 -39
  109. package/dist/entity.js.map +1 -1
  110. package/dist/fields/Field.d.ts +24 -0
  111. package/dist/fields/Field.d.ts.map +1 -0
  112. package/dist/fields/Field.js +52 -0
  113. package/dist/fields/Field.js.map +1 -0
  114. package/dist/fields/FieldSet.d.ts +28 -0
  115. package/dist/fields/FieldSet.d.ts.map +1 -0
  116. package/dist/fields/FieldSet.js +55 -0
  117. package/dist/fields/FieldSet.js.map +1 -0
  118. package/dist/index.d.ts +59 -37
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +50 -48
  121. package/dist/index.js.map +1 -1
  122. package/dist/judge/Cases.d.ts +50 -0
  123. package/dist/judge/Cases.d.ts.map +1 -0
  124. package/dist/judge/Cases.js +108 -0
  125. package/dist/judge/Cases.js.map +1 -0
  126. package/dist/judge/FieldJudge.d.ts +9 -0
  127. package/dist/judge/FieldJudge.d.ts.map +1 -0
  128. package/dist/judge/FieldJudge.js +54 -0
  129. package/dist/judge/FieldJudge.js.map +1 -0
  130. package/dist/judge/RowJudge.d.ts +12 -0
  131. package/dist/judge/RowJudge.d.ts.map +1 -0
  132. package/dist/judge/RowJudge.js +81 -0
  133. package/dist/judge/RowJudge.js.map +1 -0
  134. package/dist/judge/RowRefusal.d.ts +17 -0
  135. package/dist/judge/RowRefusal.d.ts.map +1 -0
  136. package/dist/judge/RowRefusal.js +16 -0
  137. package/dist/judge/RowRefusal.js.map +1 -0
  138. package/dist/judge/ValueForm.d.ts +3 -0
  139. package/dist/judge/ValueForm.d.ts.map +1 -0
  140. package/dist/judge/ValueForm.js +3 -0
  141. package/dist/judge/ValueForm.js.map +1 -0
  142. package/dist/judge/ValueJudge.d.ts +12 -0
  143. package/dist/judge/ValueJudge.d.ts.map +1 -0
  144. package/dist/judge/ValueJudge.js +60 -0
  145. package/dist/judge/ValueJudge.js.map +1 -0
  146. package/dist/judge/options.d.ts +4 -0
  147. package/dist/judge/options.d.ts.map +1 -0
  148. package/dist/judge/options.js +2 -0
  149. package/dist/judge/options.js.map +1 -0
  150. package/dist/judge/result.d.ts +17 -0
  151. package/dist/judge/result.d.ts.map +1 -0
  152. package/dist/judge/result.js +2 -0
  153. package/dist/judge/result.js.map +1 -0
  154. package/dist/projection/SchemaOrCard.d.ts +7 -0
  155. package/dist/projection/SchemaOrCard.d.ts.map +1 -0
  156. package/dist/projection/SchemaOrCard.js +11 -0
  157. package/dist/projection/SchemaOrCard.js.map +1 -0
  158. package/dist/projection/Visibility.d.ts +10 -0
  159. package/dist/projection/Visibility.d.ts.map +1 -0
  160. package/dist/projection/Visibility.js +55 -0
  161. package/dist/projection/Visibility.js.map +1 -0
  162. package/dist/{projections → projection}/standard.d.ts +2 -10
  163. package/dist/projection/standard.d.ts.map +1 -0
  164. package/dist/projection/standard.js +2 -0
  165. package/dist/projection/standard.js.map +1 -0
  166. package/dist/schema/Schema.d.ts +63 -0
  167. package/dist/schema/Schema.d.ts.map +1 -0
  168. package/dist/schema/Schema.js +129 -0
  169. package/dist/schema/Schema.js.map +1 -0
  170. package/dist/schema/SchemaDefinition.d.ts +46 -0
  171. package/dist/schema/SchemaDefinition.d.ts.map +1 -0
  172. package/dist/schema/SchemaDefinition.js +64 -0
  173. package/dist/schema/SchemaDefinition.js.map +1 -0
  174. package/dist/schema/SchemaDerivation.d.ts +28 -0
  175. package/dist/schema/SchemaDerivation.d.ts.map +1 -0
  176. package/dist/schema/SchemaDerivation.js +37 -0
  177. package/dist/schema/SchemaDerivation.js.map +1 -0
  178. package/dist/schema/SchemaView.d.ts +23 -0
  179. package/dist/schema/SchemaView.d.ts.map +1 -0
  180. package/dist/schema/SchemaView.js +2 -0
  181. package/dist/schema/SchemaView.js.map +1 -0
  182. package/dist/utils.d.ts +4 -0
  183. package/dist/utils.d.ts.map +1 -0
  184. package/dist/utils.js +13 -0
  185. package/dist/utils.js.map +1 -0
  186. package/dist/vocabulary/bool.d.ts +1 -1
  187. package/dist/vocabulary/bool.d.ts.map +1 -1
  188. package/dist/vocabulary/bool.js +1 -1
  189. package/dist/vocabulary/bool.js.map +1 -1
  190. package/dist/vocabulary/created.d.ts +1 -5
  191. package/dist/vocabulary/created.d.ts.map +1 -1
  192. package/dist/vocabulary/created.js +1 -5
  193. package/dist/vocabulary/created.js.map +1 -1
  194. package/dist/vocabulary/date.d.ts +1 -1
  195. package/dist/vocabulary/date.d.ts.map +1 -1
  196. package/dist/vocabulary/date.js +1 -1
  197. package/dist/vocabulary/date.js.map +1 -1
  198. package/dist/vocabulary/email.d.ts +1 -2
  199. package/dist/vocabulary/email.d.ts.map +1 -1
  200. package/dist/vocabulary/email.js +0 -1
  201. package/dist/vocabulary/email.js.map +1 -1
  202. package/dist/vocabulary/immutable.d.ts +2 -6
  203. package/dist/vocabulary/immutable.d.ts.map +1 -1
  204. package/dist/vocabulary/immutable.js +4 -7
  205. package/dist/vocabulary/immutable.js.map +1 -1
  206. package/dist/vocabulary/indexed.d.ts +2 -7
  207. package/dist/vocabulary/indexed.d.ts.map +1 -1
  208. package/dist/vocabulary/indexed.js +2 -8
  209. package/dist/vocabulary/indexed.js.map +1 -1
  210. package/dist/vocabulary/json.d.ts +2 -10
  211. package/dist/vocabulary/json.d.ts.map +1 -1
  212. package/dist/vocabulary/json.js +12 -7
  213. package/dist/vocabulary/json.js.map +1 -1
  214. package/dist/vocabulary/list.d.ts +1 -12
  215. package/dist/vocabulary/list.d.ts.map +1 -1
  216. package/dist/vocabulary/list.js +1 -14
  217. package/dist/vocabulary/list.js.map +1 -1
  218. package/dist/vocabulary/many.d.ts +2 -5
  219. package/dist/vocabulary/many.d.ts.map +1 -1
  220. package/dist/vocabulary/many.js +3 -6
  221. package/dist/vocabulary/many.js.map +1 -1
  222. package/dist/vocabulary/nullable.d.ts +2 -6
  223. package/dist/vocabulary/nullable.d.ts.map +1 -1
  224. package/dist/vocabulary/nullable.js +5 -8
  225. package/dist/vocabulary/nullable.js.map +1 -1
  226. package/dist/vocabulary/number.d.ts +1 -1
  227. package/dist/vocabulary/number.d.ts.map +1 -1
  228. package/dist/vocabulary/number.js +1 -1
  229. package/dist/vocabulary/number.js.map +1 -1
  230. package/dist/vocabulary/oneOf.d.ts +1 -8
  231. package/dist/vocabulary/oneOf.d.ts.map +1 -1
  232. package/dist/vocabulary/oneOf.js +1 -1
  233. package/dist/vocabulary/oneOf.js.map +1 -1
  234. package/dist/vocabulary/optional.d.ts +2 -9
  235. package/dist/vocabulary/optional.d.ts.map +1 -1
  236. package/dist/vocabulary/optional.js +6 -14
  237. package/dist/vocabulary/optional.js.map +1 -1
  238. package/dist/vocabulary/primary.d.ts +2 -15
  239. package/dist/vocabulary/primary.d.ts.map +1 -1
  240. package/dist/vocabulary/primary.js +4 -11
  241. package/dist/vocabulary/primary.js.map +1 -1
  242. package/dist/vocabulary/readOnly.d.ts +2 -6
  243. package/dist/vocabulary/readOnly.d.ts.map +1 -1
  244. package/dist/vocabulary/readOnly.js +5 -8
  245. package/dist/vocabulary/readOnly.js.map +1 -1
  246. package/dist/vocabulary/ref.d.ts +2 -7
  247. package/dist/vocabulary/ref.d.ts.map +1 -1
  248. package/dist/vocabulary/ref.js +3 -14
  249. package/dist/vocabulary/ref.js.map +1 -1
  250. package/dist/vocabulary/text.d.ts +2 -2
  251. package/dist/vocabulary/text.d.ts.map +1 -1
  252. package/dist/vocabulary/text.js +1 -1
  253. package/dist/vocabulary/text.js.map +1 -1
  254. package/dist/vocabulary/unique.d.ts +2 -12
  255. package/dist/vocabulary/unique.d.ts.map +1 -1
  256. package/dist/vocabulary/unique.js +5 -13
  257. package/dist/vocabulary/unique.js.map +1 -1
  258. package/dist/vocabulary/updated.d.ts +1 -6
  259. package/dist/vocabulary/updated.d.ts.map +1 -1
  260. package/dist/vocabulary/updated.js +0 -5
  261. package/dist/vocabulary/updated.js.map +1 -1
  262. package/dist/vocabulary/url.d.ts +1 -2
  263. package/dist/vocabulary/url.d.ts.map +1 -1
  264. package/dist/vocabulary/url.js +0 -1
  265. package/dist/vocabulary/url.js.map +1 -1
  266. package/dist/vocabulary/vocabulary.d.ts +4 -0
  267. package/dist/vocabulary/vocabulary.d.ts.map +1 -0
  268. package/dist/vocabulary/vocabulary.js +31 -0
  269. package/dist/vocabulary/vocabulary.js.map +1 -0
  270. package/dist/vocabulary/writeOnly.d.ts +2 -6
  271. package/dist/vocabulary/writeOnly.d.ts.map +1 -1
  272. package/dist/vocabulary/writeOnly.js +5 -8
  273. package/dist/vocabulary/writeOnly.js.map +1 -1
  274. package/package.json +8 -4
  275. package/src/EntityAdapters.ts +95 -0
  276. package/src/EntityDeclarations.ts +19 -0
  277. package/src/axis/Axis.ts +25 -0
  278. package/src/axis/Meta.ts +3 -0
  279. package/src/axis/boundary/Boundaries.ts +44 -0
  280. package/src/axis/boundary/Boundary.ts +69 -0
  281. package/src/axis/boundary/BoundaryAxis.ts +32 -0
  282. package/src/axis/lifecycle/Clock.ts +26 -0
  283. package/src/axis/lifecycle/Generators.ts +46 -0
  284. package/src/axis/lifecycle/Lifecycle.ts +53 -0
  285. package/src/axis/lifecycle/LifecycleAxis.ts +49 -0
  286. package/src/axis/lifecycle/apply.ts +38 -0
  287. package/src/axis/role/Relation.ts +31 -0
  288. package/src/axis/role/Role.ts +56 -0
  289. package/src/axis/role/RoleAxis.ts +115 -0
  290. package/src/axis/shape/Formats.ts +22 -0
  291. package/src/axis/shape/Shape.ts +91 -0
  292. package/src/card/Bundle.ts +80 -0
  293. package/src/card/Card.ts +256 -0
  294. package/src/card/Descriptor.ts +68 -0
  295. package/src/card/EntityTypeSource.ts +90 -0
  296. package/src/card/FacadeTypeSource.ts +55 -0
  297. package/src/card/admission.ts +25 -0
  298. package/src/card/diff.ts +56 -0
  299. package/src/constraint/FieldGroup.ts +91 -0
  300. package/src/constraint/Unique.ts +3 -0
  301. package/src/entity.ts +15 -0
  302. package/src/fields/Field.ts +80 -0
  303. package/src/fields/FieldSet.ts +62 -0
  304. package/src/index.ts +64 -0
  305. package/src/judge/Cases.ts +139 -0
  306. package/src/judge/FieldJudge.ts +61 -0
  307. package/src/judge/RowJudge.ts +84 -0
  308. package/src/judge/RowRefusal.ts +17 -0
  309. package/src/judge/ValueForm.ts +7 -0
  310. package/src/judge/ValueJudge.ts +72 -0
  311. package/src/judge/options.ts +3 -0
  312. package/src/judge/result.ts +10 -0
  313. package/src/projection/SchemaOrCard.ts +18 -0
  314. package/src/projection/Visibility.ts +47 -0
  315. package/src/projection/standard.ts +47 -0
  316. package/src/schema/Schema.ts +167 -0
  317. package/src/schema/SchemaDefinition.ts +87 -0
  318. package/src/schema/SchemaDerivation.ts +46 -0
  319. package/src/schema/SchemaView.ts +25 -0
  320. package/src/utils.ts +13 -0
  321. package/src/vocabulary/bool.ts +9 -0
  322. package/src/vocabulary/created.ts +8 -0
  323. package/src/vocabulary/date.ts +5 -0
  324. package/src/vocabulary/email.ts +6 -0
  325. package/src/vocabulary/immutable.ts +6 -0
  326. package/src/vocabulary/indexed.ts +4 -0
  327. package/src/vocabulary/json.ts +22 -0
  328. package/src/vocabulary/list.ts +13 -0
  329. package/src/vocabulary/many.ts +9 -0
  330. package/src/vocabulary/nullable.ts +7 -0
  331. package/src/vocabulary/number.ts +17 -0
  332. package/src/vocabulary/oneOf.ts +24 -0
  333. package/src/vocabulary/optional.ts +8 -0
  334. package/src/vocabulary/primary.ts +33 -0
  335. package/src/vocabulary/readOnly.ts +7 -0
  336. package/src/vocabulary/ref.ts +13 -0
  337. package/src/vocabulary/text.ts +19 -0
  338. package/src/vocabulary/unique.ts +10 -0
  339. package/src/vocabulary/updated.ts +7 -0
  340. package/src/vocabulary/url.ts +6 -0
  341. package/src/vocabulary/vocabulary.ts +40 -0
  342. package/src/vocabulary/writeOnly.ts +7 -0
  343. package/dist/field/boundary.d.ts +0 -69
  344. package/dist/field/boundary.d.ts.map +0 -1
  345. package/dist/field/boundary.js +0 -82
  346. package/dist/field/boundary.js.map +0 -1
  347. package/dist/field/field.d.ts +0 -21
  348. package/dist/field/field.d.ts.map +0 -1
  349. package/dist/field/field.js +0 -24
  350. package/dist/field/field.js.map +0 -1
  351. package/dist/field/format.d.ts +0 -29
  352. package/dist/field/format.d.ts.map +0 -1
  353. package/dist/field/format.js +0 -24
  354. package/dist/field/format.js.map +0 -1
  355. package/dist/field/index.d.ts +0 -8
  356. package/dist/field/index.d.ts.map +0 -1
  357. package/dist/field/index.js +0 -10
  358. package/dist/field/index.js.map +0 -1
  359. package/dist/field/lifecycle.d.ts +0 -31
  360. package/dist/field/lifecycle.d.ts.map +0 -1
  361. package/dist/field/lifecycle.js +0 -20
  362. package/dist/field/lifecycle.js.map +0 -1
  363. package/dist/field/meta.d.ts +0 -5
  364. package/dist/field/meta.d.ts.map +0 -1
  365. package/dist/field/meta.js +0 -5
  366. package/dist/field/meta.js.map +0 -1
  367. package/dist/field/role.d.ts +0 -47
  368. package/dist/field/role.d.ts.map +0 -1
  369. package/dist/field/role.js +0 -35
  370. package/dist/field/role.js.map +0 -1
  371. package/dist/field/shape.d.ts +0 -89
  372. package/dist/field/shape.d.ts.map +0 -1
  373. package/dist/field/shape.js.map +0 -1
  374. package/dist/hints.d.ts +0 -28
  375. package/dist/hints.d.ts.map +0 -1
  376. package/dist/hints.js +0 -23
  377. package/dist/hints.js.map +0 -1
  378. package/dist/name.d.ts +0 -8
  379. package/dist/name.d.ts.map +0 -1
  380. package/dist/name.js +0 -10
  381. package/dist/name.js.map +0 -1
  382. package/dist/projections/card.d.ts +0 -98
  383. package/dist/projections/card.d.ts.map +0 -1
  384. package/dist/projections/card.js +0 -8
  385. package/dist/projections/card.js.map +0 -1
  386. package/dist/projections/describe.d.ts +0 -25
  387. package/dist/projections/describe.d.ts.map +0 -1
  388. package/dist/projections/describe.js +0 -131
  389. package/dist/projections/describe.js.map +0 -1
  390. package/dist/projections/encode.d.ts +0 -11
  391. package/dist/projections/encode.d.ts.map +0 -1
  392. package/dist/projections/encode.js +0 -26
  393. package/dist/projections/encode.js.map +0 -1
  394. package/dist/projections/io.d.ts +0 -24
  395. package/dist/projections/io.d.ts.map +0 -1
  396. package/dist/projections/io.js +0 -46
  397. package/dist/projections/io.js.map +0 -1
  398. package/dist/projections/lifecycle.d.ts +0 -29
  399. package/dist/projections/lifecycle.d.ts.map +0 -1
  400. package/dist/projections/lifecycle.js +0 -93
  401. package/dist/projections/lifecycle.js.map +0 -1
  402. package/dist/projections/reconstruct.d.ts +0 -31
  403. package/dist/projections/reconstruct.d.ts.map +0 -1
  404. package/dist/projections/reconstruct.js +0 -146
  405. package/dist/projections/reconstruct.js.map +0 -1
  406. package/dist/projections/source.d.ts +0 -18
  407. package/dist/projections/source.d.ts.map +0 -1
  408. package/dist/projections/source.js +0 -18
  409. package/dist/projections/source.js.map +0 -1
  410. package/dist/projections/standard.d.ts.map +0 -1
  411. package/dist/projections/standard.js +0 -10
  412. package/dist/projections/standard.js.map +0 -1
  413. package/dist/projections/typescript.d.ts +0 -37
  414. package/dist/projections/typescript.d.ts.map +0 -1
  415. package/dist/projections/typescript.js +0 -157
  416. package/dist/projections/typescript.js.map +0 -1
  417. package/dist/schema/index.d.ts +0 -3
  418. package/dist/schema/index.d.ts.map +0 -1
  419. package/dist/schema/index.js +0 -2
  420. package/dist/schema/index.js.map +0 -1
  421. package/dist/schema/schema.d.ts +0 -74
  422. package/dist/schema/schema.d.ts.map +0 -1
  423. package/dist/schema/schema.js +0 -162
  424. package/dist/schema/schema.js.map +0 -1
  425. package/dist/schema/view.d.ts +0 -26
  426. package/dist/schema/view.d.ts.map +0 -1
  427. package/dist/schema/view.js +0 -2
  428. package/dist/schema/view.js.map +0 -1
  429. package/dist/unique.d.ts +0 -40
  430. package/dist/unique.d.ts.map +0 -1
  431. package/dist/unique.js +0 -57
  432. package/dist/unique.js.map +0 -1
  433. package/dist/validation/index.d.ts +0 -4
  434. package/dist/validation/index.d.ts.map +0 -1
  435. package/dist/validation/index.js +0 -2
  436. package/dist/validation/index.js.map +0 -1
  437. package/dist/validation/judge.d.ts +0 -55
  438. package/dist/validation/judge.d.ts.map +0 -1
  439. package/dist/validation/judge.js +0 -351
  440. package/dist/validation/judge.js.map +0 -1
  441. package/dist/validation/options.d.ts +0 -6
  442. package/dist/validation/options.d.ts.map +0 -1
  443. package/dist/validation/options.js +0 -3
  444. package/dist/validation/options.js.map +0 -1
  445. package/dist/validation/result.d.ts +0 -20
  446. package/dist/validation/result.d.ts.map +0 -1
  447. package/dist/validation/result.js +0 -3
  448. package/dist/validation/result.js.map +0 -1
@@ -1,157 +0,0 @@
1
- /**
2
- * card → TypeScript source. `reconstruct` gives a consumer a living judge; this gives it
3
- * the type, so `post.title` is `string` rather than `any` and `post.titel` fails.
4
- *
5
- * Deliberately NOT a JSON Schema→TS library: the input is a Fougère card, whose vocabulary
6
- * is closed. A general one would carry `$ref`, `allOf` and the rest we never emit, and
7
- * would still need this file to know `format: date-time` means `Date` — a fact about our
8
- * boundary, not about JSON.
9
- */
10
- /** What a field's value looks like once `reconstruct` has decoded it. */
11
- function typeOf(field) {
12
- const types = Array.isArray(field.type) ? field.type : field.type ? [field.type] : [];
13
- const nullable = types.includes('null');
14
- const base = types.find((t) => t !== 'null');
15
- const inner = baseTypeOf(base, field);
16
- return nullable ? `${inner} | null` : inner;
17
- }
18
- function baseTypeOf(base, field) {
19
- // A bounded value set IS a type — the enum travels, so the union does too.
20
- if (field.enum?.length) {
21
- return field.enum.map((v) => (v === null ? 'null' : JSON.stringify(v))).join(' | ');
22
- }
23
- switch (base) {
24
- case 'string':
25
- // `date-time` is the wire form of a value the boundary decodes; the type says what
26
- // you receive, not what travelled.
27
- return field.format === 'date-time' ? 'Date' : 'string';
28
- case 'number':
29
- case 'integer':
30
- return 'number';
31
- case 'boolean':
32
- return 'boolean';
33
- case 'array':
34
- // `array` covers two things: a value list carries `items`, a `many` relation carries
35
- // none — the ids of the other side.
36
- return field.items ? `${typeOf(field.items)}[]` : 'string[]';
37
- case 'object':
38
- return field.properties ? objectTypeOf(field.properties, field.required ?? []) : 'Record<string, unknown>';
39
- default:
40
- return 'unknown';
41
- }
42
- }
43
- function objectTypeOf(properties, required) {
44
- const members = Object.entries(properties).map(([name, field]) => {
45
- const optional = required.includes(name) ? '' : '?';
46
- return `${propertyKey(name)}${optional}: ${typeOf(field)}`;
47
- });
48
- return `{ ${members.join('; ')} }`;
49
- }
50
- /** Quote a key only when it is not a plain identifier — generated source stays readable. */
51
- function propertyKey(name) {
52
- return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name) ? name : JSON.stringify(name);
53
- }
54
- /**
55
- * A description lands INSIDE a comment, and a card can come from a stranger.
56
- *
57
- * `identifierOf` already refuses a name for this reason — a name stops being data when it
58
- * lands in a declaration. So does a description: `*\/` ends the comment, and everything
59
- * after it is source. A card carrying `*\/ } console.log(…); interface X {` produced a file
60
- * that compiled with zero diagnostics and emitted a top-level statement, which `fougere
61
- * sync` then wrote into the consumer's repository for its next import to run.
62
- *
63
- * Escaped rather than refused, unlike a name: a description is prose, and prose contains
64
- * `*\/` legitimately (a sentence about a comment, a regex). `*\/` renders the same to a
65
- * reader and terminates nothing, so the text survives and the exit does not.
66
- */
67
- function docCommentOf(text, indent) {
68
- if (!text)
69
- return '';
70
- return `${indent}/** ${text.replace(/\*\//g, '*\\/')} */\n`;
71
- }
72
- /**
73
- * The anonymous object type one card describes — the members, nothing around them.
74
- * Internal: `entitySourceOf` is what a consumer calls, and it emits this above the judge.
75
- *
76
- * Every property is present: `required` on a Fougère card answers "what must a CALLER
77
- * supply at creation", not "what is always there when read" — an `id` the system
78
- * generates is absent from `required` and always present on a row. Typing the read
79
- * shape from the create rule would make `post.id` possibly-undefined for everyone.
80
- */
81
- export function shapeTypeOf(descriptor, indent = '') {
82
- const entries = Object.entries(descriptor.properties ?? {});
83
- if (entries.length === 0)
84
- return '{}';
85
- const lines = entries.map(([key, field]) => {
86
- const doc = docCommentOf(field.description, `${indent} `);
87
- return `${doc}${indent} ${propertyKey(key)}: ${typeOf(field)};`;
88
- });
89
- return `{\n${lines.join('\n')}\n${indent}}`;
90
- }
91
- /**
92
- * Emit the entity a card describes — ONE class, judge and shape together, because a class
93
- * is the language's own answer to "a name that is both a value and a type".
94
- *
95
- * The card travels inline, so the rebuilt judge and the shape above it read off the same
96
- * source. Requires `reconstruct` in scope: only the caller knows how the consumer imports.
97
- */
98
- export function entitySourceOf(descriptor, options = {}) {
99
- const name = identifierOf(options.name ?? capitalize(descriptor.title ?? 'Schema'));
100
- const exported = options.exported === false ? '' : 'export ';
101
- const card = JSON.stringify(descriptor, null, 2)
102
- .split('\n')
103
- .map((line, i) => (i === 0 ? line : ` ${line}`))
104
- .join('\n');
105
- return `${exported}class ${name} extends reconstruct<${shapeTypeOf(descriptor)}>(${card}) {}`;
106
- }
107
- /**
108
- * A card names itself, and a card can come from a stranger. Everything else here emits
109
- * data — a string lands inside `JSON.stringify` — but a name lands in a DECLARATION,
110
- * so it is the one value that could stop being data. Refuse it here as well as at the
111
- * caller: the projection should not depend on who calls it to be safe.
112
- */
113
- function identifierOf(name) {
114
- if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name)) {
115
- throw new Error(`'${name}' is not a TypeScript identifier — it cannot name a generated declaration`);
116
- }
117
- return name;
118
- }
119
- function capitalize(s) {
120
- return s ? s[0].toUpperCase() + s.slice(1) : s;
121
- }
122
- /**
123
- * What one operation hands back, in TypeScript.
124
- *
125
- * `output` is the shape of a ROW; `cardinality` is how many rows. Separating them is
126
- * what makes this honest — `list` returns a page, not an array, and a generator that
127
- * assumed otherwise would have written a signature that compiles and lies.
128
- *
129
- * A page is spelled as what it IS: `ListResult<T> extends Array<T>`, an array carrying
130
- * its own totals. So the type is the array intersected with them, not a wrapper.
131
- */
132
- function returnTypeOf(op, rowType) {
133
- switch (op.cardinality) {
134
- case 'many': return `${rowType}[]`;
135
- case 'page': return `${rowType}[] & { total?: number; endCursor?: string; hasMore?: boolean }`;
136
- case 'maybe': return `${rowType} | undefined`;
137
- case 'one': return rowType;
138
- // `none` says there is no shaped output — a boolean, a void. Saying `unknown` is
139
- // the truth; guessing `void` would forbid reading a value that does come back.
140
- case 'none': return 'unknown';
141
- default: return 'unknown';
142
- }
143
- }
144
- /** Emit the type of a façade — every operation an entity serves, as a callable surface. */
145
- export function facadeTypeSourceOf(ops, options = {}) {
146
- const name = options.name ?? 'Facade';
147
- const exported = options.exported === false ? '' : 'export ';
148
- const rowType = options.rowType ?? 'unknown';
149
- const members = ops.map((op) => {
150
- const doc = docCommentOf(op.description, ' ');
151
- return `${doc} ${propertyKey(op.name)}(invocation?: Invocation): Promise<${returnTypeOf(op, rowType)}>;`;
152
- });
153
- if (members.length === 0)
154
- return `${exported}interface ${name} {}`;
155
- return `${exported}interface ${name} {\n${members.join('\n')}\n}`;
156
- }
157
- //# sourceMappingURL=typescript.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/projections/typescript.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export type { Row, PartialRow, SchemaView } from "./view.js";
2
- export { Schema, compose, ANONYMOUS_SCHEMA_NAME, type SchemaConstructor } from "./schema.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Schema, compose, ANONYMOUS_SCHEMA_NAME } from "./schema.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAA0B,MAAM,aAAa,CAAC"}
@@ -1,74 +0,0 @@
1
- import { type Fields } from "../field/index.js";
2
- import { type Hints } from "../hints.js";
3
- import { type CompositeUnique } from "../unique.js";
4
- import { type ValidateOptions } from '../validation/index.js';
5
- import type { StandardSchemaV1 } from "../projections/standard.js";
6
- import type { PartialRow, Row, SchemaView } from "./view.js";
7
- /** The name a derivation carries when no class declaration named it. */
8
- export declare const ANONYMOUS_SCHEMA_NAME = "Schema";
9
- /** A schema view that also constructs and derives. */
10
- export interface SchemaConstructor<TFields extends Fields> extends SchemaView<TFields> {
11
- new (data: PartialRow<TFields>): Row<TFields>;
12
- readonly "~standard": StandardSchemaV1.Props<Record<string, unknown>, Row<TFields>>;
13
- /** The Entity class this derivation came from — absent on a `compose()` result. */
14
- readonly source?: abstract new (...args: never[]) => unknown;
15
- from(data: Record<string, unknown>): Row<TFields>;
16
- pick<K extends string & keyof TFields>(...keys: K[]): SchemaConstructor<Pick<TFields, K>>;
17
- omit<K extends string & keyof TFields>(...keys: K[]): SchemaConstructor<Omit<TFields, K>>;
18
- partial(): SchemaConstructor<TFields>;
19
- extend<E extends Fields>(extra: E): SchemaConstructor<TFields & E>;
20
- /** Give an anonymous derivation an explicit runtime name. */
21
- named(name: string): SchemaConstructor<TFields>;
22
- rename(mapping: Partial<Record<string & keyof TFields, string>>): SchemaConstructor<Fields>;
23
- }
24
- /**
25
- * The carrier. Its data lives on the class, so `this` resolves it and a derivation is a
26
- * subclass with a different map — `Post.pick('id')` reads `Post.fields`, not a closure.
27
- */
28
- export declare class Schema {
29
- static fields: Fields;
30
- static hints: Hints<Fields> | undefined;
31
- static unique: CompositeUnique<Fields> | undefined;
32
- static opts: ValidateOptions;
33
- static source: (abstract new (...args: never[]) => unknown) | undefined;
34
- /** Trusted: takes already-shaped data. Untrusted input goes through `validate`/`from`. */
35
- constructor(data?: Record<string, unknown>);
36
- static getFields(): Fields;
37
- static getHints(): Hints<Fields> | undefined;
38
- static getUnique(): CompositeUnique<Fields> | undefined;
39
- static getOpts(): ValidateOptions;
40
- static validate(input: unknown): import("../validation/result.js").ValidationResult<Record<string, unknown>>;
41
- /** Trusted: keeps known keys, decodes each through its boundary, leaves the rest. */
42
- static from(data: Record<string, unknown>): Record<string, unknown>;
43
- static get ["~standard"](): StandardSchemaV1.Props<Record<string, unknown>>;
44
- static pick(...keys: string[]): SchemaConstructor<Fields>;
45
- static omit(...keys: string[]): SchemaConstructor<Fields>;
46
- static rename(mapping: Record<string, string>): SchemaConstructor<Fields>;
47
- /** Patch mode: an unsent field is untouched. Moves the presence axis, never nullity. */
48
- static partial(): SchemaConstructor<{
49
- [x: string]: import("../field/field.js").Field<unknown>;
50
- }>;
51
- static extend(extra: Fields): SchemaConstructor<{
52
- [x: string]: import("../field/field.js").Field<unknown>;
53
- }>;
54
- /**
55
- * Renames in place, so it may only name what has no name — on a declared class it would
56
- * silently retarget its table, its GraphQL type and its registration key.
57
- */
58
- static named(name: string): typeof Schema;
59
- /** A subclass carrying its own map — the only way a schema is made. */
60
- static of<TFields extends Fields>(fields: TFields, source?: abstract new (...args: never[]) => unknown, hints?: Hints<TFields>, opts?: ValidateOptions, unique?: CompositeUnique<Fields>): SchemaConstructor<TFields>;
61
- /** A key transform applied to the fields, the hints and the unique groups at once. */
62
- private static derive;
63
- }
64
- type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
65
- type Merged<T extends SchemaView[]> = UnionToIntersection<T[number] extends {
66
- getFields(): infer F;
67
- } ? F : Fields> & Fields;
68
- /**
69
- * Merge schemas into one — `class User extends compose(UserBase, Timestamps) {}`.
70
- * Left to right, later sources win on conflict. Use `.rename()` first to avoid one.
71
- */
72
- export declare function compose<T extends SchemaView[]>(...sources: T): SchemaConstructor<Merged<T>>;
73
- export {};
74
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
@@ -1,162 +0,0 @@
1
- import { resolveBoundary } from "../field/index.js";
2
- import { deriveHints } from "../hints.js";
3
- import { deriveUnique, deriveUniqueRoles } from "../unique.js";
4
- import { Judge } from '../validation/index.js';
5
- /** The name a derivation carries when no class declaration named it. */
6
- export const ANONYMOUS_SCHEMA_NAME = "Schema";
7
- /**
8
- * The carrier. Its data lives on the class, so `this` resolves it and a derivation is a
9
- * subclass with a different map — `Post.pick('id')` reads `Post.fields`, not a closure.
10
- */
11
- export class Schema {
12
- static fields = {};
13
- static hints;
14
- static unique;
15
- static opts = {};
16
- static source;
17
- /** Trusted: takes already-shaped data. Untrusted input goes through `validate`/`from`. */
18
- constructor(data) {
19
- if (!data)
20
- return;
21
- // Define, never assign: `Object.assign` writes through [[Set]], so a `__proto__` key
22
- // from a parsed JSON row fires the setter and replaces this instance's prototype.
23
- for (const [key, value] of Object.entries(data)) {
24
- Object.defineProperty(this, key, { value, writable: true, enumerable: true, configurable: true });
25
- }
26
- }
27
- static getFields() { return this.fields; }
28
- static getHints() { return this.hints; }
29
- static getUnique() { return this.unique; }
30
- static getOpts() { return this.opts; }
31
- static validate(input) {
32
- return Judge.row(this.fields, input, this.opts);
33
- }
34
- /** Trusted: keeps known keys, decodes each through its boundary, leaves the rest. */
35
- static from(data) {
36
- const out = {};
37
- for (const [key, field] of Object.entries(this.fields)) {
38
- if (!(key in data))
39
- continue;
40
- const value = data[key];
41
- if (value === null || value === undefined) {
42
- out[key] = value;
43
- continue;
44
- }
45
- const decoded = resolveBoundary(field).decode(value);
46
- out[key] = "error" in decoded ? value : decoded.value;
47
- }
48
- return out;
49
- }
50
- static get ["~standard"]() {
51
- const { fields, opts } = this;
52
- return {
53
- version: 1,
54
- vendor: "fougere",
55
- validate(value) {
56
- const result = Judge.row(fields, value, opts);
57
- if (result.success)
58
- return { value: result.data };
59
- // ONE segment, not a split: a path is always a single field name until nested
60
- // objects report their own, so splitting invented segments for a name like `a.b`.
61
- return {
62
- issues: result.errors.map((e) => ({
63
- message: e.message,
64
- path: e.path && e.path !== "." ? [{ key: e.path }] : undefined,
65
- })),
66
- };
67
- },
68
- };
69
- }
70
- // ─── The derivation algebra ───
71
- // Each derivation states its difference and keeps the rest. `source ?? this` records
72
- // the ORIGIN once: a view of a view keeps it rather than the intermediate.
73
- static pick(...keys) {
74
- assertKnownKeys("pick", keys, this.fields);
75
- const picked = {};
76
- for (const key of keys)
77
- if (this.fields[key])
78
- picked[key] = this.fields[key];
79
- return this.derive(picked, (k) => (keys.includes(k) ? k : undefined));
80
- }
81
- static omit(...keys) {
82
- assertKnownKeys("omit", keys, this.fields);
83
- const kept = {};
84
- for (const [key, field] of Object.entries(this.fields))
85
- if (!keys.includes(key))
86
- kept[key] = field;
87
- return this.derive(kept, (k) => (keys.includes(k) ? undefined : k));
88
- }
89
- static rename(mapping) {
90
- assertKnownKeys("rename", Object.keys(mapping), this.fields);
91
- const renamed = {};
92
- for (const [key, field] of Object.entries(this.fields))
93
- renamed[mapping[key] ?? key] = field;
94
- return this.derive(renamed, (k) => mapping[k] ?? k);
95
- }
96
- /** Patch mode: an unsent field is untouched. Moves the presence axis, never nullity. */
97
- static partial() {
98
- return Schema.of({ ...this.fields }, this.source ?? this, this.hints, { ...this.opts, patch: true }, this.unique);
99
- }
100
- static extend(extra) {
101
- return Schema.of({ ...this.fields, ...extra }, this.source ?? this, this.hints, this.opts, this.unique);
102
- }
103
- /**
104
- * Renames in place, so it may only name what has no name — on a declared class it would
105
- * silently retarget its table, its GraphQL type and its registration key.
106
- */
107
- static named(name) {
108
- if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name)) {
109
- throw new Error(`named(): \`${name}\` is not a valid class name.`);
110
- }
111
- if (this.name !== ANONYMOUS_SCHEMA_NAME) {
112
- throw new Error(`named(): \`${this.name}\` is already named by its class declaration.`);
113
- }
114
- Object.defineProperty(this, "name", { value: name, configurable: true });
115
- return this;
116
- }
117
- /** A subclass carrying its own map — the only way a schema is made. */
118
- static of(fields, source, hints, opts = {}, unique) {
119
- class Derived extends Schema {
120
- }
121
- Object.assign(Derived, { fields, source, hints, opts, unique });
122
- Object.defineProperty(Derived, "name", { value: ANONYMOUS_SCHEMA_NAME, configurable: true });
123
- // TS sees an empty subclass and cannot prove it matches the precise map.
124
- return Derived;
125
- }
126
- /** A key transform applied to the fields, the hints and the unique groups at once. */
127
- static derive(fields, survives) {
128
- return Schema.of(deriveUniqueRoles(fields, survives), this.source ?? this, deriveHints(this.hints, survives), this.opts, deriveUnique(this.unique, survives));
129
- }
130
- }
131
- /** Refuse a key the schema does not carry — a typo in `pick`/`omit` used to be obeyed. */
132
- function assertKnownKeys(operation, keys, fields) {
133
- const strangers = keys.filter((key) => !(key in fields));
134
- if (strangers.length === 0)
135
- return;
136
- throw new Error(`${operation}(): unknown field ${strangers.map((s) => `\`${s}\``).join(", ")}. ` +
137
- `This schema carries ${Object.keys(fields).join(", ")}.`);
138
- }
139
- /**
140
- * Merge schemas into one — `class User extends compose(UserBase, Timestamps) {}`.
141
- * Left to right, later sources win on conflict. Use `.rename()` first to avoid one.
142
- */
143
- export function compose(...sources) {
144
- const merged = {};
145
- const mergedHints = {};
146
- let mergedOpts = {};
147
- for (const source of sources) {
148
- Object.assign(merged, source.getFields());
149
- const hints = source.getHints();
150
- if (hints) {
151
- for (const [adapter, perField] of Object.entries(hints)) {
152
- if (!perField || typeof perField !== "object")
153
- continue;
154
- mergedHints[adapter] = { ...mergedHints[adapter], ...perField };
155
- }
156
- }
157
- mergedOpts = { ...mergedOpts, ...source.getOpts() };
158
- }
159
- const hints = Object.keys(mergedHints).length ? mergedHints : undefined;
160
- return Schema.of(merged, undefined, hints, mergedOpts);
161
- }
162
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { Field, Fields } from "../field/index.js";
2
- import type { Hints } from "../hints.js";
3
- import type { CompositeUnique } from "../unique.js";
4
- import type { ValidationResult, ValidateOptions } from '../validation/index.js';
5
- /** The row an entity carries — its fields' value types, all present. */
6
- export type Row<TFields extends Fields> = {
7
- [K in keyof TFields]: TFields[K] extends Field<infer T> ? T : never;
8
- };
9
- /** A row as handed to the constructor — every key omissible. */
10
- export type PartialRow<TFields extends Fields> = Partial<Row<TFields>>;
11
- /**
12
- * What a schema ANSWERS. No construct signature, so a class carrying a body satisfies it —
13
- * and `Fields` by default, for a reader that does not care which map it holds.
14
- */
15
- export interface SchemaView<TFields extends Fields = Fields> {
16
- readonly name: string;
17
- getFields(): TFields;
18
- /** Per-consumer hints from the 2nd arg of `entity()`. Derivations carry them. */
19
- getHints(): Hints<TFields> | undefined;
20
- /** Field groups unique together, from the 2nd arg of `entity()`. */
21
- getUnique(): CompositeUnique<TFields> | undefined;
22
- /** This view's validation mode — `patch` is set by `partial()`. */
23
- getOpts(): ValidateOptions;
24
- validate(input: unknown): ValidationResult<Row<TFields>>;
25
- }
26
- //# sourceMappingURL=view.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/schema/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGhF,wEAAwE;AACxE,MAAM,MAAM,GAAG,CAAC,OAAO,SAAS,MAAM,IAAI;KACvC,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACpE,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,IAAI,OAAO,CAAC;IACrB,iFAAiF;IACjF,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IACvC,oEAAoE;IACpE,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAClD,mEAAmE;IACnE,OAAO,IAAI,eAAe,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;CAC1D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/schema/view.ts"],"names":[],"mappings":""}
package/dist/unique.d.ts DELETED
@@ -1,40 +0,0 @@
1
- import type { Fields } from './field/index.js';
2
- import type { Hints } from './hints.js';
3
- /**
4
- * Field names that identify at most one row when taken together. No shape can express it —
5
- * judging one value never sees the other rows — and no handler either: a check then a write
6
- * is two round trips with room for a concurrent one between them. Only the database keeps it.
7
- */
8
- export type CompositeUnique<TFields extends Fields> = ReadonlyArray<ReadonlyArray<Extract<keyof TFields, string>>>;
9
- /**
10
- * What an entity declares about itself, beyond its fields — the 2nd argument of
11
- * `entity()`.
12
- *
13
- * One object rather than a growing parameter list: a second fact about an entity
14
- * adds a key here, never a positional argument.
15
- */
16
- export interface EntityDeclarations<TFields extends Fields> {
17
- unique?: CompositeUnique<TFields>;
18
- /** Per-consumer hints, keyed by registered adapter. See {@link Hints}. */
19
- hints?: Hints<TFields>;
20
- }
21
- /**
22
- * Carry composite groups across a key transform. A group that lost a member is DROPPED,
23
- * not narrowed: `(listId, docId)` says nothing about `listId` alone.
24
- */
25
- export declare function deriveUnique(groups: CompositeUnique<Fields> | undefined, mapKey: (key: string) => string | undefined): CompositeUnique<Fields> | undefined;
26
- /**
27
- * The same, on each member's role — it must run WITH {@link deriveUnique}: once projected
28
- * the group lives in two places, so remapping one alone left a role claiming a pair whose
29
- * other member was gone. The empty self-reference names no key, so it needs no remapping.
30
- */
31
- export declare function deriveUniqueRoles<TFields extends Fields>(fields: TFields, mapKey: (key: string) => string | undefined): TFields;
32
- /**
33
- * Project the entity's composite groups onto every member's role — the single place the
34
- * two ways of stating uniqueness meet, so every consumer has one shape to handle.
35
- *
36
- * The entity declaration stays the source (`getUnique()` answers it); this is a projection,
37
- * never a second place to edit.
38
- */
39
- export declare function projectUniqueOntoFields<TFields extends Fields>(fields: TFields, groups: CompositeUnique<TFields> | undefined): TFields;
40
- //# sourceMappingURL=unique.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../src/unique.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,MAAM,IAAI,aAAa,CACjE,aAAa,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,CAC9C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM;IACxD,MAAM,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAClC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,EAC3C,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC1C,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAQrC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,EACtD,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC1C,OAAO,CAeT;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,MAAM,EAC5D,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,GAC3C,OAAO,CAcT"}
package/dist/unique.js DELETED
@@ -1,57 +0,0 @@
1
- /**
2
- * Carry composite groups across a key transform. A group that lost a member is DROPPED,
3
- * not narrowed: `(listId, docId)` says nothing about `listId` alone.
4
- */
5
- export function deriveUnique(groups, mapKey) {
6
- if (!groups)
7
- return undefined;
8
- const carried = groups
9
- .map((group) => group.map(mapKey))
10
- .filter((group) => group.every((key) => key !== undefined));
11
- return carried.length > 0 ? carried : undefined;
12
- }
13
- /**
14
- * The same, on each member's role — it must run WITH {@link deriveUnique}: once projected
15
- * the group lives in two places, so remapping one alone left a role claiming a pair whose
16
- * other member was gone. The empty self-reference names no key, so it needs no remapping.
17
- */
18
- export function deriveUniqueRoles(fields, mapKey) {
19
- const out = { ...fields };
20
- for (const [key, field] of Object.entries(out)) {
21
- const groups = field.role?.unique;
22
- if (!groups?.length)
23
- continue;
24
- const carried = groups
25
- .map((group) => (group.length === 0 ? [] : group.map(mapKey)))
26
- .filter((group) => group.every((member) => member !== undefined));
27
- if (carried.length === groups.length)
28
- continue; // nothing lost, keep the field as is
29
- const { unique: _dropped, ...rest } = field.role;
30
- out[key] = field.with({ role: carried.length ? { ...rest, unique: carried } : rest });
31
- }
32
- return out;
33
- }
34
- /**
35
- * Project the entity's composite groups onto every member's role — the single place the
36
- * two ways of stating uniqueness meet, so every consumer has one shape to handle.
37
- *
38
- * The entity declaration stays the source (`getUnique()` answers it); this is a projection,
39
- * never a second place to edit.
40
- */
41
- export function projectUniqueOntoFields(fields, groups) {
42
- if (!groups || groups.length === 0)
43
- return fields;
44
- const projected = { ...fields };
45
- for (const group of groups) {
46
- const members = [...group];
47
- for (const key of members) {
48
- const field = projected[key];
49
- if (!field)
50
- continue; // a group naming an absent field states nothing here
51
- const already = field.role?.unique ?? [];
52
- projected[key] = field.with({ role: { ...field.role, unique: [...already, members] } });
53
- }
54
- }
55
- return projected;
56
- }
57
- //# sourceMappingURL=unique.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unique.js","sourceRoot":"","sources":["../src/unique.ts"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA2C,EAC3C,MAA2C;IAE3C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,OAAO,GAAG,MAAM;SACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACjC,MAAM,CAAC,CAAC,KAAK,EAAqB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC;IAEjF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAe,EACf,MAA2C;IAE3C,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,EAAY,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,MAAM;YAAE,SAAS;QAE9B,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;aAC7D,MAAM,CAAC,CAAC,KAAK,EAAqB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;QAEvF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAAE,SAAS,CAAG,qCAAqC;QACvF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,IAAK,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,GAAc,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAe,EACf,MAA4C;IAE5C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAElD,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAY,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK;gBAAE,SAAS,CAAG,qDAAqD;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;YACzC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,OAAO,SAAoB,CAAC;AAC9B,CAAC"}
@@ -1,4 +0,0 @@
1
- export type { ValidationError, ValidationResult, Checked } from "./result.js";
2
- export type { ValidateOptions } from "./options.js";
3
- export { Judge } from "./judge.js";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Judge } from "./judge.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}