@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,5 @@
1
+ export * from "./Types.js";
2
+ export * from "./Schema.js";
3
+ export * from "./Fabricator.js";
4
+ export * from "./Registry.js";
5
+ export { default } from "./Registry.js";
@@ -0,0 +1,58 @@
1
+ import { weighted } from "../../Distribution/index.js";
2
+ import { toStreamFromTrace } from "../../Random/index.js";
3
+ import { Children, Kind, Meta } from "../../Types.js";
4
+ import { never } from "../../Utility/Core.js";
5
+ import { Schema } from "./Schema.js";
6
+ function Fabricator(context, source) {
7
+ var _ref, _ref1;
8
+ var _meta_weights, _meta_weights1;
9
+ const { schema, algorithm, trace } = context;
10
+ const meta = schema[Meta];
11
+ const rehydrated = Schema(schema);
12
+ if (meta.produce) {
13
+ const stream = toStreamFromTrace(algorithm, trace);
14
+ const produce = meta.produce;
15
+ return {
16
+ [Kind]: "undefinable",
17
+ [Meta]: meta,
18
+ trace,
19
+ [Children]: source,
20
+ fabricate: ()=>produce({
21
+ random: stream,
22
+ clock: trace.clock
23
+ }),
24
+ schema: rehydrated
25
+ };
26
+ }
27
+ const stream = toStreamFromTrace(algorithm, trace);
28
+ const pick = weighted([
29
+ [
30
+ null != (_ref = null == (_meta_weights = meta.weights) ? void 0 : _meta_weights.undefined) ? _ref : 1,
31
+ "undefined"
32
+ ],
33
+ [
34
+ null != (_ref1 = null == (_meta_weights1 = meta.weights) ? void 0 : _meta_weights1.value) ? _ref1 : 1,
35
+ "value"
36
+ ]
37
+ ], stream, "T.undefinable");
38
+ const fabricate = ()=>{
39
+ const picked = pick();
40
+ switch(picked){
41
+ case "value":
42
+ return source.fabricate();
43
+ case "undefined":
44
+ return;
45
+ default:
46
+ return never(picked);
47
+ }
48
+ };
49
+ return {
50
+ [Kind]: "undefinable",
51
+ [Meta]: meta,
52
+ trace,
53
+ [Children]: source,
54
+ fabricate,
55
+ schema: rehydrated
56
+ };
57
+ }
58
+ export { Fabricator };
@@ -0,0 +1,5 @@
1
+ const outcomes = [
2
+ "undefined",
3
+ "value"
4
+ ];
5
+ export { outcomes };
@@ -0,0 +1,13 @@
1
+ import { toSchema } from "../../Schema/Core.js";
2
+ import { Kind, Meta } from "../../Types.js";
3
+ import { Schema } from "./Schema.js";
4
+ function Registry(definition) {
5
+ const normalized = toSchema(definition);
6
+ return Schema({
7
+ [Kind]: "undefinable",
8
+ [Meta]: {
9
+ definition: normalized
10
+ }
11
+ });
12
+ }
13
+ export default Registry;
@@ -0,0 +1,36 @@
1
+ import { withAdaptations } from "../../Adapter/Core.js";
2
+ import { assertDrawableKeyedWeights } from "../../Distribution/index.js";
3
+ import { Kind, Meta } from "../../Types.js";
4
+ import { outcomes } from "./Outcomes.js";
5
+ function Schema(schema) {
6
+ return {
7
+ ...schema,
8
+ [Kind]: "undefinable",
9
+ as: (produce)=>Schema({
10
+ ...schema,
11
+ [Meta]: {
12
+ ...schema[Meta],
13
+ produce
14
+ }
15
+ }),
16
+ weighted: (weights)=>{
17
+ const merged = {
18
+ ...schema[Meta].weights,
19
+ ...weights
20
+ };
21
+ assertDrawableKeyedWeights("T.undefinable.weighted", outcomes, merged);
22
+ return Schema({
23
+ ...schema,
24
+ [Meta]: {
25
+ ...schema[Meta],
26
+ weights: merged
27
+ }
28
+ });
29
+ },
30
+ adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
31
+ };
32
+ }
33
+ function isUndefinableSchema(candidate) {
34
+ return "undefinable" === candidate[Kind];
35
+ }
36
+ export { Schema, isUndefinableSchema };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,6 @@
1
+ export * from "./Fabricator.js";
2
+ export * from "./Outcomes.js";
3
+ export * from "./Registry.js";
4
+ export * from "./Schema.js";
5
+ export * from "./Types.js";
6
+ export { default } from "./Registry.js";
@@ -0,0 +1,16 @@
1
+ import { Kind, Meta } from "../../Types.js";
2
+ import { Schema } from "./Schema.js";
3
+ function Fabricator(context) {
4
+ const { schema, trace } = context;
5
+ const rehydrated = Schema({
6
+ ...schema
7
+ });
8
+ return {
9
+ [Kind]: "undefined",
10
+ [Meta]: schema[Meta],
11
+ trace,
12
+ fabricate: ()=>void 0,
13
+ schema: rehydrated
14
+ };
15
+ }
16
+ export { Fabricator };
@@ -0,0 +1,8 @@
1
+ import { Kind, Meta, Produces } from "../../Types.js";
2
+ import { Schema } from "./Schema.js";
3
+ const Registry = Schema({
4
+ [Kind]: "undefined",
5
+ [Meta]: {},
6
+ [Produces]: void 0
7
+ });
8
+ export default Registry;
@@ -0,0 +1,10 @@
1
+ import { withAdaptations } from "../../Adapter/Core.js";
2
+ import { Kind } from "../../Types.js";
3
+ function Schema(schema) {
4
+ return {
5
+ ...schema,
6
+ [Kind]: "undefined",
7
+ adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
8
+ };
9
+ }
10
+ export { Schema };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,5 @@
1
+ export * from "./Fabricator.js";
2
+ export * from "./Registry.js";
3
+ export * from "./Schema.js";
4
+ export * from "./Types.js";
5
+ export { default } from "./Registry.js";
@@ -0,0 +1,56 @@
1
+ const OWN_ROOT = normalizeLocation(new URL("..", import.meta.url).href);
2
+ function stripPosition(text) {
3
+ return text.replace(/:\d+:\d+/g, "");
4
+ }
5
+ function extractLocation(frameLine) {
6
+ const trimmed = frameLine.trim().replace(/^at\s+/, "");
7
+ const parenthesized = trimmed.match(/\(([^()]*)\)$/);
8
+ return parenthesized ? parenthesized[1] : trimmed;
9
+ }
10
+ function decode(text) {
11
+ try {
12
+ return decodeURIComponent(text);
13
+ } catch {
14
+ return text;
15
+ }
16
+ }
17
+ function normalizeLocation(location) {
18
+ const isUrl = location.startsWith("file://");
19
+ const path = isUrl ? decode(location.slice(7)) : location;
20
+ return path.replace(/\\/g, "/").replace(/^\/?([A-Za-z]):\//, (_, letter)=>`/${letter.toUpperCase()}:/`);
21
+ }
22
+ function directoryOf(location) {
23
+ const cut = location.lastIndexOf("/");
24
+ return -1 === cut ? location : location.slice(0, cut + 1);
25
+ }
26
+ function relativize(root, file) {
27
+ if (!file.startsWith("/")) return file;
28
+ const from = root.split("/").filter(Boolean);
29
+ const to = file.split("/").filter(Boolean);
30
+ let shared = 0;
31
+ while(shared < from.length && shared < to.length && from[shared] === to[shared])shared++;
32
+ const traversals = Array(from.length - shared).fill("..");
33
+ return [
34
+ ...traversals,
35
+ ...to.slice(shared)
36
+ ].join("/");
37
+ }
38
+ function isOwnFrame(location) {
39
+ return location.startsWith(OWN_ROOT);
40
+ }
41
+ function firstExternalFrame(stack) {
42
+ var _ref, _locations_find;
43
+ const locations = stack.split("\n").filter((line)=>line.trim().startsWith("at ")).map(extractLocation).map(normalizeLocation);
44
+ return null != (_ref = null != (_locations_find = locations.find((location)=>!isOwnFrame(location))) ? _locations_find : locations[locations.length - 1]) ? _ref : stack;
45
+ }
46
+ function resolveCallerFile() {
47
+ var _stack;
48
+ if ("function" == typeof Error.captureStackTrace) {
49
+ var _captured_stack;
50
+ const captured = {};
51
+ Error.captureStackTrace(captured);
52
+ return stripPosition(firstExternalFrame(null != (_captured_stack = captured.stack) ? _captured_stack : ""));
53
+ }
54
+ return stripPosition(null != (_stack = new Error().stack) ? _stack : "");
55
+ }
56
+ export { directoryOf, normalizeLocation, relativize, resolveCallerFile };
@@ -0,0 +1,16 @@
1
+ function sfc32(a, b, c, d) {
2
+ return ()=>{
3
+ a |= 0;
4
+ b |= 0;
5
+ c |= 0;
6
+ d |= 0;
7
+ const t = (a + b | 0) + d | 0;
8
+ d = d + 1 | 0;
9
+ a = b ^ b >>> 9;
10
+ b = c + (c << 3) | 0;
11
+ c = c << 21 | c >>> 11;
12
+ c = c + t | 0;
13
+ return (t >>> 0) / 4294967296;
14
+ };
15
+ }
16
+ export { sfc32 };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,151 @@
1
+ import { FabricatorError } from "../Error/index.js";
2
+ import { Layer, MAX_TIME } from "../Types.js";
3
+ import { inline } from "../Utility/Core.js";
4
+ import { cyrb128 } from "../Utility/Digest.js";
5
+ import { directoryOf, normalizeLocation, relativize, resolveCallerFile } from "./CallSite.js";
6
+ import { sfc32 } from "./Generator/sfc32.js";
7
+ function defaultAlgorithm(seed) {
8
+ return sfc32(...cyrb128(seed));
9
+ }
10
+ function randomSeed() {
11
+ return (0x100000000 * Math.random() >>> 0).toString(10);
12
+ }
13
+ function deriveClock(algorithm, seed) {
14
+ const stream = toStream(algorithm, JSON.stringify([
15
+ seed,
16
+ "clock"
17
+ ]));
18
+ return Math.trunc((2 * stream.next() - 1) * MAX_TIME);
19
+ }
20
+ function envSeed() {
21
+ var _ref, _ref1;
22
+ const env = "object" == typeof process ? process.env : void 0;
23
+ return null != (_ref = null != (_ref1 = null == env ? void 0 : env["FABRICATOR_SEED"]) ? _ref1 : null == env ? void 0 : env["SEED"]) ? _ref : null == env ? void 0 : env["RANDOM_SEED"];
24
+ }
25
+ function encode(trace) {
26
+ return JSON.stringify([
27
+ trace.seed,
28
+ trace.clock,
29
+ trace.root,
30
+ trace.file,
31
+ trace.path,
32
+ trace.kind,
33
+ trace.ordinal
34
+ ]);
35
+ }
36
+ function normalizeSeed(seed) {
37
+ if (void 0 === seed) {
38
+ const fromEnv = envSeed();
39
+ return void 0 === fromEnv ? [] : [
40
+ fromEnv
41
+ ];
42
+ }
43
+ return "string" == typeof seed ? [
44
+ seed
45
+ ] : [
46
+ ...seed
47
+ ];
48
+ }
49
+ function Random_layer(seed) {
50
+ return {
51
+ [Layer]: seed
52
+ };
53
+ }
54
+ function isLayered(value) {
55
+ return "object" == typeof value && null !== value && Layer in value;
56
+ }
57
+ function resolveAttribution(attribution) {
58
+ const policy = null != attribution ? attribution : {
59
+ kind: "call site"
60
+ };
61
+ switch(policy.kind){
62
+ case "none":
63
+ return policy;
64
+ case "rooted":
65
+ {
66
+ const root = normalizeLocation(policy.root);
67
+ if (!root.startsWith("/")) throw new FabricatorError.InvalidAttributionRootError(policy.root);
68
+ return toRooted(root);
69
+ }
70
+ case "call site":
71
+ {
72
+ const root = directoryOf(resolveCallerFile());
73
+ return toRooted(root);
74
+ }
75
+ }
76
+ }
77
+ function toRooted(root) {
78
+ return {
79
+ kind: "rooted",
80
+ root: root.endsWith("/") ? root : `${root}/`
81
+ };
82
+ }
83
+ function toStream(algorithm, seed) {
84
+ const generator = algorithm(seed);
85
+ let iterations = 0;
86
+ return {
87
+ seed,
88
+ get iterations () {
89
+ return iterations;
90
+ },
91
+ next: ()=>{
92
+ iterations++;
93
+ return generator();
94
+ }
95
+ };
96
+ }
97
+ function toStreamFromTrace(algorithm, trace) {
98
+ return toStream(algorithm, encode(trace));
99
+ }
100
+ function toRandomSource(options) {
101
+ var _options_algorithm;
102
+ let seed = normalizeSeed(options.seed);
103
+ let algorithm = null != (_options_algorithm = options.algorithm) ? _options_algorithm : defaultAlgorithm;
104
+ let attribution = resolveAttribution(options.attribution);
105
+ const clock = options.clock;
106
+ let constructionOrdinals = new Map();
107
+ function nextConstructionOrdinal(file) {
108
+ var _constructionOrdinals_get;
109
+ const ordinal = null != (_constructionOrdinals_get = constructionOrdinals.get(file)) ? _constructionOrdinals_get : 0;
110
+ constructionOrdinals.set(file, ordinal + 1);
111
+ return ordinal;
112
+ }
113
+ function toRoot(kind, pins = {}) {
114
+ var _pins_root, _pins_clock;
115
+ const replaying = void 0 !== pins.root;
116
+ const root = null != (_pins_root = pins.root) ? _pins_root : kind;
117
+ const file = replaying || void 0 !== pins.file ? pins.file : resolveRootFile(kind);
118
+ const ordinal = inline(()=>{
119
+ if (replaying || void 0 !== pins.ordinal) return pins.ordinal;
120
+ if ("unattributed" === root) return;
121
+ return nextConstructionOrdinal(file);
122
+ });
123
+ return {
124
+ seed,
125
+ clock: null != (_pins_clock = pins.clock) ? _pins_clock : clock,
126
+ root,
127
+ file,
128
+ ordinal
129
+ };
130
+ }
131
+ function resolveRootFile(kind) {
132
+ if ("attributed" !== kind) return;
133
+ if ("none" === attribution.kind) return;
134
+ return relativize(attribution.root, resolveCallerFile());
135
+ }
136
+ function fork(childSeed) {
137
+ return toRandomSource({
138
+ seed: childSeed,
139
+ algorithm,
140
+ attribution,
141
+ clock
142
+ });
143
+ }
144
+ return {
145
+ toRoot,
146
+ algorithm,
147
+ seed,
148
+ fork
149
+ };
150
+ }
151
+ export { Random_layer as layer, defaultAlgorithm, deriveClock, encode, isLayered, normalizeSeed, randomSeed, resolveAttribution, toRandomSource, toStream, toStreamFromTrace };
@@ -0,0 +1,68 @@
1
+ import { Adaptation, Kind, Meta } from "../Types.js";
2
+ import { isPlainObject, never } from "../Utility/Core.js";
3
+ function toSchema(value) {
4
+ const adaptations = value[Adaptation];
5
+ return adaptations ? {
6
+ [Kind]: value[Kind],
7
+ [Meta]: value[Meta],
8
+ [Adaptation]: adaptations
9
+ } : {
10
+ [Kind]: value[Kind],
11
+ [Meta]: value[Meta]
12
+ };
13
+ }
14
+ function violatesKind(kind, value) {
15
+ switch(kind){
16
+ case "object":
17
+ return !isPlainObject(value);
18
+ case "array":
19
+ return !Array.isArray(value);
20
+ case "record":
21
+ return !isPlainObject(value);
22
+ case "tuple":
23
+ return !Array.isArray(value);
24
+ case "string":
25
+ return "string" != typeof value;
26
+ case "number":
27
+ return "number" != typeof value;
28
+ case "boolean":
29
+ return "boolean" != typeof value;
30
+ case "bigint":
31
+ return "bigint" != typeof value;
32
+ case "symbol":
33
+ return "symbol" != typeof value;
34
+ case "date":
35
+ return !(value instanceof Date);
36
+ case "undefined":
37
+ return void 0 !== value;
38
+ case "null":
39
+ return null !== value;
40
+ case "nullable":
41
+ return false;
42
+ case "nullish":
43
+ return false;
44
+ case "always":
45
+ return false;
46
+ case "opaque":
47
+ return false;
48
+ case "recursive":
49
+ return false;
50
+ case "recursive.self":
51
+ return false;
52
+ case "enum":
53
+ return false;
54
+ case "choice":
55
+ return false;
56
+ case "object.compute":
57
+ return false;
58
+ case "object.omittable":
59
+ return false;
60
+ case "object.optional":
61
+ return false;
62
+ case "undefinable":
63
+ return false;
64
+ default:
65
+ return never(kind);
66
+ }
67
+ }
68
+ export { toSchema, violatesKind };
@@ -0,0 +1,17 @@
1
+ import * as __rspack_external__Primitive_index_js_8ad84a20 from "../Primitive/index.js";
2
+ import { deepMerge } from "../Utility/DeepMerge.js";
3
+ const Registry = (registrations)=>{
4
+ const extend = (types)=>Registry(deepMerge(registrations, types({
5
+ T: registrations,
6
+ augment: deepMerge
7
+ })));
8
+ return {
9
+ ...registrations,
10
+ extend
11
+ };
12
+ };
13
+ const registry = Registry({}).extend(()=>{
14
+ const { Primitive: _, ...builders } = __rspack_external__Primitive_index_js_8ad84a20;
15
+ return builders;
16
+ });
17
+ export { registry };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,11 @@
1
+ const Kind = Symbol.for("fabricator:kind");
2
+ const Meta = Symbol.for("fabricator:meta");
3
+ const Produces = Symbol.for("fabricator:produces");
4
+ const Replace = Symbol.for("fabricator:replace");
5
+ const Fixed = Symbol.for("fabricator:fixed");
6
+ const Layer = Symbol.for("fabricator:layer");
7
+ const Children = Symbol.for("fabricator:children");
8
+ const Adaptation = Symbol.for("fabricator:adaptation");
9
+ const Omitted = Symbol.for("fabricator:omitted");
10
+ const MAX_TIME = 8640000000000000;
11
+ export { Adaptation, Children, Fixed, Kind, Layer, MAX_TIME, Meta, Omitted, Produces, Replace };
@@ -0,0 +1,36 @@
1
+ import { Replace } from "../Types.js";
2
+ function inline(fn) {
3
+ return fn();
4
+ }
5
+ function never(_) {}
6
+ function isArray(candidate) {
7
+ return Array.isArray(candidate);
8
+ }
9
+ const POLLUTION_KEYS = Object.freeze(new Set([
10
+ "__proto__",
11
+ "constructor",
12
+ "prototype"
13
+ ]));
14
+ function isPollutionKey(key) {
15
+ return POLLUTION_KEYS.has(key);
16
+ }
17
+ function isPlainObject(value) {
18
+ if ("object" != typeof value) return false;
19
+ if (null === value) return false;
20
+ const proto = Object.getPrototypeOf(value);
21
+ return proto === Object.prototype || null === proto;
22
+ }
23
+ function mergeableKeys(source) {
24
+ return Reflect.ownKeys(source).filter((key)=>{
25
+ if (key === Replace) return false;
26
+ if ("symbol" == typeof key) return true;
27
+ return !isPollutionKey(key);
28
+ });
29
+ }
30
+ function replace(value) {
31
+ return {
32
+ ...value,
33
+ [Replace]: true
34
+ };
35
+ }
36
+ export { inline, isArray, isPlainObject, isPollutionKey, mergeableKeys, never, replace };
@@ -0,0 +1,18 @@
1
+ import { Replace } from "../Types.js";
2
+ import { isPlainObject, mergeableKeys } from "./Core.js";
3
+ function deepMerge(a, b) {
4
+ const result = {};
5
+ if (Replace in b && true === b[Replace]) {
6
+ for (const key of mergeableKeys(b))result[key] = b[key];
7
+ return result;
8
+ }
9
+ for (const key of mergeableKeys(a))result[key] = a[key];
10
+ for (const key of mergeableKeys(b)){
11
+ const bValue = b[key];
12
+ const aValue = result[key];
13
+ if (isPlainObject(aValue) && isPlainObject(bValue)) result[key] = deepMerge(aValue, bValue);
14
+ else result[key] = bValue;
15
+ }
16
+ return result;
17
+ }
18
+ export { deepMerge };
@@ -0,0 +1,28 @@
1
+ function cyrb128(str) {
2
+ let h1 = 1779033703;
3
+ let h2 = 3144134277;
4
+ let h3 = 1013904242;
5
+ let h4 = 2773480762;
6
+ for(let i = 0; i < str.length; i++){
7
+ const k = str.charCodeAt(i);
8
+ h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
9
+ h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
10
+ h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
11
+ h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
12
+ }
13
+ h1 = Math.imul(h3 ^ h1 >>> 18, 597399067);
14
+ h2 = Math.imul(h4 ^ h2 >>> 22, 2869860233);
15
+ h3 = Math.imul(h1 ^ h3 >>> 17, 951274213);
16
+ h4 = Math.imul(h2 ^ h4 >>> 19, 2716044179);
17
+ h1 ^= h2 ^ h3 ^ h4;
18
+ h2 ^= h1;
19
+ h3 ^= h1;
20
+ h4 ^= h1;
21
+ return [
22
+ h1 >>> 0,
23
+ h2 >>> 0,
24
+ h3 >>> 0,
25
+ h4 >>> 0
26
+ ];
27
+ }
28
+ export { cyrb128 };
@@ -0,0 +1,13 @@
1
+ import { Replace } from "../Types.js";
2
+ import { mergeableKeys } from "./Core.js";
3
+ function shallowMerge(a, b) {
4
+ const result = {};
5
+ if (Replace in b && true === b[Replace]) {
6
+ for (const key of mergeableKeys(b))result[key] = b[key];
7
+ return result;
8
+ }
9
+ for (const key of mergeableKeys(a))result[key] = a[key];
10
+ for (const key of mergeableKeys(b))result[key] = b[key];
11
+ return result;
12
+ }
13
+ export { shallowMerge };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,11 @@
1
+ import { instantiate, overlay, toStack } from "./Instance/Core.js";
2
+ function initialize(config) {
3
+ return instantiate(overlay({}, null != config ? config : {}), toStack()).instance;
4
+ }
5
+ export { Adaptation, Omitted } from "./Types.js";
6
+ export { layer } from "./Random/index.js";
7
+ export { FabricatorError } from "./Error/index.js";
8
+ export { drive } from "./Adapter/Core.js";
9
+ export { registry } from "./Schema/Registry.js";
10
+ export { effectiveDiscrete, toBound } from "./Bound.js";
11
+ export { initialize };
@@ -0,0 +1,5 @@
1
+ export { Children, Kind, Meta, Produces } from "./Types.js";
2
+ export { isPlainObject } from "./Utility/Core.js";
3
+ export { plan, resolve } from "./Enumeration/Plan.js";
4
+ export { defaultAlgorithm, encode, randomSeed, toRandomSource, toStream, toStreamFromTrace } from "./Random/index.js";
5
+ export { directoryOf, normalizeLocation, relativize } from "./Random/CallSite.js";