@mionjs/run-types 0.8.0-alpha.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 (430) hide show
  1. package/.dist/cjs/index.cjs +209 -0
  2. package/.dist/cjs/index.cjs.map +1 -0
  3. package/.dist/cjs/index.d.ts +60 -0
  4. package/.dist/cjs/package.json +1 -0
  5. package/.dist/cjs/src/constants.cjs +79 -0
  6. package/.dist/cjs/src/constants.cjs.map +1 -0
  7. package/.dist/cjs/src/constants.d.ts +7 -0
  8. package/.dist/cjs/src/constants.functions.cjs +181 -0
  9. package/.dist/cjs/src/constants.functions.cjs.map +1 -0
  10. package/.dist/cjs/src/constants.functions.d.ts +385 -0
  11. package/.dist/cjs/src/constants.kind.cjs +74 -0
  12. package/.dist/cjs/src/constants.kind.cjs.map +1 -0
  13. package/.dist/cjs/src/constants.kind.d.ts +21 -0
  14. package/.dist/cjs/src/createRunType.cjs +284 -0
  15. package/.dist/cjs/src/createRunType.cjs.map +1 -0
  16. package/.dist/cjs/src/createRunType.d.ts +5 -0
  17. package/.dist/cjs/src/createRunTypeFunctions.cjs +78 -0
  18. package/.dist/cjs/src/createRunTypeFunctions.cjs.map +1 -0
  19. package/.dist/cjs/src/createRunTypeFunctions.d.ts +12 -0
  20. package/.dist/cjs/src/formats.runtype.cjs +7 -0
  21. package/.dist/cjs/src/formats.runtype.cjs.map +1 -0
  22. package/.dist/cjs/src/formats.runtype.d.ts +6 -0
  23. package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.cjs +109 -0
  24. package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.cjs.map +1 -0
  25. package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +30 -0
  26. package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs +383 -0
  27. package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs.map +1 -0
  28. package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts +7 -0
  29. package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs +338 -0
  30. package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs.map +1 -0
  31. package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts +7 -0
  32. package/.dist/cjs/src/jitCompilers/equalsHelpers.cjs +37 -0
  33. package/.dist/cjs/src/jitCompilers/equalsHelpers.cjs.map +1 -0
  34. package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts +4 -0
  35. package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.cjs +56 -0
  36. package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.cjs.map +1 -0
  37. package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +27 -0
  38. package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs +399 -0
  39. package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs.map +1 -0
  40. package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts +10 -0
  41. package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.cjs +51 -0
  42. package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.cjs.map +1 -0
  43. package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +27 -0
  44. package/.dist/cjs/src/jitCompilers/json/toJsCode.cjs +123 -0
  45. package/.dist/cjs/src/jitCompilers/json/toJsCode.cjs.map +1 -0
  46. package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts +5 -0
  47. package/.dist/cjs/src/lib/baseRunTypeFormat.cjs +200 -0
  48. package/.dist/cjs/src/lib/baseRunTypeFormat.cjs.map +1 -0
  49. package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts +50 -0
  50. package/.dist/cjs/src/lib/baseRunTypes.cjs +308 -0
  51. package/.dist/cjs/src/lib/baseRunTypes.cjs.map +1 -0
  52. package/.dist/cjs/src/lib/baseRunTypes.d.ts +75 -0
  53. package/.dist/cjs/src/lib/createJitFunction.cjs +60 -0
  54. package/.dist/cjs/src/lib/createJitFunction.cjs.map +1 -0
  55. package/.dist/cjs/src/lib/createJitFunction.d.ts +5 -0
  56. package/.dist/cjs/src/lib/dkProxy.cjs +23 -0
  57. package/.dist/cjs/src/lib/dkProxy.cjs.map +1 -0
  58. package/.dist/cjs/src/lib/dkProxy.d.ts +4 -0
  59. package/.dist/cjs/src/lib/formats.cjs +89 -0
  60. package/.dist/cjs/src/lib/formats.cjs.map +1 -0
  61. package/.dist/cjs/src/lib/formats.d.ts +18 -0
  62. package/.dist/cjs/src/lib/guards.cjs +243 -0
  63. package/.dist/cjs/src/lib/guards.cjs.map +1 -0
  64. package/.dist/cjs/src/lib/guards.d.ts +120 -0
  65. package/.dist/cjs/src/lib/jitFnCompiler.cjs +648 -0
  66. package/.dist/cjs/src/lib/jitFnCompiler.cjs.map +1 -0
  67. package/.dist/cjs/src/lib/jitFnCompiler.d.ts +109 -0
  68. package/.dist/cjs/src/lib/jitFnsRegistry.cjs +41 -0
  69. package/.dist/cjs/src/lib/jitFnsRegistry.cjs.map +1 -0
  70. package/.dist/cjs/src/lib/jitFnsRegistry.d.ts +6 -0
  71. package/.dist/cjs/src/lib/typeId.cjs +205 -0
  72. package/.dist/cjs/src/lib/typeId.cjs.map +1 -0
  73. package/.dist/cjs/src/lib/typeId.d.ts +6 -0
  74. package/.dist/cjs/src/lib/utils.cjs +325 -0
  75. package/.dist/cjs/src/lib/utils.cjs.map +1 -0
  76. package/.dist/cjs/src/lib/utils.d.ts +32 -0
  77. package/.dist/cjs/src/mocking/constants.mock.cjs +108 -0
  78. package/.dist/cjs/src/mocking/constants.mock.cjs.map +1 -0
  79. package/.dist/cjs/src/mocking/constants.mock.d.ts +85 -0
  80. package/.dist/cjs/src/mocking/mockRegistry.cjs +12 -0
  81. package/.dist/cjs/src/mocking/mockRegistry.cjs.map +1 -0
  82. package/.dist/cjs/src/mocking/mockRegistry.d.ts +3 -0
  83. package/.dist/cjs/src/mocking/mockType.cjs +310 -0
  84. package/.dist/cjs/src/mocking/mockType.cjs.map +1 -0
  85. package/.dist/cjs/src/mocking/mockType.d.ts +3 -0
  86. package/.dist/cjs/src/mocking/mockUtils.cjs +62 -0
  87. package/.dist/cjs/src/mocking/mockUtils.cjs.map +1 -0
  88. package/.dist/cjs/src/mocking/mockUtils.d.ts +15 -0
  89. package/.dist/cjs/src/nodes/atomic/any.cjs +18 -0
  90. package/.dist/cjs/src/nodes/atomic/any.cjs.map +1 -0
  91. package/.dist/cjs/src/nodes/atomic/any.d.ts +8 -0
  92. package/.dist/cjs/src/nodes/atomic/bigInt.cjs +20 -0
  93. package/.dist/cjs/src/nodes/atomic/bigInt.cjs.map +1 -0
  94. package/.dist/cjs/src/nodes/atomic/bigInt.d.ts +10 -0
  95. package/.dist/cjs/src/nodes/atomic/boolean.cjs +20 -0
  96. package/.dist/cjs/src/nodes/atomic/boolean.cjs.map +1 -0
  97. package/.dist/cjs/src/nodes/atomic/boolean.d.ts +10 -0
  98. package/.dist/cjs/src/nodes/atomic/date.cjs +20 -0
  99. package/.dist/cjs/src/nodes/atomic/date.cjs.map +1 -0
  100. package/.dist/cjs/src/nodes/atomic/date.d.ts +10 -0
  101. package/.dist/cjs/src/nodes/atomic/enum.cjs +22 -0
  102. package/.dist/cjs/src/nodes/atomic/enum.cjs.map +1 -0
  103. package/.dist/cjs/src/nodes/atomic/enum.d.ts +8 -0
  104. package/.dist/cjs/src/nodes/atomic/enumMember.cjs +24 -0
  105. package/.dist/cjs/src/nodes/atomic/enumMember.cjs.map +1 -0
  106. package/.dist/cjs/src/nodes/atomic/enumMember.d.ts +10 -0
  107. package/.dist/cjs/src/nodes/atomic/literal.cjs +126 -0
  108. package/.dist/cjs/src/nodes/atomic/literal.cjs.map +1 -0
  109. package/.dist/cjs/src/nodes/atomic/literal.d.ts +20 -0
  110. package/.dist/cjs/src/nodes/atomic/never.cjs +22 -0
  111. package/.dist/cjs/src/nodes/atomic/never.cjs.map +1 -0
  112. package/.dist/cjs/src/nodes/atomic/never.d.ts +10 -0
  113. package/.dist/cjs/src/nodes/atomic/null.cjs +20 -0
  114. package/.dist/cjs/src/nodes/atomic/null.cjs.map +1 -0
  115. package/.dist/cjs/src/nodes/atomic/null.d.ts +10 -0
  116. package/.dist/cjs/src/nodes/atomic/number.cjs +20 -0
  117. package/.dist/cjs/src/nodes/atomic/number.cjs.map +1 -0
  118. package/.dist/cjs/src/nodes/atomic/number.d.ts +10 -0
  119. package/.dist/cjs/src/nodes/atomic/object.cjs +14 -0
  120. package/.dist/cjs/src/nodes/atomic/object.cjs.map +1 -0
  121. package/.dist/cjs/src/nodes/atomic/object.d.ts +8 -0
  122. package/.dist/cjs/src/nodes/atomic/regexp.cjs +23 -0
  123. package/.dist/cjs/src/nodes/atomic/regexp.cjs.map +1 -0
  124. package/.dist/cjs/src/nodes/atomic/regexp.d.ts +10 -0
  125. package/.dist/cjs/src/nodes/atomic/string.cjs +14 -0
  126. package/.dist/cjs/src/nodes/atomic/string.cjs.map +1 -0
  127. package/.dist/cjs/src/nodes/atomic/string.d.ts +8 -0
  128. package/.dist/cjs/src/nodes/atomic/symbol.cjs +26 -0
  129. package/.dist/cjs/src/nodes/atomic/symbol.cjs.map +1 -0
  130. package/.dist/cjs/src/nodes/atomic/symbol.d.ts +11 -0
  131. package/.dist/cjs/src/nodes/atomic/undefined.cjs +17 -0
  132. package/.dist/cjs/src/nodes/atomic/undefined.cjs.map +1 -0
  133. package/.dist/cjs/src/nodes/atomic/undefined.d.ts +9 -0
  134. package/.dist/cjs/src/nodes/atomic/unknown.cjs +8 -0
  135. package/.dist/cjs/src/nodes/atomic/unknown.cjs.map +1 -0
  136. package/.dist/cjs/src/nodes/atomic/unknown.d.ts +3 -0
  137. package/.dist/cjs/src/nodes/atomic/void.cjs +20 -0
  138. package/.dist/cjs/src/nodes/atomic/void.cjs.map +1 -0
  139. package/.dist/cjs/src/nodes/atomic/void.d.ts +10 -0
  140. package/.dist/cjs/src/nodes/collection/class.cjs +38 -0
  141. package/.dist/cjs/src/nodes/collection/class.cjs.map +1 -0
  142. package/.dist/cjs/src/nodes/collection/class.d.ts +9 -0
  143. package/.dist/cjs/src/nodes/collection/functionParams.cjs +33 -0
  144. package/.dist/cjs/src/nodes/collection/functionParams.cjs.map +1 -0
  145. package/.dist/cjs/src/nodes/collection/functionParams.d.ts +9 -0
  146. package/.dist/cjs/src/nodes/collection/interface.cjs +221 -0
  147. package/.dist/cjs/src/nodes/collection/interface.cjs.map +1 -0
  148. package/.dist/cjs/src/nodes/collection/interface.d.ts +43 -0
  149. package/.dist/cjs/src/nodes/collection/intersection.cjs +21 -0
  150. package/.dist/cjs/src/nodes/collection/intersection.cjs.map +1 -0
  151. package/.dist/cjs/src/nodes/collection/intersection.d.ts +9 -0
  152. package/.dist/cjs/src/nodes/collection/tuple.cjs +74 -0
  153. package/.dist/cjs/src/nodes/collection/tuple.cjs.map +1 -0
  154. package/.dist/cjs/src/nodes/collection/tuple.d.ts +18 -0
  155. package/.dist/cjs/src/nodes/collection/union.cjs +162 -0
  156. package/.dist/cjs/src/nodes/collection/union.cjs.map +1 -0
  157. package/.dist/cjs/src/nodes/collection/union.d.ts +19 -0
  158. package/.dist/cjs/src/nodes/collection/unionDiscriminator.cjs +198 -0
  159. package/.dist/cjs/src/nodes/collection/unionDiscriminator.cjs.map +1 -0
  160. package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts +21 -0
  161. package/.dist/cjs/src/nodes/function/function.cjs +155 -0
  162. package/.dist/cjs/src/nodes/function/function.cjs.map +1 -0
  163. package/.dist/cjs/src/nodes/function/function.d.ts +33 -0
  164. package/.dist/cjs/src/nodes/member/array.cjs +154 -0
  165. package/.dist/cjs/src/nodes/member/array.cjs.map +1 -0
  166. package/.dist/cjs/src/nodes/member/array.d.ts +24 -0
  167. package/.dist/cjs/src/nodes/member/callSignature.cjs +40 -0
  168. package/.dist/cjs/src/nodes/member/callSignature.cjs.map +1 -0
  169. package/.dist/cjs/src/nodes/member/callSignature.d.ts +11 -0
  170. package/.dist/cjs/src/nodes/member/genericMember.cjs +68 -0
  171. package/.dist/cjs/src/nodes/member/genericMember.cjs.map +1 -0
  172. package/.dist/cjs/src/nodes/member/genericMember.d.ts +15 -0
  173. package/.dist/cjs/src/nodes/member/indexProperty.cjs +130 -0
  174. package/.dist/cjs/src/nodes/member/indexProperty.cjs.map +1 -0
  175. package/.dist/cjs/src/nodes/member/indexProperty.d.ts +21 -0
  176. package/.dist/cjs/src/nodes/member/method.cjs +41 -0
  177. package/.dist/cjs/src/nodes/member/method.cjs.map +1 -0
  178. package/.dist/cjs/src/nodes/member/method.d.ts +11 -0
  179. package/.dist/cjs/src/nodes/member/methodSignature.cjs +44 -0
  180. package/.dist/cjs/src/nodes/member/methodSignature.cjs.map +1 -0
  181. package/.dist/cjs/src/nodes/member/methodSignature.d.ts +12 -0
  182. package/.dist/cjs/src/nodes/member/param.cjs +17 -0
  183. package/.dist/cjs/src/nodes/member/param.cjs.map +1 -0
  184. package/.dist/cjs/src/nodes/member/param.d.ts +8 -0
  185. package/.dist/cjs/src/nodes/member/property.cjs +85 -0
  186. package/.dist/cjs/src/nodes/member/property.cjs.map +1 -0
  187. package/.dist/cjs/src/nodes/member/property.d.ts +19 -0
  188. package/.dist/cjs/src/nodes/member/restParams.cjs +15 -0
  189. package/.dist/cjs/src/nodes/member/restParams.cjs.map +1 -0
  190. package/.dist/cjs/src/nodes/member/restParams.d.ts +7 -0
  191. package/.dist/cjs/src/nodes/member/tupleMember.cjs +93 -0
  192. package/.dist/cjs/src/nodes/member/tupleMember.cjs.map +1 -0
  193. package/.dist/cjs/src/nodes/member/tupleMember.d.ts +20 -0
  194. package/.dist/cjs/src/nodes/native/Iterable.cjs +135 -0
  195. package/.dist/cjs/src/nodes/native/Iterable.cjs.map +1 -0
  196. package/.dist/cjs/src/nodes/native/Iterable.d.ts +18 -0
  197. package/.dist/cjs/src/nodes/native/map.cjs +96 -0
  198. package/.dist/cjs/src/nodes/native/map.cjs.map +1 -0
  199. package/.dist/cjs/src/nodes/native/map.d.ts +42 -0
  200. package/.dist/cjs/src/nodes/native/nonSerializable.cjs +36 -0
  201. package/.dist/cjs/src/nodes/native/nonSerializable.cjs.map +1 -0
  202. package/.dist/cjs/src/nodes/native/nonSerializable.d.ts +14 -0
  203. package/.dist/cjs/src/nodes/native/promise.cjs +38 -0
  204. package/.dist/cjs/src/nodes/native/promise.cjs.map +1 -0
  205. package/.dist/cjs/src/nodes/native/promise.d.ts +15 -0
  206. package/.dist/cjs/src/nodes/native/set.cjs +60 -0
  207. package/.dist/cjs/src/nodes/native/set.cjs.map +1 -0
  208. package/.dist/cjs/src/nodes/native/set.d.ts +30 -0
  209. package/.dist/cjs/src/run-types-pure-fns.cjs +112 -0
  210. package/.dist/cjs/src/run-types-pure-fns.cjs.map +1 -0
  211. package/.dist/cjs/src/run-types-pure-fns.d.ts +7 -0
  212. package/.dist/cjs/src/types.cjs +59 -0
  213. package/.dist/cjs/src/types.cjs.map +1 -0
  214. package/.dist/cjs/src/types.d.ts +152 -0
  215. package/.dist/esm/index.d.ts +60 -0
  216. package/.dist/esm/index.js +209 -0
  217. package/.dist/esm/index.js.map +1 -0
  218. package/.dist/esm/src/constants.d.ts +7 -0
  219. package/.dist/esm/src/constants.functions.d.ts +385 -0
  220. package/.dist/esm/src/constants.functions.js +181 -0
  221. package/.dist/esm/src/constants.functions.js.map +1 -0
  222. package/.dist/esm/src/constants.js +79 -0
  223. package/.dist/esm/src/constants.js.map +1 -0
  224. package/.dist/esm/src/constants.kind.d.ts +21 -0
  225. package/.dist/esm/src/constants.kind.js +74 -0
  226. package/.dist/esm/src/constants.kind.js.map +1 -0
  227. package/.dist/esm/src/createRunType.d.ts +5 -0
  228. package/.dist/esm/src/createRunType.js +284 -0
  229. package/.dist/esm/src/createRunType.js.map +1 -0
  230. package/.dist/esm/src/createRunTypeFunctions.d.ts +12 -0
  231. package/.dist/esm/src/createRunTypeFunctions.js +78 -0
  232. package/.dist/esm/src/createRunTypeFunctions.js.map +1 -0
  233. package/.dist/esm/src/formats.runtype.d.ts +6 -0
  234. package/.dist/esm/src/formats.runtype.js +7 -0
  235. package/.dist/esm/src/formats.runtype.js.map +1 -0
  236. package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +30 -0
  237. package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.js +109 -0
  238. package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.js.map +1 -0
  239. package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts +7 -0
  240. package/.dist/esm/src/jitCompilers/binary/fromBinary.js +383 -0
  241. package/.dist/esm/src/jitCompilers/binary/fromBinary.js.map +1 -0
  242. package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts +7 -0
  243. package/.dist/esm/src/jitCompilers/binary/toBinary.js +338 -0
  244. package/.dist/esm/src/jitCompilers/binary/toBinary.js.map +1 -0
  245. package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts +4 -0
  246. package/.dist/esm/src/jitCompilers/equalsHelpers.js +37 -0
  247. package/.dist/esm/src/jitCompilers/equalsHelpers.js.map +1 -0
  248. package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +27 -0
  249. package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.js +56 -0
  250. package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.js.map +1 -0
  251. package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts +10 -0
  252. package/.dist/esm/src/jitCompilers/json/stringifyJson.js +399 -0
  253. package/.dist/esm/src/jitCompilers/json/stringifyJson.js.map +1 -0
  254. package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +27 -0
  255. package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.js +51 -0
  256. package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.js.map +1 -0
  257. package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts +5 -0
  258. package/.dist/esm/src/jitCompilers/json/toJsCode.js +123 -0
  259. package/.dist/esm/src/jitCompilers/json/toJsCode.js.map +1 -0
  260. package/.dist/esm/src/lib/baseRunTypeFormat.d.ts +50 -0
  261. package/.dist/esm/src/lib/baseRunTypeFormat.js +200 -0
  262. package/.dist/esm/src/lib/baseRunTypeFormat.js.map +1 -0
  263. package/.dist/esm/src/lib/baseRunTypes.d.ts +75 -0
  264. package/.dist/esm/src/lib/baseRunTypes.js +308 -0
  265. package/.dist/esm/src/lib/baseRunTypes.js.map +1 -0
  266. package/.dist/esm/src/lib/createJitFunction.d.ts +5 -0
  267. package/.dist/esm/src/lib/createJitFunction.js +60 -0
  268. package/.dist/esm/src/lib/createJitFunction.js.map +1 -0
  269. package/.dist/esm/src/lib/dkProxy.d.ts +4 -0
  270. package/.dist/esm/src/lib/dkProxy.js +23 -0
  271. package/.dist/esm/src/lib/dkProxy.js.map +1 -0
  272. package/.dist/esm/src/lib/formats.d.ts +18 -0
  273. package/.dist/esm/src/lib/formats.js +89 -0
  274. package/.dist/esm/src/lib/formats.js.map +1 -0
  275. package/.dist/esm/src/lib/guards.d.ts +120 -0
  276. package/.dist/esm/src/lib/guards.js +243 -0
  277. package/.dist/esm/src/lib/guards.js.map +1 -0
  278. package/.dist/esm/src/lib/jitFnCompiler.d.ts +109 -0
  279. package/.dist/esm/src/lib/jitFnCompiler.js +648 -0
  280. package/.dist/esm/src/lib/jitFnCompiler.js.map +1 -0
  281. package/.dist/esm/src/lib/jitFnsRegistry.d.ts +6 -0
  282. package/.dist/esm/src/lib/jitFnsRegistry.js +41 -0
  283. package/.dist/esm/src/lib/jitFnsRegistry.js.map +1 -0
  284. package/.dist/esm/src/lib/typeId.d.ts +6 -0
  285. package/.dist/esm/src/lib/typeId.js +205 -0
  286. package/.dist/esm/src/lib/typeId.js.map +1 -0
  287. package/.dist/esm/src/lib/utils.d.ts +32 -0
  288. package/.dist/esm/src/lib/utils.js +325 -0
  289. package/.dist/esm/src/lib/utils.js.map +1 -0
  290. package/.dist/esm/src/mocking/constants.mock.d.ts +85 -0
  291. package/.dist/esm/src/mocking/constants.mock.js +108 -0
  292. package/.dist/esm/src/mocking/constants.mock.js.map +1 -0
  293. package/.dist/esm/src/mocking/mockRegistry.d.ts +3 -0
  294. package/.dist/esm/src/mocking/mockRegistry.js +12 -0
  295. package/.dist/esm/src/mocking/mockRegistry.js.map +1 -0
  296. package/.dist/esm/src/mocking/mockType.d.ts +3 -0
  297. package/.dist/esm/src/mocking/mockType.js +310 -0
  298. package/.dist/esm/src/mocking/mockType.js.map +1 -0
  299. package/.dist/esm/src/mocking/mockUtils.d.ts +15 -0
  300. package/.dist/esm/src/mocking/mockUtils.js +62 -0
  301. package/.dist/esm/src/mocking/mockUtils.js.map +1 -0
  302. package/.dist/esm/src/nodes/atomic/any.d.ts +8 -0
  303. package/.dist/esm/src/nodes/atomic/any.js +18 -0
  304. package/.dist/esm/src/nodes/atomic/any.js.map +1 -0
  305. package/.dist/esm/src/nodes/atomic/bigInt.d.ts +10 -0
  306. package/.dist/esm/src/nodes/atomic/bigInt.js +20 -0
  307. package/.dist/esm/src/nodes/atomic/bigInt.js.map +1 -0
  308. package/.dist/esm/src/nodes/atomic/boolean.d.ts +10 -0
  309. package/.dist/esm/src/nodes/atomic/boolean.js +20 -0
  310. package/.dist/esm/src/nodes/atomic/boolean.js.map +1 -0
  311. package/.dist/esm/src/nodes/atomic/date.d.ts +10 -0
  312. package/.dist/esm/src/nodes/atomic/date.js +20 -0
  313. package/.dist/esm/src/nodes/atomic/date.js.map +1 -0
  314. package/.dist/esm/src/nodes/atomic/enum.d.ts +8 -0
  315. package/.dist/esm/src/nodes/atomic/enum.js +22 -0
  316. package/.dist/esm/src/nodes/atomic/enum.js.map +1 -0
  317. package/.dist/esm/src/nodes/atomic/enumMember.d.ts +10 -0
  318. package/.dist/esm/src/nodes/atomic/enumMember.js +24 -0
  319. package/.dist/esm/src/nodes/atomic/enumMember.js.map +1 -0
  320. package/.dist/esm/src/nodes/atomic/literal.d.ts +20 -0
  321. package/.dist/esm/src/nodes/atomic/literal.js +126 -0
  322. package/.dist/esm/src/nodes/atomic/literal.js.map +1 -0
  323. package/.dist/esm/src/nodes/atomic/never.d.ts +10 -0
  324. package/.dist/esm/src/nodes/atomic/never.js +22 -0
  325. package/.dist/esm/src/nodes/atomic/never.js.map +1 -0
  326. package/.dist/esm/src/nodes/atomic/null.d.ts +10 -0
  327. package/.dist/esm/src/nodes/atomic/null.js +20 -0
  328. package/.dist/esm/src/nodes/atomic/null.js.map +1 -0
  329. package/.dist/esm/src/nodes/atomic/number.d.ts +10 -0
  330. package/.dist/esm/src/nodes/atomic/number.js +20 -0
  331. package/.dist/esm/src/nodes/atomic/number.js.map +1 -0
  332. package/.dist/esm/src/nodes/atomic/object.d.ts +8 -0
  333. package/.dist/esm/src/nodes/atomic/object.js +14 -0
  334. package/.dist/esm/src/nodes/atomic/object.js.map +1 -0
  335. package/.dist/esm/src/nodes/atomic/regexp.d.ts +10 -0
  336. package/.dist/esm/src/nodes/atomic/regexp.js +23 -0
  337. package/.dist/esm/src/nodes/atomic/regexp.js.map +1 -0
  338. package/.dist/esm/src/nodes/atomic/string.d.ts +8 -0
  339. package/.dist/esm/src/nodes/atomic/string.js +14 -0
  340. package/.dist/esm/src/nodes/atomic/string.js.map +1 -0
  341. package/.dist/esm/src/nodes/atomic/symbol.d.ts +11 -0
  342. package/.dist/esm/src/nodes/atomic/symbol.js +26 -0
  343. package/.dist/esm/src/nodes/atomic/symbol.js.map +1 -0
  344. package/.dist/esm/src/nodes/atomic/undefined.d.ts +9 -0
  345. package/.dist/esm/src/nodes/atomic/undefined.js +17 -0
  346. package/.dist/esm/src/nodes/atomic/undefined.js.map +1 -0
  347. package/.dist/esm/src/nodes/atomic/unknown.d.ts +3 -0
  348. package/.dist/esm/src/nodes/atomic/unknown.js +8 -0
  349. package/.dist/esm/src/nodes/atomic/unknown.js.map +1 -0
  350. package/.dist/esm/src/nodes/atomic/void.d.ts +10 -0
  351. package/.dist/esm/src/nodes/atomic/void.js +20 -0
  352. package/.dist/esm/src/nodes/atomic/void.js.map +1 -0
  353. package/.dist/esm/src/nodes/collection/class.d.ts +9 -0
  354. package/.dist/esm/src/nodes/collection/class.js +38 -0
  355. package/.dist/esm/src/nodes/collection/class.js.map +1 -0
  356. package/.dist/esm/src/nodes/collection/functionParams.d.ts +9 -0
  357. package/.dist/esm/src/nodes/collection/functionParams.js +33 -0
  358. package/.dist/esm/src/nodes/collection/functionParams.js.map +1 -0
  359. package/.dist/esm/src/nodes/collection/interface.d.ts +43 -0
  360. package/.dist/esm/src/nodes/collection/interface.js +221 -0
  361. package/.dist/esm/src/nodes/collection/interface.js.map +1 -0
  362. package/.dist/esm/src/nodes/collection/intersection.d.ts +9 -0
  363. package/.dist/esm/src/nodes/collection/intersection.js +21 -0
  364. package/.dist/esm/src/nodes/collection/intersection.js.map +1 -0
  365. package/.dist/esm/src/nodes/collection/tuple.d.ts +18 -0
  366. package/.dist/esm/src/nodes/collection/tuple.js +74 -0
  367. package/.dist/esm/src/nodes/collection/tuple.js.map +1 -0
  368. package/.dist/esm/src/nodes/collection/union.d.ts +19 -0
  369. package/.dist/esm/src/nodes/collection/union.js +162 -0
  370. package/.dist/esm/src/nodes/collection/union.js.map +1 -0
  371. package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts +21 -0
  372. package/.dist/esm/src/nodes/collection/unionDiscriminator.js +198 -0
  373. package/.dist/esm/src/nodes/collection/unionDiscriminator.js.map +1 -0
  374. package/.dist/esm/src/nodes/function/function.d.ts +33 -0
  375. package/.dist/esm/src/nodes/function/function.js +155 -0
  376. package/.dist/esm/src/nodes/function/function.js.map +1 -0
  377. package/.dist/esm/src/nodes/member/array.d.ts +24 -0
  378. package/.dist/esm/src/nodes/member/array.js +154 -0
  379. package/.dist/esm/src/nodes/member/array.js.map +1 -0
  380. package/.dist/esm/src/nodes/member/callSignature.d.ts +11 -0
  381. package/.dist/esm/src/nodes/member/callSignature.js +40 -0
  382. package/.dist/esm/src/nodes/member/callSignature.js.map +1 -0
  383. package/.dist/esm/src/nodes/member/genericMember.d.ts +15 -0
  384. package/.dist/esm/src/nodes/member/genericMember.js +68 -0
  385. package/.dist/esm/src/nodes/member/genericMember.js.map +1 -0
  386. package/.dist/esm/src/nodes/member/indexProperty.d.ts +21 -0
  387. package/.dist/esm/src/nodes/member/indexProperty.js +130 -0
  388. package/.dist/esm/src/nodes/member/indexProperty.js.map +1 -0
  389. package/.dist/esm/src/nodes/member/method.d.ts +11 -0
  390. package/.dist/esm/src/nodes/member/method.js +41 -0
  391. package/.dist/esm/src/nodes/member/method.js.map +1 -0
  392. package/.dist/esm/src/nodes/member/methodSignature.d.ts +12 -0
  393. package/.dist/esm/src/nodes/member/methodSignature.js +44 -0
  394. package/.dist/esm/src/nodes/member/methodSignature.js.map +1 -0
  395. package/.dist/esm/src/nodes/member/param.d.ts +8 -0
  396. package/.dist/esm/src/nodes/member/param.js +17 -0
  397. package/.dist/esm/src/nodes/member/param.js.map +1 -0
  398. package/.dist/esm/src/nodes/member/property.d.ts +19 -0
  399. package/.dist/esm/src/nodes/member/property.js +85 -0
  400. package/.dist/esm/src/nodes/member/property.js.map +1 -0
  401. package/.dist/esm/src/nodes/member/restParams.d.ts +7 -0
  402. package/.dist/esm/src/nodes/member/restParams.js +15 -0
  403. package/.dist/esm/src/nodes/member/restParams.js.map +1 -0
  404. package/.dist/esm/src/nodes/member/tupleMember.d.ts +20 -0
  405. package/.dist/esm/src/nodes/member/tupleMember.js +93 -0
  406. package/.dist/esm/src/nodes/member/tupleMember.js.map +1 -0
  407. package/.dist/esm/src/nodes/native/Iterable.d.ts +18 -0
  408. package/.dist/esm/src/nodes/native/Iterable.js +135 -0
  409. package/.dist/esm/src/nodes/native/Iterable.js.map +1 -0
  410. package/.dist/esm/src/nodes/native/map.d.ts +42 -0
  411. package/.dist/esm/src/nodes/native/map.js +96 -0
  412. package/.dist/esm/src/nodes/native/map.js.map +1 -0
  413. package/.dist/esm/src/nodes/native/nonSerializable.d.ts +14 -0
  414. package/.dist/esm/src/nodes/native/nonSerializable.js +36 -0
  415. package/.dist/esm/src/nodes/native/nonSerializable.js.map +1 -0
  416. package/.dist/esm/src/nodes/native/promise.d.ts +15 -0
  417. package/.dist/esm/src/nodes/native/promise.js +38 -0
  418. package/.dist/esm/src/nodes/native/promise.js.map +1 -0
  419. package/.dist/esm/src/nodes/native/set.d.ts +30 -0
  420. package/.dist/esm/src/nodes/native/set.js +60 -0
  421. package/.dist/esm/src/nodes/native/set.js.map +1 -0
  422. package/.dist/esm/src/run-types-pure-fns.d.ts +7 -0
  423. package/.dist/esm/src/run-types-pure-fns.js +112 -0
  424. package/.dist/esm/src/run-types-pure-fns.js.map +1 -0
  425. package/.dist/esm/src/types.d.ts +152 -0
  426. package/.dist/esm/src/types.js +59 -0
  427. package/.dist/esm/src/types.js.map +1 -0
  428. package/LICENSE +21 -0
  429. package/README.md +32 -0
  430. package/package.json +66 -0
@@ -0,0 +1,325 @@
1
+ import { ReflectionKind } from "@deepkit/type";
2
+ import { createHashLiteral } from "@mionjs/core";
3
+ import { validPropertyNameRegExp } from "../constants.js";
4
+ import { ReflectionSubKind } from "../constants.kind.js";
5
+ import { getJitFnSettings } from "./jitFnsRegistry.js";
6
+ function toLiteral(value) {
7
+ switch (typeof value) {
8
+ case "number":
9
+ return `${value}`;
10
+ case "string":
11
+ return JSON.stringify(value);
12
+ case "boolean":
13
+ return value ? "true" : "false";
14
+ case "undefined":
15
+ return "undefined";
16
+ case "bigint":
17
+ return `${value}n`;
18
+ case "symbol":
19
+ return `Symbol(${toLiteral(value.description)})`;
20
+ case "object":
21
+ if (value === null) return "null";
22
+ if (value instanceof RegExp) return value.toString();
23
+ throw new Error(`Unsupported literal type ${value}`);
24
+ default:
25
+ throw new Error(`Unsupported literal type ${value}`);
26
+ }
27
+ }
28
+ function arrayToLiteral(value) {
29
+ return `[${arrayToArgumentsLiteral(value)}]`;
30
+ }
31
+ function arrayToArgumentsLiteral(value) {
32
+ return value.map((v) => `${toLiteral(v)}`).join(", ");
33
+ }
34
+ function isFunctionKind(kind) {
35
+ return kind === ReflectionKind.callSignature || kind === ReflectionKind.method || kind === ReflectionKind.function || kind === ReflectionKind.methodSignature || kind === ReflectionKind.indexSignature;
36
+ }
37
+ function isClass(cls) {
38
+ return typeof cls === "function" && cls.prototype && cls.prototype.constructor === cls && cls.prototype.constructor.name && cls.toString().startsWith("class");
39
+ }
40
+ function isSameJitType(a, b) {
41
+ if (a === b) return true;
42
+ if (a.src.kind !== b.src.kind) return false;
43
+ return a.getTypeID() === b.getTypeID();
44
+ }
45
+ function isSameJitCompiler(a, b) {
46
+ return a.fnID === b.fnID && isSameJitType(a.rootType, b.rootType);
47
+ }
48
+ function memorize(fn) {
49
+ let cached;
50
+ return ((...args) => {
51
+ if (!cached) cached = fn(...args);
52
+ return cached;
53
+ });
54
+ }
55
+ function isSafePropName(name) {
56
+ return typeof name === "string" && validPropertyNameRegExp.test(name) || typeof name === "number";
57
+ }
58
+ function sanitizePropName(name) {
59
+ const sName = typeof name === "string" ? name : String(name);
60
+ return sName.replace(/[^a-zA-Z0-9_$]/g, "_");
61
+ }
62
+ function getPropVarName(name) {
63
+ if (typeof name === "symbol") return name.toString();
64
+ return name;
65
+ }
66
+ function getPropLiteral(name) {
67
+ return toLiteral(name);
68
+ }
69
+ function useArrayAccessorForProp(name) {
70
+ if (typeof name === "number") return true;
71
+ return !isSafePropName(name);
72
+ }
73
+ function getPropIndex(src) {
74
+ const parent = src.parent;
75
+ if (!parent) return -1;
76
+ const types = parent.types;
77
+ if (types) return types.indexOf(src);
78
+ return 0;
79
+ }
80
+ function getParamIndex(src) {
81
+ const parent = src.parent;
82
+ if (!parent) return -1;
83
+ if (parent.parameters) return parent.parameters.indexOf(src);
84
+ if (parent.types) return parent.types.indexOf(src);
85
+ return 0;
86
+ }
87
+ function childIsExpression(childJCode, child) {
88
+ return childJCode.type === "E" || !child.isJitInlined();
89
+ }
90
+ const maxStringLength = 10;
91
+ function toLiteralInContext(comp, params, ignoreProps = [], isDependencies = false) {
92
+ switch (true) {
93
+ case typeof params === "string": {
94
+ const literal = toLiteral(params);
95
+ if (params.length > maxStringLength) {
96
+ const hash = createHashLiteral(params);
97
+ const strName = hash;
98
+ if (!comp.hasContextItem(strName)) comp.setContextItem(strName, `const ${strName} = ${literal}`);
99
+ return strName;
100
+ }
101
+ return literal;
102
+ }
103
+ case typeof params === "number":
104
+ return `${params}`;
105
+ case typeof params === "boolean":
106
+ return params ? "true" : "false";
107
+ case params instanceof RegExp: {
108
+ const regCode = params.toString();
109
+ const hash = createHashLiteral(regCode);
110
+ const regName = hash;
111
+ if (!comp.hasContextItem(regName)) comp.setContextItem(regName, `const ${regName} = ${regCode}`);
112
+ return regName;
113
+ }
114
+ case Array.isArray(params): {
115
+ const arrCode = `[${params.map((v) => toLiteralInContext(comp, v, ignoreProps, isDependencies)).join(",")}]`;
116
+ const hash = createHashLiteral(arrCode);
117
+ const arrName = hash;
118
+ if (!comp.hasContextItem(arrName)) comp.setContextItem(arrName, `const ${arrName} = ${arrCode}`);
119
+ return arrName;
120
+ }
121
+ case typeof params === "object": {
122
+ const entriesLiterals = Object.entries(params).map(([k, v]) => {
123
+ if (ignoreProps.includes(k) || typeof v === "undefined") return void 0;
124
+ const propName = isSafePropName(k) ? k : toLiteral(k);
125
+ if (!isDependencies) return `${propName}:${toLiteralInContext(comp, v, ignoreProps, isDependencies)}`;
126
+ return `${propName}:${dependencyValueToLiteral(comp, v)}`;
127
+ });
128
+ const objCode = `{${entriesLiterals.filter(Boolean).join(",")}}`;
129
+ const hash = createHashLiteral(objCode);
130
+ const objName = hash;
131
+ if (!comp.hasContextItem(objName)) comp.setContextItem(objName, `const ${objName} = ${objCode}`);
132
+ return objName;
133
+ }
134
+ case typeof params === "bigint":
135
+ return toLiteral(params);
136
+ default:
137
+ throw new Error(`Unsupported type format params ${params}`);
138
+ }
139
+ }
140
+ function dependencyValueToLiteral(comp, propVal) {
141
+ if (typeof propVal === "object" && propVal !== null && "createJitFn" in propVal && "namespace" in propVal && "fnName" in propVal) {
142
+ if (!comp) throw new Error("Dependencies must be pure functions or code");
143
+ comp.addPureFnDependency(propVal);
144
+ return `utl.getPureFn(${toLiteral(propVal.namespace)}, ${toLiteral(propVal.fnName)})`;
145
+ }
146
+ if (typeof propVal === "string") return propVal;
147
+ throw new Error("Dependencies must be CompiledPureFunction objects or code strings");
148
+ }
149
+ function typeParamsToString(params, ignoreProps) {
150
+ switch (true) {
151
+ case typeof params === "string":
152
+ return toLiteral(params);
153
+ case typeof params === "number":
154
+ return `${params}`;
155
+ case typeof params === "boolean":
156
+ return params ? "true" : "false";
157
+ case params instanceof RegExp:
158
+ return params.toString();
159
+ case Array.isArray(params):
160
+ return `[${params.map((v) => typeParamsToString(v, ignoreProps)).join(", ")}]`;
161
+ case typeof params === "object": {
162
+ const entriesLiterals = Object.entries(params).map(([k, v]) => {
163
+ if (ignoreProps.includes(k) || typeof v === "undefined") return void 0;
164
+ return `${k}:${typeParamsToString(v, ignoreProps)}`;
165
+ });
166
+ return `{${entriesLiterals.filter(Boolean).join(",")}}`;
167
+ }
168
+ case typeof params === "bigint":
169
+ return `${params}n`;
170
+ default:
171
+ throw new Error(`Unsupported type format params ${params}`);
172
+ }
173
+ }
174
+ function getFormatterHash(rt) {
175
+ const literal = rt.getFormatTypeID();
176
+ if (!literal) throw new Error("Formatter JIT ID not found");
177
+ return createHashLiteral(literal);
178
+ }
179
+ const familyComplexity = {
180
+ A: 2,
181
+ M: 20,
182
+ // member usually involves iteration
183
+ C: 10,
184
+ // collection usually involves calling and extra jit function
185
+ F: 1e7
186
+ };
187
+ const typesComplexity = {
188
+ [ReflectionKind.indexSignature]: 20,
189
+ // index involves traversing all object keys
190
+ [ReflectionKind.array]: 30,
191
+ // array involves iterating all items
192
+ [ReflectionKind.property]: 0,
193
+ // property involves just checking a single property
194
+ [ReflectionKind.propertySignature]: 0,
195
+ // property involves just checking a single property
196
+ [ReflectionKind.boolean]: 1,
197
+ // boolean is fast to check
198
+ [ReflectionKind.null]: 1,
199
+ // null is fast to check
200
+ [ReflectionKind.undefined]: 1,
201
+ // undefined is fast to check
202
+ [ReflectionKind.enum]: 20
203
+ // enum can involve checking multiple values
204
+ };
205
+ const subTypesComplexity = {
206
+ [ReflectionSubKind.date]: 3
207
+ };
208
+ function getTotalComplexity(comp, rt, stack = []) {
209
+ if (!rt) return 0;
210
+ if (stack.includes(rt)) return 0;
211
+ stack.push(rt);
212
+ let result = 0;
213
+ const subKindC = rt.src.subKind ? subTypesComplexity[rt.src.subKind] : void 0;
214
+ const typeC = subKindC || typesComplexity[rt.src.kind];
215
+ const familyC = rt.getFamily();
216
+ if (familyC === "A") result = typeC || familyComplexity.A;
217
+ else if (familyC === "M") {
218
+ const childRT = rt.getJitChild(comp);
219
+ if (!childRT) return typeC ?? familyComplexity.M;
220
+ const childC = getTotalComplexity(comp, childRT, stack);
221
+ result = (typeC ?? familyComplexity.M) + childC;
222
+ } else if (familyC === "C") {
223
+ const childrenC = rt.getJitChildren(comp).map((child) => getTotalComplexity(comp, child, stack));
224
+ const totalChildrenC = childrenC.reduce((acc, childC) => acc + childC, 0);
225
+ result = (typeC ?? familyComplexity.C) + totalChildrenC;
226
+ } else {
227
+ result = typeC ?? familyComplexity.F;
228
+ }
229
+ stack.pop();
230
+ return result;
231
+ }
232
+ function sortRunTypeByComplexity(comp, a, b) {
233
+ if (a.getFamily() === "M" && b.getFamily() === "M") {
234
+ const aIsDiscriminator = a.isUnionDiscriminator;
235
+ const bIsDiscriminator = b.isUnionDiscriminator;
236
+ if (aIsDiscriminator && !bIsDiscriminator) return -1;
237
+ if (!aIsDiscriminator && bIsDiscriminator) return 1;
238
+ }
239
+ if (b.getFamily() === "M" && b.isUnionDiscriminator) return 1;
240
+ const aTotal = getTotalComplexity(comp, a);
241
+ const bTotal = getTotalComplexity(comp, b);
242
+ return aTotal - bTotal;
243
+ }
244
+ function sortDiscriminatorsFirst(a, b) {
245
+ if (a.getFamily() === "M" && b.getFamily() === "M") {
246
+ const aIsDiscriminator = a.isUnionDiscriminator;
247
+ const bIsDiscriminator = b.isUnionDiscriminator;
248
+ if (aIsDiscriminator && !bIsDiscriminator) return -1;
249
+ if (!aIsDiscriminator && bIsDiscriminator) return 1;
250
+ }
251
+ return 0;
252
+ }
253
+ function createIfElseFn() {
254
+ let isFirst = true;
255
+ return (end = false) => {
256
+ const elseIf = end ? "else" : "else if";
257
+ const iF = isFirst ? "if" : elseIf;
258
+ isFirst = false;
259
+ return iF;
260
+ };
261
+ }
262
+ function getJitFnArgCallVarName(parentComp, rt, idFnToCall, argKey) {
263
+ const fnConfig = getJitFnSettings(idFnToCall);
264
+ const defaultArgVal = fnConfig.jitDefaultArgs[argKey];
265
+ if (argKey === "vλl" && fnConfig.noInitialVλl) return "undefined";
266
+ if (argKey === "vλl") return parentComp.getCurrentStackItem().vλl;
267
+ const varNameFromContext = parentComp.getChildrenCallArgs(idFnToCall)?.[argKey];
268
+ if (varNameFromContext) return varNameFromContext;
269
+ const varNameFromParent = parentComp.args[argKey];
270
+ if (varNameFromParent) return varNameFromParent;
271
+ if (!defaultArgVal)
272
+ throw new Error(
273
+ `Can not call jit function ${idFnToCall} because it requires argument ${argKey} but it is not provided,
274
+ neither in the parent function nor in the function context and there is no default value for it.`
275
+ );
276
+ const defaultName = fnConfig.jitArgs[argKey];
277
+ const optsVarName = `${defaultName}_${idFnToCall}0`;
278
+ parentComp.setContextItem(optsVarName, `const ${optsVarName} = ${defaultArgVal}`);
279
+ return optsVarName;
280
+ }
281
+ function parentIs(rt, kind) {
282
+ const parentRT = rt.getParent();
283
+ if (!parentRT) return false;
284
+ if (parentRT.src.kind === ReflectionKind.union) return parentIs(parentRT, kind);
285
+ if (Array.isArray(kind) ? kind.includes(parentRT.src.kind) : parentRT.src.kind === kind) return true;
286
+ return false;
287
+ }
288
+ function addFullStop(code) {
289
+ if (!code) return code;
290
+ const lastChar = code.length - 1;
291
+ const hasFullStop = code[lastChar] === ";";
292
+ if (hasFullStop) return code;
293
+ const hasBlockClose = code[lastChar] === "}";
294
+ return hasBlockClose ? code : `${code};`;
295
+ }
296
+ export {
297
+ addFullStop,
298
+ arrayToArgumentsLiteral,
299
+ arrayToLiteral,
300
+ childIsExpression,
301
+ createIfElseFn,
302
+ dependencyValueToLiteral,
303
+ getFormatterHash,
304
+ getJitFnArgCallVarName,
305
+ getParamIndex,
306
+ getPropIndex,
307
+ getPropLiteral,
308
+ getPropVarName,
309
+ getTotalComplexity,
310
+ isClass,
311
+ isFunctionKind,
312
+ isSafePropName,
313
+ isSameJitCompiler,
314
+ isSameJitType,
315
+ memorize,
316
+ parentIs,
317
+ sanitizePropName,
318
+ sortDiscriminatorsFirst,
319
+ sortRunTypeByComplexity,
320
+ toLiteral,
321
+ toLiteralInContext,
322
+ typeParamsToString,
323
+ useArrayAccessorForProp
324
+ };
325
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/lib/utils.ts"],"sourcesContent":["/* ########\n * 2024 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {ReflectionKind} from '@deepkit/type';\nimport type {Type, TypeFunction, TypeParameter, TypeTuple, TypeTupleMember} from '@deepkit/type';\nimport type {CompiledPureFunction, TypeFormatValue} from '@mionjs/core';\nimport type {AnyClass, JitFnID, RunType} from '../types.ts';\nimport type {BaseRunType, CollectionRunType, MemberRunType} from './baseRunTypes.ts';\nimport type {JitFnCompiler, JitErrorsFnCompiler} from './jitFnCompiler.ts';\nimport type {PropertyRunType} from '../nodes/member/property.ts';\nimport {createHashLiteral} from '@mionjs/core';\nimport {validPropertyNameRegExp} from '../constants.ts';\nimport {ReflectionSubKind} from '../constants.kind.ts';\nimport {getJitFnSettings} from './jitFnsRegistry.ts';\nimport type {JitCode} from '../types.ts';\n\nexport function toLiteral(value: number | string | boolean | undefined | null | bigint | RegExp | symbol): string {\n switch (typeof value) {\n case 'number':\n return `${value}`;\n case 'string':\n return JSON.stringify(value);\n case 'boolean':\n return value ? 'true' : 'false';\n case 'undefined':\n return 'undefined';\n case 'bigint':\n return `${value}n`;\n case 'symbol':\n return `Symbol(${toLiteral(value.description)})`;\n case 'object':\n if (value === null) return 'null';\n if (value instanceof RegExp) return value.toString();\n throw new Error(`Unsupported literal type ${value}`);\n default:\n throw new Error(`Unsupported literal type ${value}`);\n }\n}\n\nexport function arrayToLiteral(value: any[]): string {\n return `[${arrayToArgumentsLiteral(value)}]`;\n}\n\nexport function arrayToArgumentsLiteral(value: any[]): string {\n return value.map((v) => `${toLiteral(v)}`).join(', ');\n}\n\nexport function isFunctionKind(kind: ReflectionKind): boolean {\n return (\n kind === ReflectionKind.callSignature ||\n kind === ReflectionKind.method ||\n kind === ReflectionKind.function ||\n kind === ReflectionKind.methodSignature ||\n kind === ReflectionKind.indexSignature\n );\n}\n\nexport function isClass(cls: AnyClass | any): cls is AnyClass {\n return (\n typeof cls === 'function' &&\n cls.prototype &&\n cls.prototype.constructor === cls &&\n cls.prototype.constructor.name &&\n cls.toString().startsWith('class')\n );\n}\n\nexport function isSameJitType(a: RunType, b: RunType): boolean {\n if (a === b) return true;\n if (a.src.kind !== b.src.kind) return false;\n return a.getTypeID() === b.getTypeID();\n}\n\nexport function isSameJitCompiler(a: JitFnCompiler, b: JitFnCompiler): boolean {\n return a.fnID === b.fnID && isSameJitType(a.rootType, b.rootType);\n}\n\nexport function memorize<Fn extends (...args: any[]) => any>(fn: Fn): Fn {\n let cached: undefined | any;\n return ((...args: any[]) => {\n if (!cached) cached = fn(...args);\n return cached;\n }) as Fn;\n}\n\nexport function isSafePropName(name: string | number | symbol): boolean {\n return (typeof name === 'string' && validPropertyNameRegExp.test(name)) || typeof name === 'number';\n}\n\nexport function sanitizePropName(name: string | number | symbol): string {\n const sName = typeof name === 'string' ? name : String(name);\n return sName.replace(/[^a-zA-Z0-9_$]/g, '_');\n}\n\nexport function getPropVarName(name: string | number | symbol): string | number {\n if (typeof name === 'symbol') return name.toString();\n return name;\n}\nexport function getPropLiteral(name: string | number | symbol): string | number {\n return toLiteral(name);\n}\nexport function useArrayAccessorForProp(name: string | number | symbol): boolean {\n if (typeof name === 'number') return true;\n return !isSafePropName(name);\n}\n\nexport function getPropIndex(src: Type): number {\n const parent = src.parent;\n if (!parent) return -1;\n const types = (parent as {types: Type[]}).types;\n if (types) return types.indexOf(src);\n return 0;\n}\n\nexport function getParamIndex(src: TypeParameter | TypeTupleMember): number {\n const parent = src.parent as TypeFunction | TypeTuple;\n if (!parent) return -1;\n if ((parent as TypeFunction).parameters) return (parent as TypeFunction).parameters.indexOf(src as TypeParameter);\n if ((parent as TypeTuple).types) return (parent as TypeTuple).types.indexOf(src as TypeTupleMember);\n return 0;\n}\n\nexport function childIsExpression(childJCode: JitCode, child: BaseRunType): boolean {\n return childJCode.type === 'E' || !child.isJitInlined();\n}\n\n// ######### To literal with context ########\n\nconst maxStringLength = 10;\n\n/**\n * Transforms values into a literal string to be used in JIT code.\n * ie: {total: 5, name: 'hello'} gets transformed into teh string '{total: 5, name: \"hello\"}' that can be used as JIT code.\n * Some literals are automatically added to the context to reduce code size. in this case the reference to the context variable is returned.\n * Otherwise the literal is returned.\n *\n * Important this is intended for actual immutable literals, if two empty arrays are passed they will be transformed into the same reference.\n * so those object or arrays should never be modified in jit code. //TODO: investigate using object.freeze\n *\n * @param comp\n * @param params\n * @param ignoreProps\n * @param isDependencies\n * @returns\n */\nexport function toLiteralInContext(\n // if compiled is passed it is assumed that the params are dependencies and will be transformed into code\n comp: JitFnCompiler | JitErrorsFnCompiler,\n params: TypeFormatValue | Record<string, string | CompiledPureFunction>,\n // TODO: somewhere the ignoreProps are not passed and we still outputting 'samples' and 'sampleChars' to jit code were is not needed\n ignoreProps: string[] = [],\n isDependencies = false\n): string {\n switch (true) {\n case typeof params === 'string': {\n const literal = toLiteral(params);\n // if string is longer than 10 chars we add it as a new variable in the context to reduce code size\n if (params.length > maxStringLength) {\n const hash = createHashLiteral(params);\n const strName = hash;\n if (!comp.hasContextItem(strName)) comp.setContextItem(strName, `const ${strName} = ${literal}`);\n return strName;\n }\n return literal;\n }\n case typeof params === 'number':\n return `${params}`;\n case typeof params === 'boolean':\n return params ? 'true' : 'false';\n case params instanceof RegExp: {\n // if param is a regexp we add it as a new variable in the context (so we are not creating a new regexp on each call)\n const regCode = params.toString();\n const hash = createHashLiteral(regCode);\n const regName = hash;\n if (!comp.hasContextItem(regName)) comp.setContextItem(regName, `const ${regName} = ${regCode}`);\n return regName;\n }\n case Array.isArray(params): {\n // arrays are added to the context as a new variable\n const arrCode = `[${params.map((v) => toLiteralInContext(comp, v, ignoreProps, isDependencies)).join(',')}]`;\n const hash = createHashLiteral(arrCode);\n const arrName = hash;\n if (!comp.hasContextItem(arrName)) comp.setContextItem(arrName, `const ${arrName} = ${arrCode}`);\n\n return arrName;\n }\n case typeof params === 'object': {\n // objects are added to the context as a new variable\n const entriesLiterals = Object.entries(params).map(([k, v]) => {\n if (ignoreProps.includes(k) || typeof v === 'undefined') return undefined;\n const propName = isSafePropName(k) ? k : toLiteral(k);\n if (!isDependencies) return `${propName}:${toLiteralInContext(comp, v, ignoreProps, isDependencies)}`;\n return `${propName}:${dependencyValueToLiteral(comp, v)}`;\n });\n const objCode = `{${entriesLiterals.filter(Boolean).join(',')}}`;\n const hash = createHashLiteral(objCode);\n const objName = hash;\n if (!comp.hasContextItem(objName)) comp.setContextItem(objName, `const ${objName} = ${objCode}`);\n return objName;\n }\n case typeof params === 'bigint':\n return toLiteral(params);\n default:\n throw new Error(`Unsupported type format params ${params}`);\n }\n}\n\nexport function dependencyValueToLiteral(comp: JitFnCompiler | JitErrorsFnCompiler | undefined, propVal: any): string {\n if (\n typeof propVal === 'object' &&\n propVal !== null &&\n 'createJitFn' in propVal &&\n 'namespace' in propVal &&\n 'fnName' in propVal\n ) {\n // propVal is a CompiledPureFunction\n if (!comp) throw new Error('Dependencies must be pure functions or code');\n comp.addPureFnDependency(propVal);\n return `utl.getPureFn(${toLiteral(propVal.namespace)}, ${toLiteral(propVal.fnName)})`;\n }\n if (typeof propVal === 'string') return propVal;\n throw new Error('Dependencies must be CompiledPureFunction objects or code strings');\n}\n\nexport function typeParamsToString(\n params: TypeFormatValue | Record<string, string | CompiledPureFunction>,\n ignoreProps: string[]\n): string {\n switch (true) {\n case typeof params === 'string':\n return toLiteral(params);\n case typeof params === 'number':\n return `${params}`;\n case typeof params === 'boolean':\n return params ? 'true' : 'false';\n case params instanceof RegExp:\n return params.toString();\n case Array.isArray(params):\n return `[${params.map((v) => typeParamsToString(v, ignoreProps)).join(', ')}]`;\n case typeof params === 'object': {\n const entriesLiterals = Object.entries(params).map(([k, v]) => {\n if (ignoreProps.includes(k) || typeof v === 'undefined') return undefined;\n return `${k}:${typeParamsToString(v, ignoreProps)}`;\n });\n return `{${entriesLiterals.filter(Boolean).join(',')}}`;\n }\n case typeof params === 'bigint':\n return `${params}n`;\n default:\n throw new Error(`Unsupported type format params ${params}`);\n }\n}\nexport function getFormatterHash(rt: BaseRunType): string {\n const literal = rt.getFormatTypeID();\n if (!literal) throw new Error('Formatter JIT ID not found');\n return createHashLiteral(literal);\n}\n\n/** Complexity of each type family, we can add more types and weights here if we want to optimize further */\nconst familyComplexity = {\n A: 2,\n M: 20, // member usually involves iteration\n C: 10, // collection usually involves calling and extra jit function\n F: 10_000_000,\n}; // function should go always last\nconst typesComplexity = {\n [ReflectionKind.indexSignature]: 20, // index involves traversing all object keys\n [ReflectionKind.array]: 30, // array involves iterating all items\n [ReflectionKind.property]: 0, // property involves just checking a single property\n [ReflectionKind.propertySignature]: 0, // property involves just checking a single property\n [ReflectionKind.boolean]: 1, // boolean is fast to check\n [ReflectionKind.null]: 1, // null is fast to check\n [ReflectionKind.undefined]: 1, // undefined is fast to check\n [ReflectionKind.enum]: 20, // enum can involve checking multiple values\n};\nconst subTypesComplexity = {\n [ReflectionSubKind.date]: 3,\n};\n\n/**\n * Returns an arbitrary complexity number for a runType, this depends on the type family and the complexity of all children.\n * There might be better options to get the type complexity, as this also depends on the runtime operation and the compiled operation.\n * but this is an initial approximation.\n */\nexport function getTotalComplexity(comp: JitFnCompiler, rt: BaseRunType, stack: BaseRunType[] = []): number {\n if (!rt) return 0;\n if (stack.includes(rt)) return 0;\n stack.push(rt);\n let result = 0;\n const subKindC = rt.src.subKind ? subTypesComplexity[rt.src.subKind] : undefined;\n const typeC = subKindC || typesComplexity[rt.src.kind];\n const familyC = rt.getFamily();\n if (familyC === 'A') result = typeC || familyComplexity.A;\n else if (familyC === 'M') {\n const childRT = (rt as MemberRunType<any>).getJitChild(comp);\n if (!childRT) return typeC ?? familyComplexity.M;\n const childC = getTotalComplexity(comp, childRT, stack);\n result = (typeC ?? familyComplexity.M) + childC;\n } else if (familyC === 'C') {\n const childrenC = (rt as CollectionRunType<any>)\n .getJitChildren(comp)\n .map((child) => getTotalComplexity(comp, child, stack));\n const totalChildrenC = childrenC.reduce((acc, childC) => acc + childC, 0);\n result = (typeC ?? familyComplexity.C) + totalChildrenC;\n } else {\n result = typeC ?? familyComplexity.F;\n }\n stack.pop();\n return result;\n}\n\n/**\n * Sort runTypes by complexity, ascending. this way less complex code can be executed first.\n * This could help to fail fast and avoid unnecessary checks.\n */\nexport function sortRunTypeByComplexity(comp: JitFnCompiler, a: BaseRunType, b: BaseRunType): number {\n if (a.getFamily() === 'M' && b.getFamily() === 'M') {\n const aIsDiscriminator = (a as PropertyRunType).isUnionDiscriminator;\n const bIsDiscriminator = (b as PropertyRunType).isUnionDiscriminator;\n if (aIsDiscriminator && !bIsDiscriminator) return -1;\n if (!aIsDiscriminator && bIsDiscriminator) return 1;\n }\n if (b.getFamily() === 'M' && (b as PropertyRunType).isUnionDiscriminator) return 1;\n const aTotal = getTotalComplexity(comp, a);\n const bTotal = getTotalComplexity(comp, b);\n return aTotal - bTotal;\n}\n\nexport function sortDiscriminatorsFirst(a: BaseRunType, b: BaseRunType): number {\n if (a.getFamily() === 'M' && b.getFamily() === 'M') {\n const aIsDiscriminator = (a as PropertyRunType).isUnionDiscriminator;\n const bIsDiscriminator = (b as PropertyRunType).isUnionDiscriminator;\n if (aIsDiscriminator && !bIsDiscriminator) return -1;\n if (!aIsDiscriminator && bIsDiscriminator) return 1;\n }\n return 0;\n}\n\nexport function createIfElseFn(): (isEnd?: boolean) => string {\n let isFirst = true;\n return (end = false) => {\n const elseIf = end ? 'else' : 'else if';\n const iF = isFirst ? 'if' : elseIf;\n isFirst = false;\n return iF;\n };\n}\n\nexport function getJitFnArgCallVarName(parentComp: JitFnCompiler, rt: BaseRunType, idFnToCall: JitFnID, argKey: string): string {\n const fnConfig = getJitFnSettings(idFnToCall);\n const defaultArgVal = fnConfig.jitDefaultArgs[argKey];\n // vλl is a special case because it is the only arg that changes based on the stack\n if (argKey === 'vλl' && fnConfig.noInitialVλl) return 'undefined'; // when no initial vλl is required, we pass undefined\n if (argKey === 'vλl') return parentComp.getCurrentStackItem().vλl; // when vλl is required we pass the current stack item\n\n // first check if the arg is provided by the context\n const varNameFromContext = parentComp.getChildrenCallArgs(idFnToCall)?.[argKey];\n if (varNameFromContext) return varNameFromContext;\n // then check if the arg is provided by the parent function\n const varNameFromParent = parentComp.args[argKey];\n if (varNameFromParent) return varNameFromParent;\n // if neither the parent nor the context has the arg, we create a new default value in the context\n // if there is no default value, we can't call the function\n if (!defaultArgVal)\n throw new Error(\n `Can not call jit function ${idFnToCall} because it requires argument ${argKey} but it is not provided,\n neither in the parent function nor in the function context and there is no default value for it.`\n );\n const defaultName = fnConfig.jitArgs[argKey];\n const optsVarName = `${defaultName}_${idFnToCall}0`; // we don't need to use nestLevel as value is the same for all calls\n parentComp.setContextItem(optsVarName, `const ${optsVarName} = ${defaultArgVal}`);\n return optsVarName;\n}\n\n/**\n * Returns true if the parent of the runType is of the given kind.\n * handles special case of union types, as we need to check the parent of the union.\n * @param rt\n * @param kind\n * @returns\n */\nexport function parentIs(rt: BaseRunType, kind: ReflectionKind | ReflectionKind[]): boolean {\n const parentRT = rt.getParent();\n if (!parentRT) return false;\n if (parentRT.src.kind === ReflectionKind.union) return parentIs(parentRT, kind);\n if (Array.isArray(kind) ? kind.includes(parentRT.src.kind) : parentRT.src.kind === kind) return true;\n return false;\n}\n\n/** Add full stop to code if needed */\nexport function addFullStop(code: string): string {\n if (!code) return code;\n const lastChar = code.length - 1;\n const hasFullStop = code[lastChar] === ';';\n if (hasFullStop) return code;\n const hasBlockClose = code[lastChar] === '}';\n return hasBlockClose ? code : `${code};`;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ export declare const mockRegExpsList: RegExp[];
2
+ export declare const stringCharSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .>?<~!@#$%^&*()_+-=[]{}|;:,";
3
+ export declare const emailLocalPartSymbols = "._%-";
4
+ export declare const anyValuesList: (string | number | bigint | boolean | symbol | RegExp | (string | number)[] | Set<string | number> | Date | Map<string, number> | {
5
+ hello?: undefined;
6
+ } | {
7
+ hello: string;
8
+ } | null | undefined)[];
9
+ export declare const mockObjectList: ({
10
+ a?: undefined;
11
+ b?: undefined;
12
+ c?: undefined;
13
+ d?: undefined;
14
+ } | {
15
+ a: number;
16
+ b?: undefined;
17
+ c?: undefined;
18
+ d?: undefined;
19
+ } | {
20
+ b: number;
21
+ a?: undefined;
22
+ c?: undefined;
23
+ d?: undefined;
24
+ } | {
25
+ a: number;
26
+ b: string;
27
+ c?: undefined;
28
+ d?: undefined;
29
+ } | {
30
+ a: number;
31
+ b: number;
32
+ c: number;
33
+ d?: undefined;
34
+ } | {
35
+ a: string;
36
+ b: number;
37
+ c: string;
38
+ d: number;
39
+ })[];
40
+ export declare const defaultMockOptions: {
41
+ anyValuesList: (string | number | bigint | boolean | symbol | RegExp | (string | number)[] | Set<string | number> | Date | Map<string, number> | {
42
+ hello?: undefined;
43
+ } | {
44
+ hello: string;
45
+ } | null | undefined)[];
46
+ promiseTimeOut: number;
47
+ regexpList: RegExp[];
48
+ maxRandomStringLength: number;
49
+ stringCharSet: string;
50
+ maxRandomItemsLength: number;
51
+ optionalProbability: number;
52
+ objectList: ({
53
+ a?: undefined;
54
+ b?: undefined;
55
+ c?: undefined;
56
+ d?: undefined;
57
+ } | {
58
+ a: number;
59
+ b?: undefined;
60
+ c?: undefined;
61
+ d?: undefined;
62
+ } | {
63
+ b: number;
64
+ a?: undefined;
65
+ c?: undefined;
66
+ d?: undefined;
67
+ } | {
68
+ a: number;
69
+ b: string;
70
+ c?: undefined;
71
+ d?: undefined;
72
+ } | {
73
+ a: number;
74
+ b: number;
75
+ c: number;
76
+ d?: undefined;
77
+ } | {
78
+ a: string;
79
+ b: number;
80
+ c: string;
81
+ d: number;
82
+ })[];
83
+ maxStackDepth: number;
84
+ maxMockRecursion: number;
85
+ };
@@ -0,0 +1,108 @@
1
+ const mockRegExpsList = [
2
+ /abc/,
3
+ // Matches the string 'abc'
4
+ /def/,
5
+ // Matches the string 'def'
6
+ /123/,
7
+ // Matches the string '123'
8
+ /xyz/,
9
+ // Matches the string 'xyz'
10
+ /[\w]+/,
11
+ // Matches one or more word characters
12
+ /\d{3}-\d{3}-\d{4}/,
13
+ // Matches a phone number in the format XXX-XXX-XXXX
14
+ /[A-Z]/,
15
+ // Matches a single uppercase letter
16
+ /[a-z]/,
17
+ // Matches a single lowercase letter
18
+ /\d+/,
19
+ // Matches one or more digits
20
+ /\s+/,
21
+ // Matches one or more whitespace characters
22
+ /^https:\/\/[\w.-]+\.[a-zA-Z]{2,}$/i,
23
+ // Matches a URL starting with http:// or https://
24
+ /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/i,
25
+ // Matches an email address
26
+ /\b\d{2}\/\d{2}\/\d{4}\b/,
27
+ // Matches a date in the format MM/DD/YYYY
28
+ /\b\d{1,2}:\d{2}\b/,
29
+ // Matches a time in the format HH:MM
30
+ /\b\d{1,2}:\d{2}:\d{2}\b/,
31
+ // Matches a time in the format HH:MM:SS
32
+ /\b\d{1,2}\/\d{1,2}\/\d{2}\b/,
33
+ // Matches a date in the format M/D/YY
34
+ /\b\d{1,2}\/\d{1,2}\/\d{4}\b/,
35
+ // Matches a date in the format M/D/YYYY
36
+ /\b\d{1,2}:\d{2}:\d{2} [AP]M\b/,
37
+ // Matches a time in the format HH:MM:SS AM/PM
38
+ /\b\d{1,2}:\d{2} [AP]M\b/,
39
+ // Matches a time in the format HH:MM AM/PM
40
+ /abc/gi,
41
+ // Matches the string 'abc' with the global and case-insensitive flags
42
+ /['"]/,
43
+ // regexp that contains single and double quotes
44
+ /\/(.*)\/(.*)?/,
45
+ // regexp that contains a slash
46
+ /\/\//,
47
+ // regexp that contains two slashes
48
+ /`/,
49
+ // regexp that contains backticks
50
+ /\/\\\//
51
+ // regexp double scaped \\
52
+ ];
53
+ const stringCharSet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .>?<~!@#$%^&*()_+-=[]{}|;:,";
54
+ const emailLocalPartSymbols = "._%-";
55
+ const anyValuesList = [
56
+ {},
57
+ { hello: "world" },
58
+ [],
59
+ [1, 3, "hello"],
60
+ "hello",
61
+ 1234,
62
+ BigInt(1),
63
+ true,
64
+ false,
65
+ null,
66
+ void 0,
67
+ /* @__PURE__ */ Symbol("hello"),
68
+ -124,
69
+ 0,
70
+ 124,
71
+ 0.1,
72
+ -0.1,
73
+ Infinity,
74
+ NaN,
75
+ /* @__PURE__ */ new Date(),
76
+ /abc/,
77
+ /* @__PURE__ */ new Map([
78
+ ["zero", 0],
79
+ ["one", 1],
80
+ ["two", 2],
81
+ ["three", 3],
82
+ ["four", 4]
83
+ ]),
84
+ /* @__PURE__ */ new Set(["zero", 1, 2, 3, "four"])
85
+ ];
86
+ const mockObjectList = [{}, { a: 1 }, { b: 2 }, { a: 1, b: "hello" }, { a: 1, b: 2, c: 3 }, { a: "hello", b: 2, c: "wold", d: 4 }];
87
+ const defaultMockOptions = {
88
+ anyValuesList,
89
+ promiseTimeOut: 1,
90
+ regexpList: mockRegExpsList,
91
+ maxRandomStringLength: 100,
92
+ stringCharSet,
93
+ maxRandomItemsLength: 60,
94
+ /** probability to generate options types, number between 0 and 1 */
95
+ optionalProbability: 0.5,
96
+ objectList: mockObjectList,
97
+ maxStackDepth: 50,
98
+ maxMockRecursion: 10
99
+ };
100
+ export {
101
+ anyValuesList,
102
+ defaultMockOptions,
103
+ emailLocalPartSymbols,
104
+ mockObjectList,
105
+ mockRegExpsList,
106
+ stringCharSet
107
+ };
108
+ //# sourceMappingURL=constants.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mock.js","sources":["../../../../src/mocking/constants.mock.ts"],"sourcesContent":["/* ########\n * 2024 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {MockOptions} from '../types.ts';\n\nexport const mockRegExpsList = [\n /abc/, // Matches the string 'abc'\n /def/, // Matches the string 'def'\n /123/, // Matches the string '123'\n /xyz/, // Matches the string 'xyz'\n /[\\w]+/, // Matches one or more word characters\n /\\d{3}-\\d{3}-\\d{4}/, // Matches a phone number in the format XXX-XXX-XXXX\n /[A-Z]/, // Matches a single uppercase letter\n /[a-z]/, // Matches a single lowercase letter\n /\\d+/, // Matches one or more digits\n /\\s+/, // Matches one or more whitespace characters\n /^https:\\/\\/[\\w.-]+\\.[a-zA-Z]{2,}$/i, // Matches a URL starting with http:// or https://\n /\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b/i, // Matches an email address\n /\\b\\d{2}\\/\\d{2}\\/\\d{4}\\b/, // Matches a date in the format MM/DD/YYYY\n /\\b\\d{1,2}:\\d{2}\\b/, // Matches a time in the format HH:MM\n /\\b\\d{1,2}:\\d{2}:\\d{2}\\b/, // Matches a time in the format HH:MM:SS\n /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{2}\\b/, // Matches a date in the format M/D/YY\n /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{4}\\b/, // Matches a date in the format M/D/YYYY\n /\\b\\d{1,2}:\\d{2}:\\d{2} [AP]M\\b/, // Matches a time in the format HH:MM:SS AM/PM\n /\\b\\d{1,2}:\\d{2} [AP]M\\b/, // Matches a time in the format HH:MM AM/PM\n /abc/gi, // Matches the string 'abc' with the global and case-insensitive flags\n /['\"]/, // regexp that contains single and double quotes\n /\\/(.*)\\/(.*)?/, // regexp that contains a slash\n /\\/\\//, // regexp that contains two slashes\n /`/, // regexp that contains backticks\n /\\/\\\\\\//, // regexp double scaped \\\\\n];\n\nexport const stringCharSet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .>?<~!@#$%^&*()_+-=[]{}|;:,';\nexport const emailLocalPartSymbols = '._%-';\n\nexport const anyValuesList = [\n {},\n {hello: 'world'},\n [],\n [1, 3, 'hello'],\n 'hello',\n 1234,\n BigInt(1),\n true,\n false,\n null,\n undefined,\n Symbol('hello'),\n -124,\n 0,\n 124,\n 0.1,\n -0.1,\n Infinity,\n NaN,\n new Date(),\n /abc/,\n new Map([\n ['zero', 0],\n ['one', 1],\n ['two', 2],\n ['three', 3],\n ['four', 4],\n ]),\n new Set(['zero', 1, 2, 3, 'four']),\n];\n\nexport const mockObjectList = [{}, {a: 1}, {b: 2}, {a: 1, b: 'hello'}, {a: 1, b: 2, c: 3}, {a: 'hello', b: 2, c: 'wold', d: 4}];\n\nexport const defaultMockOptions = {\n anyValuesList,\n promiseTimeOut: 1,\n regexpList: mockRegExpsList,\n maxRandomStringLength: 100,\n stringCharSet,\n maxRandomItemsLength: 60,\n /** probability to generate options types, number between 0 and 1 */\n optionalProbability: 0.5,\n objectList: mockObjectList,\n maxStackDepth: 50,\n maxMockRecursion: 10,\n} satisfies MockOptions;\n"],"names":[],"mappings":"AASO,MAAM,kBAAkB;AAAA,EAC3B;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAAA;AACJ;AAEO,MAAM,gBAAgB;AACtB,MAAM,wBAAwB;AAE9B,MAAM,gBAAgB;AAAA,EACzB,CAAA;AAAA,EACA,EAAC,OAAO,QAAA;AAAA,EACR,CAAA;AAAA,EACA,CAAC,GAAG,GAAG,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA,OAAO,CAAC;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,yBACO,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,sBACI,KAAA;AAAA,EACJ;AAAA,sBACI,IAAI;AAAA,IACJ,CAAC,QAAQ,CAAC;AAAA,IACV,CAAC,OAAO,CAAC;AAAA,IACT,CAAC,OAAO,CAAC;AAAA,IACT,CAAC,SAAS,CAAC;AAAA,IACX,CAAC,QAAQ,CAAC;AAAA,EAAA,CACb;AAAA,EACD,oBAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC;AACrC;AAEO,MAAM,iBAAiB,CAAC,CAAA,GAAI,EAAC,GAAG,EAAA,GAAI,EAAC,GAAG,EAAA,GAAI,EAAC,GAAG,GAAG,GAAG,QAAA,GAAU,EAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAI,EAAC,GAAG,SAAS,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAE;AAEvH,MAAM,qBAAqB;AAAA,EAC9B;AAAA,EACA,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,uBAAuB;AAAA,EACvB;AAAA,EACA,sBAAsB;AAAA;AAAA,EAEtB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,kBAAkB;AACtB;"}
@@ -0,0 +1,3 @@
1
+ import { JitFnCompiler } from '../lib/jitFnCompiler.ts';
2
+ export declare function getMockCompiler(fnHash: string): JitFnCompiler;
3
+ export declare function setMockCompiler(fnHash: string, comp: JitFnCompiler): void;
@@ -0,0 +1,12 @@
1
+ const mockCompCache = /* @__PURE__ */ new Map();
2
+ function getMockCompiler(fnHash) {
3
+ return mockCompCache.get(fnHash);
4
+ }
5
+ function setMockCompiler(fnHash, comp) {
6
+ mockCompCache.set(fnHash, comp);
7
+ }
8
+ export {
9
+ getMockCompiler,
10
+ setMockCompiler
11
+ };
12
+ //# sourceMappingURL=mockRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockRegistry.js","sources":["../../../../src/mocking/mockRegistry.ts"],"sourcesContent":["/* ########\n * 2025 mion\n * Author: Ma-jerez\n * License: MIT\n * The software is provided \"as is\", without warranty of any kind.\n * ######## */\n\nimport {JitFnCompiler} from '../lib/jitFnCompiler.ts';\n\n// TODO, as mock could return results async with mock promises\n// we might need an unique JitCompiler, for each mock to avoid problems with the stack\nconst mockCompCache = new Map<string, JitFnCompiler>();\n\nexport function getMockCompiler(fnHash: string): JitFnCompiler {\n return mockCompCache.get(fnHash)!;\n}\n\nexport function setMockCompiler(fnHash: string, comp: JitFnCompiler): void {\n mockCompCache.set(fnHash, comp);\n}\n"],"names":[],"mappings":"AAWA,MAAM,oCAAoB,IAAA;AAEnB,SAAS,gBAAgB,QAA+B;AAC3D,SAAO,cAAc,IAAI,MAAM;AACnC;AAEO,SAAS,gBAAgB,QAAgB,MAA2B;AACvE,gBAAc,IAAI,QAAQ,IAAI;AAClC;"}
@@ -0,0 +1,3 @@
1
+ import { BaseRunType } from '../lib/baseRunTypes.ts';
2
+ import { JitFnCompiler } from '../lib/jitFnCompiler.ts';
3
+ export declare function mockType(runType: BaseRunType, comp: JitFnCompiler, stack?: BaseRunType[]): any;