@mionjs/run-types 0.13.2 → 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 +1 @@
1
- {"version":3,"file":"mockType.js","sourceRoot":"","sources":["../../src/mocking/mockType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockType.js","sourceRoot":"","sources":["../../src/mocking/mockType.ts"],"names":[],"mappings":"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","sourcesContent":["// Runtime mock-value generator: walks a RunType graph and produces a value that passes `validate<T>`, a direct\n// port of the reference mockType.ts. Unlike other RT families mocking is NOT compiled per-type, the walker is a\n// runtime interpreter over `runTypesCache`.\n// Cyclic types terminate through `decayOptionsForNesting`, which divides `optionalProbability` and\n// `maxRandomItemsLength` by the re-entry count, and `mockRunType` bailing out past `maxMockRecursion`.\n\nimport type {MockDataNode, MockOptions, RunTypeMockOptions} from './mockTypes.ts';\nimport type {RunType} from '../runtypes/types.ts';\nimport {RunTypeKind, RunTypeSubKind} from '../go-generated/runTypeKind.generated.ts';\nimport type {RunTypeKindValue} from '../go-generated/runTypeKind.generated.ts';\nimport {getMockingFunction} from './mockRegistry.ts';\nimport {childSchemaMatches, isMockSamplingError} from './childMatch.ts';\nimport {canonicalJson, isStructuralFormat, structuralFormatAccepts} from './structuralFormat.ts';\nimport {getRTUtils} from '../runtypes/rtUtils.ts';\nimport {nativeMockRandom} from './mockRandom.ts';\nimport type {MockRandom} from './mockRandom.ts';\nimport {stringCharSet} from './constants.mock.ts';\nimport {mockBoundedNativeDate} from './mockDateTimeBounds.ts';\nimport {mockTemporal, isTemporalSubKind, temporalBoundsFromAnnotation} from './mockTemporal.ts';\nimport {mockUrlObject} from './mockStringFormat.ts';\n\n/** Public entry; the cycle detector is reference identity, since the runTypes cache shares one object per cyclic ref. **/\nexport function mockRunType(runType: RunType, options: RunTypeMockOptions, stack: RunType[] = []): unknown {\n stack.push(runType);\n try {\n const baseMockOpts = options.mock as MockOptions;\n const nestLevel = countOccurrences(stack, runType);\n if (nestLevel > baseMockOpts.maxMockRecursion) return undefined;\n const decayed = nestLevel > 1 ? decayOptionsForNesting(options, nestLevel) : options;\n let mocked = mockSwitch(runType, decayed, stack);\n // Apply the format's declared `transform` (trim / case / replace / stripSeparators) so the mock is the\n // canonical value; it is the `formatTransform` RT fn compiled for this type, noop when none is declared.\n if (runType.formatAnnotation && mocked !== undefined) {\n const transform = lookupFormatTransform(runType.id);\n if (transform) mocked = transform(mocked);\n }\n return mocked;\n } finally {\n stack.pop();\n }\n}\n\n// The formatTransform family tag, mirroring the Go CacheModule tag in internal/constants/constants.go.\n// Compiled entries register under `<fmtFnHash>_<typeId>`, and the 3-char fnHash folds the binary version, which\n// the runtime can't reconstruct: the lookup must go through findRTForType, never a literal `'fmt_' + id` key.\nconst FORMAT_TRANSFORM_FAMILY = 'fmt';\n\n/** Resolve the compiled formatTransform fn for a type id, or undefined\n * when the format declares no transform (noop) or no entry exists. **/\nfunction lookupFormatTransform(id: string): ((value: unknown) => unknown) | undefined {\n const entry = getRTUtils().findRTForType(FORMAT_TRANSFORM_FAMILY, id);\n if (!entry || entry.isNoop || !entry.fn) return undefined;\n return entry.fn as (value: unknown) => unknown;\n}\n\n/** Reference identity; the hand-rolled loop avoids a `.filter().length` allocation on the hot path. **/\nfunction countOccurrences(stack: RunType[], target: RunType): number {\n let count = 0;\n for (let i = 0; i < stack.length; i++) {\n if (stack[i] === target) count++;\n }\n return count;\n}\n\n/** Reduces optional-probability and item-length by nesting depth so cyclic types bottom out.\n * Returns a shallow copy, sharing the read-only inner pools; mirrors `getMockOptionsForNestedElements`. **/\nfunction decayOptionsForNesting(options: RunTypeMockOptions, nestLevel: number): RunTypeMockOptions {\n const mOps = options.mock as MockOptions;\n const maxDepth = mOps.maxMockRecursion;\n const divisor = nestLevel;\n const newProv = nestLevel >= maxDepth ? 0 : mOps.optionalProbability / divisor;\n const newMaxLength = nestLevel >= maxDepth ? 0 : decayItemsLength(mOps.maxRandomItemsLength, nestLevel);\n const next: MockOptions = {\n ...mOps,\n optionalProbability: newProv,\n maxRandomItemsLength: newMaxLength,\n };\n if (mOps.optionalPropertyProbability) {\n // The reference source double-divides (a typo); port the intent, matching the global `optionalProbability` decay.\n const entries = Object.entries(mOps.optionalPropertyProbability).map(([key, value]) => {\n const decayed = nestLevel > maxDepth ? 0 : value / divisor;\n return [key, decayed] as const;\n });\n next.optionalPropertyProbability = Object.fromEntries(entries);\n }\n if (mOps.arrayLength !== undefined) {\n next.arrayLength = nestLevel >= maxDepth ? 0 : decayItemsLength(mOps.arrayLength, nestLevel);\n }\n if (mOps.parentObj) next.parentObj = {};\n return {...options, mock: next};\n}\n\n/** Shared by recursive re-entry and nested collections. **/\nfunction decayItemsLength(length: number, nestLevel: number): number {\n return Math.round(length / nestLevel);\n}\n\n/** A node with a variable item count. **/\nfunction isItemCollection(runType: RunType): boolean {\n const kind = runType.kind as number;\n if (kind === RunTypeKind.array || kind === RunTypeKind.rest || kind === RunTypeKind.indexSignature) return true;\n if (kind === RunTypeKind.tupleMember || kind === RunTypeKind.parameter) {\n return Array.isArray(runType.flags) && (runType.flags as unknown[]).includes('rest');\n }\n const subKind = runType.subKind as number | undefined;\n return kind === RunTypeKind.class && (subKind === RunTypeSubKind.map || subKind === RunTypeSubKind.set);\n}\n\n// Step 1 (60, 30, 10, 3) mocked a four-level Record / Set / Map in ~80 ms, step 2 (60, 20, 4, 1) in ~10 ms.\nconst COLLECTION_LEVEL_STEP = 2;\n\n/** A flat cap multiplies per level (60^4 entries at four levels); an explicit `arrayLength` or `rt$length` wins. **/\nfunction shrinkForNestedItems(options: RunTypeMockOptions, stack: RunType[]): RunTypeMockOptions {\n let nestLevel = 1;\n for (let i = 0; i < stack.length; i++) if (isItemCollection(stack[i])) nestLevel += COLLECTION_LEVEL_STEP;\n const mOps = options.mock as MockOptions;\n return {...options, mock: {...mOps, maxRandomItemsLength: decayItemsLength(mOps.maxRandomItemsLength, nestLevel)}};\n}\n\n// ─────────────────────── MockData node threading ───────────────────────\n// The walker carries the current MockData node in `options.dataNode`, descended by property name or `rt$items` at\n// each recursion. Everything below is a strict no-op without a data node, so behaviour is byte-identical.\n\n/** Shares the `mock` slot, read-only on the walk, and returns `options` untouched when the node is unchanged,\n * so the no-data path allocates nothing extra. **/\nfunction withDataNode(options: RunTypeMockOptions, next: MockDataNode | undefined): RunTypeMockOptions {\n if (options.dataNode === next) return options;\n return {...options, dataNode: next};\n}\n\n/** Only a plain object is a child node: pools / ranges are arrays / scalars and never descend. **/\nfunction asDataNode(value: unknown): MockDataNode | undefined {\n if (value && typeof value === 'object' && !Array.isArray(value)) return value as MockDataNode;\n return undefined;\n}\n\n/** Descend the current data node by object-property name. **/\nfunction childDataNodeByName(node: MockDataNode | undefined, name: string | number | undefined): MockDataNode | undefined {\n if (!node || name === undefined) return undefined;\n return asDataNode(node[name as string]);\n}\n\n/** Non-empty value pool from the current data node, or undefined. **/\nfunction dataPool(node: MockDataNode | undefined): unknown[] | undefined {\n if (node && Array.isArray(node.pool) && node.pool.length > 0) return node.pool;\n return undefined;\n}\n\n/** Element count from `rt$length` (fixed `n` or `[min, max]`), or undefined to fall through to the global option. **/\nfunction dataArrayLength(node: MockDataNode | undefined, random: MockRandom): number | undefined {\n const len = node?.rt$length;\n if (typeof len === 'number') return len;\n if (Array.isArray(len) && len.length === 2) return random.int(len[0], len[1]);\n return undefined;\n}\n\n// Bounded rejection sampling for constrained structural formats: the admissible set is dense, so a handful of\n// draws converges, and a type whose candidates keep failing is an authoring problem that must surface loudly.\nconst STRUCTURAL_MOCK_ATTEMPTS = 32;\n\n/** One `contains` entry as the wire carries it on a node. **/\ntype ContainsEntry = {child: RunType; min: number; max: number};\n\n/** Structural-format nodes reject-sample from the base generator, enrichment pools included, and keep the first\n * candidate satisfying the constraints; a pool that never satisfies them throws rather than ship unsound mocks. **/\nfunction mockSwitch(runType: RunType, options: RunTypeMockOptions, stack: RunType[]): unknown {\n // The array case pre-shapes its draws (length clamp, unique-aware fill), so this guard mostly polices tuple /\n // record / bare-object bases where the annotation landed on a non-array node.\n const structural = isStructuralFormat(runType.formatAnnotation) ? runType.formatAnnotation : undefined;\n if (!structural) return mockKindSwitch(runType, options, stack);\n for (let attempt = 0; attempt < STRUCTURAL_MOCK_ATTEMPTS; attempt++) {\n // Back half of the attempts shrinks collection draws: short and empty arrays dodge contains / minItems\n // constraints long random arrays keep failing, turning a ~1e-4 exhaustion flake into never.\n const attemptOptions =\n attempt < STRUCTURAL_MOCK_ATTEMPTS / 2\n ? options\n : {...options, mock: {...(options.mock as MockOptions), arrayLength: attempt % 3}};\n const candidate = mockKindSwitch(runType, attemptOptions, stack);\n if (!structuralFormatAccepts(candidate, structural)) continue;\n return candidate;\n }\n throw new Error(\n `Cannot mock a structural format: ${STRUCTURAL_MOCK_ATTEMPTS} candidates all failed the ${String(runType.formatAnnotation?.name)} constraints. ` +\n 'Provide a MockData pool for this type (enrich) with values that satisfy them.'\n );\n}\n\n/** Per-kind dispatch; new kinds land here, NOT in helper files, so the whole switch lives in one place. **/\nfunction mockKindSwitch(runType: RunType, options: RunTypeMockOptions, stack: RunType[]): unknown {\n const mOps = options.mock as MockOptions;\n // The generation's shared random source, threaded on the options bag; it falls back to the shared native\n // instance for a mock path that bypassed createMockDataFn (e.g. a test calling mockRunType directly).\n const random = mOps.random ?? nativeMockRandom;\n const kind = runType.kind as number;\n // Current MockData node for this runtype; a pool short-circuits the kind default.\n const dataNode = options.dataNode;\n const pool = dataPool(dataNode);\n if (pool) return random.pick(pool);\n\n // TypeFormat brand: the kind's registered mock fn produces a value satisfying the format, drawing from\n // mockSamples for pattern formats since a regex can't be reversed. Undefined falls through to the kind-default.\n if (runType.formatAnnotation) {\n const mockFn = getMockingFunction(kind as RunTypeKindValue);\n if (mockFn) {\n const mocked = mockFn(runType.formatAnnotation, random, mOps);\n if (mocked !== undefined) return mocked;\n }\n }\n\n switch (kind) {\n case RunTypeKind.never:\n throw new Error('Cannot mock never type.');\n case RunTypeKind.any:\n case RunTypeKind.unknown:\n return random.any(mOps.anyValuesList);\n case RunTypeKind.string:\n return random.string(mOps.stringLength ?? random.int(1, mOps.maxRandomStringLength), mOps.stringCharSet || stringCharSet);\n case RunTypeKind.number: {\n // Data-node min/max (numbers only) override the global bounds.\n const min = typeof dataNode?.min === 'number' ? dataNode.min : mOps.minNumber;\n const max = typeof dataNode?.max === 'number' ? dataNode.max : mOps.maxNumber;\n return random.number(min, max);\n }\n case RunTypeKind.boolean:\n return random.boolean();\n case RunTypeKind.bigint:\n return random.bigint(mOps.minNumber, mOps.maxNumber);\n case RunTypeKind.null:\n return null;\n case RunTypeKind.undefined:\n return undefined;\n case RunTypeKind.void:\n return undefined;\n case RunTypeKind.regexp:\n // Not data (DataOnly strips it): only a nonDataTypes mock carries one.\n return mOps.nonDataTypes ? random.regExp(mOps.regexpList) : undefined;\n case RunTypeKind.symbol:\n return random.symbol(mOps.symbolName, mOps.symbolLength, mOps.symbolCharSet);\n case RunTypeKind.literal:\n return runType.literal;\n case RunTypeKind.object:\n return random.pick(mOps.objectList);\n case RunTypeKind.enum: {\n const values = runType.values as unknown[];\n if (!Array.isArray(values) || values.length === 0) {\n throw new Error('Cannot mock enum without values.');\n }\n const index = mOps.enumIndex ?? random.int(0, values.length - 1);\n return values[index];\n }\n case RunTypeKind.enumMember:\n throw new Error('Mock enum member is not supported.');\n case RunTypeKind.class: {\n // User-defined classes fall through to the objectLiteral builder, since validate matches structurally.\n const subKind = runType.subKind as number | undefined;\n if (subKind === RunTypeSubKind.date) {\n // Date<{min,max}> bounds must be honored so the mock re-passes validate; without a nativeDate annotation\n // the global mock-option range applies.\n const dateParams = runType.formatAnnotation?.name === 'nativeDate' ? runType.formatAnnotation.params : undefined;\n if (\n dateParams &&\n (dateParams.min !== undefined ||\n dateParams.max !== undefined ||\n dateParams.gt !== undefined ||\n dateParams.lt !== undefined)\n ) {\n return mockBoundedNativeDate(\n {\n min: dateParams.min as string | undefined,\n max: dateParams.max as string | undefined,\n gt: dateParams.gt as string | undefined,\n lt: dateParams.lt as string | undefined,\n },\n random\n );\n }\n // Data-node Date min/max override the global range for an UNBRANDED Date only, so a format's own bounds,\n // which validate enforces, are never widened out of range.\n const minDate = dataNode?.min instanceof Date ? dataNode.min : mOps.minDate;\n const maxDate = dataNode?.max instanceof Date ? dataNode.max : mOps.maxDate;\n return random.date(minDate, maxDate);\n }\n // Map/Set MockData is v1-limited (no `rt$keys` / `rt$values` in the DSL), so clear the data node: a stray\n // parent node must not leak into key / value / element generation.\n if (subKind === RunTypeSubKind.map) return mockMap(runType, withDataNode(options, undefined), stack);\n if (subKind === RunTypeSubKind.set) return mockSet(runType, withDataNode(options, undefined), stack);\n if (subKind === RunTypeSubKind.url) return mockUrlObject(runType.formatAnnotation, random);\n if (isTemporalSubKind(subKind)) {\n // FormatTemporalX<{min,max,gt,lt}> bounds must be honored so the mock re-passes validate.\n const bounds = temporalBoundsFromAnnotation(runType.formatAnnotation);\n return mockTemporal(subKind as number, bounds, random);\n }\n if (subKind === RunTypeSubKind.nonSerializable) {\n if (mOps.nonDataTypes) return mockNonSerializableNative(runType);\n throw new Error('Mock is disabled for non-serializable types.');\n }\n return buildObjectLiteral(runType, options, stack, mOps);\n }\n case RunTypeKind.array: {\n const child = runType.child as RunType | undefined;\n if (!child) throw new Error('Cannot mock array: child runtype missing.');\n // Data-node `rt$length` overrides the global length; `rt$items` is the element node threaded into each child.\n // A formattedArray annotation clamps the draw into the declared bounds and fills unique-aware, so the\n // mockSwitch rejection loop converges instead of re-rolling whole arrays.\n const annotation = runType.formatAnnotation;\n const arrayParams =\n annotation?.name === 'formattedArray' ? ((annotation.params ?? {}) as Record<string, unknown>) : undefined;\n const length = clampToItemBounds(\n arrayParams,\n dataArrayLength(dataNode, random) ?? mOps.arrayLength ?? random.int(0, mOps.maxRandomItemsLength)\n );\n const childOpts = withDataNode(shrinkForNestedItems(options, stack), asDataNode(dataNode?.rt$items));\n // Contains entries splice exactly `min` CHILD MOCKS (valid by the mock soundness invariant) among fillers\n // the loose matcher DEFINITIVELY rejects, so per-entry counts are exact by construction.\n // Provable contradictions (min > max, or a matched item the element type definitively rejects) throw.\n const containsChecks = (runType.contains ?? []) as ContainsEntry[];\n if (containsChecks.length > 0) {\n const matchedByEntry: unknown[][] = [];\n for (const entry of containsChecks) {\n if (entry.max >= 0 && entry.min > entry.max) {\n throw new Error('Cannot mock contains: minContains exceeds maxContains — the schema is provably empty.');\n }\n const entryItems: unknown[] = [];\n for (let n = 0; n < entry.min; n++) {\n const item = mockRunType(entry.child, childOpts, stack);\n if (!childSchemaMatches(item, child)) {\n throw new Error(\n 'Cannot mock contains: the contains child and the items type are contradictory. ' +\n 'Provide a MockData pool for this type (enrich).'\n );\n }\n entryItems.push(item);\n }\n matchedByEntry.push(entryItems);\n }\n const matched = matchedByEntry.flat();\n const items: unknown[] = [...matched];\n let fillerAttempts = 0;\n while (items.length < Math.max(length, matched.length) && fillerAttempts < 64) {\n fillerAttempts++;\n const filler = mockRunType(child, childOpts, stack);\n if (containsChecks.every((entry) => !childSchemaMatches(filler, entry.child))) items.push(filler);\n }\n if (arrayParams?.uniqueItems === true) {\n const seen = new Set<string>();\n const unique = items.filter((item) => {\n const key = canonicalJson(item);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n // Count survivors by REFERENCE against that entry's own constructed items: they validate their child by\n // construction, so the count is exact, never the loose matcher's over-estimate.\n containsChecks.forEach((entry, index) => {\n const surviving = matchedByEntry[index].filter((item) => unique.includes(item)).length;\n if (surviving < entry.min) {\n throw new Error(\n 'Cannot mock contains with uniqueItems: the contains child cannot produce enough distinct values. ' +\n 'Provide a MockData pool for this type (enrich).'\n );\n }\n });\n return unique;\n }\n return items;\n }\n if (length === 0) return [];\n if (arrayParams?.uniqueItems === true) {\n const seen = new Set<string>();\n const items: unknown[] = [];\n let attempts = 0;\n while (items.length < length && attempts < length * 32) {\n attempts++;\n const item = mockRunType(child, childOpts, stack);\n const key = canonicalJson(item);\n if (seen.has(key)) continue;\n seen.add(key);\n items.push(item);\n }\n const minItems = typeof arrayParams.minItems === 'number' ? arrayParams.minItems : 0;\n if (items.length < minItems) {\n throw new Error(\n `Cannot mock a uniqueItems array: the element type cannot produce ${minItems} distinct values. ` +\n 'Provide a MockData pool for this type (enrich) with enough distinct samples.'\n );\n }\n return items;\n }\n const items: unknown[] = [];\n for (let i = 0; i < length; i++) items.push(mockRunType(child, childOpts, stack));\n return items;\n }\n case RunTypeKind.tuple: {\n const children = (runType.children ?? []) as RunType[];\n // Per-element options indexed to each slot: `tupleOptions` for a plain tuple, `paramsOptions` for a\n // function's parameter tuple, which is what `Parameters<typeof fn>` reflects as, so params are mocked here.\n const perElemOptions = mOps.tupleOptions ?? mOps.paramsOptions;\n // Tuples share one `rt$items` element node (the DSL has no per-slot tuple nodes), threaded into every member.\n const itemsNode = asDataNode(dataNode?.rt$items);\n const baseOpts = withDataNode(options, itemsNode);\n const params = children.map((member, index) => {\n const childOpts = perElemOptions?.[index] ? mergeChildOptions(baseOpts, perElemOptions[index]) : baseOpts;\n return mockRunType(member, childOpts, stack);\n });\n // Flatten a trailing rest member into the tuple.\n const lastMember = children[children.length - 1];\n const flattened =\n lastMember && isRestTupleMember(lastMember) && Array.isArray(params[params.length - 1])\n ? [...params.slice(0, -1), ...(params[params.length - 1] as unknown[])]\n : params;\n // A formattedArray annotation on a tuple base (prefixItems with uniqueItems / maxItems) shapes the draw,\n // dedupe first then cap, so the mockSwitch rejection loop converges.\n // A dedupe that starves a REQUIRED slot just fails validate and re-rolls up there.\n const annotation = runType.formatAnnotation;\n let shaped = flattened;\n if (annotation?.name === 'formattedArray') {\n const arrayParams = (annotation.params ?? {}) as Record<string, unknown>;\n if (arrayParams.uniqueItems === true) {\n const seen = new Set<string>();\n shaped = shaped.filter((item) => {\n const key = canonicalJson(item);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n }\n if (typeof arrayParams.maxItems === 'number' && shaped.length > arrayParams.maxItems) {\n shaped = shaped.slice(0, arrayParams.maxItems);\n }\n }\n // contains over a TUPLE base has no sound generation story, since fixed slots cannot be spliced: pass only\n // when the bounds are provably met (min 0 with the loose over-count inside max), else give up loudly.\n const tupleContains = (runType.contains ?? []) as ContainsEntry[];\n for (const entry of tupleContains) {\n const overCount = shaped.filter((item) => childSchemaMatches(item, entry.child)).length;\n if (entry.min > 0 || (entry.max >= 0 && overCount > entry.max)) {\n throw new Error(\n 'Cannot mock contains over a tuple (prefixItems) base. Provide a MockData pool for this type (enrich).'\n );\n }\n }\n return shaped;\n }\n case RunTypeKind.tupleMember:\n case RunTypeKind.parameter: {\n // Rest members arrive either as a RunTypeKind.rest child or as flags: ['rest'] with the ELEMENT type as the\n // direct child (the Go tuple form); the latter generates its member array here, mirroring the rest case.\n const child = runType.child as RunType | undefined;\n if (!child) return undefined;\n if (Array.isArray(runType.flags) && (runType.flags as unknown[]).includes('rest') && child.kind !== RunTypeKind.rest) {\n const length = random.int(0, mOps.maxRandomItemsLength);\n const itemOpts = shrinkForNestedItems(options, stack);\n const items: unknown[] = [];\n for (let i = 0; i < length; i++) items.push(mockRunType(child, itemOpts, stack));\n return items;\n }\n if (runType.optional && !isRestTupleMember(runType)) {\n if (random.float() > mOps.optionalProbability) return undefined;\n }\n return mockRunType(child, options, stack);\n }\n case RunTypeKind.rest: {\n const child = runType.child as RunType | undefined;\n if (!child) return [];\n const length = random.int(0, mOps.maxRandomItemsLength);\n const itemOpts = shrinkForNestedItems(options, stack);\n const items: unknown[] = [];\n for (let i = 0; i < length; i++) items.push(mockRunType(child, itemOpts, stack));\n return items;\n }\n case RunTypeKind.objectLiteral:\n case RunTypeKind.intersection:\n return buildObjectLiteral(runType, options, stack, mOps);\n case RunTypeKind.property:\n case RunTypeKind.propertySignature: {\n const child = runType.child as RunType | undefined;\n if (!child) return undefined;\n const name = runType.name as string | number | undefined;\n const perPropProb = mOps.optionalPropertyProbability;\n const probability =\n perPropProb && name !== undefined && perPropProb[name] !== undefined ? perPropProb[name] : mOps.optionalProbability;\n if (probability < 0 || probability > 1) {\n throw new Error('optionalProbability must be between 0 and 1');\n }\n if (runType.optional && random.float() > probability) return undefined;\n return mockRunType(child, options, stack);\n }\n case RunTypeKind.indexSignature: {\n const child = runType.child as RunType | undefined;\n const keyType = runType.index as RunType | undefined;\n if (!child || !keyType) return {};\n const length = random.int(0, mOps.maxRandomItemsLength);\n const valueOpts = shrinkForNestedItems(options, stack);\n const parent: Record<string | number | symbol, unknown> = mOps.parentObj ?? {};\n const keyKind = keyType.kind as number;\n for (let i = 0; i < length; i++) {\n let propName: string | number | symbol;\n switch (keyKind) {\n case RunTypeKind.number:\n propName = i;\n break;\n case RunTypeKind.string:\n propName = `key${i}`;\n break;\n case RunTypeKind.symbol:\n propName = Symbol.for(`key${i}`);\n break;\n case RunTypeKind.templateLiteral: {\n // Retry on collision — narrow patterns like `id-${number}` can repeat.\n const buildKey = (): string => buildTemplateLiteralString(keyType, mOps, random);\n let candidate = buildKey();\n for (let attempt = 0; attempt < 5 && Object.prototype.hasOwnProperty.call(parent, candidate); attempt++) {\n candidate = buildKey();\n }\n propName = candidate;\n break;\n }\n default:\n throw new Error(`Invalid index signature key kind: ${keyKind}`);\n }\n parent[propName as string] = mockRunType(child, valueOpts, stack);\n }\n return parent;\n }\n case RunTypeKind.union: {\n const allChildren = (runType.children ?? []) as RunType[];\n // Pick only among the DataOnly-surviving members (flagged by `notSupported`), or the value would fail\n // validate<T>: the validator drops stripped members like symbol / function.\n // Falls back to the full list when none survive, an all-stripped union, which throws anyway.\n const survivors = allChildren.filter((member) => !member.notSupported);\n const children = survivors.length > 0 ? survivors : allChildren;\n if (children.length === 0) throw new Error('Cannot mock union with no branches.');\n if (mOps.unionIndex !== undefined && (mOps.unionIndex < 0 || mOps.unionIndex >= children.length)) {\n throw new Error('unionIndex must be between 0 and the number of types in the union.');\n }\n const index = mOps.unionIndex ?? random.int(0, children.length - 1);\n // An explicit unionIndex is the author's pick — no silent fallback.\n if (mOps.unionIndex !== undefined) return mockRunType(children[index], options, stack);\n // A constrained arm can exhaust its rejection sampling while its siblings are fine, so fall through to the\n // remaining arms; only an all-arms failure surfaces.\n let samplingFailure: unknown;\n for (let offset = 0; offset < children.length; offset++) {\n const arm = children[(index + offset) % children.length];\n try {\n return mockRunType(arm, options, stack);\n } catch (error) {\n if (!isMockSamplingError(error)) throw error;\n samplingFailure = error;\n }\n }\n throw samplingFailure;\n }\n case RunTypeKind.templateLiteral:\n return buildTemplateLiteralString(runType, mOps, random);\n case RunTypeKind.promise: {\n const child = runType.child as RunType | undefined;\n const timeOut = mOps.promiseTimeOut || 0;\n const resolveInner = () => (child ? mockRunType(child, options, stack) : undefined);\n return new Promise((resolve, reject) => {\n const finish = () => {\n if (mOps.promiseReject) reject(mOps.promiseReject);\n else resolve(resolveInner());\n };\n if (timeOut > 0) setTimeout(finish, timeOut);\n else finish();\n });\n }\n case RunTypeKind.function:\n case RunTypeKind.callSignature:\n case RunTypeKind.method:\n case RunTypeKind.methodSignature:\n // The mock isn't expected to satisfy `validate<Function>`: those cases are `mockTypeExpect: 'skip'` in the\n // test adapter. With nonDataTypes on, a real function makes the mock carry the non-data value.\n return mOps.nonDataTypes ? mockNonDataFunction() : undefined;\n default:\n throw new Error(`Cannot mock runType: kind ${kind} is not yet supported by the mock walker.`);\n }\n}\n\n/** Builds a plain object from an objectLiteral / intersection / user-class, collecting index signatures into it. **/\nfunction buildObjectLiteral(\n runType: RunType,\n options: RunTypeMockOptions,\n stack: RunType[],\n mOps: MockOptions\n): Record<string | number, unknown> {\n const children = (runType.children ?? []) as RunType[];\n const parent: Record<string | number, unknown> = mOps.parentObj ?? {};\n const dataNode = options.dataNode;\n for (const member of children) {\n const memberKind = member.kind as number;\n if (memberKind === RunTypeKind.method || memberKind === RunTypeKind.methodSignature) {\n // Methods are non-data, so they are skipped unless nonDataTypes asks for them.\n const methodName = member.name as string | number | undefined;\n if (mOps.nonDataTypes && methodName !== undefined) parent[methodName] = mockNonDataFunction();\n continue;\n }\n if (memberKind === RunTypeKind.indexSignature) {\n const indexed = mockRunType(member, options, stack);\n if (indexed && typeof indexed === 'object') Object.assign(parent, indexed);\n continue;\n }\n const name = member.name as string | number | undefined;\n if (name === undefined) continue;\n // The property / propertySignature arm threads these options through to the member's child value.\n const memberOpts = withDataNode(options, childDataNodeByName(dataNode, name));\n const value = mockRunType(member, memberOpts, stack);\n parent[name] = value;\n }\n // A formattedObject annotation shapes the draw into the declared key-count bounds, because record mocks deal\n // out dozens of index keys and pure rejection sampling in mockSwitch cannot converge.\n // Undeclared (index-signature) keys trim first, and the top-up draws more index batches.\n // Shapes the loop cannot fix (a closed literal below its minProperties) fall back to its loud give-up.\n const annotation = runType.formatAnnotation;\n if (annotation?.name === 'formattedObject') {\n const params = (annotation.params ?? {}) as Record<string, unknown>;\n const declared = new Set<string | number>();\n let indexMember: RunType | undefined;\n for (const member of children) {\n if ((member.kind as number) === RunTypeKind.indexSignature) indexMember = member;\n const name = member.name as string | number | undefined;\n if (name !== undefined) declared.add(name);\n }\n // `closed` (additionalProperties: false) names the ONLY admissible keys, but an index signature on the same\n // object still deals out arbitrary ones, so trim what the closed set and its patterns do not admit: rejection\n // sampling alone burns all 32 candidates and gives up.\n // Runs before AND after the minProperties top-up, since the top-up draws fresh index batches.\n const stringList = (value: unknown): string[] =>\n Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n const closed = Array.isArray(params.closed) ? (params.closed as unknown[]) : undefined;\n const closedPatterns = stringList(params.closedPatterns).map((source) => new RegExp(source));\n const trimDisallowedKeys = (): void => {\n if (!closed) return;\n for (const key of Object.keys(parent)) {\n if (declared.has(key) || closed.includes(key)) continue;\n if (closedPatterns.some((regexp) => regexp.test(key))) continue;\n delete parent[key];\n }\n };\n trimDisallowedKeys();\n if (typeof params.maxProperties === 'number') {\n for (const key of Object.keys(parent)) {\n if (Object.keys(parent).length <= params.maxProperties) break;\n if (!declared.has(key)) delete parent[key];\n }\n }\n if (typeof params.minProperties === 'number' && indexMember) {\n let attempts = 0;\n while (Object.keys(parent).length < params.minProperties && attempts < 32) {\n attempts++;\n const indexed = mockRunType(indexMember, options, stack);\n if (indexed && typeof indexed === 'object') Object.assign(parent, indexed);\n trimDisallowedKeys();\n }\n if (typeof params.maxProperties === 'number') {\n for (const key of Object.keys(parent)) {\n if (Object.keys(parent).length <= params.maxProperties) break;\n if (!declared.has(key)) delete parent[key];\n }\n }\n }\n }\n // patternProperties: values under pattern-matching keys regenerate from the pattern's own value child, sound by\n // construction, plus one extra key per pattern from the pattern-branded key child so its sample pool is exercised.\n // propertyNames: undeclared keys that definitively fail the child re-key from the child's own mock, or drop.\n const patternProps = (runType.patternProps ?? []) as {source: string; key?: RunType; value: RunType}[];\n if (patternProps.length > 0) {\n const regexes = patternProps.map((entry) => new RegExp(entry.source));\n const valueOpts = shrinkForNestedItems(options, stack);\n for (const key of Object.keys(parent)) {\n const matching = patternProps.filter((_entry, index) => regexes[index].test(key));\n // One matching pattern regenerates the value from ITS child, sound by construction.\n // Overlapping patterns would need a value satisfying ALL of them, so the key drops instead.\n if (matching.length === 1) parent[key] = mockRunType(matching[0].value, valueOpts, stack);\n else if (matching.length > 1) delete parent[key];\n }\n patternProps.forEach((entry, index) => {\n if (!entry.key) return;\n const generated = mockRunType(entry.key, options, stack);\n if (typeof generated === 'string' && regexes[index].test(generated) && !(generated in parent)) {\n const others = patternProps.some((_other, otherIndex) => otherIndex !== index && regexes[otherIndex].test(generated));\n if (!others) parent[generated] = mockRunType(entry.value, valueOpts, stack);\n }\n });\n }\n const propNames = runType.propNames as RunType[] | undefined;\n if (propNames && propNames.length > 0) {\n const declaredNames = new Set<string | number>();\n for (const member of children) {\n const name = member.name as string | number | undefined;\n if (name !== undefined) declaredNames.add(name);\n }\n // Undeclared keys re-key unconditionally from a child's own mock, which satisfies the real validator by the\n // soundness invariant, while keeping a random key would lean on the loose matcher.\n // Stacked propertyNames conjoin: the draw comes from the first child and the rest accept it via the loose matcher.\n // Declared keys stay: a schema whose declared names fail propertyNames is contradictory and surfaces in the\n // rejection loop.\n for (const key of Object.keys(parent)) {\n if (declaredNames.has(key)) continue;\n const entryValue = parent[key];\n delete parent[key];\n for (let attempt = 0; attempt < 8; attempt++) {\n const renamed = mockRunType(propNames[0], options, stack);\n if (typeof renamed !== 'string' || renamed in parent) continue;\n if (!propNames.every((entry) => childSchemaMatches(renamed, entry))) continue;\n parent[renamed] = entryValue;\n break;\n }\n }\n }\n return parent;\n}\n\n/** A mock value for a function-typed position when nonDataTypes is on, so the mock carries the non-data member. **/\nfunction mockNonDataFunction(): () => undefined {\n return () => undefined;\n}\n\n/** A mock instance for a non-serialisable native when nonDataTypes is on, picked from the class name and\n * defaulting to a small Uint8Array: the serializers always drop or reject it, so only the family matters. **/\nfunction mockNonSerializableNative(runType: RunType): unknown {\n const className =\n typeof runType.typeName === 'string' ? runType.typeName : typeof runType.name === 'string' ? runType.name : '';\n switch (className) {\n case 'ArrayBuffer':\n return new ArrayBuffer(8);\n case 'SharedArrayBuffer':\n return typeof SharedArrayBuffer !== 'undefined' ? new SharedArrayBuffer(8) : new ArrayBuffer(8);\n case 'DataView':\n return new DataView(new ArrayBuffer(8));\n case 'Int8Array':\n return new Int8Array([1, 2, 3]);\n case 'Int32Array':\n return new Int32Array([1, 2, 3]);\n case 'Float64Array':\n return new Float64Array([1.5, 2.5]);\n default:\n return new Uint8Array([1, 2, 3]);\n }\n}\n\n/** True iff `member` is a tuple/parameter wrapper around RunTypeKind.rest. **/\nfunction isRestTupleMember(member: RunType): boolean {\n if (member.kind === RunTypeKind.rest) return true;\n if (Array.isArray(member.flags) && (member.flags as unknown[]).includes('rest')) return true;\n const child = member.child as RunType | undefined;\n return child !== undefined && child.kind === RunTypeKind.rest;\n}\n\n/** The element options REPLACE the mock bag, so carry the seeded random source over when they omit it, or a\n * `{seed}` + `tupleOptions` / `paramsOptions` mock loses determinism for the overridden slots. **/\nfunction mergeChildOptions(options: RunTypeMockOptions, childMock: MockOptions): RunTypeMockOptions {\n const parentMock = options.mock as MockOptions;\n return {...options, mock: {...childMock, random: childMock.random ?? parentMock.random}};\n}\n\n/** Clamp a collection draw into a structural annotation's `minItems` / `maxItems`, shared by the formattedArray /\n * formattedSet / formattedMap families, so the mockSwitch rejection loop rarely retries. **/\nfunction clampToItemBounds(params: Record<string, unknown> | undefined, length: number): number {\n if (!params) return length;\n if (typeof params.maxItems === 'number' && length > params.maxItems) length = params.maxItems;\n if (typeof params.minItems === 'number' && length < params.minItems) length = params.minItems;\n return length;\n}\n\n/** The params of a structural annotation whose name is `name`, else undefined. **/\nfunction structuralParamsOf(runType: RunType, name: string): Record<string, unknown> | undefined {\n const annotation = runType.formatAnnotation;\n return annotation?.name === name ? ((annotation.params ?? {}) as Record<string, unknown>) : undefined;\n}\n\n// How many times a matched draw may be redrawn after collapsing on insert.\nconst COLLECTION_DRAW_ATTEMPTS = 32;\n\n/** The `contains` / `uniqueItems` draw BOTH collection mock arms run, so the Set and Map shapes cannot drift:\n * exactly `min` constructed matches per `contains` entry (each checked against the collection's own member types\n * by the caller's `drawMatch`), then fillers the loose matcher DEFINITIVELY rejects, up to the clamped count.\n * `insertKeyOf` is what the collection dedupes on (a Set member, a Map key) under SameValueZero: a colliding\n * insert silently drops an entry, which would under-satisfy a `contains` min and ship a mock the validator\n * rejects with nothing to catch it, since a contains-only node carries no annotation for mockSwitch to sample on.\n * So every draw on a taken key is rejected and redrawn, and only an exhausted MATCH redraw throws.\n * `uniqueItems` adds the by-value dedupe on top, keyed by canonical JSON over the whole entry. **/\nfunction drawCollectionEntries<T>(spec: {\n length: number;\n containsChecks: ContainsEntry[];\n unique: boolean;\n drawMatch: (child: RunType) => T;\n drawFiller: () => T;\n insertKeyOf: (entry: T) => unknown;\n collapseError: string;\n}): T[] {\n const entries: T[] = [];\n // SameValueZero membership, which IS the Map / Set insert rule; an object key or member is a fresh reference\n // every draw, so it can never collide here.\n const takenKeys = new Set<unknown>();\n const seenValues = new Set<string>();\n const keep = (entry: T): boolean => {\n const insertKey = spec.insertKeyOf(entry);\n if (takenKeys.has(insertKey)) return false;\n if (spec.unique) {\n const valueKey = canonicalJson(entry);\n if (seenValues.has(valueKey)) return false;\n seenValues.add(valueKey);\n }\n takenKeys.add(insertKey);\n entries.push(entry);\n return true;\n };\n for (const check of spec.containsChecks) {\n if (check.max >= 0 && check.min > check.max) {\n throw new Error('Cannot mock contains: minContains exceeds maxContains — the schema is provably empty.');\n }\n for (let n = 0; n < check.min; n++) {\n let placed = false;\n for (let attempt = 0; attempt < COLLECTION_DRAW_ATTEMPTS && !placed; attempt++) placed = keep(spec.drawMatch(check.child));\n if (!placed) throw new Error(spec.collapseError);\n }\n }\n let attempts = 0;\n while (entries.length < spec.length && attempts < Math.max(spec.length, 1) * COLLECTION_DRAW_ATTEMPTS) {\n attempts++;\n const filler = spec.drawFiller();\n if (spec.containsChecks.some((check) => childSchemaMatches(filler, check.child))) continue;\n keep(filler);\n }\n return entries;\n}\n\n/** Map mock builder; key/value types live at `runType.arguments[i].child`, the wire's KindParameter wrappers.\n * A formattedMap annotation shapes the draw the way the Set arm does, over the `[key, value]` PAIR that is a\n * Map's entry: `contains` entries are satisfied by construction from the TUPLE child. **/\nfunction mockMap(runType: RunType, options: RunTypeMockOptions, stack: RunType[]): Map<unknown, unknown> {\n const mOps = options.mock as MockOptions;\n const random = mOps.random ?? nativeMockRandom;\n const args = (runType.arguments ?? []) as RunType[];\n const keyType = args[0]?.child as RunType | undefined;\n const valueType = args[1]?.child as RunType | undefined;\n const result = new Map<unknown, unknown>();\n if (!keyType || !valueType) return result;\n const mapParams = structuralParamsOf(runType, 'formattedMap');\n const entryOpts = shrinkForNestedItems(options, stack);\n const entries = drawCollectionEntries<[unknown, unknown]>({\n length: clampToItemBounds(mapParams, mOps.arrayLength ?? random.int(0, mOps.maxRandomItemsLength)),\n containsChecks: (runType.contains ?? []) as ContainsEntry[],\n unique: mapParams?.uniqueItems === true,\n // A Map's contains child is a TUPLE over the `[key, value]` pair, and a slot left `unknown` means \"skip this\n // half\": a draw the Map's own key / value type rejects is REDRAWN from that type and the repaired pair\n // re-checked, so only a pair that still fails is a real contradiction.\n drawMatch: (child) => {\n const drawn = mockRunType(child, entryOpts, stack);\n const pair: [unknown, unknown] = Array.isArray(drawn) && drawn.length === 2 ? [drawn[0], drawn[1]] : [undefined, undefined];\n if (!childSchemaMatches(pair[0], keyType)) pair[0] = mockRunType(keyType, entryOpts, stack);\n if (!childSchemaMatches(pair[1], valueType)) pair[1] = mockRunType(valueType, entryOpts, stack);\n if (!childSchemaMatches(pair, child)) {\n throw new Error(\n 'Cannot mock contains: the contains child and the Map entry type are contradictory (a Map entry is its ' +\n '[key, value] pair). Provide a MockData pool for this type (enrich).'\n );\n }\n return pair;\n },\n drawFiller: () => [mockRunType(keyType, entryOpts, stack), mockRunType(valueType, entryOpts, stack)],\n insertKeyOf: (pair) => pair[0],\n collapseError:\n 'Cannot mock contains: a Map holds one entry per key, so the drawn matches collapsed and minContains cannot ' +\n 'be reached. Provide a MockData pool for this type (enrich).',\n });\n for (const [key, value] of entries) result.set(key, value);\n return result;\n}\n\n/** Set mock builder; the element type lives at `runType.arguments[0].child`.\n * A formattedSet annotation shapes the draw the way the array arm does, so the rejection loop converges. **/\nfunction mockSet(runType: RunType, options: RunTypeMockOptions, stack: RunType[]): Set<unknown> {\n const mOps = options.mock as MockOptions;\n const random = mOps.random ?? nativeMockRandom;\n const args = (runType.arguments ?? []) as RunType[];\n const elementType = args[0]?.child as RunType | undefined;\n if (!elementType) return new Set<unknown>();\n const setParams = structuralParamsOf(runType, 'formattedSet');\n const memberOpts = shrinkForNestedItems(options, stack);\n const members = drawCollectionEntries<unknown>({\n length: clampToItemBounds(setParams, mOps.arrayLength ?? random.int(0, mOps.maxRandomItemsLength)),\n containsChecks: (runType.contains ?? []) as ContainsEntry[],\n unique: setParams?.uniqueItems === true,\n drawMatch: (child) => {\n const item = mockRunType(child, memberOpts, stack);\n if (!childSchemaMatches(item, elementType)) {\n throw new Error(\n 'Cannot mock contains: the contains child and the Set member type are contradictory. ' +\n 'Provide a MockData pool for this type (enrich).'\n );\n }\n return item;\n },\n drawFiller: () => mockRunType(elementType, memberOpts, stack),\n insertKeyOf: (member) => member,\n collapseError:\n 'Cannot mock contains: a Set holds one copy of a member, so the drawn matches collapsed and minContains ' +\n 'cannot be reached. Provide a MockData pool for this type (enrich).',\n });\n return new Set(members);\n}\n\n/** Render a template-literal runtype to a string satisfying its regex.\n * Layout: `runType.literal.templateLiteral.{texts, placeholders}`. **/\nfunction buildTemplateLiteralString(runType: RunType, mOps: MockOptions, random: MockRandom): string {\n const envelope = (runType.literal ?? null) as TemplateLiteralEnvelope | null;\n const layout = envelope?.templateLiteral;\n if (!layout || !Array.isArray(layout.texts)) return '';\n const texts = layout.texts;\n const placeholders = Array.isArray(layout.placeholders) ? layout.placeholders : [];\n let out = '';\n for (let i = 0; i < texts.length; i++) {\n out += texts[i];\n if (i < placeholders.length) {\n out += renderTemplateLiteralPlaceholder(placeholders[i], mOps, random);\n }\n }\n return out;\n}\n\ninterface TemplateLiteralEnvelope {\n templateLiteral?: {\n texts?: string[];\n placeholders?: TemplateLiteralPlaceholder[];\n };\n}\n\ninterface TemplateLiteralPlaceholder {\n kind?: number;\n literal?: string | number | boolean;\n}\n\n/** Render one placeholder span to a fragment satisfying the regex anchor. **/\nfunction renderTemplateLiteralPlaceholder(span: TemplateLiteralPlaceholder, mOps: MockOptions, random: MockRandom): string {\n if (!span) return '';\n const kind = typeof span.kind === 'number' ? span.kind : -1;\n switch (kind) {\n case RunTypeKind.literal:\n return span.literal === undefined ? '' : String(span.literal);\n case RunTypeKind.number:\n return String(random.number(mOps.minNumber, mOps.maxNumber));\n case RunTypeKind.bigint:\n return String(random.bigint(mOps.minNumber, mOps.maxNumber));\n case RunTypeKind.string:\n case RunTypeKind.any:\n case RunTypeKind.unknown:\n return random.string(mOps.stringLength ?? random.int(1, mOps.maxRandomStringLength), mOps.stringCharSet || stringCharSet);\n default:\n // Unknown kind — empty string so surrounding text segments still anchor.\n return '';\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mockTypes.js","sourceRoot":"","sources":["../../src/mocking/mockTypes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"mockTypes.js","sourceRoot":"","sources":["../../src/mocking/mockTypes.ts"],"names":[],"mappings":"","sourcesContent":["// Public types for the mock-value generator; `createMockDataFn<T>()` merges caller options over\n// `defaultMockOptions` before walking the runtype graph.\n\nimport type {MockData} from '../enrich/mockData.ts';\nimport type {MockRandom} from './mockRandom.ts';\n\n/** Per-call options for value generation, ported field-for-field from the reference implementation. **/\nexport interface MockOptions {\n /** Pool for `any` / `unknown` kinds. **/\n anyValuesList: unknown[];\n /** Inclusive bounds for `mockNumber` / `mockBigInt`. **/\n minNumber?: number;\n maxNumber?: number;\n /** Inclusive timestamp bounds for `mockDate`. **/\n minDate?: number | Date;\n maxDate?: number | Date;\n /** Force a specific enum branch. **/\n enumIndex?: number;\n /** Pool for the `object` kind. **/\n objectList: object[];\n /** Promise resolution delay (ms). 0 = synchronous (microtask). **/\n promiseTimeOut: number;\n /** When set the mocked Promise rejects with this value. **/\n promiseReject?: unknown;\n /** Pool for the `regexp` kind, drawn only when `nonDataTypes` is on (a RegExp is not data). **/\n regexpList: RegExp[];\n /** Upper bound used when `stringLength` is omitted. **/\n maxRandomStringLength: number;\n /** Force a specific string length. **/\n stringLength?: number;\n /** Character set used by `mockString`. **/\n stringCharSet: string;\n symbolLength?: number;\n symbolCharSet?: string;\n symbolName?: string;\n /** Upper bound for array / Map / Set / indexSignature sizes. **/\n maxRandomItemsLength: number;\n /** Force a specific length. **/\n arrayLength?: number;\n /** Probability (0..1) that an optional is included. Decays by depth. **/\n optionalProbability: number;\n /** Per-property override of `optionalProbability`. **/\n optionalPropertyProbability?: Record<string | number, number>;\n /** Pre-built object the walker mutates for cyclic-shape parents; the decay helper clears it on each recursion. **/\n parentObj?: Record<string | number | symbol, unknown>;\n /** Force a specific union branch. **/\n unionIndex?: number;\n tupleOptions?: MockOptions[];\n paramsOptions?: MockOptions[];\n /** Informational only — `maxMockRecursion` decay handles the practical case. **/\n maxStackDepth: number;\n /** Cap on stack re-entry before mocking bails to `undefined`; with the probability decay it guarantees termination. **/\n maxMockRecursion: number;\n /** Generate values for the DataOnly-stripped kinds (functions / methods / call signatures, `RegExp`, and the\n * non-serialisable natives) instead of skipping or throwing on them. Off by default, since a mock is a\n * DataOnly-shaped value; on, the mock carries the non-data members and exercises the serializers' drop / fail. **/\n nonDataTypes?: boolean;\n /** Generate a value that FAILS `validate<T>`: a normal mock with ONE position replaced by a value of the wrong\n * type (a number where a string is required, a value outside a union, …). Off by default. **/\n invalid?: boolean;\n /** When `invalid` is on, biases the DEPTH (0..1) at which the wrong value lands, every position being a\n * candidate: `1` corrupts a leaf, `0` replaces the whole root, values in between spread the break across all\n * depths (a mid value can replace a whole nested object with a non-object). Default `0.85`, usually a deep field. **/\n invalidLeafProbability?: number;\n /** Draw credit-card mocks from the published gateway sandbox numbers (`4111111111111111`, ...) instead of\n * generating a fresh one. Off by default; turn it on when the mocked data reaches a real gateway sandbox,\n * which rejects anything else. **/\n testCreditCards?: boolean;\n /** Seed the value generator so the same seed always produces the same value for a given type; omitted keeps\n * native randomness. Settable at the factory or per call, and a per-call seed overrides a factory seed.\n * Time-based values (Date / Temporal / uuid v7) are pinned to a fixed reference instant under a seed. **/\n seed?: number;\n /** Internal, not caller-facing: the `MockRandom` every draw of one generation shares, built by\n * `createMockDataFn` from `seed` and carried here so it threads through the walker.\n * Absent ⇒ the mock path falls back to the shared native instance. **/\n random?: MockRandom;\n}\n\n/** Loose runtime view of a `MockNode` (../enrich/mockData.ts), read structurally by the walker and typed\n * permissively because it operates over erased `unknown` values; the typed surface is `MockData<T>` on the\n * public `data` field. Every slot is optional, so an absent / partial node leaves its generation path untouched. **/\nexport interface MockDataNode {\n /** Value pool — leaf kinds draw `randomItem(pool)`. **/\n pool?: unknown[];\n /** Inclusive numeric / Date range bounds. **/\n min?: number | Date;\n max?: number | Date;\n /** Array element data node. **/\n rt$items?: MockDataNode;\n /** Array element count — fixed `n` or `[min, max]` range. **/\n rt$length?: number | [number, number];\n /** Present-probability for optional object members (reserved; not yet read). **/\n rt$optional?: number;\n /** Per-property child node (objects), descended by property name. **/\n [property: string]: unknown;\n}\n\n/** Wrapper bag passed at factory or call site, so future option groups (e.g. `validation`) don't break the signature.\n * `data` is the optional `MockData<T>` enrichment map (per-field pools / ranges / element + length controls) and\n * is strictly additive: when absent the walker behaves byte-identically.\n * `dataNode` is the internal current-node cursor the walker threads and descends; callers supply `data`. **/\nexport interface RunTypeMockOptions<T = unknown> {\n mock?: DeepPartial<MockOptions>;\n data?: MockData<T>;\n /** Internal, set by the walker: seeded from `data` at walk entry, descended by field name / `rt$items` / element. **/\n dataNode?: MockDataNode;\n}\n\n/** The call-time `data` map is typed loosely so the return type stays structurally stable across `T`; the\n * precisely-typed `MockData<T>` surface is the factory's `options` param. **/\nexport type MockTypeFn<T = unknown> = (options?: DeepPartial<RunTypeMockOptions>) => T;\n\n/** Recursive Partial — every object branch becomes optional. **/\nexport type DeepPartial<T> = T extends object ? (T extends ReadonlyArray<unknown> ? T : {[K in keyof T]?: DeepPartial<T[K]>}) : T;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"structuralFormat.js","sourceRoot":"","sources":["../../src/mocking/structuralFormat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structuralFormat.js","sourceRoot":"","sources":["../../src/mocking/structuralFormat.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAChF,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAwC;IACzE,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC3C,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,gBAAgB,CAAC;QACtB,KAAK,iBAAiB,CAAC;QACvB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAGD,SAAS,kBAAkB,CAAC,KAAyB,EAAE,MAA+B;IACpF,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxF,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxF,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAID,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,UAAwC;IAC9F,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;IACpE,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACvC,OAAO,KAAK,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAEvC,OAAO,KAAK,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC;QAC3D,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACjG,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;gBACnD,CAAC,CAAE,MAAM,CAAC,cAA4B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;gBACpG,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAC7B,MAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBAAE,OAAO,KAAK,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Runtime twins of the structural format checks the Go emitters compile (internal/cachegen/typefunctions/formats/structural),\n// so the mock walker can answer them at generation time. The generated VALIDATORS never import this, their checks are compiled.\nimport type {FormatAnnotation} from '../runtypes/formatAnnotation.ts';\n\n// 2020-12 JSON equality: numbers by mathematical value (0 and -0 collide), objects by unordered key set, arrays by order.\n// Twin of the Go uniqueItemsCheck IIFE; the two MUST agree or mocks drift from validators.\nexport function canonicalJson(value: unknown): string {\n if (value === null || typeof value !== 'object') {\n return typeof value === 'string' ? JSON.stringify(value) : typeof value + ':' + String(value);\n }\n if (Array.isArray(value)) return '[' + value.map(canonicalJson).join(',') + ']';\n const record = value as Record<string, unknown>;\n const keys = Object.keys(record).sort();\n return '{' + keys.map((key) => JSON.stringify(key) + ':' + canonicalJson(record[key])).join(',') + '}';\n}\n\nexport function hasDuplicateItems(items: readonly unknown[]): boolean {\n const seen = new Set<string>();\n for (const item of items) {\n const key = canonicalJson(item);\n if (seen.has(key)) return true;\n seen.add(key);\n }\n return false;\n}\n\nexport function isStructuralFormat(annotation: FormatAnnotation | undefined): boolean {\n if (annotation === undefined) return false;\n switch (annotation.name) {\n case 'formattedArray':\n case 'formattedObject':\n case 'formattedSet':\n case 'formattedMap':\n return true;\n default:\n return false;\n }\n}\n\n// An array's items, a Set's members and a Map's `[key, value]` pairs are the same entry list to these keywords.\nfunction itemKeywordsAccept(items: readonly unknown[], params: Record<string, unknown>): boolean {\n if (typeof params.minItems === 'number' && items.length < params.minItems) return false;\n if (typeof params.maxItems === 'number' && items.length > params.maxItems) return false;\n if (params.uniqueItems === true && hasDuplicateItems(items)) return false;\n return true;\n}\n\n/** True when the annotation is absent or non-structural: those families have their own mock paths.\n * Rejection sampling keeps candidates this ACCEPTS; the child matcher rejects candidates this accepts on the child. **/\nexport function structuralFormatAccepts(value: unknown, annotation: FormatAnnotation | undefined): boolean {\n if (!annotation) return true;\n const params = (annotation.params ?? {}) as Record<string, unknown>;\n if (annotation.name === 'formattedArray') {\n return Array.isArray(value) && itemKeywordsAccept(value, params);\n }\n if (annotation.name === 'formattedSet') {\n return value instanceof Set && itemKeywordsAccept([...value], params);\n }\n if (annotation.name === 'formattedMap') {\n // Spreading a Map yields its `[key, value]` pairs, so `uniqueItems` compares pairs by value.\n return value instanceof Map && itemKeywordsAccept([...value], params);\n }\n if (annotation.name === 'formattedObject') {\n if (typeof value !== 'object' || value === null) return false;\n const keys = Object.keys(value as Record<string, unknown>);\n if (typeof params.minProperties === 'number' && keys.length < params.minProperties) return false;\n if (typeof params.maxProperties === 'number' && keys.length > params.maxProperties) return false;\n const closed = params.closed;\n if (Array.isArray(closed)) {\n const patterns = Array.isArray(params.closedPatterns)\n ? (params.closedPatterns as unknown[]).filter((entry): entry is string => typeof entry === 'string')\n : [];\n const allowed = (key: string) =>\n (closed as unknown[]).includes(key) || patterns.some((source) => new RegExp(source).test(key));\n if (!keys.every(allowed)) return false;\n }\n return true;\n }\n return true;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"modelTypes.js","sourceRoot":"","sources":["../src/modelTypes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"modelTypes.js","sourceRoot":"","sources":["../src/modelTypes.ts"],"names":[],"mappings":"","sourcesContent":["/* ########\n * 2026 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\n// Insert / select / update model utilities: plain type transforms over an app type T (an\n// InferSelectModel of a proxy-built table or a hand-written row type) that derive the payload shapes\n// the database lanes use. Being plain transforms, every type format and its params (maxLength,\n// min/max, enums, ...) survive into the derived model, so a route input typed with these compiles\n// the full-fidelity validators. Standard runtypes vocabulary (exported from the root), reused by the\n// @mionjs/drizzle-orm-*-core packages; these transforms must NEVER import anything\n// database-specific. Defaults and generated columns live in the tableConfig, not in T, so those keys\n// are named explicitly:\n// type NewUser = InsertModel<User, 'id', 'createdAt'>;\n// // ^generated ^has a DB default\n\n/** Flattens an intersection into one readable object type (identity otherwise). */\ntype Prettify<T> = {[K in keyof T]: T[K]} & {};\n\n/** Row shape a select returns for a table generated from T: every key present, and\n * optional properties of T (nullable columns) come back as value | null. */\nexport type SelectModel<T> = Prettify<{\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n [K in keyof T]-?: {} extends Pick<T, K> ? NonNullable<T[K]> | null : T[K];\n}>;\n\n/** Insert payload for a table generated from T:\n * - `Generated` keys (identity / generated columns) cannot be sent, they are removed;\n * - `Defaulted` keys (columns with a DB or runtime default) become optional;\n * - optional properties of T (nullable columns) stay optional;\n * - everything else stays required. */\nexport type InsertModel<T, Generated extends keyof T = never, Defaulted extends keyof T = never> = Prettify<\n Omit<T, Generated | Defaulted> & {[K in Defaulted]?: T[K]}\n>;\n\n/** Update payload for a table generated from T: any subset of the insert payload\n * (generated columns still cannot be sent). */\nexport type UpdateModel<T, Generated extends keyof T = never> = Prettify<Partial<Omit<T, Generated>>>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"overrideRTFunctions.js","sourceRoot":"","sources":["../src/overrideRTFunctions.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAkB,MAAM,0BAA0B,CAAC;AAkBtF,SAAS,YAAY,CAAC,OAAgB,EAAE,EAAY;IAClD,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,aAAa,CAAC,EAAgB,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CACV,qEAAqE;YACnE,uDAAuD,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAGvB,CAAC;AAEV,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAGlC,CAAC;AAEV,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAGhC,CAAC;AAEV,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAG9B,CAAC;AAEV,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAG1B,CAAC;AAEV,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAG1B,CAAC"}
1
+ {"version":3,"file":"overrideRTFunctions.js","sourceRoot":"","sources":["../src/overrideRTFunctions.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,YAAY,EAAE,aAAa,EAAkB,MAAM,0BAA0B,CAAC;AAkBtF,SAAS,YAAY,CAAC,OAAgB,EAAE,EAAY;IAClD,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,aAAa,CAAC,EAAgB,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CACV,qEAAqE;YACnE,uDAAuD,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAKD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAGvB,CAAC;AAEV,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAGlC,CAAC;AAEV,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAGhC,CAAC;AAEV,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAG9B,CAAC;AAEV,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAG1B,CAAC;AAEV,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAG1B,CAAC","sourcesContent":["/* ########\n * 2026 ma-jerez\n * Author: Ma-jerez\n * License: MIT, see LICENSE\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\n// Per-type custom function overrides — `overrideX<T>(pureFn)` registers a custom PURE function for\n// one specific T, so every `createX<T>()` call site for that T returns it instead of the Go-emitted\n// structural body. This is the WRITE side of the same `(family, typeId)` routing `createX` reads:\n// same `InjectTypeFnArgs<T, fnKey>` marker, same family. The pure-fn body is hashed (a \"cfn\") and\n// folded into T's type id, so the override propagates to every containing type and no\n// `<fnHash>_<typeId>` key is ever reused with a different body. The `fn` MUST type-check against the\n// family's compiled signature for T, the SAME signature the emitter uses internally (e.g. the\n// validation-errors override receives `(value, path, errors)`).\n\nimport {isEntryTuple, initFromTuple, type EntryTuple} from './runtypes/entryTuple.ts';\nimport type {InjectTypeFnArgs, PureFunction} from './markers.ts';\nimport type {DataOnly} from './runtypes/dataOnly.ts';\nimport type {\n ValidateFn,\n GetValidationErrorsFn,\n RemoveUnknownKeysFn,\n FormatTransformFn,\n JsonEncoderFn,\n JsonDecoderFn,\n} from './createRTFunctions.ts';\n\n/** Shared runtime body for every overrideX twin. The override is a compile-time declaration: the\n * plugin injects the cfn-redirect entry tuple at the trailing slot, so registering it (and its cfn\n * module via the dep closure) is all the runtime does, and `pureFn` is ignored — its body now lives\n * only in the emitted `cfn::<hash>` module. Without the plugin nothing is injected and the override\n * cannot take effect, but the matching `createX` still resolves its structural body, so this warns\n * rather than throws. */\nfunction overrideImpl(_pureFn: unknown, id?: unknown): void {\n if (isEntryTuple(id)) {\n initFromTuple(id as EntryTuple);\n return;\n }\n if (typeof console !== 'undefined') {\n console.warn(\n '[mion] overrideX(): no entry injected. The @mionjs/devtools plugin ' +\n 'must be active for per-type overrides to take effect.'\n );\n }\n}\n\n// The cast restores <T> and the `PureFunction` / `InjectTypeFnArgs` brands the Go scanner reads at call sites.\n// Only public operations get a twin: the JSON primitives (pj / pjs / rj / rjs / cj / cjr) are not overridable.\n\nexport const overrideValidate = overrideImpl as unknown as <T>(\n fn: PureFunction<ValidateFn<T>>,\n id?: InjectTypeFnArgs<T, 'validate'>\n) => void;\n\nexport const overrideGetValidationErrors = overrideImpl as unknown as <T>(\n fn: PureFunction<GetValidationErrorsFn>,\n id?: InjectTypeFnArgs<T, 'validationErrors'>\n) => void;\n\nexport const overrideRemoveUnknownKeys = overrideImpl as unknown as <T>(\n fn: PureFunction<RemoveUnknownKeysFn<T>>,\n id?: InjectTypeFnArgs<T, 'removeUnknownKeys'>\n) => void;\n\nexport const overrideFormatTransform = overrideImpl as unknown as <T>(\n fn: PureFunction<FormatTransformFn<T>>,\n id?: InjectTypeFnArgs<T, 'formatTransform'>\n) => void;\n\nexport const overrideJsonEncoder = overrideImpl as unknown as <T>(\n fn: PureFunction<JsonEncoderFn>,\n id?: InjectTypeFnArgs<T, 'jsonEncoder'>\n) => void;\n\nexport const overrideJsonDecoder = overrideImpl as unknown as <T>(\n fn: PureFunction<JsonDecoderFn<DataOnly<T>>>,\n id?: InjectTypeFnArgs<T, 'jsonDecoder'>\n) => void;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAe,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAC,oBAAoB,EAAE,0BAA0B,EAAE,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAC,SAAS,EAAqC,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACL,uBAAuB,GAKxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,WAAW,EAAuC,MAAM,0CAA0C,CAAC;AAC3G,OAAO,EAAC,aAAa,EAA2C,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAe,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAC,oBAAoB,EAAE,0BAA0B,EAAE,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAC,SAAS,EAAqC,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,qBAAqB,EAAE,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACL,uBAAuB,GAKxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,WAAW,EAAuC,MAAM,0CAA0C,CAAC;AAC3G,OAAO,EAAC,aAAa,EAA2C,MAAM,yBAAyB,CAAC","sourcesContent":["// `@mionjs/run-types/runtime` entry: the cache and compiled-fn plumbing a host needs to LOAD and RUN\n// what the build compiled. Off the main entry because getRTUtils reaches classSerializerRegistry and\n// entryTuple, which a barrel would put in every bundle that touches the package.\n\nexport {getRTUtils, getRTFnCaches, type RTUtils} from '../runtypes/rtUtils.ts';\nexport {buildFactoryFromCode, buildPureFnFactoryFromCode, entryCode} from '../runtypes/rtUtils.ts';\nexport {getFnHash, type FnHashKey, type FnHashOptions} from '../fnHash.ts';\nexport {FAMILY_TAG_TO_FN_KEY} from '../go-generated/fnHashes.generated.ts';\nexport {registerPureFnFactory, registerPureFn, type PureFnId} from '../runtypes/pureFn.ts';\nexport {RUN_TYPES_PURE_FN_ID_PREFIX} from '../runtypes/pure-fn-ids.generated.ts';\nexport {\n registerClassSerializer,\n type ClassSerializerHandler,\n type AnyClass,\n type SerializableClass,\n type DeserializeClassFn,\n} from '../runtypes/classSerializerRegistry.ts';\nexport {typeFormats, type FormatName, type TypeFormatMeta} from '../go-generated/typeFormats.generated.ts';\nexport {getRTFunction, type RTFunctionByKey, type RTFunctionKey} from '../createRTFunctions.ts';\n// The tuple types emitMode ts annotates each generated module's export with.\nexport type {\n FnTypeTuple,\n PureFnTuple,\n MissingTuple,\n RunTypeTuple,\n RunTypeBundleTuple,\n RunTypeFacadeTuple,\n} from '../runtypes/entryTuple.ts';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"builderCore.js","sourceRoot":"","sources":["../../src/runtypes/builderCore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAW3E,MAAM,UAAU,aAAa,CAAI,EAAkC,EAAE,OAAgB;IAGnF,IAAI,UAAU,GAAuB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,OAAqB,CAAC;IAC5C,CAAC;IACD,OAAO,OAAqB,CAAC;AAC/B,CAAC;AAKD,MAAM,UAAU,KAAK,CAAyB,IAAO;IACnD,OAAO,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;AAC/B,CAAC;AAID,MAAM,UAAU,cAAc,CAAC,GAAG,IAAe;IAC/C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAEtB,aAAa,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAKD,MAAM,UAAU,aAAa,CAAI,GAAW;IAC1C,OAAO,CAAC,EAAuB,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"builderCore.js","sourceRoot":"","sources":["../../src/runtypes/builderCore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAW3E,MAAM,UAAU,aAAa,CAAI,EAAkC,EAAE,OAAgB;IAGnF,IAAI,UAAU,GAAuB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,OAAO;YAAE,OAAO,OAAqB,CAAC;IAC5C,CAAC;IACD,OAAO,OAAqB,CAAC;AAC/B,CAAC;AAKD,MAAM,UAAU,KAAK,CAAyB,IAAO;IACnD,OAAO,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC;AAC/B,CAAC;AAID,MAAM,UAAU,cAAc,CAAC,GAAG,IAAe;IAC/C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAEtB,aAAa,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAKD,MAAM,UAAU,aAAa,CAAI,GAAW;IAC1C,OAAO,CAAC,EAAuB,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;AACvF,CAAC","sourcesContent":["// The shared value-first BUILDER primitives every builder under `formats/` and `schema/` is constructed from.\n// They live in the neutral `runtypes/` layer so neither authoring surface depends on the other and `formats/` stays self-contained.\n// Runtime deps are only the registry (`rtUtils.ts`) and the entry-tuple decoder (`entryTuple.ts`).\n\nimport {getRTUtils} from './rtUtils.ts';\nimport {entryTupleKey, initFromTuple, isEntryTuple} from './entryTuple.ts';\nimport type {RunType} from './types.ts';\nimport type {InjectRunTypeId} from '../markers.ts';\nimport type {BrandArg} from './builderTypes.ts';\n\n// ───────────────────────────── builderResult ────────────────────────\n//\n// Each builder is an INJECTABLE MARKER (Tier 2): @mionjs/devtools fills the trailing `id?: InjectRunTypeId<…>` with the resolved structural id.\n\n/** Resolves the live RunType node for an injected id: the exact node the type compiler produces for the builder's return type. **/\n// With no id (nested inside a composer, which the scanner reflects whole) or before the cache module has loaded, the `carrier` is returned instead.\nexport function builderResult<T>(id: InjectRunTypeId<T> | undefined, carrier: unknown): RunType<T> {\n // The plugin injects the runtype's ENTRY-MODULE TUPLE: registering it brings in the type graph, children included, and yields the id string.\n // A bare string id keeps working for callers that pre-resolved it.\n let resolvedId: string | undefined = typeof id === 'string' ? id : undefined;\n if (isEntryTuple(id)) {\n initFromTuple(id);\n resolvedId = entryTupleKey(id);\n }\n if (resolvedId !== undefined) {\n const runType = getRTUtils().getRunType(resolvedId);\n if (runType) return runType as RunType<T>;\n }\n return carrier as RunType<T>;\n}\n\n/** `string({…}, brand('UserId'))` opts the leaf INTO a nominal `Format*<P, 'UserId'>`, matching the type-first `String<P, 'UserId'>`. **/\n// TS-only: the Go scanner reads the brand off the reflected `LeafType<…, B>`, NOT off this object, so the builder discards it at runtime.\n// It rides BEFORE the trailing id slot — an object, never confused with the id string.\nexport function brand<const B extends string>(name: B): BrandArg<B> {\n return {__rtBrandName: name};\n}\n\n/** The plugin appends the resolved id as the TRAILING argument, and the params and brand slots before it are never strings, so the id is the last string. **/\n// Before injection there is no string argument, so the builder falls back to the carrier.\nexport function lastInjectedId(...args: unknown[]): string | undefined {\n for (let i = args.length - 1; i >= 0; i--) {\n const arg = args[i];\n if (typeof arg === 'string') return arg;\n if (isEntryTuple(arg)) {\n // The params and brand slots before it are plain objects, never arrays, so tuple detection is unambiguous.\n initFromTuple(arg);\n return entryTupleKey(arg);\n }\n }\n return undefined;\n}\n\n/** A no-param builder for a FIXED named format `T` (`Email`, `Int8`), used by stringFormats.ts / numberFormats.ts / bigintFormats.ts. **/\n// The only param is the injected `InjectRunTypeId<T>` brand, so the scanner reflects `T` and the value-first id matches the type-first alias.\n// `tag` is the Go format name, carried only on the fallback carrier.\nexport function presetBuilder<T>(tag: string): (id?: InjectRunTypeId<T>) => RunType<T> {\n return (id?: InjectRunTypeId<T>) => builderResult(id, {type: tag, formatParams: {}});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"builderTypes.js","sourceRoot":"","sources":["../../src/runtypes/builderTypes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"builderTypes.js","sourceRoot":"","sources":["../../src/runtypes/builderTypes.ts"],"names":[],"mappings":"","sourcesContent":["// Neutral helpers avoid coupling format builders and composers; indexed access avoids infer (AGENTS.md).\n// TypeFormat needs a value import so tsgo can reach its reflection metadata.\n\nimport {TypeFormat} from './typeFormat.ts';\nimport type {RunType} from './types.ts';\nimport type {InjectRunTypeId, CompTimeArgs} from '../markers.ts';\nimport type {MinMax} from '../formats/datetime/dateTimeParams.ts';\nimport type {UrlObjectFormat} from '../formats/string/stringFormats.ts';\nimport type {\n Instant,\n ZonedDateTime,\n PlainDate,\n PlainTime,\n PlainDateTime,\n PlainYearMonth,\n TemporalBaseByFormatName,\n} from '../formats/datetime/temporalFormats.ts';\n\n// ────────────────────────────── InferType ───────────────────────────\n\n/** The carrier is `{t: T}`, so `NonNullable` strips the optional WRAPPER, not `T`: an intentional null/undefined `T` survives. **/\nexport type InferType<RT> = RT extends RunType ? NonNullable<RT['__rtType']>['t'] : RT;\n\n// ─────────────────────────────── Leaves ─────────────────────────────\n//\n// The single source of truth from a leaf's FORMAT identity to its branded TS type: adding a leaf format is ONE edit here.\n// Keyed by the format brand name (`__rtFormatName`) because that name encodes both the reflection kind and the subKind.\n// The lone bare leaf with no format (boolean) needs no row: `boolean()` returns `RunType<boolean>` directly.\n\n/** `P` is bound only to `object` so one `P` fits every row; each builder validates its own params at the call site. **/\n// The temporal rows' `P extends MinMax` guard NARROWS, never intersects, so no spurious `min?/max?` reaches the reflected params.\nexport interface LeafTypeByFormatName<P extends object, BrandName extends string = never> {\n stringFormat: TypeFormat<string, 'stringFormat', P, BrandName>;\n numberFormat: TypeFormat<number, 'numberFormat', P, BrandName>;\n bigintFormat: TypeFormat<bigint, 'bigintFormat', P, BrandName>;\n nativeDate: TypeFormat<Date, 'nativeDate', P, BrandName>;\n nativeUrl: UrlObjectFormat<P, BrandName>;\n // Temporal leaves are unbranded: branding them needs a brand slot in the `FormatTemporal*` aliases and in `temporalBuilder`.\n temporalInstant: P extends MinMax ? Instant<P> : never;\n temporalZonedDateTime: P extends MinMax ? ZonedDateTime<P> : never;\n temporalPlainDate: P extends MinMax ? PlainDate<P> : never;\n temporalPlainTime: P extends MinMax ? PlainTime<P> : never;\n temporalPlainDateTime: P extends MinMax ? PlainDateTime<P> : never;\n temporalPlainYearMonth: P extends MinMax ? PlainYearMonth<P> : never;\n}\n\nexport type LeafFormatName = keyof LeafTypeByFormatName<Record<string, never>>;\n\n/** A bare `<const P extends Allowed>` accepts excess keys: a `max` typo would compile and silently drop the constraint. **/\n// Wrap it INSIDE `CompTimeArgs<…>`, never intersected onto the annotation, or the Go scanner stops detecting the annotation syntactically.\n// Transparent when `P` has no excess key, so `P` and the structural id read off it are unchanged.\nexport type ExactParams<P, Allowed> = P & Record<Exclude<keyof P, keyof Allowed>, never>;\n\n/** The default `BrandName` of `never` keeps the leaf mutually assignable with its base; `brand(name)` opts INTO the nominal `Format*<P, B>`. **/\nexport type LeafType<Name extends LeafFormatName, P extends object, BrandName extends string = never> = LeafTypeByFormatName<\n P,\n BrandName\n>[Name];\n\n/** An OBJECT, not a bare string: a string is assignable to `InjectRunTypeId`, so the brand slot could not sit before the trailing id. **/\n// `B` flows into `LeafType<…, B>`, so a branded value-first leaf converges on the same structural id as the type-first `Format*<P, B>`.\nexport interface BrandArg<B extends string> {\n readonly __rtBrandName: B;\n}\n\n// ─────────────────────────── Temporal lookups ───────────────────────\n//\n// Routed through the leaf map so the format→type mapping and the Temporal-lib coupling stay out of the builder file.\n\n/** Authoring tag → branded temporal format type (params-present overload). **/\nexport interface TemporalFormatByTag<P extends MinMax> {\n 'temporal.instant': LeafType<'temporalInstant', P>;\n 'temporal.zonedDateTime': LeafType<'temporalZonedDateTime', P>;\n 'temporal.plainDate': LeafType<'temporalPlainDate', P>;\n 'temporal.plainTime': LeafType<'temporalPlainTime', P>;\n 'temporal.plainDateTime': LeafType<'temporalPlainDateTime', P>;\n 'temporal.plainYearMonth': LeafType<'temporalPlainYearMonth', P>;\n}\n\n/** The no-params overload's return, routed through `TemporalBaseByFormatName` so `Temporal.*` stays named only in temporalFormats.ts. **/\nexport interface TemporalBaseByTag {\n 'temporal.instant': TemporalBaseByFormatName['temporalInstant'];\n 'temporal.zonedDateTime': TemporalBaseByFormatName['temporalZonedDateTime'];\n 'temporal.plainDate': TemporalBaseByFormatName['temporalPlainDate'];\n 'temporal.plainTime': TemporalBaseByFormatName['temporalPlainTime'];\n 'temporal.plainDateTime': TemporalBaseByFormatName['temporalPlainDateTime'];\n 'temporal.plainYearMonth': TemporalBaseByFormatName['temporalPlainYearMonth'];\n // Absent from `TemporalFormatByTag`: these two have no ordering, so their builders are no-param-only.\n 'temporal.plainMonthDay': TemporalBaseByFormatName['temporalPlainMonthDay'];\n 'temporal.duration': TemporalBaseByFormatName['temporalDuration'];\n}\n\n/** The no-params/plain ↔ params/branded overload split the scalar leaves share. **/\nexport interface TemporalBuilderFn<Tag extends keyof TemporalFormatByTag<MinMax>> {\n (id?: InjectRunTypeId<TemporalBaseByTag[Tag]>): RunType<TemporalBaseByTag[Tag]>;\n <const P extends MinMax>(\n formatParams: CompTimeArgs<ExactParams<P, MinMax>>,\n id?: InjectRunTypeId<TemporalFormatByTag<P>[Tag]>\n ): RunType<TemporalFormatByTag<P>[Tag]>;\n}\n\n/** Named on purpose: the emitted `.d.ts` references it unresolved instead of resolving `TemporalBaseByTag[Tag]` to a bare `Temporal.*`. **/\n// Inlining it would re-introduce the Temporal-lib requirement into the published surface.\nexport interface TemporalInstanceBuilderFn<Tag extends 'temporal.plainMonthDay' | 'temporal.duration'> {\n (id?: InjectRunTypeId<TemporalBaseByTag[Tag]>): RunType<TemporalBaseByTag[Tag]>;\n}\n"]}
@@ -7,6 +7,6 @@ type CircularSkeleton = {
7
7
  }[][];
8
8
  };
9
9
  export type FindCycleFn = (value: unknown, skeleton: CircularSkeleton) => CircularPath | null;
10
- export declare const findCycle: import("./pureFn.ts").PureFnId<"@mionjs/run-types#pf_zXMPEMyjGR4ZRc">;
10
+ export declare const findCycle: import("./pureFn.ts").PureFnId<"_rt:lBHf1kg5nQ">;
11
11
  export {};
12
12
  //# sourceMappingURL=circular-pure-fns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"circular-pure-fns.js","sourceRoot":"","sources":["../../src/runtypes/circular-pure-fns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"circular-pure-fns.js","sourceRoot":"","sources":["../../src/runtypes/circular-pure-fns.ts"],"names":[],"mappings":"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","sourcesContent":["// Registration module for the circular-reference walker `findCycle`. The guard is a COMPILE-TIME option\n// (`{rejectCircularRefs: true}`): only the armed variant of a guarded factory inlines it, for a cycle-capable type, and the\n// `skeleton` it passes is BAKED into the factory closure at build time (internal/cachegen/typefunctions/circular_skeleton.go).\n// So the walker needs NO RunType graph at runtime, and an unarmed type ships neither the walker nor a bundle.\n// Skeleton shape (mirror of CircularSkeleton.JSLiteral): `{c: [1|0, …], e: [[{p: [seg, …], t: idx}, …], …]}`; node 0 is the\n// guarded root, c[i] flags a TRACKED node (values ride the descent stack), e[i] lists its outgoing circular edges, each an\n// access path `p` to another tracked node `t`. Segments: [\"k\", name] value[name]; [\"a\"] array elements; [\"s\"] Set elements;\n// [\"mk\"]/[\"mv\"] Map keys/values; [\"i\"] own-enumerable values (index signature).\n// The body is rebuilt via `new Function('utl', code)`, so it references no module-level import.\n// It walks ONLY the baked edges with a LOCAL descent stack, so DAGs and shared refs pass and only a true cycle flags, matching JSON.stringify.\n// A per-node \"fully-explored\" memo (`safe`) keeps it O(V+E); a diamond DAG would be exponential otherwise.\n// The stack is a plain ARRAY, not a Set: it holds one descent path (short in practice), and a linear `indexOf` beat Set's hashing\n// ~1.3–1.9x up to ~depth 100, Set winning only for pathologically deep single chains.\n\nimport {registerPureFnFactory} from './pureFn.ts';\nimport {findCycleId} from './pure-fn-ids.generated.ts';\n\n/** Object keys and array/tuple indices, plus `mapKey[i]`/`mapValue[i]` labels; mirrors CircularPath in circular.ts, the public copy. **/\ntype CircularPath = (string | number)[];\n\n/** The baked skeleton (see the module comment), kept loose on purpose: the pure-fn extractor casts annotations away, so nothing is enforced. **/\ntype CircularSkeleton = {c: number[]; e: {p: unknown[][]; t: number}[][]};\n\n/** Returns the path to the first reference cycle, or null when acyclic; called inline from the armed guarded factory bodies. **/\nexport type FindCycleFn = (value: unknown, skeleton: CircularSkeleton) => CircularPath | null;\n\n/** Allocated fresh per call, NEVER closure-shared: reading `val[key]` can run user code (getter / Proxy trap) that re-enters another armed factory mid-walk. **/\n// Shared state would let that inner call clobber the outer walk (missed cycle → the real validator body recurses forever), and would pin the last walked graph from GC.\n// `c`/`e` mirror the skeleton; `stack` is the descent stack, `path` the access trail, `safe` the per-node acyclic memo.\ntype CircularWalkState = {\n c: number[];\n e: CircularSkeleton['e'];\n stack: unknown[];\n path: CircularPath;\n safe: Set<unknown>[];\n};\n\nexport const findCycle = registerPureFnFactory(function () {\n // The `nav` / `dfs` closures are created ONCE at materialisation, but ALL mutable state rides the per-call `st`, so\n // invocations are fully isolated and the walked graph is GC-able the moment findCycle returns.\n\n // Follow one edge path from `val`, branching at iteration segments, then descend into the reached value as tracked node `toNode`.\n const nav = (val: unknown, segs: unknown[][], si: number, toNode: number, st: CircularWalkState): boolean => {\n if (si === segs.length) return dfs(val, toNode, st);\n const seg = segs[si];\n const kind = seg[0];\n if (kind === 'k') {\n const child = val === null || typeof val !== 'object' ? undefined : (val as any)[seg[1] as any];\n if (child === undefined || child === null) return false;\n st.path.push(seg[1] as string | number);\n const hit = nav(child, segs, si + 1, toNode, st);\n if (hit) return true;\n st.path.pop();\n return false;\n }\n if (kind === 'a') {\n if (!Array.isArray(val)) return false;\n for (let i = 0; i < val.length; i++) {\n const el = val[i];\n if (el === undefined || el === null) continue;\n st.path.push(i);\n if (nav(el, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n return false;\n }\n if (kind === 'i') {\n if (val === null || typeof val !== 'object') return false;\n for (const key of Object.keys(val as object)) {\n const pv = (val as any)[key];\n if (pv === undefined || pv === null) continue;\n st.path.push(key);\n if (nav(pv, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n return false;\n }\n if (kind === 's') {\n if (!(val instanceof Set)) return false;\n let index = 0;\n for (const el of val) {\n if (el !== undefined && el !== null) {\n st.path.push(index);\n if (nav(el, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n index++;\n }\n return false;\n }\n if (kind === 'mk' || kind === 'mv') {\n if (!(val instanceof Map)) return false;\n let index = 0;\n for (const entry of val) {\n const member = kind === 'mk' ? entry[0] : entry[1];\n if (member !== undefined && member !== null) {\n st.path.push((kind === 'mk' ? 'mapKey[' : 'mapValue[') + index + ']');\n if (nav(member, segs, si + 1, toNode, st)) return true;\n st.path.pop();\n }\n index++;\n }\n return false;\n }\n return false;\n };\n\n // Non-tracked nodes (the root, when its own type isn't circular) are traversed without stacking.\n const dfs = (val: unknown, node: number, st: CircularWalkState): boolean => {\n if (val === null || typeof val !== 'object') return false;\n // Sound to skip: a cycle THROUGH `val` is caught during `val`'s own descent, so an acyclic subtree is path-independent.\n const known = st.safe[node];\n if (known !== undefined && known.has(val)) return false;\n const isTracked = !!st.c[node];\n if (isTracked) {\n if (st.stack.indexOf(val) !== -1) return true;\n st.stack.push(val);\n }\n const outgoing = st.e[node];\n for (let i = 0; i < outgoing.length; i++) {\n if (nav(val, outgoing[i].p, 0, outgoing[i].t, st)) return true;\n }\n // LIFO: this frame pushed `val` on entry, so pop removes exactly it.\n if (isTracked) st.stack.pop();\n // Clean subtree → memoize so a shared / DAG re-arrival skips it.\n let bucket = st.safe[node];\n if (bucket === undefined) {\n bucket = new Set();\n st.safe[node] = bucket;\n }\n bucket.add(val);\n return false;\n };\n\n return function findCycle(value: unknown, skeleton: CircularSkeleton): CircularPath | null {\n if (value === null || typeof value !== 'object' || !skeleton) return null;\n const st: CircularWalkState = {c: skeleton.c, e: skeleton.e, stack: [], path: [], safe: []};\n return dfs(value, 0, st) ? st.path.slice() : null;\n };\n}, findCycleId);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"circular.js","sourceRoot":"","sources":["../../src/runtypes/circular.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,CAAe;IAC5B,YAAY,IAAkB;QAC5B,KAAK,CAAC,kCAAkC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAGD,MAAM,UAAU,kBAAkB,CAAC,IAAkB;IACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC;;YAClD,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"circular.js","sourceRoot":"","sources":["../../src/runtypes/circular.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,CAAe;IAC5B,YAAY,IAAkB;QAC5B,KAAK,CAAC,kCAAkC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAGD,MAAM,UAAU,kBAAkB,CAAC,IAAkB;IACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC;;YAClD,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["// Circular-reference support for the live-object families (validate / getValidationErrors / jsonEncode).\n// The guard itself is a COMPILE-TIME option (`{rejectCircularRefs: true}`) baked into the armed factory body by the Go emitter,\n// which walks the value via the `findCycle` pure fn (see circular-pure-fns.ts) and applies the family's reaction.\n// This module keeps only the always-static pieces: the error class the encoders throw, the path formatter, and the CircularPath type.\n\n/** Path to a detected cycle: object keys and array/tuple indices, plus `mapKey[i]`/`mapValue[i]` labels for keyed collections. **/\nexport type CircularPath = (string | number)[];\n\n/** Thrown by the encoder families when the input value contains a reference cycle and the guard is armed. **/\n// `validate` returns `false` and `getValidationErrors` pushes a `{expected: 'circular'}` entry instead: the reaction is baked into each armed factory body.\nexport class CircularReferenceError extends Error {\n readonly path: CircularPath;\n constructor(path: CircularPath) {\n super(`Circular reference detected at ${formatCircularPath(path)}`);\n this.name = 'CircularReferenceError';\n this.path = path;\n }\n}\n\n/** Renders a CircularPath to a dotted/bracketed string for error messages. **/\nexport function formatCircularPath(path: CircularPath): string {\n if (path.length === 0) return '<root>';\n let out = '';\n for (const segment of path) {\n if (typeof segment === 'number') out += `[${segment}]`;\n else out += out ? `.${segment}` : segment;\n }\n return out;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"classSerializerRegistry.js","sourceRoot":"","sources":["../../src/runtypes/classSerializerRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classSerializerRegistry.js","sourceRoot":"","sources":["../../src/runtypes/classSerializerRegistry.ts"],"names":[],"mappings":"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","sourcesContent":["/* ########\n * 2024 ma-jerez\n * Author: Ma-jerez\n * License: MIT, see LICENSE\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\n// Custom (de)serializer registry for user-defined classes (KindClass + SubKindNone): the JSON (pj / pjs / rj /\n// sj) families look an entry up by the class's structural type id plus its build-time class\n// name and route reconstruction, and optionally serialization, through it; with nothing registered they fall\n// back to the structural shape, which is the right answer for a class that is pure data. The registry exists\n// because a class instance is NOT pure data — its prototype is behaviour and its constructor runs arbitrary\n// logic — so the wire carries only the DATA PROJECTION and rebuilding a live object is a code problem the build\n// tool cannot solve: the app hands over the class and, when a bare `new Cls()` plus a property copy is not safe,\n// a `deserialize`. The `csr` marker keeps a registration demanding ONE tiny name-card entry instead of the\n// class's whole reflection graph. Builtins (Date / Map / Set / nonSerializable) are NOT routed here and are not\n// overridable, and validate / getValidationErrors always use the class's structural shape.\n\nimport type {DataOnly} from './dataOnly.ts';\nimport type {InjectTypeFnArgs} from '../markers.ts';\nimport {isEntryTuple, initFromTuple, entryTupleKey, FN_HASH_LEN, type EntryTuple} from './entryTuple.ts';\nimport {getRTUtils, getRTFnCaches} from './rtUtils.ts';\n\nexport interface AnyClass<T = any> {\n new (...args: any[]): T;\n}\n\n/** A class with a ZERO-ARG constructor: safe to rebuild with `new cls()` plus a property copy, so\n * `deserialize` is optional. */\nexport interface SerializableClass<T = any> {\n new (): T;\n}\n\n/** The decode contract: given the data-only projection a structural decode produced, return a live instance. */\nexport type DeserializeClassFn<C> = (deserialized: DataOnly<C>) => C;\n\n/** Custom (de)serializer pair for one user-defined class. Both halves are optional; the overloads on\n * `registerClassSerializer` make `deserialize` mandatory for a class whose constructor takes args. */\nexport interface ClassSerializerHandler<T> {\n /** Omit to serialize structurally, like any interface. When provided, the user owns the wire shape (on the\n * JSON path, keep it to the declared object properties). */\n serialize?: (instance: T) => unknown;\n /** Optional for a zero-arg class (default: `new cls()` with the declared properties set from `data`).\n * Receives the data-only projection a structural decode produced and returns a real instance. */\n deserialize?: (data: DataOnly<T>) => T;\n}\n\n/** A stored registry entry; emitted factory bodies read `.serialize` / `.deserialize` / `.cls` off it. */\nexport interface ClassSerializerEntry<T = any> {\n /** Used to instantiate on the auto-instantiate path, and as the `v instanceof cls` check in a union. */\n cls: AnyClass<T>;\n serialize?: (instance: T) => unknown;\n deserialize?: (data: DataOnly<T>) => T;\n}\n\n// `classSerializers` is the exact-instantiation-id lane; `classSerializersByName` the class-name fallback lane\n// (a Set per name: exactly one entry → routable, two or more distinct classes → ambiguous, lane disabled for\n// that name). `classStates` holds ONE entry object per class, shared by every key it was registered under, so\n// re-registering any instantiation updates the handlers everywhere at once and never evicts coverage; it also\n// backs `unregisterClassSerializer(cls)` and registration introspection without the id re-injected.\ninterface ClassRegistryState {\n entry: ClassSerializerEntry;\n keys: Set<string>;\n name?: string;\n}\nconst classSerializers = new Map<string, ClassSerializerEntry>();\nconst classSerializersByName = new Map<string, Set<ClassSerializerEntry>>();\nconst classStates = new Map<AnyClass, ClassRegistryState>();\nconst warnedAmbiguousNames = new Set<string>();\n\n// Monotonic epoch bumped on every registry mutation. Emitted factory bodies cache their `getClassSerializer`\n// result in the closure and re-look-it-up only when the epoch moves, so the hot path is one int compare instead\n// of a Map lookup, while register / unregister / clear still take effect immediately.\nlet epoch = 0;\n\n/** Emitted decode/encode bodies read this via `utl.csEpoch()` to tell whether their cached lookup is stale. */\nexport function classSerializerEpoch(): number {\n return epoch;\n}\n\n// The resolved registration identity: the structural TYPE id (the registry key the emitted codecs look up) plus,\n// when the plugin injected the csr name-card tuple, that entry's full cache key (the name source).\ninterface ClassSerializerIdentity {\n typeId: string;\n entryKey?: string;\n}\n\n// Extract the registration identity from the injected trailing `id` slot: the plugin injects the `csr` name-card\n// tuple (key `<csrHash>_<typeId>`), a wrapper or manual call may pass the bare type-id string, and a legacy\n// reflection tuple carries the bare type id as its key — cache keys are alphanumeric with exactly one `_` in fn\n// keys, so the underscore split is unambiguous. Without a plugin there is no id to key on, and the emitted\n// codecs could never match the registration anyway, so it throws.\nfunction classSerializerIdentity(\n id: InjectTypeFnArgs<unknown, 'classSerializerReg'> | undefined,\n cls: AnyClass\n): ClassSerializerIdentity {\n if (isEntryTuple(id)) {\n initFromTuple(id as unknown as EntryTuple);\n const key = entryTupleKey(id as unknown as EntryTuple);\n const separator = key.indexOf('_');\n if (separator === FN_HASH_LEN) return {typeId: key.slice(FN_HASH_LEN + 1), entryKey: key};\n return {typeId: key};\n }\n if (typeof id === 'string' && id.length > 0) return {typeId: id};\n throw new Error(\n `[mion] registerClassSerializer(${cls.name || '<anonymous>'}): no type id injected. ` +\n `The @mionjs/devtools plugin must process the registration file so the class's ` +\n `type id can be injected (the registry is keyed by type id + class name).`\n );\n}\n\n// Resolve the class's SOURCE name for the name-fallback lane. The injected csr name card carries the build-time\n// class name in its `typeName` slot — minification-proof, and identical to the literal the emitter bakes into\n// `utl.getClassSerializer('<id>', '<className>')`. A legacy reflection tuple has no card, so its reflected node\n// supplies the same string; the manual bare-string-id path has neither and falls back to runtime `cls.name`\n// (documented: not minification-safe).\nfunction classSerializerName(identity: ClassSerializerIdentity, cls: AnyClass): string | undefined {\n if (identity.entryKey !== undefined) {\n // Raw cache read, not getRT: the name rides the entry's typeName slot, so the card's fn never materializes.\n const typeName = getRTFnCaches().rtFnsCache[identity.entryKey]?.typeName;\n if (typeof typeName === 'string' && typeName.length > 0) return typeName;\n }\n const node = getRTUtils().getRunType(identity.typeId);\n const typeName = node?.typeName;\n if (typeof typeName === 'string' && typeName.length > 0) return typeName;\n return cls.name || undefined;\n}\n\n// Add an entry to the name lane. Two DIFFERENT classes under one name make the name ambiguous — warn once and\n// leave both in the set; lookups route only when the set has exactly one entry, exact-id matches keep working.\nfunction indexByName(name: string, entry: ClassSerializerEntry): void {\n let entries = classSerializersByName.get(name);\n if (!entries) {\n entries = new Set();\n classSerializersByName.set(name, entries);\n }\n entries.add(entry);\n if (entries.size > 1 && !warnedAmbiguousNames.has(name)) {\n warnedAmbiguousNames.add(name);\n console.warn(\n `[mion] registerClassSerializer: ${entries.size} different classes named \"${name}\" are registered. ` +\n `The class-name fallback is disabled for \"${name}\" — only exact-instantiation matches will use the registry ` +\n `(other generic instantiations of these classes fall back to structural decode).`\n );\n }\n}\n\n// Zero-arg constructor: everything optional.\nexport function registerClassSerializer<T>(\n cls: SerializableClass<T>,\n handler?: ClassSerializerHandler<T>,\n id?: InjectTypeFnArgs<T, 'classSerializerReg'>\n): void;\n// Non-empty constructor: `deserialize` is REQUIRED (auto `new cls()` is unavailable).\nexport function registerClassSerializer<T>(\n cls: AnyClass<T>,\n handler: ClassSerializerHandler<T> & {deserialize: (data: DataOnly<T>) => T},\n id?: InjectTypeFnArgs<T, 'classSerializerReg'>\n): void;\n/** Register a custom (de)serializer for a user-defined class. Pass the class itself, no type argument needed:\n *\n * registerClassSerializer(WireError, {deserialize: (data) => new WireError(…)});\n *\n * Whichever instantiation the compiler infers for the injected `id` is incidental: one registration covers\n * EVERY instantiation of a generic class (generics are erased at runtime — same class object) through the\n * class-name fallback lane. Re-registering the same class updates the handlers everywhere and never drops\n * previously covered keys. */\nexport function registerClassSerializer<T>(\n cls: AnyClass<T>,\n handler?: ClassSerializerHandler<T>,\n id?: InjectTypeFnArgs<T, 'classSerializerReg'>\n): void {\n if (typeof cls !== 'function') throw new Error('registerClassSerializer: cls must be a class constructor');\n const identity = classSerializerIdentity(id, cls);\n let state = classStates.get(cls);\n if (!state) {\n state = {entry: {cls}, keys: new Set()};\n classStates.set(cls, state);\n }\n // One shared entry object per class: id lane and name lane point at it, so\n // the LAST registration's handlers win for every key at once.\n state.entry.serialize = handler?.serialize as ((instance: any) => unknown) | undefined;\n state.entry.deserialize = handler?.deserialize as ((data: any) => any) | undefined;\n state.keys.add(identity.typeId);\n classSerializers.set(identity.typeId, state.entry);\n const name = classSerializerName(identity, cls);\n if (name && state.name === undefined) {\n state.name = name;\n indexByName(name, state.entry);\n }\n epoch++;\n}\n\n/** Internal lookup used by emitted factory bodies via `utl.getClassSerializer(<typeId>, <className>)`: exact\n * instantiation id first, otherwise the class-name fallback lane (a registration made under ANY instantiation\n * covers the rest, unless two different classes share the name, which disables it). Undefined when neither lane\n * matches, so the factory uses the structural fallback. Bodies emitted before the name lane existed pass no\n * className and keep the exact-id behavior. */\nexport function getClassSerializer(typeId: string, className?: string): ClassSerializerEntry | undefined {\n const exact = classSerializers.get(typeId);\n if (exact) return exact;\n if (!className) return undefined;\n const entries = classSerializersByName.get(className);\n if (!entries || entries.size !== 1) return undefined;\n return entries.values().next().value;\n}\n\n/** Test / introspection helper: is a serializer registered for this class? */\nexport function isClassSerializerRegistered(cls: AnyClass): boolean {\n return classStates.has(cls);\n}\n\n/** Reconstruct a live instance from decoded data, called by emitted decode bodies via\n * `utl.deserializeClass(cs, data, keys)` where `keys` is the class's declared property names. Prefers the\n * registered `deserialize`; otherwise auto-instantiates a zero-arg class and sets those declared properties.\n * The rebuild is driven by the type, never by the keys on the wire, so an undeclared key (an own `__proto__`\n * included) never touches the instance. Surfaces data-class-constructor-failed when the bare `new cls()` throws. */\nexport function deserializeClass<T>(entry: ClassSerializerEntry<T>, data: DataOnly<T>, keys: readonly string[]): T {\n if (entry.deserialize) return entry.deserialize(data);\n let instance: object;\n try {\n instance = new entry.cls() as object;\n } catch (err) {\n const original = err instanceof Error ? err.message : String(err);\n const name = entry.cls.name || '<anonymous>';\n throw new Error(\n `[data-class-constructor-failed] Cannot reconstruct class \"${name}\": the automatic \\`new ${name}()\\` failed, ` +\n `so its constructor needs arguments. Register a \\`deserialize\\` handler: ` +\n `registerClassSerializer(${name}, {deserialize: (data) => new ${name}(/* … */)}). ` +\n `Original error: ${original}`\n );\n }\n const source = data as Record<string, unknown>;\n const target = instance as Record<string, unknown>;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = source[key];\n if (value !== undefined) target[key] = value;\n }\n return instance as T;\n}\n\n/** Remove a single registered serializer by class reference (test isolation helper). Drops every id key the\n * class was registered under and its name-lane entry, so a formerly ambiguous name becomes routable again when\n * exactly one class remains. No injected id needed. */\nexport function unregisterClassSerializer(cls: AnyClass): void {\n const state = classStates.get(cls);\n if (!state) return;\n for (const key of state.keys) classSerializers.delete(key);\n if (state.name !== undefined) {\n const entries = classSerializersByName.get(state.name);\n entries?.delete(state.entry);\n if (entries && entries.size === 0) classSerializersByName.delete(state.name);\n }\n classStates.delete(cls);\n epoch++;\n}\n\n/** Clear the whole registry (test isolation helper). */\nexport function clearClassSerializers(): void {\n classSerializers.clear();\n classSerializersByName.clear();\n classStates.clear();\n warnedAmbiguousNames.clear();\n epoch++;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dataOnly.js","sourceRoot":"","sources":["../../src/runtypes/dataOnly.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"dataOnly.js","sourceRoot":"","sources":["../../src/runtypes/dataOnly.ts"],"names":[],"mappings":"","sourcesContent":["import type {__rtFormatName, __rtContains, __rtPatternProps, __rtPropNames} from './sentinelKeys.ts';\n\n/* ########\n * 2024 ma-jerez\n * Author: Ma-jerez\n * License: MIT, see LICENSE\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\n/** `DataOnly<T>` is the data-only projection of a type: the exact shape the AOT validator / serialiser produces,\n * and the natural return shape for data-bound APIs. Two things to know before editing. The serializer's runtime\n * enumerability guard (which may omit a property a value carries non-enumerably) applies ONLY to properties\n * already OPTIONAL in `T` — a global's member is guarded only when it is `?` (`Error['stack']`), and the\n * `@nonEnumerable` tag takes effect only on an optional member — so a guarded property is always one the type\n * permits to be absent and `DataOnly<T>` never over-promises it; a `@nonEnumerable` tag on a REQUIRED property\n * is a no-op the `data-non-enumerable-required` lint rule flags. And the `#region dataonly-extract` block below is sliced VERBATIM into\n * `test/types/dataonly.compile.test.ts` and compiled by the real TypeScript compiler, so the region must stay\n * self-contained: `lib` types plus its own declarations only. **/\n\n// #region dataonly-extract — DataOnly machinery; sliced verbatim between these\n// markers by test/types/dataonlyHarness.ts to build the per-branch budget test.\n\n/** Read off `globalThis` so this module never names `URL`; `never` without `dom` / `@types/node`, so it drops out. **/\ntype DataOnlyUrl = typeof globalThis extends {URL: {prototype: infer I}} ? I : never;\n\n/** Kept classes this module cannot NAME without forcing their lib on every consumer; one row each, `never` when absent.\n * `URL` is built in; the `@mionjs/run-types/formats/temporal` subpath adds the 8 TC39 `Temporal` types. **/\nexport interface DataOnlyNativeExtra {\n url: DataOnlyUrl;\n}\n\n/** Kept verbatim: validated by IDENTITY, with a data form on the wire (`Map` / `Set` have own branches).\n * Known limit: other platform classes (`Blob`, `Error`) keep their data shape though the emitter skips them.\n * A type cannot see where a class was declared, so the D4 fuzz rule draws none. **/\ntype DataOnlyNative = Date | DataOnlyNativeExtra[keyof DataOnlyNativeExtra];\n\n/** Kinds the AOT validator treats as NON-DATA and strips: `symbol` (runtime identity, not round-trippable),\n * `RegExp` (a pattern is code), any callable / constructable value, `Promise` / thenables (validate validates\n * inbound public-API DATA, which never carries promises), and the non-serialisable built-ins — `ArrayBuffer` /\n * `SharedArrayBuffer` / `DataView` and every typed array, which are `SubKindNonSerializable` in the Go emitter,\n * i.e. unsupported for EVERY family: dropped at a property, `alwaysThrow` at root, exactly the `never`\n * semantics. `WeakMap` / `WeakSet` are intentionally absent — a real `Map` / `Set` is structurally assignable\n * to them, so listing them would wrongly strip `Map` / `Set`. At a PROPERTY slot these drop silently; at a\n * PROPAGATING slot (root, array element, tuple slot, union member) they collapse the projection to `never`, so\n * the single rule \"a value that projects to `never` is dropped\" subsumes symbol-keyed and method members alike.\n * The `never[]` parameter positions disable variance so EVERY function and constructor shape is matched. **/\ntype DataOnlyStripped =\n | symbol\n // A RegExp value never rides the wire: the only regex a validator runs is a build-time `pattern` format. The\n // emitter drops a RegExp property like a function-valued one, and fails the build at a root position.\n | RegExp\n | ((...args: never[]) => unknown)\n | (abstract new (...args: never[]) => unknown)\n // Thenables, detected STRUCTURALLY rather than as `Promise<any>`: the latter's `T`-in-`then` contravariance\n // means `Promise<string> extends Promise<any>` does not hold, so it would miss. `never[]` keeps it\n // variance-free, matching every Promise.\n | {then: (...args: never[]) => unknown}\n // Non-serialisable built-ins: the binary buffers plus `ArrayBufferView` — the one lib type every typed array\n // AND `DataView` extend — so all 12 collapse to a single cheap check instead of a 12-arm union.\n | ArrayBuffer\n | SharedArrayBuffer\n | ArrayBufferView;\n\n/** Recursion-budget decrement: `_DataOnlyDepth[N]` is `N - 1`, and `[0]` is never reached (the `Depth extends 0`\n * guard stops first). Bounding the recursion is what lets circular / mutually recursive types resolve to a\n * finite instantiation instead of tripping the TS2589 depth cap. **/\ntype _DataOnlyDepth = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8];\n\n/** Unlisted classes keep their data shape; no lib.dom dependency (AGENTS.md validate contract). **/\n// Homomorphic maps preserve tuple modifiers without infer; non-data roots are never here but throw in the emitter.\nexport type DataOnly<T, Depth extends number = 8> = Depth extends 0\n ? T // budget exhausted — keep the remaining sub-tree as-is (best effort)\n : unknown extends T\n ? T // any / unknown — keep the broad kinds\n : T extends DataOnlyStripped\n ? never // symbol / fn / ctor / thenable — strip\n : T extends string | number | boolean | bigint | null | undefined | DataOnlyNative\n ? T // primitive / native (+ Temporal) — keep verbatim\n : DataOnlySentinelKept<T> extends true\n ? T // sentinel-branded container (format brand / child-schema slot) — keep verbatim, exactly like a branded primitive: mapping over the intersection would mangle the brand (and hand the checker an array-like with no reference target)\n : DataOnlyLadder<T, Depth>;\n// Sentinel detection must survive a string INDEX SIGNATURE base: a record's keyof absorbs the literal sentinel\n// keys, and indexing a record at any key returns the value type, so each probe filters on the sentinel's VALUE\n// SHAPE instead. A record whose declared value type happens to match a filter is kept verbatim — harmless,\n// those value shapes are inherently clean data.\ntype DataOnlySentinelKeys = typeof __rtFormatName | typeof __rtContains | typeof __rtPatternProps | typeof __rtPropNames;\n// The common path (every plain object / array / tuple) pays ONE Extract + ONE index-signature check: a literal\n// sentinel key in keyof T is definitive (the __rt namespace is reserved), and only a string-index base — whose\n// keyof ABSORBS the literal keys — needs the per-sentinel shape probes.\ntype DataOnlySentinelKept<T> =\n Extract<keyof T, DataOnlySentinelKeys> extends never ? (string extends keyof T ? DataOnlyRecordSentinelKept<T> : false) : true;\ntype DataOnlySentinelProbe<X, Shape> = [X] extends [never] ? false : X extends Shape ? true : false;\ntype DataOnlyProperStringLiteral<X> = [X] extends [never] ? false : string extends X ? false : X extends string ? true : false;\n// Indexing a record at any key returns the VALUE type, so each probe filters on the sentinel's value shape;\n// false positives are limited to inherently-clean value shapes.\ntype DataOnlyRecordSentinelKept<T> = true extends\n | DataOnlyProperStringLiteral<NonNullable<T[typeof __rtFormatName & keyof T]>>\n | DataOnlySentinelProbe<NonNullable<T[typeof __rtPatternProps & keyof T]>, Record<string, {rt$value: unknown}>>\n | DataOnlySentinelProbe<NonNullable<T[typeof __rtPropNames & keyof T]>, string>\n ? true\n : false;\ntype DataOnlyLadder<T, Depth extends number> =\n // Map / Set keep the COLLECTION but PROJECT keys & values, so a value's methods / Promises / non-data members\n // are gone. SEPARATE non-`infer` gates for `ReadonlyMap` and `ReadonlySet`: the cheap `<any, any>` check\n // filters out non-collections, and a Set never pays a wasted `ReadonlyMap` infer (nor a Map a `ReadonlySet`\n // one). The inner `Map` / `Set` test preserves the mutable-vs-readonly variant.\n T extends ReadonlyMap<any, any>\n ? T extends ReadonlyMap<infer K, infer V>\n ? T extends Map<any, any>\n ? Map<DataOnly<K, _DataOnlyDepth[Depth]>, DataOnly<V, _DataOnlyDepth[Depth]>>\n : ReadonlyMap<DataOnly<K, _DataOnlyDepth[Depth]>, DataOnly<V, _DataOnlyDepth[Depth]>>\n : never // unreachable — gate guarantees a Map\n : T extends ReadonlySet<any>\n ? T extends ReadonlySet<infer U>\n ? T extends Set<any>\n ? Set<DataOnly<U, _DataOnlyDepth[Depth]>>\n : ReadonlySet<DataOnly<U, _DataOnlyDepth[Depth]>>\n : never // unreachable — gate guarantees a Set\n : T extends readonly unknown[]\n ? {-readonly [K in keyof T]: DataOnly<T[K], _DataOnlyDepth[Depth]>} // array + tuple\n : T extends object\n ? [keyof T] extends [never]\n ? T // broad `object` / `{}`, kept as the emitter accepts it; `object extends T` also matches an all-optional type\n : {\n // Drop symbol keys, `__proto__` (writing it swaps the prototype) and never-valued props, methods included\n [K in keyof T as K extends symbol | '__proto__'\n ? never\n : [DataOnly<T[K], _DataOnlyDepth[Depth]>] extends [undefined]\n ? [DataOnly<T[K], _DataOnlyDepth[Depth]>] extends [never]\n ? never\n : DataOnlyOptionalStripped<T, K> extends true\n ? never\n : K\n : K]: DataOnly<T[K], _DataOnlyDepth[Depth]>;\n }\n : T;\n// Drops an optional member projecting to just `undefined` (`{p?: Promise<1>}`), as the emitter does.\n// Stay: a written `undefined`, an index key, a required `X | undefined` (the emitter keeps its `undefined` too).\ntype DataOnlyOptionalStripped<T, K extends keyof T> = [T[K]] extends [undefined]\n ? false\n : // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- an index key (string, number, template) is never optional\n {} extends Record<K, never>\n ? false\n : // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- `{}` is the standard optional-key probe\n {} extends Pick<T, K>\n ? true\n : false;\n// #endregion dataonly-extract\n"]}