@ghostry/fabricator 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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -0
  3. package/dist/esm/Adapter/Core.js +47 -0
  4. package/dist/esm/Adapter/Types.js +1 -0
  5. package/dist/esm/Bound.js +81 -0
  6. package/dist/esm/Distribution/index.js +200 -0
  7. package/dist/esm/Enumeration/Enumerate.js +103 -0
  8. package/dist/esm/Enumeration/Plan.js +286 -0
  9. package/dist/esm/Enumeration/Types.js +1 -0
  10. package/dist/esm/Error/index.js +201 -0
  11. package/dist/esm/Fabricator/Constructor.js +328 -0
  12. package/dist/esm/Fabricator/Types.js +1 -0
  13. package/dist/esm/Instance/Core.js +119 -0
  14. package/dist/esm/Instance/Types.js +1 -0
  15. package/dist/esm/Primitive/always/Fabricator.js +13 -0
  16. package/dist/esm/Primitive/always/Registry.js +11 -0
  17. package/dist/esm/Primitive/always/Schema.js +10 -0
  18. package/dist/esm/Primitive/always/Types.js +1 -0
  19. package/dist/esm/Primitive/always/index.js +5 -0
  20. package/dist/esm/Primitive/array/Fabricator.js +45 -0
  21. package/dist/esm/Primitive/array/Registry.js +26 -0
  22. package/dist/esm/Primitive/array/Schema.js +17 -0
  23. package/dist/esm/Primitive/array/Types.js +1 -0
  24. package/dist/esm/Primitive/array/index.js +5 -0
  25. package/dist/esm/Primitive/bigint/Fabricator.js +54 -0
  26. package/dist/esm/Primitive/bigint/Registry.js +31 -0
  27. package/dist/esm/Primitive/bigint/Schema.js +17 -0
  28. package/dist/esm/Primitive/bigint/Types.js +1 -0
  29. package/dist/esm/Primitive/bigint/index.js +5 -0
  30. package/dist/esm/Primitive/boolean/Fabricator.js +44 -0
  31. package/dist/esm/Primitive/boolean/Outcomes.js +5 -0
  32. package/dist/esm/Primitive/boolean/Registry.js +11 -0
  33. package/dist/esm/Primitive/boolean/Schema.js +33 -0
  34. package/dist/esm/Primitive/boolean/Types.js +1 -0
  35. package/dist/esm/Primitive/boolean/index.js +6 -0
  36. package/dist/esm/Primitive/choice/Fabricator.js +37 -0
  37. package/dist/esm/Primitive/choice/Registry.js +38 -0
  38. package/dist/esm/Primitive/choice/Schema.js +17 -0
  39. package/dist/esm/Primitive/choice/Types.js +1 -0
  40. package/dist/esm/Primitive/choice/index.js +5 -0
  41. package/dist/esm/Primitive/date/Fabricator.js +86 -0
  42. package/dist/esm/Primitive/date/Registry.js +61 -0
  43. package/dist/esm/Primitive/date/Schema.js +17 -0
  44. package/dist/esm/Primitive/date/Types.js +1 -0
  45. package/dist/esm/Primitive/date/index.js +5 -0
  46. package/dist/esm/Primitive/enum/Fabricator.js +33 -0
  47. package/dist/esm/Primitive/enum/Registry.js +33 -0
  48. package/dist/esm/Primitive/enum/Schema.js +17 -0
  49. package/dist/esm/Primitive/enum/Types.js +1 -0
  50. package/dist/esm/Primitive/enum/index.js +5 -0
  51. package/dist/esm/Primitive/index.js +24 -0
  52. package/dist/esm/Primitive/namespace.js +21 -0
  53. package/dist/esm/Primitive/null/Fabricator.js +14 -0
  54. package/dist/esm/Primitive/null/Registry.js +8 -0
  55. package/dist/esm/Primitive/null/Schema.js +10 -0
  56. package/dist/esm/Primitive/null/Types.js +1 -0
  57. package/dist/esm/Primitive/null/index.js +5 -0
  58. package/dist/esm/Primitive/nullable/Fabricator.js +58 -0
  59. package/dist/esm/Primitive/nullable/Outcomes.js +5 -0
  60. package/dist/esm/Primitive/nullable/Registry.js +13 -0
  61. package/dist/esm/Primitive/nullable/Schema.js +36 -0
  62. package/dist/esm/Primitive/nullable/Types.js +1 -0
  63. package/dist/esm/Primitive/nullable/index.js +6 -0
  64. package/dist/esm/Primitive/nullish/Fabricator.js +64 -0
  65. package/dist/esm/Primitive/nullish/Outcomes.js +6 -0
  66. package/dist/esm/Primitive/nullish/Registry.js +13 -0
  67. package/dist/esm/Primitive/nullish/Schema.js +36 -0
  68. package/dist/esm/Primitive/nullish/Types.js +1 -0
  69. package/dist/esm/Primitive/nullish/index.js +6 -0
  70. package/dist/esm/Primitive/number/Fabricator.js +73 -0
  71. package/dist/esm/Primitive/number/Registry.js +59 -0
  72. package/dist/esm/Primitive/number/Schema.js +18 -0
  73. package/dist/esm/Primitive/number/Types.js +1 -0
  74. package/dist/esm/Primitive/number/defaults.js +21 -0
  75. package/dist/esm/Primitive/number/index.js +5 -0
  76. package/dist/esm/Primitive/object/Fabricator.js +77 -0
  77. package/dist/esm/Primitive/object/Registry.js +146 -0
  78. package/dist/esm/Primitive/object/Schema.js +18 -0
  79. package/dist/esm/Primitive/object/Types.js +1 -0
  80. package/dist/esm/Primitive/object/compute/Fabricator.js +24 -0
  81. package/dist/esm/Primitive/object/compute/Registry.js +15 -0
  82. package/dist/esm/Primitive/object/compute/Schema.js +13 -0
  83. package/dist/esm/Primitive/object/compute/Types.js +1 -0
  84. package/dist/esm/Primitive/object/compute/index.js +5 -0
  85. package/dist/esm/Primitive/object/index.js +9 -0
  86. package/dist/esm/Primitive/object/omittable/Fabricator.js +57 -0
  87. package/dist/esm/Primitive/object/omittable/Outcomes.js +5 -0
  88. package/dist/esm/Primitive/object/omittable/Registry.js +13 -0
  89. package/dist/esm/Primitive/object/omittable/Schema.js +36 -0
  90. package/dist/esm/Primitive/object/omittable/Types.js +1 -0
  91. package/dist/esm/Primitive/object/omittable/index.js +6 -0
  92. package/dist/esm/Primitive/object/optional/Fabricator.js +55 -0
  93. package/dist/esm/Primitive/object/optional/Outcomes.js +6 -0
  94. package/dist/esm/Primitive/object/optional/Registry.js +13 -0
  95. package/dist/esm/Primitive/object/optional/Schema.js +36 -0
  96. package/dist/esm/Primitive/object/optional/Types.js +1 -0
  97. package/dist/esm/Primitive/object/optional/index.js +6 -0
  98. package/dist/esm/Primitive/opaque/Fabricator.js +19 -0
  99. package/dist/esm/Primitive/opaque/Registry.js +11 -0
  100. package/dist/esm/Primitive/opaque/Schema.js +10 -0
  101. package/dist/esm/Primitive/opaque/Types.js +1 -0
  102. package/dist/esm/Primitive/opaque/index.js +5 -0
  103. package/dist/esm/Primitive/record/Fabricator.js +55 -0
  104. package/dist/esm/Primitive/record/Registry.js +26 -0
  105. package/dist/esm/Primitive/record/Schema.js +17 -0
  106. package/dist/esm/Primitive/record/Types.js +1 -0
  107. package/dist/esm/Primitive/record/index.js +5 -0
  108. package/dist/esm/Primitive/recursive/Fabricator.js +33 -0
  109. package/dist/esm/Primitive/recursive/Registry.js +20 -0
  110. package/dist/esm/Primitive/recursive/Schema.js +10 -0
  111. package/dist/esm/Primitive/recursive/Terminate.js +236 -0
  112. package/dist/esm/Primitive/recursive/Types.js +1 -0
  113. package/dist/esm/Primitive/recursive/index.js +7 -0
  114. package/dist/esm/Primitive/recursive/self/Fabricator.js +15 -0
  115. package/dist/esm/Primitive/recursive/self/Registry.js +9 -0
  116. package/dist/esm/Primitive/recursive/self/Schema.js +10 -0
  117. package/dist/esm/Primitive/recursive/self/Types.js +1 -0
  118. package/dist/esm/Primitive/recursive/self/index.js +5 -0
  119. package/dist/esm/Primitive/string/Constants.js +73 -0
  120. package/dist/esm/Primitive/string/Fabricator.js +109 -0
  121. package/dist/esm/Primitive/string/Registry.js +25 -0
  122. package/dist/esm/Primitive/string/Schema.js +18 -0
  123. package/dist/esm/Primitive/string/Types.js +1 -0
  124. package/dist/esm/Primitive/string/index.js +6 -0
  125. package/dist/esm/Primitive/symbol/Fabricator.js +33 -0
  126. package/dist/esm/Primitive/symbol/Registry.js +17 -0
  127. package/dist/esm/Primitive/symbol/Schema.js +17 -0
  128. package/dist/esm/Primitive/symbol/Types.js +1 -0
  129. package/dist/esm/Primitive/symbol/index.js +5 -0
  130. package/dist/esm/Primitive/tuple/Fabricator.js +33 -0
  131. package/dist/esm/Primitive/tuple/Registry.js +13 -0
  132. package/dist/esm/Primitive/tuple/Schema.js +17 -0
  133. package/dist/esm/Primitive/tuple/Types.js +1 -0
  134. package/dist/esm/Primitive/tuple/index.js +5 -0
  135. package/dist/esm/Primitive/undefinable/Fabricator.js +58 -0
  136. package/dist/esm/Primitive/undefinable/Outcomes.js +5 -0
  137. package/dist/esm/Primitive/undefinable/Registry.js +13 -0
  138. package/dist/esm/Primitive/undefinable/Schema.js +36 -0
  139. package/dist/esm/Primitive/undefinable/Types.js +1 -0
  140. package/dist/esm/Primitive/undefinable/index.js +6 -0
  141. package/dist/esm/Primitive/undefined/Fabricator.js +16 -0
  142. package/dist/esm/Primitive/undefined/Registry.js +8 -0
  143. package/dist/esm/Primitive/undefined/Schema.js +10 -0
  144. package/dist/esm/Primitive/undefined/Types.js +1 -0
  145. package/dist/esm/Primitive/undefined/index.js +5 -0
  146. package/dist/esm/Random/CallSite.js +56 -0
  147. package/dist/esm/Random/Generator/sfc32.js +16 -0
  148. package/dist/esm/Random/Types.js +1 -0
  149. package/dist/esm/Random/index.js +151 -0
  150. package/dist/esm/Schema/Core.js +68 -0
  151. package/dist/esm/Schema/Registry.js +17 -0
  152. package/dist/esm/Schema/Types.js +1 -0
  153. package/dist/esm/Types.js +11 -0
  154. package/dist/esm/Utility/Core.js +36 -0
  155. package/dist/esm/Utility/DeepMerge.js +18 -0
  156. package/dist/esm/Utility/Digest.js +28 -0
  157. package/dist/esm/Utility/ShallowMerge.js +13 -0
  158. package/dist/esm/Utility/Types.js +1 -0
  159. package/dist/esm/index.js +11 -0
  160. package/dist/esm/internal.js +5 -0
  161. package/dist/types/Adapter/Core.d.ts +64 -0
  162. package/dist/types/Adapter/Types.d.ts +145 -0
  163. package/dist/types/Bound.d.ts +68 -0
  164. package/dist/types/Distribution/index.d.ts +157 -0
  165. package/dist/types/Enumeration/Enumerate.d.ts +35 -0
  166. package/dist/types/Enumeration/Plan.d.ts +44 -0
  167. package/dist/types/Enumeration/Types.d.ts +86 -0
  168. package/dist/types/Error/index.d.ts +541 -0
  169. package/dist/types/Fabricator/Constructor.d.ts +43 -0
  170. package/dist/types/Fabricator/Types.d.ts +150 -0
  171. package/dist/types/Instance/Core.d.ts +98 -0
  172. package/dist/types/Instance/Types.d.ts +167 -0
  173. package/dist/types/Primitive/always/Fabricator.d.ts +19 -0
  174. package/dist/types/Primitive/always/Registry.d.ts +3 -0
  175. package/dist/types/Primitive/always/Schema.d.ts +19 -0
  176. package/dist/types/Primitive/always/Types.d.ts +23 -0
  177. package/dist/types/Primitive/always/index.d.ts +5 -0
  178. package/dist/types/Primitive/array/Fabricator.d.ts +22 -0
  179. package/dist/types/Primitive/array/Registry.d.ts +18 -0
  180. package/dist/types/Primitive/array/Schema.d.ts +23 -0
  181. package/dist/types/Primitive/array/Types.d.ts +44 -0
  182. package/dist/types/Primitive/array/index.d.ts +5 -0
  183. package/dist/types/Primitive/bigint/Fabricator.d.ts +19 -0
  184. package/dist/types/Primitive/bigint/Registry.d.ts +19 -0
  185. package/dist/types/Primitive/bigint/Schema.d.ts +27 -0
  186. package/dist/types/Primitive/bigint/Types.d.ts +33 -0
  187. package/dist/types/Primitive/bigint/index.d.ts +5 -0
  188. package/dist/types/Primitive/boolean/Fabricator.d.ts +19 -0
  189. package/dist/types/Primitive/boolean/Outcomes.d.ts +12 -0
  190. package/dist/types/Primitive/boolean/Registry.d.ts +14 -0
  191. package/dist/types/Primitive/boolean/Schema.d.ts +28 -0
  192. package/dist/types/Primitive/boolean/Types.d.ts +26 -0
  193. package/dist/types/Primitive/boolean/index.d.ts +6 -0
  194. package/dist/types/Primitive/choice/Fabricator.d.ts +32 -0
  195. package/dist/types/Primitive/choice/Registry.d.ts +38 -0
  196. package/dist/types/Primitive/choice/Schema.d.ts +24 -0
  197. package/dist/types/Primitive/choice/Types.d.ts +35 -0
  198. package/dist/types/Primitive/choice/index.d.ts +5 -0
  199. package/dist/types/Primitive/date/Fabricator.d.ts +19 -0
  200. package/dist/types/Primitive/date/Registry.d.ts +82 -0
  201. package/dist/types/Primitive/date/Schema.d.ts +28 -0
  202. package/dist/types/Primitive/date/Types.d.ts +34 -0
  203. package/dist/types/Primitive/date/index.d.ts +5 -0
  204. package/dist/types/Primitive/enum/Fabricator.d.ts +19 -0
  205. package/dist/types/Primitive/enum/Registry.d.ts +39 -0
  206. package/dist/types/Primitive/enum/Schema.d.ts +23 -0
  207. package/dist/types/Primitive/enum/Types.d.ts +44 -0
  208. package/dist/types/Primitive/enum/index.d.ts +5 -0
  209. package/dist/types/Primitive/index.d.ts +28 -0
  210. package/dist/types/Primitive/namespace.d.ts +38 -0
  211. package/dist/types/Primitive/null/Fabricator.d.ts +19 -0
  212. package/dist/types/Primitive/null/Registry.d.ts +3 -0
  213. package/dist/types/Primitive/null/Schema.d.ts +16 -0
  214. package/dist/types/Primitive/null/Types.d.ts +15 -0
  215. package/dist/types/Primitive/null/index.d.ts +5 -0
  216. package/dist/types/Primitive/nullable/Fabricator.d.ts +31 -0
  217. package/dist/types/Primitive/nullable/Outcomes.d.ts +9 -0
  218. package/dist/types/Primitive/nullable/Registry.d.ts +3 -0
  219. package/dist/types/Primitive/nullable/Schema.d.ts +36 -0
  220. package/dist/types/Primitive/nullable/Types.d.ts +48 -0
  221. package/dist/types/Primitive/nullable/index.d.ts +6 -0
  222. package/dist/types/Primitive/nullish/Fabricator.d.ts +36 -0
  223. package/dist/types/Primitive/nullish/Outcomes.d.ts +9 -0
  224. package/dist/types/Primitive/nullish/Registry.d.ts +3 -0
  225. package/dist/types/Primitive/nullish/Schema.d.ts +36 -0
  226. package/dist/types/Primitive/nullish/Types.d.ts +58 -0
  227. package/dist/types/Primitive/nullish/index.d.ts +6 -0
  228. package/dist/types/Primitive/number/Fabricator.d.ts +19 -0
  229. package/dist/types/Primitive/number/Registry.d.ts +52 -0
  230. package/dist/types/Primitive/number/Schema.d.ts +32 -0
  231. package/dist/types/Primitive/number/Types.d.ts +56 -0
  232. package/dist/types/Primitive/number/defaults.d.ts +18 -0
  233. package/dist/types/Primitive/number/index.d.ts +5 -0
  234. package/dist/types/Primitive/object/Fabricator.d.ts +56 -0
  235. package/dist/types/Primitive/object/Registry.d.ts +23 -0
  236. package/dist/types/Primitive/object/Schema.d.ts +41 -0
  237. package/dist/types/Primitive/object/Types.d.ts +85 -0
  238. package/dist/types/Primitive/object/compute/Fabricator.d.ts +31 -0
  239. package/dist/types/Primitive/object/compute/Registry.d.ts +4 -0
  240. package/dist/types/Primitive/object/compute/Schema.d.ts +21 -0
  241. package/dist/types/Primitive/object/compute/Types.d.ts +56 -0
  242. package/dist/types/Primitive/object/compute/index.d.ts +5 -0
  243. package/dist/types/Primitive/object/index.d.ts +8 -0
  244. package/dist/types/Primitive/object/omittable/Fabricator.d.ts +37 -0
  245. package/dist/types/Primitive/object/omittable/Outcomes.d.ts +9 -0
  246. package/dist/types/Primitive/object/omittable/Registry.d.ts +3 -0
  247. package/dist/types/Primitive/object/omittable/Schema.d.ts +32 -0
  248. package/dist/types/Primitive/object/omittable/Types.d.ts +57 -0
  249. package/dist/types/Primitive/object/omittable/index.d.ts +6 -0
  250. package/dist/types/Primitive/object/optional/Fabricator.d.ts +45 -0
  251. package/dist/types/Primitive/object/optional/Outcomes.d.ts +9 -0
  252. package/dist/types/Primitive/object/optional/Registry.d.ts +3 -0
  253. package/dist/types/Primitive/object/optional/Schema.d.ts +32 -0
  254. package/dist/types/Primitive/object/optional/Types.d.ts +72 -0
  255. package/dist/types/Primitive/object/optional/index.d.ts +6 -0
  256. package/dist/types/Primitive/opaque/Fabricator.d.ts +19 -0
  257. package/dist/types/Primitive/opaque/Registry.d.ts +12 -0
  258. package/dist/types/Primitive/opaque/Schema.d.ts +22 -0
  259. package/dist/types/Primitive/opaque/Types.d.ts +18 -0
  260. package/dist/types/Primitive/opaque/index.d.ts +5 -0
  261. package/dist/types/Primitive/record/Fabricator.d.ts +25 -0
  262. package/dist/types/Primitive/record/Registry.d.ts +17 -0
  263. package/dist/types/Primitive/record/Schema.d.ts +27 -0
  264. package/dist/types/Primitive/record/Types.d.ts +85 -0
  265. package/dist/types/Primitive/record/index.d.ts +5 -0
  266. package/dist/types/Primitive/recursive/Fabricator.d.ts +47 -0
  267. package/dist/types/Primitive/recursive/Registry.d.ts +22 -0
  268. package/dist/types/Primitive/recursive/Schema.d.ts +21 -0
  269. package/dist/types/Primitive/recursive/Terminate.d.ts +20 -0
  270. package/dist/types/Primitive/recursive/Types.d.ts +82 -0
  271. package/dist/types/Primitive/recursive/index.d.ts +6 -0
  272. package/dist/types/Primitive/recursive/self/Fabricator.d.ts +29 -0
  273. package/dist/types/Primitive/recursive/self/Registry.d.ts +7 -0
  274. package/dist/types/Primitive/recursive/self/Schema.d.ts +20 -0
  275. package/dist/types/Primitive/recursive/self/Types.d.ts +28 -0
  276. package/dist/types/Primitive/recursive/self/index.d.ts +5 -0
  277. package/dist/types/Primitive/string/Constants.d.ts +58 -0
  278. package/dist/types/Primitive/string/Fabricator.d.ts +24 -0
  279. package/dist/types/Primitive/string/Registry.d.ts +44 -0
  280. package/dist/types/Primitive/string/Schema.d.ts +65 -0
  281. package/dist/types/Primitive/string/Types.d.ts +77 -0
  282. package/dist/types/Primitive/string/index.d.ts +6 -0
  283. package/dist/types/Primitive/symbol/Fabricator.d.ts +24 -0
  284. package/dist/types/Primitive/symbol/Registry.d.ts +16 -0
  285. package/dist/types/Primitive/symbol/Schema.d.ts +24 -0
  286. package/dist/types/Primitive/symbol/Types.d.ts +19 -0
  287. package/dist/types/Primitive/symbol/index.d.ts +5 -0
  288. package/dist/types/Primitive/tuple/Fabricator.d.ts +37 -0
  289. package/dist/types/Primitive/tuple/Registry.d.ts +3 -0
  290. package/dist/types/Primitive/tuple/Schema.d.ts +24 -0
  291. package/dist/types/Primitive/tuple/Types.d.ts +53 -0
  292. package/dist/types/Primitive/tuple/index.d.ts +5 -0
  293. package/dist/types/Primitive/undefinable/Fabricator.d.ts +31 -0
  294. package/dist/types/Primitive/undefinable/Outcomes.d.ts +9 -0
  295. package/dist/types/Primitive/undefinable/Registry.d.ts +3 -0
  296. package/dist/types/Primitive/undefinable/Schema.d.ts +36 -0
  297. package/dist/types/Primitive/undefinable/Types.d.ts +48 -0
  298. package/dist/types/Primitive/undefinable/index.d.ts +6 -0
  299. package/dist/types/Primitive/undefined/Fabricator.d.ts +19 -0
  300. package/dist/types/Primitive/undefined/Registry.d.ts +3 -0
  301. package/dist/types/Primitive/undefined/Schema.d.ts +16 -0
  302. package/dist/types/Primitive/undefined/Types.d.ts +15 -0
  303. package/dist/types/Primitive/undefined/index.d.ts +5 -0
  304. package/dist/types/Random/CallSite.d.ts +59 -0
  305. package/dist/types/Random/Generator/sfc32.d.ts +10 -0
  306. package/dist/types/Random/Types.d.ts +384 -0
  307. package/dist/types/Random/index.d.ts +107 -0
  308. package/dist/types/Schema/Core.d.ts +44 -0
  309. package/dist/types/Schema/Registry.d.ts +20 -0
  310. package/dist/types/Schema/Types.d.ts +70 -0
  311. package/dist/types/Types.d.ts +78 -0
  312. package/dist/types/Utility/Core.d.ts +35 -0
  313. package/dist/types/Utility/DeepMerge.d.ts +14 -0
  314. package/dist/types/Utility/Digest.d.ts +9 -0
  315. package/dist/types/Utility/ShallowMerge.d.ts +6 -0
  316. package/dist/types/Utility/Types.d.ts +4 -0
  317. package/dist/types/index.d.ts +186 -0
  318. package/dist/types/internal.d.ts +64 -0
  319. package/package.json +53 -0
@@ -0,0 +1,286 @@
1
+ import { drawableOutcomes, isDrawable } from "../Distribution/index.js";
2
+ import { FabricatorError } from "../Error/index.js";
3
+ import { outcomes } from "../Primitive/boolean/Outcomes.js";
4
+ import { outcomes as Outcomes_js_outcomes } from "../Primitive/nullable/Outcomes.js";
5
+ import { outcomes as nullish_Outcomes_js_outcomes } from "../Primitive/nullish/Outcomes.js";
6
+ import { outcomes as omittable_Outcomes_js_outcomes } from "../Primitive/object/omittable/Outcomes.js";
7
+ import { outcomes as optional_Outcomes_js_outcomes } from "../Primitive/object/optional/Outcomes.js";
8
+ import { outcomes as undefinable_Outcomes_js_outcomes } from "../Primitive/undefinable/Outcomes.js";
9
+ import { Children, Fixed, Kind, Meta, Omitted } from "../Types.js";
10
+ import { never } from "../Utility/Core.js";
11
+ function leaf() {
12
+ return {
13
+ width: BigInt(1),
14
+ at: ()=>void 0
15
+ };
16
+ }
17
+ function literal(value) {
18
+ return {
19
+ kind: "literal",
20
+ value
21
+ };
22
+ }
23
+ function delegate(axis, index) {
24
+ return {
25
+ kind: "delegate",
26
+ axis,
27
+ index
28
+ };
29
+ }
30
+ function sumAxis(branches) {
31
+ const width = branches.reduce((total, branch)=>total + ("literal" === branch.kind ? BigInt(1) : branch.axis.width), BigInt(0));
32
+ function at(index) {
33
+ let remaining = index;
34
+ for(let i = 0; i < branches.length; i++){
35
+ const branch = branches[i];
36
+ const branchWidth = "literal" === branch.kind ? BigInt(1) : branch.axis.width;
37
+ if (remaining < branchWidth) return "literal" === branch.kind ? {
38
+ value: branch.value
39
+ } : {
40
+ branch: branch.index,
41
+ inner: branch.axis.at(remaining)
42
+ };
43
+ remaining -= branchWidth;
44
+ }
45
+ throw new FabricatorError.EnumerationIndexError(index, width);
46
+ }
47
+ return {
48
+ width,
49
+ at
50
+ };
51
+ }
52
+ function productAxis(strategy, axes, assemble) {
53
+ switch(strategy){
54
+ case "cycle":
55
+ {
56
+ const width = axes.reduce((widest, axis)=>axis.width > widest ? axis.width : widest, BigInt(1));
57
+ return {
58
+ width,
59
+ at: (index)=>assemble(axes.map((axis)=>axis.at(index)))
60
+ };
61
+ }
62
+ case "product":
63
+ {
64
+ const width = axes.reduce((total, axis)=>total * axis.width, BigInt(1));
65
+ function at(index) {
66
+ const pins = new Array(axes.length);
67
+ let remaining = index;
68
+ for(let i = axes.length - 1; i >= 0; i--){
69
+ const axis = axes[i];
70
+ pins[i] = axis.at(remaining % axis.width);
71
+ remaining /= axis.width;
72
+ }
73
+ return assemble(pins);
74
+ }
75
+ return {
76
+ width,
77
+ at
78
+ };
79
+ }
80
+ }
81
+ }
82
+ function plan(node, planning) {
83
+ const axis = axisFor(node, planning);
84
+ switch(planning.strategy){
85
+ case "product":
86
+ return axis;
87
+ case "cycle":
88
+ {
89
+ if (axis.width <= BigInt(1)) return axis;
90
+ const order = planning.orderer(axis.width);
91
+ return {
92
+ width: axis.width,
93
+ at: (index)=>axis.at(order[Number(index % axis.width)])
94
+ };
95
+ }
96
+ }
97
+ }
98
+ function axisFor(node, planning) {
99
+ var _node_Meta;
100
+ if (null == (_node_Meta = node[Meta]) ? void 0 : _node_Meta.produce) return leaf();
101
+ const kind = node[Kind];
102
+ switch(kind){
103
+ case "enum":
104
+ {
105
+ const items = node[Meta].items;
106
+ const drawable = items.filter(([weight])=>isDrawable(weight));
107
+ return {
108
+ width: BigInt(drawable.length),
109
+ at: (index)=>({
110
+ value: drawable[Number(index)][1]
111
+ })
112
+ };
113
+ }
114
+ case "boolean":
115
+ {
116
+ const names = drawableOutcomes(outcomes, node[Meta].weights);
117
+ return {
118
+ width: BigInt(names.length),
119
+ at: (index)=>({
120
+ value: "true" === names[Number(index)]
121
+ })
122
+ };
123
+ }
124
+ case "choice":
125
+ {
126
+ const items = node[Meta].items;
127
+ const options = node[Children];
128
+ const branches = [];
129
+ for(let i = 0; i < items.length; i++)if (isDrawable(items[i][0])) branches.push(delegate(plan(options[i], planning), i));
130
+ return sumAxis(branches);
131
+ }
132
+ case "nullable":
133
+ return sumAxis(drawableOutcomes(Outcomes_js_outcomes, node[Meta].weights).map((name, i)=>{
134
+ switch(name){
135
+ case "null":
136
+ return literal(null);
137
+ case "value":
138
+ return delegate(plan(node[Children], planning), i);
139
+ }
140
+ }));
141
+ case "nullish":
142
+ return sumAxis(drawableOutcomes(nullish_Outcomes_js_outcomes, node[Meta].weights).map((name, i)=>{
143
+ switch(name){
144
+ case "null":
145
+ return literal(null);
146
+ case "undefined":
147
+ return literal(void 0);
148
+ case "value":
149
+ return delegate(plan(node[Children], planning), i);
150
+ }
151
+ }));
152
+ case "undefinable":
153
+ return sumAxis(drawableOutcomes(undefinable_Outcomes_js_outcomes, node[Meta].weights).map((name, i)=>{
154
+ switch(name){
155
+ case "undefined":
156
+ return literal(void 0);
157
+ case "value":
158
+ return delegate(plan(node[Children], planning), i);
159
+ }
160
+ }));
161
+ case "object.omittable":
162
+ return sumAxis(drawableOutcomes(omittable_Outcomes_js_outcomes, node[Meta].weights).map((name, i)=>{
163
+ switch(name){
164
+ case "omitted":
165
+ return literal(Omitted);
166
+ case "value":
167
+ return delegate(plan(node[Children], planning), i);
168
+ }
169
+ }));
170
+ case "object.optional":
171
+ return sumAxis(drawableOutcomes(optional_Outcomes_js_outcomes, node[Meta].weights).map((name, i)=>{
172
+ switch(name){
173
+ case "omitted":
174
+ return literal(Omitted);
175
+ case "undefined":
176
+ return literal(void 0);
177
+ case "value":
178
+ return delegate(plan(node[Children], planning), i);
179
+ }
180
+ }));
181
+ case "tuple":
182
+ {
183
+ const elements = node[Children];
184
+ const axes = elements.map((element)=>plan(element, planning));
185
+ return productAxis(planning.strategy, axes, (slots)=>({
186
+ slots
187
+ }));
188
+ }
189
+ case "object":
190
+ {
191
+ const definition = node[Meta].definition;
192
+ const fields = node[Children];
193
+ const keys = [];
194
+ const axes = [];
195
+ for (const key of Object.keys(fields)){
196
+ const fieldSchema = definition[key];
197
+ const fieldFabricator = fields[key];
198
+ if (fieldSchema && Fixed in fieldSchema) {
199
+ keys.push(key);
200
+ axes.push(leaf());
201
+ continue;
202
+ }
203
+ if ("object.compute" !== fieldFabricator[Kind]) {
204
+ keys.push(key);
205
+ axes.push(plan(fieldFabricator, planning));
206
+ }
207
+ }
208
+ return productAxis(planning.strategy, axes, (pins)=>{
209
+ const fieldsPin = {};
210
+ for(let i = 0; i < keys.length; i++)fieldsPin[keys[i]] = pins[i];
211
+ return {
212
+ fields: fieldsPin
213
+ };
214
+ });
215
+ }
216
+ case "always":
217
+ case "null":
218
+ case "undefined":
219
+ case "string":
220
+ case "number":
221
+ case "bigint":
222
+ case "date":
223
+ case "symbol":
224
+ case "opaque":
225
+ case "array":
226
+ case "record":
227
+ case "recursive":
228
+ case "recursive.self":
229
+ case "object.compute":
230
+ return leaf();
231
+ default:
232
+ return never(kind);
233
+ }
234
+ }
235
+ function toOverride(fieldsPin, fields) {
236
+ const overrides = {};
237
+ for (const key of Object.keys(fieldsPin)){
238
+ const pin = fieldsPin[key];
239
+ if (void 0 === pin) continue;
240
+ const fieldFabricator = fields[key];
241
+ overrides[key] = "object" === fieldFabricator[Kind] ? toOverride(pin.fields, fieldFabricator[Children]) : resolve(fieldFabricator, pin);
242
+ }
243
+ return overrides;
244
+ }
245
+ function resolve(node, pin) {
246
+ if (void 0 === pin) return node.fabricate();
247
+ const kind = node[Kind];
248
+ switch(kind){
249
+ case "enum":
250
+ case "boolean":
251
+ return pin.value;
252
+ case "choice":
253
+ {
254
+ const p = pin;
255
+ const options = node[Children];
256
+ return resolve(options[p.branch], p.inner);
257
+ }
258
+ case "nullable":
259
+ case "nullish":
260
+ case "undefinable":
261
+ case "object.omittable":
262
+ case "object.optional":
263
+ {
264
+ if ("value" in pin) return pin.value;
265
+ const p = pin;
266
+ return resolve(node[Children], p.inner);
267
+ }
268
+ case "tuple":
269
+ {
270
+ const p = pin;
271
+ const elements = node[Children];
272
+ return elements.map((element, i)=>resolve(element, p.slots[i]));
273
+ }
274
+ case "object":
275
+ {
276
+ const p = pin;
277
+ const overrides = toOverride(p.fields, node[Children]);
278
+ return node.fabricate(overrides, {
279
+ validate: false
280
+ });
281
+ }
282
+ default:
283
+ throw new FabricatorError.UnpinnableKindError(kind);
284
+ }
285
+ }
286
+ export { plan, resolve };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,201 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) Object.defineProperty(obj, key, {
3
+ value: value,
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true
7
+ });
8
+ else obj[key] = value;
9
+ return obj;
10
+ }
11
+ class Error_FabricatorError extends Error {
12
+ constructor(){
13
+ super();
14
+ this.name = "FabricatorError";
15
+ }
16
+ }
17
+ (function(FabricatorError) {
18
+ function phrase(during) {
19
+ switch(during){
20
+ case "construction":
21
+ return "building a Fabricator";
22
+ case "adaptation":
23
+ return "converting to an external schema";
24
+ }
25
+ }
26
+ class InvalidCombinatorialLimitError extends FabricatorError {
27
+ constructor(limit){
28
+ super(), _define_property(this, "limit", void 0), this.limit = limit;
29
+ this.name = "InvalidCombinatorialLimitError";
30
+ this.message = `initialize({ limits: { combinatorial } }) requires a positive safe integer; received ${String(limit)}.`;
31
+ }
32
+ }
33
+ FabricatorError.InvalidCombinatorialLimitError = InvalidCombinatorialLimitError;
34
+ class InvalidAttributionRootError extends FabricatorError {
35
+ constructor(root){
36
+ super(), _define_property(this, "root", void 0), this.root = root;
37
+ this.name = "InvalidAttributionRootError";
38
+ this.message = `initialize({ attribution: { kind: "rooted", root } }) requires an absolute path or a "file://" URL; received "${root}".`;
39
+ }
40
+ }
41
+ FabricatorError.InvalidAttributionRootError = InvalidAttributionRootError;
42
+ class DetachedSelfError extends FabricatorError {
43
+ constructor(during){
44
+ super(), _define_property(this, "during", void 0), this.during = during;
45
+ this.name = "DetachedSelfError";
46
+ this.message = `\`self\` was used outside any active \`T.recursive\` while ${phrase(during)} — it can only appear inside the body (or terminal) passed to \`T.recursive(...)\`, and a \`self\` captured out of that callback cannot be reused elsewhere.`;
47
+ }
48
+ }
49
+ FabricatorError.DetachedSelfError = DetachedSelfError;
50
+ class UnterminableRecursiveError extends FabricatorError {
51
+ constructor(path){
52
+ super(), _define_property(this, "path", void 0), this.path = path;
53
+ this.name = "UnterminableRecursiveError";
54
+ const where = 0 === path.length ? "the recursive body itself" : `"${path.join(".")}"`;
55
+ this.message = `T.recursive cannot derive a terminal: self at ${where} is not behind a kind that can stop recursing. Wrap it in an array, record, choice, omittable, optional, nullable, nullish, or undefinable, or pass an explicit terminal.`;
56
+ }
57
+ }
58
+ FabricatorError.UnterminableRecursiveError = UnterminableRecursiveError;
59
+ class UnknownKindError extends FabricatorError {
60
+ constructor(kind, during){
61
+ super(), _define_property(this, "kind", void 0), _define_property(this, "during", void 0), this.kind = kind, this.during = during;
62
+ this.name = "UnknownKindError";
63
+ this.message = `Cannot dispatch a Schema of unknown kind "${kind}" while ${phrase(during)}.`;
64
+ }
65
+ }
66
+ FabricatorError.UnknownKindError = UnknownKindError;
67
+ class EmptyItemsError extends FabricatorError {
68
+ constructor(label, noun){
69
+ super(), _define_property(this, "label", void 0), _define_property(this, "noun", void 0), this.label = label, this.noun = noun;
70
+ this.name = "EmptyItemsError";
71
+ this.message = `${label} requires at least one ${noun}.`;
72
+ }
73
+ }
74
+ FabricatorError.EmptyItemsError = EmptyItemsError;
75
+ class PrototypePollutionError extends FabricatorError {
76
+ constructor(key){
77
+ super(), _define_property(this, "key", void 0), this.key = key;
78
+ this.name = "PrototypePollutionError";
79
+ this.message = `Potential prototype pollution blocked for key: ${key}. An object schema cannot define a field named \`__proto__\`, \`constructor\`, or \`prototype\`.`;
80
+ }
81
+ }
82
+ FabricatorError.PrototypePollutionError = PrototypePollutionError;
83
+ class DetachedComputeError extends FabricatorError {
84
+ constructor(){
85
+ super();
86
+ this.name = "DetachedComputeError";
87
+ this.message = "A `.refine()`-computed field can only be fabricated as part of its parent object, which supplies the already-fabricated fields its resolver reads.";
88
+ }
89
+ }
90
+ FabricatorError.DetachedComputeError = DetachedComputeError;
91
+ class ComputeResultMismatchError extends FabricatorError {
92
+ constructor(kind, value){
93
+ super(), _define_property(this, "kind", void 0), _define_property(this, "value", void 0), this.kind = kind, this.value = value;
94
+ this.name = "ComputeResultMismatchError";
95
+ this.message = `A \`.refine()\`-computed field's resolver returned a value of type ${typeof value} that does not match its "${kind}" source schema.`;
96
+ }
97
+ }
98
+ FabricatorError.ComputeResultMismatchError = ComputeResultMismatchError;
99
+ class UnknownOverrideFieldError extends FabricatorError {
100
+ constructor(field, available){
101
+ super(), _define_property(this, "field", void 0), _define_property(this, "available", void 0), this.field = field, this.available = available;
102
+ this.name = "UnknownOverrideFieldError";
103
+ this.message = `Cannot override unknown field: "${field}". This object schema defines ` + (0 === available.length ? "no fields." : `${available.map((k)=>`"${k}"`).join(", ")}.`);
104
+ }
105
+ }
106
+ FabricatorError.UnknownOverrideFieldError = UnknownOverrideFieldError;
107
+ class InvalidOverrideValueError extends FabricatorError {
108
+ constructor(field, kind, value){
109
+ super(), _define_property(this, "field", void 0), _define_property(this, "kind", void 0), _define_property(this, "value", void 0), this.field = field, this.kind = kind, this.value = value;
110
+ this.name = "InvalidOverrideValueError";
111
+ this.message = `Cannot override field "${field}": a value of type ${typeof value} does not match its "${kind}" schema.`;
112
+ }
113
+ }
114
+ FabricatorError.InvalidOverrideValueError = InvalidOverrideValueError;
115
+ class IllegalOmittedOverrideError extends FabricatorError {
116
+ constructor(field, kind){
117
+ super(), _define_property(this, "field", void 0), _define_property(this, "kind", void 0), this.field = field, this.kind = kind;
118
+ this.name = "IllegalOmittedOverrideError";
119
+ this.message = `Cannot override field "${field}" with Omitted: a "${kind}" field is neither omittable nor optional, so it has no absent outcome to select.`;
120
+ }
121
+ }
122
+ FabricatorError.IllegalOmittedOverrideError = IllegalOmittedOverrideError;
123
+ class EnumerationIndexError extends FabricatorError {
124
+ constructor(index, width){
125
+ super(), _define_property(this, "index", void 0), _define_property(this, "width", void 0), this.index = index, this.width = width;
126
+ this.name = "EnumerationIndexError";
127
+ this.message = `Enumeration index ${index} is out of range for an axis of width ${width}.`;
128
+ }
129
+ }
130
+ FabricatorError.EnumerationIndexError = EnumerationIndexError;
131
+ class UnpinnableKindError extends FabricatorError {
132
+ constructor(kind){
133
+ super(), _define_property(this, "kind", void 0), this.kind = kind;
134
+ this.name = "UnpinnableKindError";
135
+ this.message = `resolve() received a pin for kind "${kind}", which plan() never gives one to.`;
136
+ }
137
+ }
138
+ FabricatorError.UnpinnableKindError = UnpinnableKindError;
139
+ class CombinatorialLimitExceededError extends FabricatorError {
140
+ constructor(width, limit){
141
+ super(), _define_property(this, "width", void 0), _define_property(this, "limit", void 0), this.width = width, this.limit = limit;
142
+ this.name = "CombinatorialLimitExceededError";
143
+ this.message = `combinatorial(...) would enumerate ${width} instances which is over the configured limit of ${limit}. Raise it with initialize({ limits: { combinatorial } }), or use coverage(...), which needs only as many instances as the widest single axis.`;
144
+ }
145
+ }
146
+ FabricatorError.CombinatorialLimitExceededError = CombinatorialLimitExceededError;
147
+ class UnrepresentableRecordKeyError extends FabricatorError {
148
+ constructor(kind){
149
+ super(), _define_property(this, "kind", void 0), this.kind = kind;
150
+ this.name = "UnrepresentableRecordKeyError";
151
+ this.message = `Cannot map a "record" schema keyed by "${kind}" to an external schema: the target has no record with keys of that type. Use .adapt(adapter, ...) to supply one.`;
152
+ }
153
+ }
154
+ FabricatorError.UnrepresentableRecordKeyError = UnrepresentableRecordKeyError;
155
+ class EmptyRangeError extends FabricatorError {
156
+ constructor(label, min, max){
157
+ super(), _define_property(this, "label", void 0), _define_property(this, "min", void 0), _define_property(this, "max", void 0), this.label = label, this.min = min, this.max = max;
158
+ this.name = "EmptyRangeError";
159
+ this.message = `${label} produces an empty range (min=${describeBound(min)}, max=${describeBound(max)}).`;
160
+ }
161
+ }
162
+ FabricatorError.EmptyRangeError = EmptyRangeError;
163
+ function describeBound(bound) {
164
+ const value = String(bound.value);
165
+ return bound.exclusive ? `{ value: ${value}, exclusive: true }` : value;
166
+ }
167
+ class InvalidDistributionBoundError extends FabricatorError {
168
+ constructor(distribution, min, max){
169
+ super(), _define_property(this, "distribution", void 0), _define_property(this, "min", void 0), _define_property(this, "max", void 0), this.distribution = distribution, this.min = min, this.max = max;
170
+ this.name = "InvalidDistributionBoundError";
171
+ this.message = `The ${distribution} distribution requires min > 0 (received min=${min}, max=${max}); its density is proportional to 1/x and undefined at or below zero.`;
172
+ }
173
+ }
174
+ FabricatorError.InvalidDistributionBoundError = InvalidDistributionBoundError;
175
+ class InvalidWeightError extends FabricatorError {
176
+ constructor(label, weight, entry){
177
+ super(), _define_property(this, "label", void 0), _define_property(this, "weight", void 0), _define_property(this, "entry", void 0), this.label = label, this.weight = weight, this.entry = entry;
178
+ this.name = "InvalidWeightError";
179
+ const where = "index" === entry.kind ? `${entry.noun} at index ${entry.index}` : `"${entry.name}"`;
180
+ this.message = `${label} requires every weight to be a finite number ≥ 0; ${where} has weight ${weight}. Zero disables an outcome; a negative weight, NaN, or Infinity is invalid.`;
181
+ }
182
+ }
183
+ FabricatorError.InvalidWeightError = InvalidWeightError;
184
+ class NoDrawableOutcomesError extends FabricatorError {
185
+ constructor(label, noun){
186
+ super(), _define_property(this, "label", void 0), _define_property(this, "noun", void 0), this.label = label, this.noun = noun;
187
+ this.name = "NoDrawableOutcomesError";
188
+ this.message = `${label} leaves no drawable ${noun}. Zeroing an outcome disables it, so at least one must keep a positive weight.`;
189
+ }
190
+ }
191
+ FabricatorError.NoDrawableOutcomesError = NoDrawableOutcomesError;
192
+ class TraceKindMismatchError extends FabricatorError {
193
+ constructor(expected, given){
194
+ super(), _define_property(this, "expected", void 0), _define_property(this, "given", void 0), this.expected = expected, this.given = given;
195
+ this.name = "TraceKindMismatchError";
196
+ this.message = `Cannot build from a trace for kind "${given}": this schema's kind is "${expected}". A trace reproduces the node it was taken from, so its kind must match the schema it is replayed against.`;
197
+ }
198
+ }
199
+ FabricatorError.TraceKindMismatchError = TraceKindMismatchError;
200
+ })(Error_FabricatorError || (Error_FabricatorError = {}));
201
+ export { Error_FabricatorError as FabricatorError };