@mionjs/run-types 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/README.md +3 -3
  2. package/dist/builders/atomic.js.map +1 -1
  3. package/dist/builders/compose.js.map +1 -1
  4. package/dist/builders/index.js.map +1 -1
  5. package/dist/builders/static.js.map +1 -1
  6. package/dist/builders/utility.js.map +1 -1
  7. package/dist/createRTFunctions.js.map +1 -1
  8. package/dist/enrich/createFriendlyText.js.map +1 -1
  9. package/dist/enrich/friendlyText.js.map +1 -1
  10. package/dist/enrich/mockData.js.map +1 -1
  11. package/dist/fnHash.js.map +1 -1
  12. package/dist/formats/bigintFormats.js.map +1 -1
  13. package/dist/formats/datetime/dateFormats.js.map +1 -1
  14. package/dist/formats/datetime/dateTime-pure-fns.d.ts +21 -21
  15. package/dist/formats/datetime/dateTime-pure-fns.js +7 -0
  16. package/dist/formats/datetime/dateTime-pure-fns.js.map +1 -1
  17. package/dist/formats/datetime/dateTimeParams.js.map +1 -1
  18. package/dist/formats/datetime/stringDateTimeFormats.js.map +1 -1
  19. package/dist/formats/datetime/temporalFormats.js.map +1 -1
  20. package/dist/formats/index.js.map +1 -1
  21. package/dist/formats/numberFormats.js.map +1 -1
  22. package/dist/formats/refineFormat.js.map +1 -1
  23. package/dist/formats/scalars.js.map +1 -1
  24. package/dist/formats/string/credit-card-pure-fns.d.ts +4 -4
  25. package/dist/formats/string/credit-card-pure-fns.js.map +1 -1
  26. package/dist/formats/string/string-formats-pure-fns.d.ts +12 -12
  27. package/dist/formats/string/string-formats-pure-fns.js +9 -0
  28. package/dist/formats/string/string-formats-pure-fns.js.map +1 -1
  29. package/dist/formats/string/string-patterns.js.map +1 -1
  30. package/dist/formats/string/stringFormats.js.map +1 -1
  31. package/dist/formats/structural.js.map +1 -1
  32. package/dist/getRunType.js.map +1 -1
  33. package/dist/go-generated/fnHashes.generated.js.map +1 -1
  34. package/dist/go-generated/formatErrorKeys.generated.js.map +1 -1
  35. package/dist/go-generated/runTypeKind.generated.js.map +1 -1
  36. package/dist/go-generated/typeFormats.generated.js.map +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/markers.js.map +1 -1
  39. package/dist/mion-pure-fns/_rt/-yTRFuK01Y.js +2 -0
  40. package/dist/mion-pure-fns/_rt/0yJQ37XnmN.js +2 -0
  41. package/dist/mion-pure-fns/_rt/2xtQHAMu-y.js +1 -0
  42. package/dist/mion-pure-fns/_rt/3RndhrueRD.js +2 -0
  43. package/dist/mion-pure-fns/_rt/5oCqd7YyfA.js +1 -0
  44. package/dist/mion-pure-fns/_rt/6E7qWsIwaF.js +1 -0
  45. package/dist/mion-pure-fns/_rt/8AgZCCAhyw.js +1 -0
  46. package/dist/mion-pure-fns/_rt/AmEsDA-eXW.js +2 -0
  47. package/dist/mion-pure-fns/_rt/D503ooPt08.js +2 -0
  48. package/dist/mion-pure-fns/_rt/GA20s6bj41.js +1 -0
  49. package/dist/mion-pure-fns/_rt/GaLOTE4b_F.js +2 -0
  50. package/dist/mion-pure-fns/_rt/ICDNQUtC8e.js +1 -0
  51. package/dist/mion-pure-fns/_rt/IyjvBbz0zS.js +1 -0
  52. package/dist/mion-pure-fns/_rt/Nnf7kyDfjI.js +2 -0
  53. package/dist/mion-pure-fns/_rt/OCJ1B0-ZCA.js +1 -0
  54. package/dist/mion-pure-fns/_rt/OXVO2EpSFv.js +1 -0
  55. package/dist/mion-pure-fns/_rt/PZzwu-J2YB.js +2 -0
  56. package/dist/mion-pure-fns/_rt/Qd_9GJQlOC.js +1 -0
  57. package/dist/mion-pure-fns/_rt/T48n0wyjPx.js +2 -0
  58. package/dist/mion-pure-fns/_rt/VJiknJ2exR.js +1 -0
  59. package/dist/mion-pure-fns/_rt/Z2sc5xQPKB.js +1 -0
  60. package/dist/mion-pure-fns/_rt/ZPLfUKoTJQ.js +1 -0
  61. package/dist/mion-pure-fns/_rt/_abcB3do2M.js +1 -0
  62. package/dist/mion-pure-fns/_rt/cK87_2eKQW.js +1 -0
  63. package/dist/mion-pure-fns/_rt/cgwpjq6rGs.js +1 -0
  64. package/dist/mion-pure-fns/_rt/d8U9HjmMsN.js +1 -0
  65. package/dist/mion-pure-fns/_rt/eglb1lzTW9.js +1 -0
  66. package/dist/mion-pure-fns/_rt/eupKgBrCGt.js +2 -0
  67. package/dist/mion-pure-fns/_rt/gNpMnJMAUE.js +4 -0
  68. package/dist/mion-pure-fns/_rt/hiotRbfSKF.js +1 -0
  69. package/dist/mion-pure-fns/_rt/i-jWpjiwhL.js +1 -0
  70. package/dist/mion-pure-fns/_rt/iFXkEtW54e.js +1 -0
  71. package/dist/mion-pure-fns/_rt/jKlKNzqG2-.js +1 -0
  72. package/dist/mion-pure-fns/_rt/kSLD_nEHux.js +1 -0
  73. package/dist/mion-pure-fns/_rt/lBHf1kg5nQ.js +1 -0
  74. package/dist/mion-pure-fns/_rt/lFYcgG5ZSI.js +1 -0
  75. package/dist/mion-pure-fns/_rt/nLaf1XVvS4.js +2 -0
  76. package/dist/mion-pure-fns/_rt/n_ZOWff4X3.js +1 -0
  77. package/dist/mion-pure-fns/_rt/nsU8QeJCuC.js +1 -0
  78. package/dist/mion-pure-fns/_rt/oUfCfYMODo.js +2 -0
  79. package/dist/mion-pure-fns/_rt/t3CflNaUUJ.js +2 -0
  80. package/dist/mion-pure-fns/_rt/tfRjnFZVF8.js +1 -0
  81. package/dist/mion-pure-fns/_rt/u0Mw9bizvB.js +1 -0
  82. package/dist/mion-pure-fns/_rt/vPNeWxcCkj.js +3 -0
  83. package/dist/mion-pure-fns/_rt/wSBaXrUNw9.js +1 -0
  84. package/dist/mion-pure-fns/_rt/zaCgqTB_lJ.js +5 -0
  85. package/dist/mion-pure-fns/index.json +114 -114
  86. package/dist/mocking/childMatch.js.map +1 -1
  87. package/dist/mocking/constants.mock.d.ts +0 -1
  88. package/dist/mocking/constants.mock.js +0 -1
  89. package/dist/mocking/constants.mock.js.map +1 -1
  90. package/dist/mocking/createMockData.js.map +1 -1
  91. package/dist/mocking/index.js.map +1 -1
  92. package/dist/mocking/isMultipleOf.js.map +1 -1
  93. package/dist/mocking/mockBigIntFormat.js.map +1 -1
  94. package/dist/mocking/mockDateTimeBounds.js.map +1 -1
  95. package/dist/mocking/mockInvalid.js.map +1 -1
  96. package/dist/mocking/mockNumberFormat.js.map +1 -1
  97. package/dist/mocking/mockRandom.js.map +1 -1
  98. package/dist/mocking/mockRegistry.js.map +1 -1
  99. package/dist/mocking/mockStringFormat.js +1 -1
  100. package/dist/mocking/mockStringFormat.js.map +1 -1
  101. package/dist/mocking/mockTemporal.js.map +1 -1
  102. package/dist/mocking/mockType.js.map +1 -1
  103. package/dist/mocking/mockTypes.js.map +1 -1
  104. package/dist/mocking/structuralFormat.js.map +1 -1
  105. package/dist/modelTypes.js.map +1 -1
  106. package/dist/overrideRTFunctions.js.map +1 -1
  107. package/dist/runtime/index.js.map +1 -1
  108. package/dist/runtypes/builderCore.js.map +1 -1
  109. package/dist/runtypes/builderTypes.js.map +1 -1
  110. package/dist/runtypes/circular-pure-fns.d.ts +1 -1
  111. package/dist/runtypes/circular-pure-fns.js.map +1 -1
  112. package/dist/runtypes/circular.js.map +1 -1
  113. package/dist/runtypes/classSerializerRegistry.js.map +1 -1
  114. package/dist/runtypes/dataOnly.js.map +1 -1
  115. package/dist/runtypes/entryTuple.js +30 -3
  116. package/dist/runtypes/entryTuple.js.map +1 -1
  117. package/dist/runtypes/formatAnnotation.js.map +1 -1
  118. package/dist/runtypes/formatErrors.js.map +1 -1
  119. package/dist/runtypes/formatPattern.js.map +1 -1
  120. package/dist/runtypes/jsonShape.js.map +1 -1
  121. package/dist/runtypes/pure-fn-ids.generated.d.ts +47 -47
  122. package/dist/runtypes/pure-fn-ids.generated.js +47 -47
  123. package/dist/runtypes/pure-fn-ids.generated.js.map +1 -1
  124. package/dist/runtypes/pure-fns-utils.d.ts +8 -8
  125. package/dist/runtypes/pure-fns-utils.js +0 -1
  126. package/dist/runtypes/pure-fns-utils.js.map +1 -1
  127. package/dist/runtypes/pureFn.js.map +1 -1
  128. package/dist/runtypes/rtUtils.js +16 -3
  129. package/dist/runtypes/rtUtils.js.map +1 -1
  130. package/dist/runtypes/sentinelKeys.js.map +1 -1
  131. package/dist/runtypes/stripRunTypeMeta.js.map +1 -1
  132. package/dist/runtypes/typeFormat.js.map +1 -1
  133. package/dist/runtypes/types.js.map +1 -1
  134. package/dist/standard/createJsonSchemaFn.js.map +1 -1
  135. package/dist/standard/createStandardSchema.js.map +1 -1
  136. package/dist/standard/issueMapping.js +2 -0
  137. package/dist/standard/issueMapping.js.map +1 -1
  138. package/dist/standard/jsonSchemaDoc.js.map +1 -1
  139. package/dist/standard/spec.js.map +1 -1
  140. package/package.json +21 -58
  141. package/dist/cjs/builders/atomic.d.ts +0 -12
  142. package/dist/cjs/builders/atomic.js +0 -43
  143. package/dist/cjs/builders/compose.d.ts +0 -60
  144. package/dist/cjs/builders/compose.js +0 -122
  145. package/dist/cjs/builders/index.d.ts +0 -5
  146. package/dist/cjs/builders/index.js +0 -48
  147. package/dist/cjs/builders/static.d.ts +0 -137
  148. package/dist/cjs/builders/static.js +0 -2
  149. package/dist/cjs/builders/utility.d.ts +0 -12
  150. package/dist/cjs/builders/utility.js +0 -43
  151. package/dist/cjs/createRTFunctions.d.ts +0 -90
  152. package/dist/cjs/createRTFunctions.js +0 -38
  153. package/dist/cjs/enrich/createFriendlyText.d.ts +0 -25
  154. package/dist/cjs/enrich/createFriendlyText.js +0 -275
  155. package/dist/cjs/enrich/friendlyText.d.ts +0 -56
  156. package/dist/cjs/enrich/friendlyText.js +0 -2
  157. package/dist/cjs/enrich/mockData.d.ts +0 -53
  158. package/dist/cjs/enrich/mockData.js +0 -2
  159. package/dist/cjs/fnHash.d.ts +0 -8
  160. package/dist/cjs/fnHash.js +0 -41
  161. package/dist/cjs/formats/bigintFormats.d.ts +0 -41
  162. package/dist/cjs/formats/bigintFormats.js +0 -10
  163. package/dist/cjs/formats/datetime/dateFormats.d.ts +0 -10
  164. package/dist/cjs/formats/datetime/dateFormats.js +0 -2
  165. package/dist/cjs/formats/datetime/dateTime-pure-fns.d.ts +0 -21
  166. package/dist/cjs/formats/datetime/dateTime-pure-fns.js +0 -405
  167. package/dist/cjs/formats/datetime/dateTimeParams.d.ts +0 -14
  168. package/dist/cjs/formats/datetime/dateTimeParams.js +0 -2
  169. package/dist/cjs/formats/datetime/stringDateTimeFormats.d.ts +0 -33
  170. package/dist/cjs/formats/datetime/stringDateTimeFormats.js +0 -2
  171. package/dist/cjs/formats/datetime/temporalFormats.d.ts +0 -84
  172. package/dist/cjs/formats/datetime/temporalFormats.js +0 -23
  173. package/dist/cjs/formats/index.d.ts +0 -18
  174. package/dist/cjs/formats/index.js +0 -88
  175. package/dist/cjs/formats/numberFormats.d.ts +0 -82
  176. package/dist/cjs/formats/numberFormats.js +0 -16
  177. package/dist/cjs/formats/refineFormat.d.ts +0 -24
  178. package/dist/cjs/formats/refineFormat.js +0 -2
  179. package/dist/cjs/formats/scalars.d.ts +0 -32
  180. package/dist/cjs/formats/scalars.js +0 -30
  181. package/dist/cjs/formats/string/credit-card-pure-fns.d.ts +0 -26
  182. package/dist/cjs/formats/string/credit-card-pure-fns.js +0 -151
  183. package/dist/cjs/formats/string/string-formats-pure-fns.d.ts +0 -12
  184. package/dist/cjs/formats/string/string-formats-pure-fns.js +0 -517
  185. package/dist/cjs/formats/string/string-patterns.d.ts +0 -111
  186. package/dist/cjs/formats/string/string-patterns.js +0 -115
  187. package/dist/cjs/formats/string/stringFormats.d.ts +0 -489
  188. package/dist/cjs/formats/string/stringFormats.js +0 -84
  189. package/dist/cjs/formats/structural.d.ts +0 -105
  190. package/dist/cjs/formats/structural.js +0 -7
  191. package/dist/cjs/getRunType.d.ts +0 -4
  192. package/dist/cjs/getRunType.js +0 -20
  193. package/dist/cjs/go-generated/fnHashes.generated.d.ts +0 -196
  194. package/dist/cjs/go-generated/fnHashes.generated.js +0 -78
  195. package/dist/cjs/go-generated/formatErrorKeys.generated.d.ts +0 -78
  196. package/dist/cjs/go-generated/formatErrorKeys.generated.js +0 -40
  197. package/dist/cjs/go-generated/runTypeKind.generated.d.ts +0 -62
  198. package/dist/cjs/go-generated/runTypeKind.generated.js +0 -61
  199. package/dist/cjs/go-generated/typeFormats.generated.d.ts +0 -104
  200. package/dist/cjs/go-generated/typeFormats.generated.js +0 -30
  201. package/dist/cjs/index.d.ts +0 -28
  202. package/dist/cjs/index.js +0 -47
  203. package/dist/cjs/markers.d.ts +0 -33
  204. package/dist/cjs/markers.js +0 -14
  205. package/dist/cjs/mocking/childMatch.d.ts +0 -3
  206. package/dist/cjs/mocking/childMatch.js +0 -357
  207. package/dist/cjs/mocking/constants.mock.d.ts +0 -7
  208. package/dist/cjs/mocking/constants.mock.js +0 -87
  209. package/dist/cjs/mocking/createMockData.d.ts +0 -8
  210. package/dist/cjs/mocking/createMockData.js +0 -53
  211. package/dist/cjs/mocking/index.d.ts +0 -4
  212. package/dist/cjs/mocking/index.js +0 -9
  213. package/dist/cjs/mocking/isMultipleOf.d.ts +0 -2
  214. package/dist/cjs/mocking/isMultipleOf.js +0 -11
  215. package/dist/cjs/mocking/mockBigIntFormat.d.ts +0 -1
  216. package/dist/cjs/mocking/mockBigIntFormat.js +0 -38
  217. package/dist/cjs/mocking/mockDateTimeBounds.d.ts +0 -13
  218. package/dist/cjs/mocking/mockDateTimeBounds.js +0 -277
  219. package/dist/cjs/mocking/mockInvalid.d.ts +0 -15
  220. package/dist/cjs/mocking/mockInvalid.js +0 -233
  221. package/dist/cjs/mocking/mockNumberFormat.d.ts +0 -1
  222. package/dist/cjs/mocking/mockNumberFormat.js +0 -56
  223. package/dist/cjs/mocking/mockRandom.d.ts +0 -20
  224. package/dist/cjs/mocking/mockRandom.js +0 -106
  225. package/dist/cjs/mocking/mockRegistry.d.ts +0 -7
  226. package/dist/cjs/mocking/mockRegistry.js +0 -11
  227. package/dist/cjs/mocking/mockStringFormat.d.ts +0 -5
  228. package/dist/cjs/mocking/mockStringFormat.js +0 -238
  229. package/dist/cjs/mocking/mockTemporal.d.ts +0 -13
  230. package/dist/cjs/mocking/mockTemporal.js +0 -233
  231. package/dist/cjs/mocking/mockType.d.ts +0 -3
  232. package/dist/cjs/mocking/mockType.js +0 -810
  233. package/dist/cjs/mocking/mockTypes.d.ts +0 -54
  234. package/dist/cjs/mocking/mockTypes.js +0 -2
  235. package/dist/cjs/mocking/structuralFormat.d.ts +0 -5
  236. package/dist/cjs/mocking/structuralFormat.js +0 -82
  237. package/dist/cjs/modelTypes.d.ts +0 -11
  238. package/dist/cjs/modelTypes.js +0 -2
  239. package/dist/cjs/overrideRTFunctions.d.ts +0 -9
  240. package/dist/cjs/overrideRTFunctions.js +0 -20
  241. package/dist/cjs/package.json +0 -3
  242. package/dist/cjs/runtime/index.d.ts +0 -10
  243. package/dist/cjs/runtime/index.js +0 -25
  244. package/dist/cjs/runtypes/builderCore.d.ts +0 -7
  245. package/dist/cjs/runtypes/builderCore.js +0 -39
  246. package/dist/cjs/runtypes/builderTypes.d.ts +0 -51
  247. package/dist/cjs/runtypes/builderTypes.js +0 -2
  248. package/dist/cjs/runtypes/circular-pure-fns.d.ts +0 -11
  249. package/dist/cjs/runtypes/circular-pure-fns.js +0 -117
  250. package/dist/cjs/runtypes/circular.d.ts +0 -6
  251. package/dist/cjs/runtypes/circular.js +0 -25
  252. package/dist/cjs/runtypes/classSerializerRegistry.d.ts +0 -28
  253. package/dist/cjs/runtypes/classSerializerRegistry.js +0 -141
  254. package/dist/cjs/runtypes/dataOnly.d.ts +0 -29
  255. package/dist/cjs/runtypes/dataOnly.js +0 -2
  256. package/dist/cjs/runtypes/entryTuple.d.ts +0 -101
  257. package/dist/cjs/runtypes/entryTuple.js +0 -395
  258. package/dist/cjs/runtypes/formatAnnotation.d.ts +0 -4
  259. package/dist/cjs/runtypes/formatAnnotation.js +0 -2
  260. package/dist/cjs/runtypes/formatErrors.d.ts +0 -18
  261. package/dist/cjs/runtypes/formatErrors.js +0 -2
  262. package/dist/cjs/runtypes/formatPattern.d.ts +0 -20
  263. package/dist/cjs/runtypes/formatPattern.js +0 -17
  264. package/dist/cjs/runtypes/jsonShape.d.ts +0 -22
  265. package/dist/cjs/runtypes/jsonShape.js +0 -2
  266. package/dist/cjs/runtypes/pure-fn-ids.generated.d.ts +0 -47
  267. package/dist/cjs/runtypes/pure-fn-ids.generated.js +0 -50
  268. package/dist/cjs/runtypes/pure-fns-utils.d.ts +0 -8
  269. package/dist/cjs/runtypes/pure-fns-utils.js +0 -147
  270. package/dist/cjs/runtypes/pureFn.d.ts +0 -7
  271. package/dist/cjs/runtypes/pureFn.js +0 -52
  272. package/dist/cjs/runtypes/rtUtils.d.ts +0 -45
  273. package/dist/cjs/runtypes/rtUtils.js +0 -218
  274. package/dist/cjs/runtypes/sentinelKeys.d.ts +0 -7
  275. package/dist/cjs/runtypes/sentinelKeys.js +0 -2
  276. package/dist/cjs/runtypes/stripRunTypeMeta.d.ts +0 -53
  277. package/dist/cjs/runtypes/stripRunTypeMeta.js +0 -2
  278. package/dist/cjs/runtypes/typeFormat.d.ts +0 -14
  279. package/dist/cjs/runtypes/typeFormat.js +0 -2
  280. package/dist/cjs/runtypes/types.d.ts +0 -114
  281. package/dist/cjs/runtypes/types.js +0 -2
  282. package/dist/cjs/standard/createJsonSchemaFn.d.ts +0 -8
  283. package/dist/cjs/standard/createJsonSchemaFn.js +0 -16
  284. package/dist/cjs/standard/createStandardSchema.d.ts +0 -18
  285. package/dist/cjs/standard/createStandardSchema.js +0 -30
  286. package/dist/cjs/standard/issueMapping.d.ts +0 -12
  287. package/dist/cjs/standard/issueMapping.js +0 -36
  288. package/dist/cjs/standard/jsonSchemaDoc.d.ts +0 -7
  289. package/dist/cjs/standard/jsonSchemaDoc.js +0 -95
  290. package/dist/cjs/standard/spec.d.ts +0 -47
  291. package/dist/cjs/standard/spec.js +0 -2
  292. package/dist/mion-pure-fns/@mionjs/run-types/-y__pOnrgnvRMz.js +0 -2
  293. package/dist/mion-pure-fns/@mionjs/run-types/0ofEnb55W0BDIY.js +0 -2
  294. package/dist/mion-pure-fns/@mionjs/run-types/18wDCH5CXZoQKV.js +0 -2
  295. package/dist/mion-pure-fns/@mionjs/run-types/2xtQHAMu-yOBo6.js +0 -1
  296. package/dist/mion-pure-fns/@mionjs/run-types/5oCqd7YyfA9rEw.js +0 -1
  297. package/dist/mion-pure-fns/@mionjs/run-types/6E7qWsIwaFRGn6.js +0 -1
  298. package/dist/mion-pure-fns/@mionjs/run-types/6xkN1Qfs9nqO79.js +0 -1
  299. package/dist/mion-pure-fns/@mionjs/run-types/8Mj42N3ytEEn67.js +0 -1
  300. package/dist/mion-pure-fns/@mionjs/run-types/A3KjzpjelkcBST.js +0 -2
  301. package/dist/mion-pure-fns/@mionjs/run-types/AgOXcprpjsrTKk.js +0 -1
  302. package/dist/mion-pure-fns/@mionjs/run-types/E29ul2pUOyD_Ay.js +0 -1
  303. package/dist/mion-pure-fns/@mionjs/run-types/EG8OkOOSnT9bZn.js +0 -1
  304. package/dist/mion-pure-fns/@mionjs/run-types/EYsxRHRDgAykA_.js +0 -3
  305. package/dist/mion-pure-fns/@mionjs/run-types/Eube1z0GFHuqlM.js +0 -2
  306. package/dist/mion-pure-fns/@mionjs/run-types/GA20s6bj41GC1A.js +0 -1
  307. package/dist/mion-pure-fns/@mionjs/run-types/GfQK19ktpvibuZ.js +0 -2
  308. package/dist/mion-pure-fns/@mionjs/run-types/IyjvBbz0zSlgCJ.js +0 -1
  309. package/dist/mion-pure-fns/@mionjs/run-types/LqTR2O-h6MYq9J.js +0 -4
  310. package/dist/mion-pure-fns/@mionjs/run-types/MnJ72PqkyXHiSP.js +0 -1
  311. package/dist/mion-pure-fns/@mionjs/run-types/NJ9TCGDnkv_9Mn.js +0 -2
  312. package/dist/mion-pure-fns/@mionjs/run-types/OCJ1B0-ZCAwagS.js +0 -1
  313. package/dist/mion-pure-fns/@mionjs/run-types/PQVLEBllZckw8I.js +0 -2
  314. package/dist/mion-pure-fns/@mionjs/run-types/Qd_9GJQlOCVqDe.js +0 -1
  315. package/dist/mion-pure-fns/@mionjs/run-types/R0IFkkw4SM2gvv.js +0 -2
  316. package/dist/mion-pure-fns/@mionjs/run-types/THkAA-KNR1HeAe.js +0 -1
  317. package/dist/mion-pure-fns/@mionjs/run-types/VJiknJ2exR2oMF.js +0 -1
  318. package/dist/mion-pure-fns/@mionjs/run-types/XYGjy-tcgDROBw.js +0 -2
  319. package/dist/mion-pure-fns/@mionjs/run-types/Z2sc5xQPKB0oav.js +0 -1
  320. package/dist/mion-pure-fns/@mionjs/run-types/_3Pmrr5aNmyNi4.js +0 -2
  321. package/dist/mion-pure-fns/@mionjs/run-types/cgwpjq6rGsI8jb.js +0 -1
  322. package/dist/mion-pure-fns/@mionjs/run-types/d8U9HjmMsNFd6Z.js +0 -1
  323. package/dist/mion-pure-fns/@mionjs/run-types/fL3v1v6aVZwJ7-.js +0 -1
  324. package/dist/mion-pure-fns/@mionjs/run-types/gFl-yXbCxJqWgQ.js +0 -2
  325. package/dist/mion-pure-fns/@mionjs/run-types/hiotRbfSKFAuK4.js +0 -1
  326. package/dist/mion-pure-fns/@mionjs/run-types/lFYcgG5ZSI-8em.js +0 -1
  327. package/dist/mion-pure-fns/@mionjs/run-types/n_ZOWff4X3qBMQ.js +0 -1
  328. package/dist/mion-pure-fns/@mionjs/run-types/ndkQPoji6DFHx2.js +0 -2
  329. package/dist/mion-pure-fns/@mionjs/run-types/nsU8QeJCuCF8Kr.js +0 -1
  330. package/dist/mion-pure-fns/@mionjs/run-types/qMsNYN8hy_sC8i.js +0 -1
  331. package/dist/mion-pure-fns/@mionjs/run-types/rXVwGkGDX08BsQ.js +0 -1
  332. package/dist/mion-pure-fns/@mionjs/run-types/rgWveqNi_HeFF8.js +0 -5
  333. package/dist/mion-pure-fns/@mionjs/run-types/s-tZDRlQfCG5m2.js +0 -1
  334. package/dist/mion-pure-fns/@mionjs/run-types/t-ntJ9S0FuxkC2.js +0 -1
  335. package/dist/mion-pure-fns/@mionjs/run-types/tfRjnFZVF8lqI_.js +0 -1
  336. package/dist/mion-pure-fns/@mionjs/run-types/vLId7t0J8HNWlN.js +0 -1
  337. package/dist/mion-pure-fns/@mionjs/run-types/zXMPEMyjGR4ZRc.js +0 -1
@@ -1,810 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mockRunType = mockRunType;
4
- const runTypeKind_generated_ts_1 = require("../go-generated/runTypeKind.generated.js");
5
- const mockRegistry_ts_1 = require("./mockRegistry.js");
6
- const childMatch_ts_1 = require("./childMatch.js");
7
- const structuralFormat_ts_1 = require("./structuralFormat.js");
8
- const rtUtils_ts_1 = require("../runtypes/rtUtils.js");
9
- const mockRandom_ts_1 = require("./mockRandom.js");
10
- const constants_mock_ts_1 = require("./constants.mock.js");
11
- const mockDateTimeBounds_ts_1 = require("./mockDateTimeBounds.js");
12
- const mockTemporal_ts_1 = require("./mockTemporal.js");
13
- const mockStringFormat_ts_1 = require("./mockStringFormat.js");
14
- function mockRunType(runType, options, stack = []) {
15
- stack.push(runType);
16
- try {
17
- const baseMockOpts = options.mock;
18
- const nestLevel = countOccurrences(stack, runType);
19
- if (nestLevel > baseMockOpts.maxMockRecursion)
20
- return undefined;
21
- const decayed = nestLevel > 1 ? decayOptionsForNesting(options, nestLevel) : options;
22
- let mocked = mockSwitch(runType, decayed, stack);
23
- if (runType.formatAnnotation && mocked !== undefined) {
24
- const transform = lookupFormatTransform(runType.id);
25
- if (transform)
26
- mocked = transform(mocked);
27
- }
28
- return mocked;
29
- }
30
- finally {
31
- stack.pop();
32
- }
33
- }
34
- const FORMAT_TRANSFORM_FAMILY = 'fmt';
35
- function lookupFormatTransform(id) {
36
- const entry = (0, rtUtils_ts_1.getRTUtils)().findRTForType(FORMAT_TRANSFORM_FAMILY, id);
37
- if (!entry || entry.isNoop || !entry.fn)
38
- return undefined;
39
- return entry.fn;
40
- }
41
- function countOccurrences(stack, target) {
42
- let count = 0;
43
- for (let i = 0; i < stack.length; i++) {
44
- if (stack[i] === target)
45
- count++;
46
- }
47
- return count;
48
- }
49
- function decayOptionsForNesting(options, nestLevel) {
50
- const mOps = options.mock;
51
- const maxDepth = mOps.maxMockRecursion;
52
- const divisor = nestLevel;
53
- const newProv = nestLevel >= maxDepth ? 0 : mOps.optionalProbability / divisor;
54
- const newMaxLength = nestLevel >= maxDepth ? 0 : decayItemsLength(mOps.maxRandomItemsLength, nestLevel);
55
- const next = {
56
- ...mOps,
57
- optionalProbability: newProv,
58
- maxRandomItemsLength: newMaxLength,
59
- };
60
- if (mOps.optionalPropertyProbability) {
61
- const entries = Object.entries(mOps.optionalPropertyProbability).map(([key, value]) => {
62
- const decayed = nestLevel > maxDepth ? 0 : value / divisor;
63
- return [key, decayed];
64
- });
65
- next.optionalPropertyProbability = Object.fromEntries(entries);
66
- }
67
- if (mOps.arrayLength !== undefined) {
68
- next.arrayLength = nestLevel >= maxDepth ? 0 : decayItemsLength(mOps.arrayLength, nestLevel);
69
- }
70
- if (mOps.parentObj)
71
- next.parentObj = {};
72
- return { ...options, mock: next };
73
- }
74
- function decayItemsLength(length, nestLevel) {
75
- return Math.round(length / nestLevel);
76
- }
77
- function isItemCollection(runType) {
78
- const kind = runType.kind;
79
- if (kind === runTypeKind_generated_ts_1.RunTypeKind.array || kind === runTypeKind_generated_ts_1.RunTypeKind.rest || kind === runTypeKind_generated_ts_1.RunTypeKind.indexSignature)
80
- return true;
81
- if (kind === runTypeKind_generated_ts_1.RunTypeKind.tupleMember || kind === runTypeKind_generated_ts_1.RunTypeKind.parameter) {
82
- return Array.isArray(runType.flags) && runType.flags.includes('rest');
83
- }
84
- const subKind = runType.subKind;
85
- return kind === runTypeKind_generated_ts_1.RunTypeKind.class && (subKind === runTypeKind_generated_ts_1.RunTypeSubKind.map || subKind === runTypeKind_generated_ts_1.RunTypeSubKind.set);
86
- }
87
- const COLLECTION_LEVEL_STEP = 2;
88
- function shrinkForNestedItems(options, stack) {
89
- let nestLevel = 1;
90
- for (let i = 0; i < stack.length; i++)
91
- if (isItemCollection(stack[i]))
92
- nestLevel += COLLECTION_LEVEL_STEP;
93
- const mOps = options.mock;
94
- return { ...options, mock: { ...mOps, maxRandomItemsLength: decayItemsLength(mOps.maxRandomItemsLength, nestLevel) } };
95
- }
96
- function withDataNode(options, next) {
97
- if (options.dataNode === next)
98
- return options;
99
- return { ...options, dataNode: next };
100
- }
101
- function asDataNode(value) {
102
- if (value && typeof value === 'object' && !Array.isArray(value))
103
- return value;
104
- return undefined;
105
- }
106
- function childDataNodeByName(node, name) {
107
- if (!node || name === undefined)
108
- return undefined;
109
- return asDataNode(node[name]);
110
- }
111
- function dataPool(node) {
112
- if (node && Array.isArray(node.pool) && node.pool.length > 0)
113
- return node.pool;
114
- return undefined;
115
- }
116
- function dataArrayLength(node, random) {
117
- const len = node?.rt$length;
118
- if (typeof len === 'number')
119
- return len;
120
- if (Array.isArray(len) && len.length === 2)
121
- return random.int(len[0], len[1]);
122
- return undefined;
123
- }
124
- const STRUCTURAL_MOCK_ATTEMPTS = 32;
125
- function mockSwitch(runType, options, stack) {
126
- const structural = (0, structuralFormat_ts_1.isStructuralFormat)(runType.formatAnnotation) ? runType.formatAnnotation : undefined;
127
- if (!structural)
128
- return mockKindSwitch(runType, options, stack);
129
- for (let attempt = 0; attempt < STRUCTURAL_MOCK_ATTEMPTS; attempt++) {
130
- const attemptOptions = attempt < STRUCTURAL_MOCK_ATTEMPTS / 2
131
- ? options
132
- : { ...options, mock: { ...options.mock, arrayLength: attempt % 3 } };
133
- const candidate = mockKindSwitch(runType, attemptOptions, stack);
134
- if (!(0, structuralFormat_ts_1.structuralFormatAccepts)(candidate, structural))
135
- continue;
136
- return candidate;
137
- }
138
- throw new Error(`Cannot mock a structural format: ${STRUCTURAL_MOCK_ATTEMPTS} candidates all failed the ${String(runType.formatAnnotation?.name)} constraints. ` +
139
- 'Provide a MockData pool for this type (enrich) with values that satisfy them.');
140
- }
141
- function mockKindSwitch(runType, options, stack) {
142
- const mOps = options.mock;
143
- const random = mOps.random ?? mockRandom_ts_1.nativeMockRandom;
144
- const kind = runType.kind;
145
- const dataNode = options.dataNode;
146
- const pool = dataPool(dataNode);
147
- if (pool)
148
- return random.pick(pool);
149
- if (runType.formatAnnotation) {
150
- const mockFn = (0, mockRegistry_ts_1.getMockingFunction)(kind);
151
- if (mockFn) {
152
- const mocked = mockFn(runType.formatAnnotation, random, mOps);
153
- if (mocked !== undefined)
154
- return mocked;
155
- }
156
- }
157
- switch (kind) {
158
- case runTypeKind_generated_ts_1.RunTypeKind.never:
159
- throw new Error('Cannot mock never type.');
160
- case runTypeKind_generated_ts_1.RunTypeKind.any:
161
- case runTypeKind_generated_ts_1.RunTypeKind.unknown:
162
- return random.any(mOps.anyValuesList);
163
- case runTypeKind_generated_ts_1.RunTypeKind.string:
164
- return random.string(mOps.stringLength ?? random.int(1, mOps.maxRandomStringLength), mOps.stringCharSet || constants_mock_ts_1.stringCharSet);
165
- case runTypeKind_generated_ts_1.RunTypeKind.number: {
166
- const min = typeof dataNode?.min === 'number' ? dataNode.min : mOps.minNumber;
167
- const max = typeof dataNode?.max === 'number' ? dataNode.max : mOps.maxNumber;
168
- return random.number(min, max);
169
- }
170
- case runTypeKind_generated_ts_1.RunTypeKind.boolean:
171
- return random.boolean();
172
- case runTypeKind_generated_ts_1.RunTypeKind.bigint:
173
- return random.bigint(mOps.minNumber, mOps.maxNumber);
174
- case runTypeKind_generated_ts_1.RunTypeKind.null:
175
- return null;
176
- case runTypeKind_generated_ts_1.RunTypeKind.undefined:
177
- return undefined;
178
- case runTypeKind_generated_ts_1.RunTypeKind.void:
179
- return undefined;
180
- case runTypeKind_generated_ts_1.RunTypeKind.regexp:
181
- return mOps.nonDataTypes ? random.regExp(mOps.regexpList) : undefined;
182
- case runTypeKind_generated_ts_1.RunTypeKind.symbol:
183
- return random.symbol(mOps.symbolName, mOps.symbolLength, mOps.symbolCharSet);
184
- case runTypeKind_generated_ts_1.RunTypeKind.literal:
185
- return runType.literal;
186
- case runTypeKind_generated_ts_1.RunTypeKind.object:
187
- return random.pick(mOps.objectList);
188
- case runTypeKind_generated_ts_1.RunTypeKind.enum: {
189
- const values = runType.values;
190
- if (!Array.isArray(values) || values.length === 0) {
191
- throw new Error('Cannot mock enum without values.');
192
- }
193
- const index = mOps.enumIndex ?? random.int(0, values.length - 1);
194
- return values[index];
195
- }
196
- case runTypeKind_generated_ts_1.RunTypeKind.enumMember:
197
- throw new Error('Mock enum member is not supported.');
198
- case runTypeKind_generated_ts_1.RunTypeKind.class: {
199
- const subKind = runType.subKind;
200
- if (subKind === runTypeKind_generated_ts_1.RunTypeSubKind.date) {
201
- const dateParams = runType.formatAnnotation?.name === 'nativeDate' ? runType.formatAnnotation.params : undefined;
202
- if (dateParams &&
203
- (dateParams.min !== undefined ||
204
- dateParams.max !== undefined ||
205
- dateParams.gt !== undefined ||
206
- dateParams.lt !== undefined)) {
207
- return (0, mockDateTimeBounds_ts_1.mockBoundedNativeDate)({
208
- min: dateParams.min,
209
- max: dateParams.max,
210
- gt: dateParams.gt,
211
- lt: dateParams.lt,
212
- }, random);
213
- }
214
- const minDate = dataNode?.min instanceof Date ? dataNode.min : mOps.minDate;
215
- const maxDate = dataNode?.max instanceof Date ? dataNode.max : mOps.maxDate;
216
- return random.date(minDate, maxDate);
217
- }
218
- if (subKind === runTypeKind_generated_ts_1.RunTypeSubKind.map)
219
- return mockMap(runType, withDataNode(options, undefined), stack);
220
- if (subKind === runTypeKind_generated_ts_1.RunTypeSubKind.set)
221
- return mockSet(runType, withDataNode(options, undefined), stack);
222
- if (subKind === runTypeKind_generated_ts_1.RunTypeSubKind.url)
223
- return (0, mockStringFormat_ts_1.mockUrlObject)(runType.formatAnnotation, random);
224
- if ((0, mockTemporal_ts_1.isTemporalSubKind)(subKind)) {
225
- const bounds = (0, mockTemporal_ts_1.temporalBoundsFromAnnotation)(runType.formatAnnotation);
226
- return (0, mockTemporal_ts_1.mockTemporal)(subKind, bounds, random);
227
- }
228
- if (subKind === runTypeKind_generated_ts_1.RunTypeSubKind.nonSerializable) {
229
- if (mOps.nonDataTypes)
230
- return mockNonSerializableNative(runType);
231
- throw new Error('Mock is disabled for non-serializable types.');
232
- }
233
- return buildObjectLiteral(runType, options, stack, mOps);
234
- }
235
- case runTypeKind_generated_ts_1.RunTypeKind.array: {
236
- const child = runType.child;
237
- if (!child)
238
- throw new Error('Cannot mock array: child runtype missing.');
239
- const annotation = runType.formatAnnotation;
240
- const arrayParams = annotation?.name === 'formattedArray' ? (annotation.params ?? {}) : undefined;
241
- const length = clampToItemBounds(arrayParams, dataArrayLength(dataNode, random) ?? mOps.arrayLength ?? random.int(0, mOps.maxRandomItemsLength));
242
- const childOpts = withDataNode(shrinkForNestedItems(options, stack), asDataNode(dataNode?.rt$items));
243
- const containsChecks = (runType.contains ?? []);
244
- if (containsChecks.length > 0) {
245
- const matchedByEntry = [];
246
- for (const entry of containsChecks) {
247
- if (entry.max >= 0 && entry.min > entry.max) {
248
- throw new Error('Cannot mock contains: minContains exceeds maxContains — the schema is provably empty.');
249
- }
250
- const entryItems = [];
251
- for (let n = 0; n < entry.min; n++) {
252
- const item = mockRunType(entry.child, childOpts, stack);
253
- if (!(0, childMatch_ts_1.childSchemaMatches)(item, child)) {
254
- throw new Error('Cannot mock contains: the contains child and the items type are contradictory. ' +
255
- 'Provide a MockData pool for this type (enrich).');
256
- }
257
- entryItems.push(item);
258
- }
259
- matchedByEntry.push(entryItems);
260
- }
261
- const matched = matchedByEntry.flat();
262
- const items = [...matched];
263
- let fillerAttempts = 0;
264
- while (items.length < Math.max(length, matched.length) && fillerAttempts < 64) {
265
- fillerAttempts++;
266
- const filler = mockRunType(child, childOpts, stack);
267
- if (containsChecks.every((entry) => !(0, childMatch_ts_1.childSchemaMatches)(filler, entry.child)))
268
- items.push(filler);
269
- }
270
- if (arrayParams?.uniqueItems === true) {
271
- const seen = new Set();
272
- const unique = items.filter((item) => {
273
- const key = (0, structuralFormat_ts_1.canonicalJson)(item);
274
- if (seen.has(key))
275
- return false;
276
- seen.add(key);
277
- return true;
278
- });
279
- containsChecks.forEach((entry, index) => {
280
- const surviving = matchedByEntry[index].filter((item) => unique.includes(item)).length;
281
- if (surviving < entry.min) {
282
- throw new Error('Cannot mock contains with uniqueItems: the contains child cannot produce enough distinct values. ' +
283
- 'Provide a MockData pool for this type (enrich).');
284
- }
285
- });
286
- return unique;
287
- }
288
- return items;
289
- }
290
- if (length === 0)
291
- return [];
292
- if (arrayParams?.uniqueItems === true) {
293
- const seen = new Set();
294
- const items = [];
295
- let attempts = 0;
296
- while (items.length < length && attempts < length * 32) {
297
- attempts++;
298
- const item = mockRunType(child, childOpts, stack);
299
- const key = (0, structuralFormat_ts_1.canonicalJson)(item);
300
- if (seen.has(key))
301
- continue;
302
- seen.add(key);
303
- items.push(item);
304
- }
305
- const minItems = typeof arrayParams.minItems === 'number' ? arrayParams.minItems : 0;
306
- if (items.length < minItems) {
307
- throw new Error(`Cannot mock a uniqueItems array: the element type cannot produce ${minItems} distinct values. ` +
308
- 'Provide a MockData pool for this type (enrich) with enough distinct samples.');
309
- }
310
- return items;
311
- }
312
- const items = [];
313
- for (let i = 0; i < length; i++)
314
- items.push(mockRunType(child, childOpts, stack));
315
- return items;
316
- }
317
- case runTypeKind_generated_ts_1.RunTypeKind.tuple: {
318
- const children = (runType.children ?? []);
319
- const perElemOptions = mOps.tupleOptions ?? mOps.paramsOptions;
320
- const itemsNode = asDataNode(dataNode?.rt$items);
321
- const baseOpts = withDataNode(options, itemsNode);
322
- const params = children.map((member, index) => {
323
- const childOpts = perElemOptions?.[index] ? mergeChildOptions(baseOpts, perElemOptions[index]) : baseOpts;
324
- return mockRunType(member, childOpts, stack);
325
- });
326
- const lastMember = children[children.length - 1];
327
- const flattened = lastMember && isRestTupleMember(lastMember) && Array.isArray(params[params.length - 1])
328
- ? [...params.slice(0, -1), ...params[params.length - 1]]
329
- : params;
330
- const annotation = runType.formatAnnotation;
331
- let shaped = flattened;
332
- if (annotation?.name === 'formattedArray') {
333
- const arrayParams = (annotation.params ?? {});
334
- if (arrayParams.uniqueItems === true) {
335
- const seen = new Set();
336
- shaped = shaped.filter((item) => {
337
- const key = (0, structuralFormat_ts_1.canonicalJson)(item);
338
- if (seen.has(key))
339
- return false;
340
- seen.add(key);
341
- return true;
342
- });
343
- }
344
- if (typeof arrayParams.maxItems === 'number' && shaped.length > arrayParams.maxItems) {
345
- shaped = shaped.slice(0, arrayParams.maxItems);
346
- }
347
- }
348
- const tupleContains = (runType.contains ?? []);
349
- for (const entry of tupleContains) {
350
- const overCount = shaped.filter((item) => (0, childMatch_ts_1.childSchemaMatches)(item, entry.child)).length;
351
- if (entry.min > 0 || (entry.max >= 0 && overCount > entry.max)) {
352
- throw new Error('Cannot mock contains over a tuple (prefixItems) base. Provide a MockData pool for this type (enrich).');
353
- }
354
- }
355
- return shaped;
356
- }
357
- case runTypeKind_generated_ts_1.RunTypeKind.tupleMember:
358
- case runTypeKind_generated_ts_1.RunTypeKind.parameter: {
359
- const child = runType.child;
360
- if (!child)
361
- return undefined;
362
- if (Array.isArray(runType.flags) && runType.flags.includes('rest') && child.kind !== runTypeKind_generated_ts_1.RunTypeKind.rest) {
363
- const length = random.int(0, mOps.maxRandomItemsLength);
364
- const itemOpts = shrinkForNestedItems(options, stack);
365
- const items = [];
366
- for (let i = 0; i < length; i++)
367
- items.push(mockRunType(child, itemOpts, stack));
368
- return items;
369
- }
370
- if (runType.optional && !isRestTupleMember(runType)) {
371
- if (random.float() > mOps.optionalProbability)
372
- return undefined;
373
- }
374
- return mockRunType(child, options, stack);
375
- }
376
- case runTypeKind_generated_ts_1.RunTypeKind.rest: {
377
- const child = runType.child;
378
- if (!child)
379
- return [];
380
- const length = random.int(0, mOps.maxRandomItemsLength);
381
- const itemOpts = shrinkForNestedItems(options, stack);
382
- const items = [];
383
- for (let i = 0; i < length; i++)
384
- items.push(mockRunType(child, itemOpts, stack));
385
- return items;
386
- }
387
- case runTypeKind_generated_ts_1.RunTypeKind.objectLiteral:
388
- case runTypeKind_generated_ts_1.RunTypeKind.intersection:
389
- return buildObjectLiteral(runType, options, stack, mOps);
390
- case runTypeKind_generated_ts_1.RunTypeKind.property:
391
- case runTypeKind_generated_ts_1.RunTypeKind.propertySignature: {
392
- const child = runType.child;
393
- if (!child)
394
- return undefined;
395
- const name = runType.name;
396
- const perPropProb = mOps.optionalPropertyProbability;
397
- const probability = perPropProb && name !== undefined && perPropProb[name] !== undefined ? perPropProb[name] : mOps.optionalProbability;
398
- if (probability < 0 || probability > 1) {
399
- throw new Error('optionalProbability must be between 0 and 1');
400
- }
401
- if (runType.optional && random.float() > probability)
402
- return undefined;
403
- return mockRunType(child, options, stack);
404
- }
405
- case runTypeKind_generated_ts_1.RunTypeKind.indexSignature: {
406
- const child = runType.child;
407
- const keyType = runType.index;
408
- if (!child || !keyType)
409
- return {};
410
- const length = random.int(0, mOps.maxRandomItemsLength);
411
- const valueOpts = shrinkForNestedItems(options, stack);
412
- const parent = mOps.parentObj ?? {};
413
- const keyKind = keyType.kind;
414
- for (let i = 0; i < length; i++) {
415
- let propName;
416
- switch (keyKind) {
417
- case runTypeKind_generated_ts_1.RunTypeKind.number:
418
- propName = i;
419
- break;
420
- case runTypeKind_generated_ts_1.RunTypeKind.string:
421
- propName = `key${i}`;
422
- break;
423
- case runTypeKind_generated_ts_1.RunTypeKind.symbol:
424
- propName = Symbol.for(`key${i}`);
425
- break;
426
- case runTypeKind_generated_ts_1.RunTypeKind.templateLiteral: {
427
- const buildKey = () => buildTemplateLiteralString(keyType, mOps, random);
428
- let candidate = buildKey();
429
- for (let attempt = 0; attempt < 5 && Object.prototype.hasOwnProperty.call(parent, candidate); attempt++) {
430
- candidate = buildKey();
431
- }
432
- propName = candidate;
433
- break;
434
- }
435
- default:
436
- throw new Error(`Invalid index signature key kind: ${keyKind}`);
437
- }
438
- parent[propName] = mockRunType(child, valueOpts, stack);
439
- }
440
- return parent;
441
- }
442
- case runTypeKind_generated_ts_1.RunTypeKind.union: {
443
- const allChildren = (runType.children ?? []);
444
- const survivors = allChildren.filter((member) => !member.notSupported);
445
- const children = survivors.length > 0 ? survivors : allChildren;
446
- if (children.length === 0)
447
- throw new Error('Cannot mock union with no branches.');
448
- if (mOps.unionIndex !== undefined && (mOps.unionIndex < 0 || mOps.unionIndex >= children.length)) {
449
- throw new Error('unionIndex must be between 0 and the number of types in the union.');
450
- }
451
- const index = mOps.unionIndex ?? random.int(0, children.length - 1);
452
- if (mOps.unionIndex !== undefined)
453
- return mockRunType(children[index], options, stack);
454
- let samplingFailure;
455
- for (let offset = 0; offset < children.length; offset++) {
456
- const arm = children[(index + offset) % children.length];
457
- try {
458
- return mockRunType(arm, options, stack);
459
- }
460
- catch (error) {
461
- if (!(0, childMatch_ts_1.isMockSamplingError)(error))
462
- throw error;
463
- samplingFailure = error;
464
- }
465
- }
466
- throw samplingFailure;
467
- }
468
- case runTypeKind_generated_ts_1.RunTypeKind.templateLiteral:
469
- return buildTemplateLiteralString(runType, mOps, random);
470
- case runTypeKind_generated_ts_1.RunTypeKind.promise: {
471
- const child = runType.child;
472
- const timeOut = mOps.promiseTimeOut || 0;
473
- const resolveInner = () => (child ? mockRunType(child, options, stack) : undefined);
474
- return new Promise((resolve, reject) => {
475
- const finish = () => {
476
- if (mOps.promiseReject)
477
- reject(mOps.promiseReject);
478
- else
479
- resolve(resolveInner());
480
- };
481
- if (timeOut > 0)
482
- setTimeout(finish, timeOut);
483
- else
484
- finish();
485
- });
486
- }
487
- case runTypeKind_generated_ts_1.RunTypeKind.function:
488
- case runTypeKind_generated_ts_1.RunTypeKind.callSignature:
489
- case runTypeKind_generated_ts_1.RunTypeKind.method:
490
- case runTypeKind_generated_ts_1.RunTypeKind.methodSignature:
491
- return mOps.nonDataTypes ? mockNonDataFunction() : undefined;
492
- default:
493
- throw new Error(`Cannot mock runType: kind ${kind} is not yet supported by the mock walker.`);
494
- }
495
- }
496
- function buildObjectLiteral(runType, options, stack, mOps) {
497
- const children = (runType.children ?? []);
498
- const parent = mOps.parentObj ?? {};
499
- const dataNode = options.dataNode;
500
- for (const member of children) {
501
- const memberKind = member.kind;
502
- if (memberKind === runTypeKind_generated_ts_1.RunTypeKind.method || memberKind === runTypeKind_generated_ts_1.RunTypeKind.methodSignature) {
503
- const methodName = member.name;
504
- if (mOps.nonDataTypes && methodName !== undefined)
505
- parent[methodName] = mockNonDataFunction();
506
- continue;
507
- }
508
- if (memberKind === runTypeKind_generated_ts_1.RunTypeKind.indexSignature) {
509
- const indexed = mockRunType(member, options, stack);
510
- if (indexed && typeof indexed === 'object')
511
- Object.assign(parent, indexed);
512
- continue;
513
- }
514
- const name = member.name;
515
- if (name === undefined)
516
- continue;
517
- const memberOpts = withDataNode(options, childDataNodeByName(dataNode, name));
518
- const value = mockRunType(member, memberOpts, stack);
519
- parent[name] = value;
520
- }
521
- const annotation = runType.formatAnnotation;
522
- if (annotation?.name === 'formattedObject') {
523
- const params = (annotation.params ?? {});
524
- const declared = new Set();
525
- let indexMember;
526
- for (const member of children) {
527
- if (member.kind === runTypeKind_generated_ts_1.RunTypeKind.indexSignature)
528
- indexMember = member;
529
- const name = member.name;
530
- if (name !== undefined)
531
- declared.add(name);
532
- }
533
- const stringList = (value) => Array.isArray(value) ? value.filter((entry) => typeof entry === 'string') : [];
534
- const closed = Array.isArray(params.closed) ? params.closed : undefined;
535
- const closedPatterns = stringList(params.closedPatterns).map((source) => new RegExp(source));
536
- const trimDisallowedKeys = () => {
537
- if (!closed)
538
- return;
539
- for (const key of Object.keys(parent)) {
540
- if (declared.has(key) || closed.includes(key))
541
- continue;
542
- if (closedPatterns.some((regexp) => regexp.test(key)))
543
- continue;
544
- delete parent[key];
545
- }
546
- };
547
- trimDisallowedKeys();
548
- if (typeof params.maxProperties === 'number') {
549
- for (const key of Object.keys(parent)) {
550
- if (Object.keys(parent).length <= params.maxProperties)
551
- break;
552
- if (!declared.has(key))
553
- delete parent[key];
554
- }
555
- }
556
- if (typeof params.minProperties === 'number' && indexMember) {
557
- let attempts = 0;
558
- while (Object.keys(parent).length < params.minProperties && attempts < 32) {
559
- attempts++;
560
- const indexed = mockRunType(indexMember, options, stack);
561
- if (indexed && typeof indexed === 'object')
562
- Object.assign(parent, indexed);
563
- trimDisallowedKeys();
564
- }
565
- if (typeof params.maxProperties === 'number') {
566
- for (const key of Object.keys(parent)) {
567
- if (Object.keys(parent).length <= params.maxProperties)
568
- break;
569
- if (!declared.has(key))
570
- delete parent[key];
571
- }
572
- }
573
- }
574
- }
575
- const patternProps = (runType.patternProps ?? []);
576
- if (patternProps.length > 0) {
577
- const regexes = patternProps.map((entry) => new RegExp(entry.source));
578
- const valueOpts = shrinkForNestedItems(options, stack);
579
- for (const key of Object.keys(parent)) {
580
- const matching = patternProps.filter((_entry, index) => regexes[index].test(key));
581
- if (matching.length === 1)
582
- parent[key] = mockRunType(matching[0].value, valueOpts, stack);
583
- else if (matching.length > 1)
584
- delete parent[key];
585
- }
586
- patternProps.forEach((entry, index) => {
587
- if (!entry.key)
588
- return;
589
- const generated = mockRunType(entry.key, options, stack);
590
- if (typeof generated === 'string' && regexes[index].test(generated) && !(generated in parent)) {
591
- const others = patternProps.some((_other, otherIndex) => otherIndex !== index && regexes[otherIndex].test(generated));
592
- if (!others)
593
- parent[generated] = mockRunType(entry.value, valueOpts, stack);
594
- }
595
- });
596
- }
597
- const propNames = runType.propNames;
598
- if (propNames && propNames.length > 0) {
599
- const declaredNames = new Set();
600
- for (const member of children) {
601
- const name = member.name;
602
- if (name !== undefined)
603
- declaredNames.add(name);
604
- }
605
- for (const key of Object.keys(parent)) {
606
- if (declaredNames.has(key))
607
- continue;
608
- const entryValue = parent[key];
609
- delete parent[key];
610
- for (let attempt = 0; attempt < 8; attempt++) {
611
- const renamed = mockRunType(propNames[0], options, stack);
612
- if (typeof renamed !== 'string' || renamed in parent)
613
- continue;
614
- if (!propNames.every((entry) => (0, childMatch_ts_1.childSchemaMatches)(renamed, entry)))
615
- continue;
616
- parent[renamed] = entryValue;
617
- break;
618
- }
619
- }
620
- }
621
- return parent;
622
- }
623
- function mockNonDataFunction() {
624
- return () => undefined;
625
- }
626
- function mockNonSerializableNative(runType) {
627
- const className = typeof runType.typeName === 'string' ? runType.typeName : typeof runType.name === 'string' ? runType.name : '';
628
- switch (className) {
629
- case 'ArrayBuffer':
630
- return new ArrayBuffer(8);
631
- case 'SharedArrayBuffer':
632
- return typeof SharedArrayBuffer !== 'undefined' ? new SharedArrayBuffer(8) : new ArrayBuffer(8);
633
- case 'DataView':
634
- return new DataView(new ArrayBuffer(8));
635
- case 'Int8Array':
636
- return new Int8Array([1, 2, 3]);
637
- case 'Int32Array':
638
- return new Int32Array([1, 2, 3]);
639
- case 'Float64Array':
640
- return new Float64Array([1.5, 2.5]);
641
- default:
642
- return new Uint8Array([1, 2, 3]);
643
- }
644
- }
645
- function isRestTupleMember(member) {
646
- if (member.kind === runTypeKind_generated_ts_1.RunTypeKind.rest)
647
- return true;
648
- if (Array.isArray(member.flags) && member.flags.includes('rest'))
649
- return true;
650
- const child = member.child;
651
- return child !== undefined && child.kind === runTypeKind_generated_ts_1.RunTypeKind.rest;
652
- }
653
- function mergeChildOptions(options, childMock) {
654
- const parentMock = options.mock;
655
- return { ...options, mock: { ...childMock, random: childMock.random ?? parentMock.random } };
656
- }
657
- function clampToItemBounds(params, length) {
658
- if (!params)
659
- return length;
660
- if (typeof params.maxItems === 'number' && length > params.maxItems)
661
- length = params.maxItems;
662
- if (typeof params.minItems === 'number' && length < params.minItems)
663
- length = params.minItems;
664
- return length;
665
- }
666
- function structuralParamsOf(runType, name) {
667
- const annotation = runType.formatAnnotation;
668
- return annotation?.name === name ? (annotation.params ?? {}) : undefined;
669
- }
670
- const COLLECTION_DRAW_ATTEMPTS = 32;
671
- function drawCollectionEntries(spec) {
672
- const entries = [];
673
- const takenKeys = new Set();
674
- const seenValues = new Set();
675
- const keep = (entry) => {
676
- const insertKey = spec.insertKeyOf(entry);
677
- if (takenKeys.has(insertKey))
678
- return false;
679
- if (spec.unique) {
680
- const valueKey = (0, structuralFormat_ts_1.canonicalJson)(entry);
681
- if (seenValues.has(valueKey))
682
- return false;
683
- seenValues.add(valueKey);
684
- }
685
- takenKeys.add(insertKey);
686
- entries.push(entry);
687
- return true;
688
- };
689
- for (const check of spec.containsChecks) {
690
- if (check.max >= 0 && check.min > check.max) {
691
- throw new Error('Cannot mock contains: minContains exceeds maxContains — the schema is provably empty.');
692
- }
693
- for (let n = 0; n < check.min; n++) {
694
- let placed = false;
695
- for (let attempt = 0; attempt < COLLECTION_DRAW_ATTEMPTS && !placed; attempt++)
696
- placed = keep(spec.drawMatch(check.child));
697
- if (!placed)
698
- throw new Error(spec.collapseError);
699
- }
700
- }
701
- let attempts = 0;
702
- while (entries.length < spec.length && attempts < Math.max(spec.length, 1) * COLLECTION_DRAW_ATTEMPTS) {
703
- attempts++;
704
- const filler = spec.drawFiller();
705
- if (spec.containsChecks.some((check) => (0, childMatch_ts_1.childSchemaMatches)(filler, check.child)))
706
- continue;
707
- keep(filler);
708
- }
709
- return entries;
710
- }
711
- function mockMap(runType, options, stack) {
712
- const mOps = options.mock;
713
- const random = mOps.random ?? mockRandom_ts_1.nativeMockRandom;
714
- const args = (runType.arguments ?? []);
715
- const keyType = args[0]?.child;
716
- const valueType = args[1]?.child;
717
- const result = new Map();
718
- if (!keyType || !valueType)
719
- return result;
720
- const mapParams = structuralParamsOf(runType, 'formattedMap');
721
- const entryOpts = shrinkForNestedItems(options, stack);
722
- const entries = drawCollectionEntries({
723
- length: clampToItemBounds(mapParams, mOps.arrayLength ?? random.int(0, mOps.maxRandomItemsLength)),
724
- containsChecks: (runType.contains ?? []),
725
- unique: mapParams?.uniqueItems === true,
726
- drawMatch: (child) => {
727
- const drawn = mockRunType(child, entryOpts, stack);
728
- const pair = Array.isArray(drawn) && drawn.length === 2 ? [drawn[0], drawn[1]] : [undefined, undefined];
729
- if (!(0, childMatch_ts_1.childSchemaMatches)(pair[0], keyType))
730
- pair[0] = mockRunType(keyType, entryOpts, stack);
731
- if (!(0, childMatch_ts_1.childSchemaMatches)(pair[1], valueType))
732
- pair[1] = mockRunType(valueType, entryOpts, stack);
733
- if (!(0, childMatch_ts_1.childSchemaMatches)(pair, child)) {
734
- throw new Error('Cannot mock contains: the contains child and the Map entry type are contradictory (a Map entry is its ' +
735
- '[key, value] pair). Provide a MockData pool for this type (enrich).');
736
- }
737
- return pair;
738
- },
739
- drawFiller: () => [mockRunType(keyType, entryOpts, stack), mockRunType(valueType, entryOpts, stack)],
740
- insertKeyOf: (pair) => pair[0],
741
- collapseError: 'Cannot mock contains: a Map holds one entry per key, so the drawn matches collapsed and minContains cannot ' +
742
- 'be reached. Provide a MockData pool for this type (enrich).',
743
- });
744
- for (const [key, value] of entries)
745
- result.set(key, value);
746
- return result;
747
- }
748
- function mockSet(runType, options, stack) {
749
- const mOps = options.mock;
750
- const random = mOps.random ?? mockRandom_ts_1.nativeMockRandom;
751
- const args = (runType.arguments ?? []);
752
- const elementType = args[0]?.child;
753
- if (!elementType)
754
- return new Set();
755
- const setParams = structuralParamsOf(runType, 'formattedSet');
756
- const memberOpts = shrinkForNestedItems(options, stack);
757
- const members = drawCollectionEntries({
758
- length: clampToItemBounds(setParams, mOps.arrayLength ?? random.int(0, mOps.maxRandomItemsLength)),
759
- containsChecks: (runType.contains ?? []),
760
- unique: setParams?.uniqueItems === true,
761
- drawMatch: (child) => {
762
- const item = mockRunType(child, memberOpts, stack);
763
- if (!(0, childMatch_ts_1.childSchemaMatches)(item, elementType)) {
764
- throw new Error('Cannot mock contains: the contains child and the Set member type are contradictory. ' +
765
- 'Provide a MockData pool for this type (enrich).');
766
- }
767
- return item;
768
- },
769
- drawFiller: () => mockRunType(elementType, memberOpts, stack),
770
- insertKeyOf: (member) => member,
771
- collapseError: 'Cannot mock contains: a Set holds one copy of a member, so the drawn matches collapsed and minContains ' +
772
- 'cannot be reached. Provide a MockData pool for this type (enrich).',
773
- });
774
- return new Set(members);
775
- }
776
- function buildTemplateLiteralString(runType, mOps, random) {
777
- const envelope = (runType.literal ?? null);
778
- const layout = envelope?.templateLiteral;
779
- if (!layout || !Array.isArray(layout.texts))
780
- return '';
781
- const texts = layout.texts;
782
- const placeholders = Array.isArray(layout.placeholders) ? layout.placeholders : [];
783
- let out = '';
784
- for (let i = 0; i < texts.length; i++) {
785
- out += texts[i];
786
- if (i < placeholders.length) {
787
- out += renderTemplateLiteralPlaceholder(placeholders[i], mOps, random);
788
- }
789
- }
790
- return out;
791
- }
792
- function renderTemplateLiteralPlaceholder(span, mOps, random) {
793
- if (!span)
794
- return '';
795
- const kind = typeof span.kind === 'number' ? span.kind : -1;
796
- switch (kind) {
797
- case runTypeKind_generated_ts_1.RunTypeKind.literal:
798
- return span.literal === undefined ? '' : String(span.literal);
799
- case runTypeKind_generated_ts_1.RunTypeKind.number:
800
- return String(random.number(mOps.minNumber, mOps.maxNumber));
801
- case runTypeKind_generated_ts_1.RunTypeKind.bigint:
802
- return String(random.bigint(mOps.minNumber, mOps.maxNumber));
803
- case runTypeKind_generated_ts_1.RunTypeKind.string:
804
- case runTypeKind_generated_ts_1.RunTypeKind.any:
805
- case runTypeKind_generated_ts_1.RunTypeKind.unknown:
806
- return random.string(mOps.stringLength ?? random.int(1, mOps.maxRandomStringLength), mOps.stringCharSet || constants_mock_ts_1.stringCharSet);
807
- default:
808
- return '';
809
- }
810
- }