@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,17 @@
1
+ import { withAdaptations } from "../../Adapter/Core.js";
2
+ import { Kind, Meta } from "../../Types.js";
3
+ function Schema(schema) {
4
+ return {
5
+ ...schema,
6
+ [Kind]: "bigint",
7
+ as: (produce)=>Schema({
8
+ ...schema,
9
+ [Meta]: {
10
+ ...schema[Meta],
11
+ produce
12
+ }
13
+ }),
14
+ adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
15
+ };
16
+ }
17
+ export { Schema };
@@ -0,0 +1 @@
1
+ export { };
@@ -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,44 @@
1
+ import { weighted } from "../../Distribution/index.js";
2
+ import { toStreamFromTrace } from "../../Random/index.js";
3
+ import { Kind, Meta } from "../../Types.js";
4
+ import { Schema } from "./Schema.js";
5
+ function Fabricator(context) {
6
+ var _ref, _ref1;
7
+ var _meta_weights, _meta_weights1;
8
+ const { schema, algorithm, trace } = context;
9
+ const meta = schema[Meta];
10
+ const rehydrated = Schema(schema);
11
+ if (meta.produce) {
12
+ const stream = toStreamFromTrace(algorithm, trace);
13
+ const produce = meta.produce;
14
+ return {
15
+ [Kind]: "boolean",
16
+ [Meta]: meta,
17
+ trace,
18
+ fabricate: ()=>produce({
19
+ random: stream,
20
+ clock: trace.clock
21
+ }),
22
+ schema: rehydrated
23
+ };
24
+ }
25
+ const stream = toStreamFromTrace(algorithm, trace);
26
+ const pick = weighted([
27
+ [
28
+ null != (_ref = null == (_meta_weights = meta.weights) ? void 0 : _meta_weights.true) ? _ref : 1,
29
+ true
30
+ ],
31
+ [
32
+ null != (_ref1 = null == (_meta_weights1 = meta.weights) ? void 0 : _meta_weights1.false) ? _ref1 : 1,
33
+ false
34
+ ]
35
+ ], stream, "T.boolean");
36
+ return {
37
+ [Kind]: "boolean",
38
+ [Meta]: meta,
39
+ trace,
40
+ fabricate: pick,
41
+ schema: rehydrated
42
+ };
43
+ }
44
+ export { Fabricator };
@@ -0,0 +1,5 @@
1
+ const outcomes = [
2
+ "true",
3
+ "false"
4
+ ];
5
+ export { outcomes };
@@ -0,0 +1,11 @@
1
+ import { Adaptation, Kind, Meta, Produces } from "../../Types.js";
2
+ import { Schema } from "./Schema.js";
3
+ const Registry = {
4
+ ...Schema({
5
+ [Kind]: "boolean",
6
+ [Meta]: {},
7
+ [Produces]: void 0,
8
+ [Adaptation]: void 0
9
+ })
10
+ };
11
+ export default Registry;
@@ -0,0 +1,33 @@
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]: "boolean",
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.boolean.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
+ export { Schema };
@@ -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,37 @@
1
+ import { weighted } from "../../Distribution/index.js";
2
+ import { toStreamFromTrace } from "../../Random/index.js";
3
+ import { Children, Kind, Meta } from "../../Types.js";
4
+ import { Schema } from "./Schema.js";
5
+ function Fabricator(context, weightings) {
6
+ const { schema, algorithm, trace } = context;
7
+ const meta = schema[Meta];
8
+ const rehydrated = Schema(schema);
9
+ const options = weightings.map(([, option])=>option);
10
+ if (meta.produce) {
11
+ const stream = toStreamFromTrace(algorithm, trace);
12
+ const produce = meta.produce;
13
+ return {
14
+ [Kind]: "choice",
15
+ [Meta]: meta,
16
+ trace,
17
+ [Children]: options,
18
+ fabricate: ()=>produce({
19
+ random: stream,
20
+ clock: trace.clock
21
+ }),
22
+ schema: rehydrated
23
+ };
24
+ }
25
+ const stream = toStreamFromTrace(algorithm, trace);
26
+ const pick = weighted(weightings, stream, "T.choice");
27
+ const fabricate = ()=>pick().fabricate();
28
+ return {
29
+ [Kind]: "choice",
30
+ [Meta]: meta,
31
+ trace,
32
+ [Children]: options,
33
+ fabricate,
34
+ schema: rehydrated
35
+ };
36
+ }
37
+ export { Fabricator };
@@ -0,0 +1,38 @@
1
+ import { assertDrawableWeights } from "../../Distribution/index.js";
2
+ import { FabricatorError } from "../../Error/index.js";
3
+ import { toSchema } from "../../Schema/Core.js";
4
+ import { Kind, Meta } from "../../Types.js";
5
+ import { Schema } from "./Schema.js";
6
+ function assertNonEmpty(items) {
7
+ if (0 === items.length) throw new FabricatorError.EmptyItemsError("T.choice", "option");
8
+ }
9
+ const Registry = {
10
+ uniform: (items)=>{
11
+ assertNonEmpty(items);
12
+ const weighted = items.map((x)=>[
13
+ 1,
14
+ toSchema(x)
15
+ ]);
16
+ return Schema({
17
+ [Kind]: "choice",
18
+ [Meta]: {
19
+ items: weighted
20
+ }
21
+ });
22
+ },
23
+ weighted: (items)=>{
24
+ assertNonEmpty(items);
25
+ assertDrawableWeights("T.choice.weighted", "option", items);
26
+ const normalized = items.map(([weight, x])=>[
27
+ weight,
28
+ toSchema(x)
29
+ ]);
30
+ return Schema({
31
+ [Kind]: "choice",
32
+ [Meta]: {
33
+ items: normalized
34
+ }
35
+ });
36
+ }
37
+ };
38
+ export default Registry;
@@ -0,0 +1,17 @@
1
+ import { withAdaptations } from "../../Adapter/Core.js";
2
+ import { Kind, Meta } from "../../Types.js";
3
+ function Schema(schema) {
4
+ return {
5
+ ...schema,
6
+ [Kind]: "choice",
7
+ as: (produce)=>Schema({
8
+ ...schema,
9
+ [Meta]: {
10
+ ...schema[Meta],
11
+ produce
12
+ }
13
+ }),
14
+ adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
15
+ };
16
+ }
17
+ 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,86 @@
1
+ import { assertNonemptyDiscrete, effectiveDiscrete, epochBound } from "../../Bound.js";
2
+ import { Distribution, sampler } from "../../Distribution/index.js";
3
+ import { toStreamFromTrace } from "../../Random/index.js";
4
+ import { Kind, MAX_TIME, Meta } from "../../Types.js";
5
+ import { Schema } from "./Schema.js";
6
+ function Fabricator(context) {
7
+ const { schema, algorithm, trace } = context;
8
+ const { clock } = trace;
9
+ const meta = schema[Meta];
10
+ const rehydrated = Schema(schema);
11
+ if (meta.produce) {
12
+ const stream = toStreamFromTrace(algorithm, trace);
13
+ const produce = meta.produce;
14
+ return {
15
+ [Kind]: "date",
16
+ [Meta]: meta,
17
+ trace,
18
+ fabricate: ()=>produce({
19
+ random: stream,
20
+ clock
21
+ }),
22
+ schema: rehydrated
23
+ };
24
+ }
25
+ const stream = toStreamFromTrace(algorithm, trace);
26
+ const whereby = meta.whereby;
27
+ if ("past" === meta.mode) {
28
+ const fabricate = whereby ? drawPastOrFuture({
29
+ min: whereby.min ? epochBound(whereby.min) : {
30
+ value: -MAX_TIME,
31
+ exclusive: false
32
+ },
33
+ max: {
34
+ value: clock,
35
+ exclusive: false
36
+ }
37
+ }, "T.date.past", whereby.distribution, stream) : ()=>new Date(clock - stream.next() * (clock + MAX_TIME));
38
+ return {
39
+ [Kind]: "date",
40
+ [Meta]: meta,
41
+ trace,
42
+ fabricate,
43
+ schema: rehydrated
44
+ };
45
+ }
46
+ if ("future" === meta.mode) {
47
+ const fabricate = whereby ? drawPastOrFuture({
48
+ min: {
49
+ value: clock,
50
+ exclusive: false
51
+ },
52
+ max: whereby.max ? epochBound(whereby.max) : {
53
+ value: MAX_TIME,
54
+ exclusive: false
55
+ }
56
+ }, "T.date.future", whereby.distribution, stream) : ()=>new Date(clock + stream.next() * (MAX_TIME - clock));
57
+ return {
58
+ [Kind]: "date",
59
+ [Meta]: meta,
60
+ trace,
61
+ fabricate,
62
+ schema: rehydrated
63
+ };
64
+ }
65
+ const fabricate = whereby ? draw({
66
+ min: epochBound(whereby.min),
67
+ max: epochBound(whereby.max)
68
+ }, whereby.distribution, stream) : ()=>new Date((2 * stream.next() - 1) * MAX_TIME);
69
+ return {
70
+ [Kind]: "date",
71
+ [Meta]: meta,
72
+ trace,
73
+ fabricate,
74
+ schema: rehydrated
75
+ };
76
+ }
77
+ function drawPastOrFuture(range, label, distribution, stream) {
78
+ assertNonemptyDiscrete(label, range.min, range.max);
79
+ return draw(range, distribution, stream);
80
+ }
81
+ const draw = (range, distribution, stream)=>{
82
+ const inclusive = effectiveDiscrete(range.min, range.max);
83
+ const next = sampler(null != distribution ? distribution : Distribution.uniform(), inclusive, stream);
84
+ return ()=>new Date(next());
85
+ };
86
+ export { Fabricator };
@@ -0,0 +1,61 @@
1
+ import { assertNonemptyDiscrete, epochBound, toBound } from "../../Bound.js";
2
+ import { Adaptation, Kind, Meta, Produces } from "../../Types.js";
3
+ import { Schema } from "./Schema.js";
4
+ function toWhereby(input) {
5
+ const min = void 0 === input.min ? void 0 : toBound(input.min);
6
+ const max = void 0 === input.max ? void 0 : toBound(input.max);
7
+ if (void 0 !== min && void 0 !== max) assertNonemptyDiscrete("T.date.whereby", epochBound(min), epochBound(max));
8
+ return void 0 === input.distribution ? {
9
+ min,
10
+ max
11
+ } : {
12
+ min,
13
+ max,
14
+ distribution: input.distribution
15
+ };
16
+ }
17
+ const Registry = {
18
+ ...Schema({
19
+ [Kind]: "date",
20
+ [Meta]: {},
21
+ [Produces]: void 0,
22
+ [Adaptation]: void 0
23
+ }),
24
+ whereby: (whereby)=>Schema({
25
+ [Kind]: "date",
26
+ [Meta]: {
27
+ whereby: toWhereby(whereby)
28
+ }
29
+ }),
30
+ past: {
31
+ ...Schema({
32
+ [Kind]: "date",
33
+ [Meta]: {
34
+ mode: "past"
35
+ }
36
+ }),
37
+ whereby: (whereby)=>Schema({
38
+ [Kind]: "date",
39
+ [Meta]: {
40
+ mode: "past",
41
+ whereby: toWhereby(whereby)
42
+ }
43
+ })
44
+ },
45
+ future: {
46
+ ...Schema({
47
+ [Kind]: "date",
48
+ [Meta]: {
49
+ mode: "future"
50
+ }
51
+ }),
52
+ whereby: (whereby)=>Schema({
53
+ [Kind]: "date",
54
+ [Meta]: {
55
+ mode: "future",
56
+ whereby: toWhereby(whereby)
57
+ }
58
+ })
59
+ }
60
+ };
61
+ export default Registry;
@@ -0,0 +1,17 @@
1
+ import { withAdaptations } from "../../Adapter/Core.js";
2
+ import { Kind, Meta } from "../../Types.js";
3
+ function Schema(schema) {
4
+ return {
5
+ ...schema,
6
+ [Kind]: "date",
7
+ as: (produce)=>Schema({
8
+ ...schema,
9
+ [Meta]: {
10
+ ...schema[Meta],
11
+ produce
12
+ }
13
+ }),
14
+ adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
15
+ };
16
+ }
17
+ export { Schema };
@@ -0,0 +1 @@
1
+ export { };
@@ -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,33 @@
1
+ import { weighted } from "../../Distribution/index.js";
2
+ import { toStreamFromTrace } from "../../Random/index.js";
3
+ import { Kind, Meta } from "../../Types.js";
4
+ import { Schema } from "./Schema.js";
5
+ function Fabricator(context) {
6
+ const { schema, algorithm, trace } = context;
7
+ const meta = schema[Meta];
8
+ const rehydrated = Schema(schema);
9
+ if (meta.produce) {
10
+ const stream = toStreamFromTrace(algorithm, trace);
11
+ const produce = meta.produce;
12
+ return {
13
+ [Kind]: "enum",
14
+ [Meta]: meta,
15
+ trace,
16
+ fabricate: ()=>produce({
17
+ random: stream,
18
+ clock: trace.clock
19
+ }),
20
+ schema: rehydrated
21
+ };
22
+ }
23
+ const stream = toStreamFromTrace(algorithm, trace);
24
+ const pick = weighted(meta.items, stream, "T.enum");
25
+ return {
26
+ [Kind]: "enum",
27
+ [Meta]: meta,
28
+ trace,
29
+ fabricate: pick,
30
+ schema: rehydrated
31
+ };
32
+ }
33
+ export { Fabricator };
@@ -0,0 +1,33 @@
1
+ import { assertDrawableWeights } from "../../Distribution/index.js";
2
+ import { FabricatorError } from "../../Error/index.js";
3
+ import { Kind, Meta } from "../../Types.js";
4
+ import { Schema } from "./Schema.js";
5
+ function assertNonEmpty(items) {
6
+ if (0 === items.length) throw new FabricatorError.EmptyItemsError("T.enum", "member");
7
+ }
8
+ const Registry = {
9
+ uniform: (items)=>{
10
+ assertNonEmpty(items);
11
+ const weighted = items.map((x)=>[
12
+ 1,
13
+ x
14
+ ]);
15
+ return Schema({
16
+ [Kind]: "enum",
17
+ [Meta]: {
18
+ items: weighted
19
+ }
20
+ });
21
+ },
22
+ weighted: (items)=>{
23
+ assertNonEmpty(items);
24
+ assertDrawableWeights("T.enum.weighted", "member", items);
25
+ return Schema({
26
+ [Kind]: "enum",
27
+ [Meta]: {
28
+ items
29
+ }
30
+ });
31
+ }
32
+ };
33
+ export default Registry;
@@ -0,0 +1,17 @@
1
+ import { withAdaptations } from "../../Adapter/Core.js";
2
+ import { Kind, Meta } from "../../Types.js";
3
+ function Schema(schema) {
4
+ return {
5
+ ...schema,
6
+ [Kind]: "enum",
7
+ as: (produce)=>Schema({
8
+ ...schema,
9
+ [Meta]: {
10
+ ...schema[Meta],
11
+ produce
12
+ }
13
+ }),
14
+ adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
15
+ };
16
+ }
17
+ export { Schema };
@@ -0,0 +1 @@
1
+ export { };
@@ -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,24 @@
1
+ import * as __rspack_external__namespace_js_84cb9ec2 from "./namespace.js";
2
+ export { default as always } from "./always/index.js";
3
+ export { default as array } from "./array/index.js";
4
+ export { default as bigint } from "./bigint/index.js";
5
+ export { default as boolean } from "./boolean/index.js";
6
+ export { default as choice } from "./choice/index.js";
7
+ export { default as date } from "./date/index.js";
8
+ export { default as enum } from "./enum/index.js";
9
+ export { default as null } from "./null/index.js";
10
+ export { default as nullable } from "./nullable/index.js";
11
+ export { default as nullish } from "./nullish/index.js";
12
+ export { default as number } from "./number/index.js";
13
+ export { default as object } from "./object/index.js";
14
+ export { default as omittable } from "./object/omittable/index.js";
15
+ export { default as optional } from "./object/optional/index.js";
16
+ export { default as opaque } from "./opaque/index.js";
17
+ export { default as record } from "./record/index.js";
18
+ export { default as recursive } from "./recursive/index.js";
19
+ export { default as string } from "./string/index.js";
20
+ export { default as symbol } from "./symbol/index.js";
21
+ export { default as tuple } from "./tuple/index.js";
22
+ export { default as undefinable } from "./undefinable/index.js";
23
+ export { default as undefined } from "./undefined/index.js";
24
+ export { __rspack_external__namespace_js_84cb9ec2 as Primitive };
@@ -0,0 +1,21 @@
1
+ import * as __rspack_external__always_index_js_5b7da93f from "./always/index.js";
2
+ import * as __rspack_external__array_index_js_e390953b from "./array/index.js";
3
+ import * as __rspack_external__bigint_index_js_adedcded from "./bigint/index.js";
4
+ import * as __rspack_external__boolean_index_js_0a69a391 from "./boolean/index.js";
5
+ import * as __rspack_external__choice_index_js_ce126df9 from "./choice/index.js";
6
+ import * as __rspack_external__date_index_js_99c830c9 from "./date/index.js";
7
+ import * as __rspack_external__enum_index_js_39677e4c from "./enum/index.js";
8
+ import * as __rspack_external__null_index_js_b154bd62 from "./null/index.js";
9
+ import * as __rspack_external__nullable_index_js_a31c5679 from "./nullable/index.js";
10
+ import * as __rspack_external__nullish_index_js_03ff6564 from "./nullish/index.js";
11
+ import * as __rspack_external__number_index_js_b8c783ea from "./number/index.js";
12
+ import * as __rspack_external__object_index_js_53384658 from "./object/index.js";
13
+ import * as __rspack_external__opaque_index_js_0795d628 from "./opaque/index.js";
14
+ import * as __rspack_external__record_index_js_120e2811 from "./record/index.js";
15
+ import * as __rspack_external__recursive_index_js_3c8bba6b from "./recursive/index.js";
16
+ import * as __rspack_external__string_index_js_18f2393a from "./string/index.js";
17
+ import * as __rspack_external__symbol_index_js_65f53bf7 from "./symbol/index.js";
18
+ import * as __rspack_external__tuple_index_js_fe5f0f11 from "./tuple/index.js";
19
+ import * as __rspack_external__undefinable_index_js_01dfdeb8 from "./undefinable/index.js";
20
+ import * as __rspack_external__undefined_index_js_b61f9fc3 from "./undefined/index.js";
21
+ export { __rspack_external__always_index_js_5b7da93f as always, __rspack_external__array_index_js_e390953b as array, __rspack_external__bigint_index_js_adedcded as bigint, __rspack_external__boolean_index_js_0a69a391 as boolean, __rspack_external__choice_index_js_ce126df9 as choice, __rspack_external__date_index_js_99c830c9 as date, __rspack_external__enum_index_js_39677e4c as enum, __rspack_external__null_index_js_b154bd62 as null, __rspack_external__nullable_index_js_a31c5679 as nullable, __rspack_external__nullish_index_js_03ff6564 as nullish, __rspack_external__number_index_js_b8c783ea as number, __rspack_external__object_index_js_53384658 as object, __rspack_external__opaque_index_js_0795d628 as opaque, __rspack_external__record_index_js_120e2811 as record, __rspack_external__recursive_index_js_3c8bba6b as recursive, __rspack_external__string_index_js_18f2393a as string, __rspack_external__symbol_index_js_65f53bf7 as symbol, __rspack_external__tuple_index_js_fe5f0f11 as tuple, __rspack_external__undefinable_index_js_01dfdeb8 as undefinable, __rspack_external__undefined_index_js_b61f9fc3 as undefined };
@@ -0,0 +1,14 @@
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(schema);
6
+ return {
7
+ [Kind]: "null",
8
+ [Meta]: schema[Meta],
9
+ trace,
10
+ fabricate: ()=>null,
11
+ schema: rehydrated
12
+ };
13
+ }
14
+ 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]: "null",
5
+ [Meta]: {},
6
+ [Produces]: null
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]: "null",
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";