@mionjs/run-types 0.8.7 → 0.8.10

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 (396) hide show
  1. package/.dist/cjs/index.d.ts +1 -0
  2. package/.dist/cjs/index.d.ts.map +1 -0
  3. package/.dist/cjs/src/constants.d.ts +1 -0
  4. package/.dist/cjs/src/constants.d.ts.map +1 -0
  5. package/.dist/cjs/src/constants.functions.d.ts +1 -0
  6. package/.dist/cjs/src/constants.functions.d.ts.map +1 -0
  7. package/.dist/cjs/src/constants.kind.d.ts +1 -0
  8. package/.dist/cjs/src/constants.kind.d.ts.map +1 -0
  9. package/.dist/cjs/src/createRunType.cjs +3 -1
  10. package/.dist/cjs/src/createRunType.cjs.map +1 -1
  11. package/.dist/cjs/src/createRunType.d.ts +1 -0
  12. package/.dist/cjs/src/createRunType.d.ts.map +1 -0
  13. package/.dist/cjs/src/createRunTypeFunctions.d.ts +1 -0
  14. package/.dist/cjs/src/createRunTypeFunctions.d.ts.map +1 -0
  15. package/.dist/cjs/src/formats.runtype.d.ts +1 -0
  16. package/.dist/cjs/src/formats.runtype.d.ts.map +1 -0
  17. package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +1 -0
  18. package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +1 -0
  19. package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs +1 -1
  20. package/.dist/cjs/src/jitCompilers/binary/fromBinary.cjs.map +1 -1
  21. package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts +1 -0
  22. package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts.map +1 -0
  23. package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs +1 -1
  24. package/.dist/cjs/src/jitCompilers/binary/toBinary.cjs.map +1 -1
  25. package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts +1 -0
  26. package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts.map +1 -0
  27. package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts +1 -0
  28. package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts.map +1 -0
  29. package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +1 -0
  30. package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +1 -0
  31. package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs +1 -1
  32. package/.dist/cjs/src/jitCompilers/json/stringifyJson.cjs.map +1 -1
  33. package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts +1 -0
  34. package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts.map +1 -0
  35. package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +1 -0
  36. package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +1 -0
  37. package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts +1 -0
  38. package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts.map +1 -0
  39. package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts +1 -0
  40. package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts.map +1 -0
  41. package/.dist/cjs/src/lib/baseRunTypes.d.ts +1 -0
  42. package/.dist/cjs/src/lib/baseRunTypes.d.ts.map +1 -0
  43. package/.dist/cjs/src/lib/createJitFunction.d.ts +1 -0
  44. package/.dist/cjs/src/lib/createJitFunction.d.ts.map +1 -0
  45. package/.dist/cjs/src/lib/dkProxy.d.ts +1 -0
  46. package/.dist/cjs/src/lib/dkProxy.d.ts.map +1 -0
  47. package/.dist/cjs/src/lib/formats.d.ts +1 -0
  48. package/.dist/cjs/src/lib/formats.d.ts.map +1 -0
  49. package/.dist/cjs/src/lib/guards.d.ts +1 -0
  50. package/.dist/cjs/src/lib/guards.d.ts.map +1 -0
  51. package/.dist/cjs/src/lib/jitFnCompiler.d.ts +1 -0
  52. package/.dist/cjs/src/lib/jitFnCompiler.d.ts.map +1 -0
  53. package/.dist/cjs/src/lib/jitFnsRegistry.d.ts +1 -0
  54. package/.dist/cjs/src/lib/jitFnsRegistry.d.ts.map +1 -0
  55. package/.dist/cjs/src/lib/typeId.d.ts +1 -0
  56. package/.dist/cjs/src/lib/typeId.d.ts.map +1 -0
  57. package/.dist/cjs/src/lib/utils.d.ts +1 -0
  58. package/.dist/cjs/src/lib/utils.d.ts.map +1 -0
  59. package/.dist/cjs/src/mocking/constants.mock.d.ts +1 -0
  60. package/.dist/cjs/src/mocking/constants.mock.d.ts.map +1 -0
  61. package/.dist/cjs/src/mocking/mockRegistry.d.ts +1 -0
  62. package/.dist/cjs/src/mocking/mockRegistry.d.ts.map +1 -0
  63. package/.dist/cjs/src/mocking/mockType.cjs +46 -1
  64. package/.dist/cjs/src/mocking/mockType.cjs.map +1 -1
  65. package/.dist/cjs/src/mocking/mockType.d.ts +1 -0
  66. package/.dist/cjs/src/mocking/mockType.d.ts.map +1 -0
  67. package/.dist/cjs/src/mocking/mockUtils.d.ts +1 -0
  68. package/.dist/cjs/src/mocking/mockUtils.d.ts.map +1 -0
  69. package/.dist/cjs/src/nodes/atomic/any.d.ts +1 -0
  70. package/.dist/cjs/src/nodes/atomic/any.d.ts.map +1 -0
  71. package/.dist/cjs/src/nodes/atomic/bigInt.d.ts +1 -0
  72. package/.dist/cjs/src/nodes/atomic/bigInt.d.ts.map +1 -0
  73. package/.dist/cjs/src/nodes/atomic/boolean.d.ts +1 -0
  74. package/.dist/cjs/src/nodes/atomic/boolean.d.ts.map +1 -0
  75. package/.dist/cjs/src/nodes/atomic/date.d.ts +1 -0
  76. package/.dist/cjs/src/nodes/atomic/date.d.ts.map +1 -0
  77. package/.dist/cjs/src/nodes/atomic/enum.d.ts +1 -0
  78. package/.dist/cjs/src/nodes/atomic/enum.d.ts.map +1 -0
  79. package/.dist/cjs/src/nodes/atomic/enumMember.d.ts +1 -0
  80. package/.dist/cjs/src/nodes/atomic/enumMember.d.ts.map +1 -0
  81. package/.dist/cjs/src/nodes/atomic/literal.d.ts +1 -0
  82. package/.dist/cjs/src/nodes/atomic/literal.d.ts.map +1 -0
  83. package/.dist/cjs/src/nodes/atomic/never.d.ts +1 -0
  84. package/.dist/cjs/src/nodes/atomic/never.d.ts.map +1 -0
  85. package/.dist/cjs/src/nodes/atomic/null.d.ts +1 -0
  86. package/.dist/cjs/src/nodes/atomic/null.d.ts.map +1 -0
  87. package/.dist/cjs/src/nodes/atomic/number.d.ts +1 -0
  88. package/.dist/cjs/src/nodes/atomic/number.d.ts.map +1 -0
  89. package/.dist/cjs/src/nodes/atomic/object.d.ts +1 -0
  90. package/.dist/cjs/src/nodes/atomic/object.d.ts.map +1 -0
  91. package/.dist/cjs/src/nodes/atomic/regexp.d.ts +1 -0
  92. package/.dist/cjs/src/nodes/atomic/regexp.d.ts.map +1 -0
  93. package/.dist/cjs/src/nodes/atomic/string.d.ts +1 -0
  94. package/.dist/cjs/src/nodes/atomic/string.d.ts.map +1 -0
  95. package/.dist/cjs/src/nodes/atomic/symbol.d.ts +1 -0
  96. package/.dist/cjs/src/nodes/atomic/symbol.d.ts.map +1 -0
  97. package/.dist/cjs/src/nodes/atomic/undefined.d.ts +1 -0
  98. package/.dist/cjs/src/nodes/atomic/undefined.d.ts.map +1 -0
  99. package/.dist/cjs/src/nodes/atomic/unknown.d.ts +1 -0
  100. package/.dist/cjs/src/nodes/atomic/unknown.d.ts.map +1 -0
  101. package/.dist/cjs/src/nodes/atomic/void.d.ts +1 -0
  102. package/.dist/cjs/src/nodes/atomic/void.d.ts.map +1 -0
  103. package/.dist/cjs/src/nodes/collection/class.d.ts +1 -0
  104. package/.dist/cjs/src/nodes/collection/class.d.ts.map +1 -0
  105. package/.dist/cjs/src/nodes/collection/functionParams.d.ts +1 -0
  106. package/.dist/cjs/src/nodes/collection/functionParams.d.ts.map +1 -0
  107. package/.dist/cjs/src/nodes/collection/interface.d.ts +1 -0
  108. package/.dist/cjs/src/nodes/collection/interface.d.ts.map +1 -0
  109. package/.dist/cjs/src/nodes/collection/intersection.d.ts +1 -0
  110. package/.dist/cjs/src/nodes/collection/intersection.d.ts.map +1 -0
  111. package/.dist/cjs/src/nodes/collection/templateLiteral.cjs +73 -0
  112. package/.dist/cjs/src/nodes/collection/templateLiteral.cjs.map +1 -0
  113. package/.dist/cjs/src/nodes/collection/templateLiteral.d.ts +16 -0
  114. package/.dist/cjs/src/nodes/collection/templateLiteral.d.ts.map +1 -0
  115. package/.dist/cjs/src/nodes/collection/tuple.d.ts +1 -0
  116. package/.dist/cjs/src/nodes/collection/tuple.d.ts.map +1 -0
  117. package/.dist/cjs/src/nodes/collection/union.d.ts +1 -0
  118. package/.dist/cjs/src/nodes/collection/union.d.ts.map +1 -0
  119. package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts +1 -0
  120. package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts.map +1 -0
  121. package/.dist/cjs/src/nodes/function/function.d.ts +1 -0
  122. package/.dist/cjs/src/nodes/function/function.d.ts.map +1 -0
  123. package/.dist/cjs/src/nodes/member/array.d.ts +1 -0
  124. package/.dist/cjs/src/nodes/member/array.d.ts.map +1 -0
  125. package/.dist/cjs/src/nodes/member/callSignature.d.ts +1 -0
  126. package/.dist/cjs/src/nodes/member/callSignature.d.ts.map +1 -0
  127. package/.dist/cjs/src/nodes/member/genericMember.d.ts +1 -0
  128. package/.dist/cjs/src/nodes/member/genericMember.d.ts.map +1 -0
  129. package/.dist/cjs/src/nodes/member/indexProperty.cjs +69 -22
  130. package/.dist/cjs/src/nodes/member/indexProperty.cjs.map +1 -1
  131. package/.dist/cjs/src/nodes/member/indexProperty.d.ts +2 -0
  132. package/.dist/cjs/src/nodes/member/indexProperty.d.ts.map +1 -0
  133. package/.dist/cjs/src/nodes/member/method.d.ts +1 -0
  134. package/.dist/cjs/src/nodes/member/method.d.ts.map +1 -0
  135. package/.dist/cjs/src/nodes/member/methodSignature.d.ts +1 -0
  136. package/.dist/cjs/src/nodes/member/methodSignature.d.ts.map +1 -0
  137. package/.dist/cjs/src/nodes/member/param.d.ts +1 -0
  138. package/.dist/cjs/src/nodes/member/param.d.ts.map +1 -0
  139. package/.dist/cjs/src/nodes/member/property.d.ts +1 -0
  140. package/.dist/cjs/src/nodes/member/property.d.ts.map +1 -0
  141. package/.dist/cjs/src/nodes/member/restParams.d.ts +1 -0
  142. package/.dist/cjs/src/nodes/member/restParams.d.ts.map +1 -0
  143. package/.dist/cjs/src/nodes/member/tupleMember.d.ts +1 -0
  144. package/.dist/cjs/src/nodes/member/tupleMember.d.ts.map +1 -0
  145. package/.dist/cjs/src/nodes/native/Iterable.d.ts +1 -0
  146. package/.dist/cjs/src/nodes/native/Iterable.d.ts.map +1 -0
  147. package/.dist/cjs/src/nodes/native/map.d.ts +1 -0
  148. package/.dist/cjs/src/nodes/native/map.d.ts.map +1 -0
  149. package/.dist/cjs/src/nodes/native/nonSerializable.d.ts +1 -0
  150. package/.dist/cjs/src/nodes/native/nonSerializable.d.ts.map +1 -0
  151. package/.dist/cjs/src/nodes/native/promise.d.ts +1 -0
  152. package/.dist/cjs/src/nodes/native/promise.d.ts.map +1 -0
  153. package/.dist/cjs/src/nodes/native/set.d.ts +1 -0
  154. package/.dist/cjs/src/nodes/native/set.d.ts.map +1 -0
  155. package/.dist/cjs/src/run-types-pure-fns.d.ts +1 -0
  156. package/.dist/cjs/src/run-types-pure-fns.d.ts.map +1 -0
  157. package/.dist/cjs/src/types.d.ts +1 -0
  158. package/.dist/cjs/src/types.d.ts.map +1 -0
  159. package/.dist/esm/index.d.ts +1 -0
  160. package/.dist/esm/index.d.ts.map +1 -0
  161. package/.dist/esm/src/constants.d.ts +1 -0
  162. package/.dist/esm/src/constants.d.ts.map +1 -0
  163. package/.dist/esm/src/constants.functions.d.ts +1 -0
  164. package/.dist/esm/src/constants.functions.d.ts.map +1 -0
  165. package/.dist/esm/src/constants.kind.d.ts +1 -0
  166. package/.dist/esm/src/constants.kind.d.ts.map +1 -0
  167. package/.dist/esm/src/createRunType.d.ts +1 -0
  168. package/.dist/esm/src/createRunType.d.ts.map +1 -0
  169. package/.dist/esm/src/createRunType.js +3 -1
  170. package/.dist/esm/src/createRunType.js.map +1 -1
  171. package/.dist/esm/src/createRunTypeFunctions.d.ts +1 -0
  172. package/.dist/esm/src/createRunTypeFunctions.d.ts.map +1 -0
  173. package/.dist/esm/src/formats.runtype.d.ts +1 -0
  174. package/.dist/esm/src/formats.runtype.d.ts.map +1 -0
  175. package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +1 -0
  176. package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +1 -0
  177. package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts +1 -0
  178. package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts.map +1 -0
  179. package/.dist/esm/src/jitCompilers/binary/fromBinary.js +1 -1
  180. package/.dist/esm/src/jitCompilers/binary/fromBinary.js.map +1 -1
  181. package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts +1 -0
  182. package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts.map +1 -0
  183. package/.dist/esm/src/jitCompilers/binary/toBinary.js +1 -1
  184. package/.dist/esm/src/jitCompilers/binary/toBinary.js.map +1 -1
  185. package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts +1 -0
  186. package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts.map +1 -0
  187. package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +1 -0
  188. package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +1 -0
  189. package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts +1 -0
  190. package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts.map +1 -0
  191. package/.dist/esm/src/jitCompilers/json/stringifyJson.js +1 -1
  192. package/.dist/esm/src/jitCompilers/json/stringifyJson.js.map +1 -1
  193. package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +1 -0
  194. package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +1 -0
  195. package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts +1 -0
  196. package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts.map +1 -0
  197. package/.dist/esm/src/lib/baseRunTypeFormat.d.ts +1 -0
  198. package/.dist/esm/src/lib/baseRunTypeFormat.d.ts.map +1 -0
  199. package/.dist/esm/src/lib/baseRunTypes.d.ts +1 -0
  200. package/.dist/esm/src/lib/baseRunTypes.d.ts.map +1 -0
  201. package/.dist/esm/src/lib/createJitFunction.d.ts +1 -0
  202. package/.dist/esm/src/lib/createJitFunction.d.ts.map +1 -0
  203. package/.dist/esm/src/lib/dkProxy.d.ts +1 -0
  204. package/.dist/esm/src/lib/dkProxy.d.ts.map +1 -0
  205. package/.dist/esm/src/lib/formats.d.ts +1 -0
  206. package/.dist/esm/src/lib/formats.d.ts.map +1 -0
  207. package/.dist/esm/src/lib/guards.d.ts +1 -0
  208. package/.dist/esm/src/lib/guards.d.ts.map +1 -0
  209. package/.dist/esm/src/lib/jitFnCompiler.d.ts +1 -0
  210. package/.dist/esm/src/lib/jitFnCompiler.d.ts.map +1 -0
  211. package/.dist/esm/src/lib/jitFnsRegistry.d.ts +1 -0
  212. package/.dist/esm/src/lib/jitFnsRegistry.d.ts.map +1 -0
  213. package/.dist/esm/src/lib/typeId.d.ts +1 -0
  214. package/.dist/esm/src/lib/typeId.d.ts.map +1 -0
  215. package/.dist/esm/src/lib/utils.d.ts +1 -0
  216. package/.dist/esm/src/lib/utils.d.ts.map +1 -0
  217. package/.dist/esm/src/mocking/constants.mock.d.ts +1 -0
  218. package/.dist/esm/src/mocking/constants.mock.d.ts.map +1 -0
  219. package/.dist/esm/src/mocking/mockRegistry.d.ts +1 -0
  220. package/.dist/esm/src/mocking/mockRegistry.d.ts.map +1 -0
  221. package/.dist/esm/src/mocking/mockType.d.ts +1 -0
  222. package/.dist/esm/src/mocking/mockType.d.ts.map +1 -0
  223. package/.dist/esm/src/mocking/mockType.js +47 -2
  224. package/.dist/esm/src/mocking/mockType.js.map +1 -1
  225. package/.dist/esm/src/mocking/mockUtils.d.ts +1 -0
  226. package/.dist/esm/src/mocking/mockUtils.d.ts.map +1 -0
  227. package/.dist/esm/src/mocking/mockUtils.js +1 -1
  228. package/.dist/esm/src/nodes/atomic/any.d.ts +1 -0
  229. package/.dist/esm/src/nodes/atomic/any.d.ts.map +1 -0
  230. package/.dist/esm/src/nodes/atomic/bigInt.d.ts +1 -0
  231. package/.dist/esm/src/nodes/atomic/bigInt.d.ts.map +1 -0
  232. package/.dist/esm/src/nodes/atomic/boolean.d.ts +1 -0
  233. package/.dist/esm/src/nodes/atomic/boolean.d.ts.map +1 -0
  234. package/.dist/esm/src/nodes/atomic/date.d.ts +1 -0
  235. package/.dist/esm/src/nodes/atomic/date.d.ts.map +1 -0
  236. package/.dist/esm/src/nodes/atomic/enum.d.ts +1 -0
  237. package/.dist/esm/src/nodes/atomic/enum.d.ts.map +1 -0
  238. package/.dist/esm/src/nodes/atomic/enumMember.d.ts +1 -0
  239. package/.dist/esm/src/nodes/atomic/enumMember.d.ts.map +1 -0
  240. package/.dist/esm/src/nodes/atomic/literal.d.ts +1 -0
  241. package/.dist/esm/src/nodes/atomic/literal.d.ts.map +1 -0
  242. package/.dist/esm/src/nodes/atomic/never.d.ts +1 -0
  243. package/.dist/esm/src/nodes/atomic/never.d.ts.map +1 -0
  244. package/.dist/esm/src/nodes/atomic/null.d.ts +1 -0
  245. package/.dist/esm/src/nodes/atomic/null.d.ts.map +1 -0
  246. package/.dist/esm/src/nodes/atomic/number.d.ts +1 -0
  247. package/.dist/esm/src/nodes/atomic/number.d.ts.map +1 -0
  248. package/.dist/esm/src/nodes/atomic/object.d.ts +1 -0
  249. package/.dist/esm/src/nodes/atomic/object.d.ts.map +1 -0
  250. package/.dist/esm/src/nodes/atomic/regexp.d.ts +1 -0
  251. package/.dist/esm/src/nodes/atomic/regexp.d.ts.map +1 -0
  252. package/.dist/esm/src/nodes/atomic/string.d.ts +1 -0
  253. package/.dist/esm/src/nodes/atomic/string.d.ts.map +1 -0
  254. package/.dist/esm/src/nodes/atomic/symbol.d.ts +1 -0
  255. package/.dist/esm/src/nodes/atomic/symbol.d.ts.map +1 -0
  256. package/.dist/esm/src/nodes/atomic/undefined.d.ts +1 -0
  257. package/.dist/esm/src/nodes/atomic/undefined.d.ts.map +1 -0
  258. package/.dist/esm/src/nodes/atomic/unknown.d.ts +1 -0
  259. package/.dist/esm/src/nodes/atomic/unknown.d.ts.map +1 -0
  260. package/.dist/esm/src/nodes/atomic/void.d.ts +1 -0
  261. package/.dist/esm/src/nodes/atomic/void.d.ts.map +1 -0
  262. package/.dist/esm/src/nodes/collection/class.d.ts +1 -0
  263. package/.dist/esm/src/nodes/collection/class.d.ts.map +1 -0
  264. package/.dist/esm/src/nodes/collection/functionParams.d.ts +1 -0
  265. package/.dist/esm/src/nodes/collection/functionParams.d.ts.map +1 -0
  266. package/.dist/esm/src/nodes/collection/interface.d.ts +1 -0
  267. package/.dist/esm/src/nodes/collection/interface.d.ts.map +1 -0
  268. package/.dist/esm/src/nodes/collection/intersection.d.ts +1 -0
  269. package/.dist/esm/src/nodes/collection/intersection.d.ts.map +1 -0
  270. package/.dist/esm/src/nodes/collection/templateLiteral.d.ts +16 -0
  271. package/.dist/esm/src/nodes/collection/templateLiteral.d.ts.map +1 -0
  272. package/.dist/esm/src/nodes/collection/templateLiteral.js +73 -0
  273. package/.dist/esm/src/nodes/collection/templateLiteral.js.map +1 -0
  274. package/.dist/esm/src/nodes/collection/tuple.d.ts +1 -0
  275. package/.dist/esm/src/nodes/collection/tuple.d.ts.map +1 -0
  276. package/.dist/esm/src/nodes/collection/union.d.ts +1 -0
  277. package/.dist/esm/src/nodes/collection/union.d.ts.map +1 -0
  278. package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts +1 -0
  279. package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts.map +1 -0
  280. package/.dist/esm/src/nodes/function/function.d.ts +1 -0
  281. package/.dist/esm/src/nodes/function/function.d.ts.map +1 -0
  282. package/.dist/esm/src/nodes/member/array.d.ts +1 -0
  283. package/.dist/esm/src/nodes/member/array.d.ts.map +1 -0
  284. package/.dist/esm/src/nodes/member/callSignature.d.ts +1 -0
  285. package/.dist/esm/src/nodes/member/callSignature.d.ts.map +1 -0
  286. package/.dist/esm/src/nodes/member/genericMember.d.ts +1 -0
  287. package/.dist/esm/src/nodes/member/genericMember.d.ts.map +1 -0
  288. package/.dist/esm/src/nodes/member/indexProperty.d.ts +2 -0
  289. package/.dist/esm/src/nodes/member/indexProperty.d.ts.map +1 -0
  290. package/.dist/esm/src/nodes/member/indexProperty.js +70 -23
  291. package/.dist/esm/src/nodes/member/indexProperty.js.map +1 -1
  292. package/.dist/esm/src/nodes/member/method.d.ts +1 -0
  293. package/.dist/esm/src/nodes/member/method.d.ts.map +1 -0
  294. package/.dist/esm/src/nodes/member/methodSignature.d.ts +1 -0
  295. package/.dist/esm/src/nodes/member/methodSignature.d.ts.map +1 -0
  296. package/.dist/esm/src/nodes/member/param.d.ts +1 -0
  297. package/.dist/esm/src/nodes/member/param.d.ts.map +1 -0
  298. package/.dist/esm/src/nodes/member/property.d.ts +1 -0
  299. package/.dist/esm/src/nodes/member/property.d.ts.map +1 -0
  300. package/.dist/esm/src/nodes/member/restParams.d.ts +1 -0
  301. package/.dist/esm/src/nodes/member/restParams.d.ts.map +1 -0
  302. package/.dist/esm/src/nodes/member/tupleMember.d.ts +1 -0
  303. package/.dist/esm/src/nodes/member/tupleMember.d.ts.map +1 -0
  304. package/.dist/esm/src/nodes/native/Iterable.d.ts +1 -0
  305. package/.dist/esm/src/nodes/native/Iterable.d.ts.map +1 -0
  306. package/.dist/esm/src/nodes/native/map.d.ts +1 -0
  307. package/.dist/esm/src/nodes/native/map.d.ts.map +1 -0
  308. package/.dist/esm/src/nodes/native/nonSerializable.d.ts +1 -0
  309. package/.dist/esm/src/nodes/native/nonSerializable.d.ts.map +1 -0
  310. package/.dist/esm/src/nodes/native/promise.d.ts +1 -0
  311. package/.dist/esm/src/nodes/native/promise.d.ts.map +1 -0
  312. package/.dist/esm/src/nodes/native/set.d.ts +1 -0
  313. package/.dist/esm/src/nodes/native/set.d.ts.map +1 -0
  314. package/.dist/esm/src/run-types-pure-fns.d.ts +1 -0
  315. package/.dist/esm/src/run-types-pure-fns.d.ts.map +1 -0
  316. package/.dist/esm/src/types.d.ts +1 -0
  317. package/.dist/esm/src/types.d.ts.map +1 -0
  318. package/index.ts +70 -0
  319. package/package.json +8 -4
  320. package/src/constants.functions.ts +196 -0
  321. package/src/constants.kind.ts +76 -0
  322. package/src/constants.ts +85 -0
  323. package/src/createRunType.ts +322 -0
  324. package/src/createRunTypeFunctions.ts +93 -0
  325. package/src/formats.runtype.ts +35 -0
  326. package/src/jitCompilers/binary/binarySPEC.md +138 -0
  327. package/src/jitCompilers/binary/binarySpec/binaryHelpers.ts +118 -0
  328. package/src/jitCompilers/binary/fromBinary.ts +493 -0
  329. package/src/jitCompilers/binary/toBinary.ts +436 -0
  330. package/src/jitCompilers/equalsHelpers.ts +62 -0
  331. package/src/jitCompilers/json/jsonSpec/jsonHelpers.ts +64 -0
  332. package/src/jitCompilers/json/stringifyJson.ts +476 -0
  333. package/src/jitCompilers/json/stringifySpec/stringifyHelpers.ts +59 -0
  334. package/src/jitCompilers/json/toJsCode.ts +182 -0
  335. package/src/jitCompilers/serialization-suite.ts +1689 -0
  336. package/src/jitCompilers/xyz-Template/fromXYZ.ts +212 -0
  337. package/src/jitCompilers/xyz-Template/toXYZ.ts +217 -0
  338. package/src/jitCompilers/xyz-Template/xyzReadme.md +6 -0
  339. package/src/jitCompilers/xyz-Template/xyzSpec/xyzHelpers.ts +66 -0
  340. package/src/lib/baseRunTypeFormat.ts +320 -0
  341. package/src/lib/baseRunTypes.ts +367 -0
  342. package/src/lib/createJitFunction.ts +87 -0
  343. package/src/lib/dkProxy.ts +47 -0
  344. package/src/lib/formats.ts +144 -0
  345. package/src/lib/guards.ts +290 -0
  346. package/src/lib/jitFnCompiler.ts +783 -0
  347. package/src/lib/jitFnsRegistry.ts +53 -0
  348. package/src/lib/typeId.ts +225 -0
  349. package/src/lib/utils.ts +402 -0
  350. package/src/mocking/constants.mock.ts +87 -0
  351. package/src/mocking/mockRegistry.ts +20 -0
  352. package/src/mocking/mockType.ts +409 -0
  353. package/src/mocking/mockUtils.ts +82 -0
  354. package/src/nodes/atomic/any.ts +22 -0
  355. package/src/nodes/atomic/bigInt.ts +26 -0
  356. package/src/nodes/atomic/boolean.ts +26 -0
  357. package/src/nodes/atomic/date.ts +26 -0
  358. package/src/nodes/atomic/enum.ts +23 -0
  359. package/src/nodes/atomic/enumMember.ts +29 -0
  360. package/src/nodes/atomic/literal.ts +125 -0
  361. package/src/nodes/atomic/never.ts +26 -0
  362. package/src/nodes/atomic/null.ts +26 -0
  363. package/src/nodes/atomic/number.ts +26 -0
  364. package/src/nodes/atomic/object.ts +20 -0
  365. package/src/nodes/atomic/regexp.ts +29 -0
  366. package/src/nodes/atomic/string.ts +20 -0
  367. package/src/nodes/atomic/symbol.ts +31 -0
  368. package/src/nodes/atomic/undefined.ts +23 -0
  369. package/src/nodes/atomic/unknown.ts +10 -0
  370. package/src/nodes/atomic/void.ts +26 -0
  371. package/src/nodes/collection/class.ts +36 -0
  372. package/src/nodes/collection/functionParams.ts +42 -0
  373. package/src/nodes/collection/interface.ts +300 -0
  374. package/src/nodes/collection/intersection.ts +30 -0
  375. package/src/nodes/collection/templateLiteral.ts +87 -0
  376. package/src/nodes/collection/tuple.ts +80 -0
  377. package/src/nodes/collection/union.ts +205 -0
  378. package/src/nodes/collection/unionDiscriminator.ts +259 -0
  379. package/src/nodes/function/function.ts +166 -0
  380. package/src/nodes/member/array.ts +150 -0
  381. package/src/nodes/member/callSignature.ts +34 -0
  382. package/src/nodes/member/genericMember.ts +63 -0
  383. package/src/nodes/member/indexProperty.ts +174 -0
  384. package/src/nodes/member/method.ts +30 -0
  385. package/src/nodes/member/methodSignature.ts +31 -0
  386. package/src/nodes/member/param.ts +22 -0
  387. package/src/nodes/member/property.ts +75 -0
  388. package/src/nodes/member/restParams.ts +22 -0
  389. package/src/nodes/member/tupleMember.ts +93 -0
  390. package/src/nodes/native/Iterable.ts +153 -0
  391. package/src/nodes/native/map.ts +91 -0
  392. package/src/nodes/native/nonSerializable.ts +42 -0
  393. package/src/nodes/native/promise.ts +43 -0
  394. package/src/nodes/native/set.ts +56 -0
  395. package/src/run-types-pure-fns.ts +116 -0
  396. package/src/types.ts +206 -0
@@ -1 +1 @@
1
- {"version":3,"file":"toBinary.cjs","sources":["../../../../../src/jitCompilers/binary/toBinary.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 {ReflectionKind} from '@deepkit/type';\nimport {ReflectionSubKind} from '../../constants.kind.ts';\nimport {jitBinarySerializerArgs, JitFunctions} from '../../constants.functions.ts';\nimport {createIfElseFn} from '../../lib/utils.ts';\nimport {MAX_UNION_ITEMS} from '../../constants.ts';\nimport type {JitCode} from '../../types.ts';\nimport type {BaseRunType} from '../../lib/baseRunTypes.ts';\nimport type {BaseFnCompiler} from '../../lib/jitFnCompiler.ts';\nimport type {ArrayRunType} from '../../nodes/member/array.ts';\nimport type {PropertyRunType} from '../../nodes/member/property.ts';\nimport type {InterfaceRunType} from '../../nodes/collection/interface.ts';\nimport type {IndexSignatureRunType} from '../../nodes/member/indexProperty.ts';\nimport type {ParameterRunType} from '../../nodes/member/param.ts';\nimport type {TupleRunType} from '../../nodes/collection/tuple.ts';\nimport type {UnionRunType} from '../../nodes/collection/union.ts';\nimport type {IterableRunType} from '../../nodes/native/Iterable.ts';\nimport type {LiteralRunType} from '../../nodes/atomic/literal.ts';\n\ntype BinaryCompiler = BaseFnCompiler<typeof jitBinarySerializerArgs, typeof JitFunctions.toBinary.id>;\nconst fnID = JitFunctions.toBinary.id;\n\n/**\n * Main Binary serialization compiler function\n * Generates JIT code to serialize values to Binary format following Binary 1.1 specification\n *\n * This function generates JavaScript expressions that return Uint8Array containing Binary bytes.\n */\nexport function emitToBinary(runType: BaseRunType, comp: BinaryCompiler): JitCode {\n const src = runType.src;\n const kind = src.kind;\n const sεr = comp.args.sεr;\n\n // hack is used in some case to increase the index passing an extra argument to view.set methods\n // ie: view.setUint32(index, value, littleEndian, index += 4);\n // setUint32 only accepts 3 arguments, but we use the 4rd one to increase the index on a single statement so code can be used as an expression\n\n switch (kind) {\n // ###################### ATOMIC TYPES ######################\n case ReflectionKind.unknown:\n case ReflectionKind.any: {\n // any is serialized as json string\n return {code: `${sεr}.serString(JSON.stringify(${comp.vλl}))`, type: 'S'};\n }\n case ReflectionKind.null:\n return {code: `${sεr}.view.setUint8(${sεr}.index++, 0)`, type: 'S'};\n case ReflectionKind.boolean:\n return {code: `${sεr}.view.setUint8(${sεr}.index++, !!${comp.vλl})`, type: 'S'};\n case ReflectionKind.number: {\n return {code: `${sεr}.view.setFloat64(${sεr}.index,${comp.vλl}, 1, (${sεr}.index += 8))`, type: 'S'};\n }\n case ReflectionKind.string: {\n return {code: `${sεr}.serString(${comp.vλl})`, type: 'S'};\n }\n case ReflectionKind.bigint: {\n return {code: `${sεr}.serString(${comp.vλl}.toString(), true)`, type: 'S'};\n }\n case ReflectionKind.undefined:\n case ReflectionKind.void:\n return {code: `${sεr}.view.setUint8(${sεr}.index++, 1)`, type: 'S'};\n case ReflectionKind.symbol: {\n return {code: `${sεr}.serString(${comp.vλl}.description || '')`, type: 'S'};\n }\n case ReflectionKind.regexp: {\n return {code: `${sεr}.serString(${comp.vλl}.source);${sεr}.serString(${comp.vλl}.flags)`, type: 'S'};\n }\n case ReflectionKind.object:\n // similar to any, this is serialized as json string\n return {code: `${sεr}.serString(JSON.stringify(${comp.vλl}))`, type: 'S'};\n case ReflectionKind.enum: {\n return {code: `${sεr}.serEnum(${comp.vλl})`, type: 'S'};\n }\n case ReflectionKind.enumMember:\n throw new Error('Binary serialization not supported for enum member types');\n case ReflectionKind.never:\n throw new Error('Never type cannot be serialized to Binary');\n case ReflectionKind.templateLiteral:\n throw new Error('Template literals are not supported in Binary serialization');\n case ReflectionKind.literal: {\n if (comp.opts.noLiterals) {\n const lit = (runType as LiteralRunType).src.literal;\n if (lit instanceof RegExp) return emitToBinaryAs(runType, comp, ReflectionKind.regexp);\n switch (typeof lit) {\n case 'string':\n return emitToBinaryAs(runType, comp, ReflectionKind.string);\n case 'number':\n return emitToBinaryAs(runType, comp, ReflectionKind.number);\n case 'boolean':\n return emitToBinaryAs(runType, comp, ReflectionKind.boolean);\n case 'bigint':\n return emitToBinaryAs(runType, comp, ReflectionKind.bigint);\n case 'symbol':\n return emitToBinaryAs(runType, comp, ReflectionKind.symbol);\n default:\n throw new Error(`Unsupported literal type ${typeof lit}`);\n }\n }\n return {code: '', type: 'S'}; // literals can be skipped as we restore the value directly from runType in jit code\n }\n\n // ###################### MEMBER RUNTYPES ######################\n // Types that represent members of collections or other structures\n case ReflectionKind.rest: // rest params are serialized as array but start at rest item index\n case ReflectionKind.array: {\n const rt = runType as ArrayRunType;\n rt.checkNonSkipTypes(comp);\n const child = rt.getMemberType()!;\n const memberJit = comp.compile(child, 'S', fnID);\n if (!memberJit?.code) throw new Error(`Do not know how to serialize Array<${child.getTypeName()}> to Binary.`);\n const index = rt.getChildVarName(comp);\n // serialized as [length, items...]\n return {\n code: `\n ${sεr}.view.setUint32(${sεr}.index, ${comp.vλl}.length, 1); ${sεr}.index += 4;\n for (let ${index} = ${rt.startIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {${memberJit.code}}\n `,\n type: 'S',\n };\n }\n case ReflectionKind.indexSignature: {\n const rt = runType as IndexSignatureRunType;\n const indexKind = (rt.src as any).index?.kind;\n const memberJit = comp.compile(rt.getJitChild(comp), 'S', fnID);\n if (!memberJit?.code) return {code: undefined, type: 'S'};\n\n const propVar = rt.getChildVarName(comp);\n const lengthVar = comp.getLocalVarName('cnt', rt);\n const indexVar = comp.getLocalVarName('piI', rt);\n const varsInit = `let ${lengthVar} = 0; const ${indexVar} = ${sεr}.index; ${sεr}.index += 4;`;\n\n // Serialize entries\n let keySerializationCode: string;\n if (indexKind === ReflectionKind.number) {\n keySerializationCode = `${sεr}.view.setUint32(${sεr}.index , Number(${propVar}), 1); ${sεr}.index += 4;`;\n } else {\n keySerializationCode = `${sεr}.serString(${propVar});`;\n }\n\n return {\n code: `\n ${varsInit};\n for (const ${propVar} in ${comp.vλl}) {${keySerializationCode} ${memberJit.code}; ${lengthVar}++;}\n ${sεr}.view.setUint32(${indexVar}, ${lengthVar}, 1);\n `,\n type: 'S',\n };\n }\n\n case ReflectionKind.function:\n case ReflectionKind.method:\n case ReflectionKind.methodSignature:\n case ReflectionKind.callSignature:\n if (runType.src.subKind === ReflectionSubKind.params) {\n return emitToBinaryAs(runType, comp, ReflectionKind.tuple);\n } else {\n throw new Error('Binary serialization not supported for functions, call compileParams or compileReturn instead.');\n }\n case ReflectionKind.parameter: {\n const rt = runType as ParameterRunType;\n switch (src.subKind) {\n case ReflectionSubKind.mapKey:\n case ReflectionSubKind.mapValue:\n case ReflectionSubKind.setItem: {\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'S', fnID);\n if (!childJit?.code) throw new Error(`Do not know how to serialize ${rt.getTypeName()} to Binary.`);\n return childJit;\n }\n default: {\n return emitToBinaryAs(runType, comp, ReflectionKind.tupleMember);\n }\n }\n }\n case ReflectionKind.property:\n case ReflectionKind.propertySignature: {\n const rt = runType as PropertyRunType;\n const parent = rt.getParent() as InterfaceRunType;\n if (parent.hasIndexSignature(comp)) return {code: undefined, type: 'S'}; // all serialization is done by index signature code\n\n const memberCode = comp.compile(rt.getJitChild(comp), 'S', fnID).code || '';\n if (rt.isOptional()) {\n const {bitMIndexVar, bitIndex} = getOptionalBitmapItems(parent, comp, 0, rt.optionalIndex, false);\n const setBitMask = `${sεr}.setBitMask(${bitMIndexVar}, ${bitIndex})`;\n return {code: `if (${comp.getChildVλl()} !== undefined) {${memberCode};${setBitMask}}`, type: 'S'};\n }\n // non optional properties rely in the order they are defined in the type so no need to include the index\n return {code: `${memberCode}`, type: 'S'};\n }\n case ReflectionKind.tupleMember: {\n const rt = runType as ParameterRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'S', fnID);\n const nullJIt = emitToBinaryAs(rt, comp, ReflectionKind.undefined);\n const itemJit = childJit?.code ? childJit : nullJIt; // if child is not serializable, we serialize null as need to fill the space in the tuple\n if (rt.isRest()) return itemJit;\n // Optional handling uses bitmap set at tuple level\n const optionalIndex = (rt as any).optionalIndex;\n const bitMIndexVar = (rt as any)._bitmapVar;\n const isFnParam = (rt as any)._isFnParam;\n // Treat as optional if either isOptional() is true OR it's a function param (all fn params are optional in binary)\n const isOptional = rt.isOptional() || isFnParam;\n if (isOptional && optionalIndex !== undefined && bitMIndexVar) {\n const bitIndex = optionalIndex & 7; // equivalent to optionalIndex % 8\n const setBitMask = `${sεr}.setBitMask(${bitMIndexVar}, ${bitIndex})`;\n return {code: `if (${comp.getChildVλl()} !== undefined) {${itemJit.code};${setBitMask}}`, type: 'S'};\n }\n return itemJit;\n }\n\n case ReflectionKind.promise:\n throw new Error('Jit compilation disabled for Non Serializable types.');\n\n // ###################### COLLECTION RUNTYPES ######################\n // Types that contain other types as members\n case ReflectionKind.objectLiteral:\n case ReflectionKind.intersection: {\n const rt = runType as InterfaceRunType;\n if (rt.isCallable()) return comp.compile(rt.getCallSignature(), 'S', fnID);\n if (runType.src.subKind === ReflectionSubKind.nonSerializable) {\n throw new Error('Binary serialization is disabled for Non Serializable types');\n } else {\n // we need to ensure non optional properties are serialized first so then we can restore the object correctly\n // non optional properties are restored as: '{a: deserializeA, b: deserializeB, c: deserializeC};\n // and must be serialized/deserialized in the same order they are declared in the type\n const {required, optional, indexSignatures} = rt.splitJitSplitChildren(comp);\n\n if (indexSignatures.length) {\n return comp.compile(indexSignatures[0], 'S', fnID); // index signature code already contains the loop\n }\n\n const requiredProps = required.map((prop) => comp.compile(prop, 'S', fnID).code);\n const requiredPropsCode = requiredProps.join(';');\n\n let optionalPropsCode = '';\n if (optional.length) {\n const {bitMapInit, bitMIndexVar} = getOptionalBitmapItems(rt, comp, optional.length, 0, false);\n const propsCode = optional\n .map((prop, i) => {\n prop.optionalIndex = i;\n const modIndex = i + 1;\n const shouldIncreaseBufferIndex = modIndex % 8 === 0;\n const propCode = comp.compile(prop, 'S', fnID).code;\n if (!shouldIncreaseBufferIndex) return propCode;\n // every 8 props we need to increase the bitmap index\n return `${propCode} ${bitMIndexVar}++;`;\n })\n .filter(Boolean)\n .join('');\n optionalPropsCode = `${bitMapInit}\\n${propsCode}`;\n }\n\n return {code: `${requiredPropsCode}\\n${optionalPropsCode}`, type: 'S'};\n }\n }\n case ReflectionKind.class:\n switch (runType.src.subKind) {\n case ReflectionSubKind.date:\n return {\n code: `${sεr}.view.setFloat64(${sεr}.index, ${comp.vλl}.getTime(), 1, (${sεr}.index += 8))`,\n type: 'S',\n };\n case ReflectionSubKind.map:\n case ReflectionSubKind.set: {\n const rt = runType as IterableRunType;\n const sεr = comp.args.sεr;\n const entry = rt.getCustomVλl(comp)?.vλl || comp.vλl;\n const jitChildren = rt.getJitChildren(comp);\n const childrenCode = jitChildren\n .map((c) => comp.compile(c, 'S', fnID).code)\n .filter(Boolean)\n .join(';');\n // Serialize length at the beginning, then iterate and serialize items\n const setLength = `${sεr}.view.setUint32(${sεr}.index, ${comp.vλl}.size, 1); ${sεr}.index += 4;`;\n return {\n code: `${setLength} for (const ${entry} of ${comp.vλl}) {${childrenCode}}`,\n type: 'S',\n };\n }\n case ReflectionSubKind.nonSerializable:\n throw new Error('Binary serialization disabled for Non Serializable types');\n default: {\n const rt = runType as InterfaceRunType;\n if (rt.isCallable()) {\n const callSignature = rt.getCallSignature();\n if (callSignature) return comp.compile(callSignature, 'S', fnID);\n }\n const originalKind = runType.src.kind;\n (runType.src as any).kind = ReflectionKind.objectLiteral;\n const result = emitToBinary(runType, comp);\n (runType.src as any).kind = originalKind;\n return result;\n }\n }\n break;\n\n case ReflectionKind.infer:\n throw new Error('Infer is not supported in Binary serialization');\n\n case ReflectionKind.tuple: {\n const rt = runType as TupleRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: undefined, type: 'S'};\n const params = rt.getParamRunTypes(comp);\n if (params.length === 0) return {code: undefined, type: 'S'};\n\n // For function params, all params are treated as optional in binary serialization\n // This allows sending null/undefined values over the wire even if the type is not optional\n const isFnParams = runType.src.subKind === ReflectionSubKind.params;\n\n // Split params into required, optional, and rest\n // For function params, all non-rest params are treated as optional\n const required = isFnParams ? [] : params.filter((p) => !p.isOptional() && !p.isRest());\n const optional = isFnParams ? params.filter((p) => !p.isRest()) : params.filter((p) => p.isOptional() && !p.isRest());\n const rest = params.filter((p) => p.isRest());\n\n // Serialize required params first\n const requiredCode = required.map((p) => comp.compile(p, 'S', fnID).code).join(';');\n\n // Serialize optional params with bitmap (groups of 8)\n let optionalCode = '';\n if (optional.length) {\n const {bitMapInit, bitMIndexVar} = getOptionalBitmapItems(rt, comp, optional.length, 0, true);\n const optionalParamsCode = optional\n .map((p, i) => {\n (p as any).optionalIndex = i; // set optionalIndex for use in tupleMember case\n (p as any)._bitmapVar = bitMIndexVar; // pass bitmap variable name to tupleMember case\n (p as any)._isFnParam = isFnParams; // flag to indicate this is a function param\n const paramCode = comp.compile(p, 'S', fnID).code || '';\n const modIndex = i + 1;\n const shouldIncreaseBufferIndex = modIndex % 8 === 0 && modIndex < optional.length;\n const increaseIndex = shouldIncreaseBufferIndex ? `${bitMIndexVar}++;` : '';\n return `${paramCode} ${increaseIndex}`;\n })\n .join('');\n optionalCode = `${bitMapInit}\\n${optionalParamsCode}`;\n }\n\n // Serialize rest params (handled as array by the rest param itself)\n const restCode = rest.map((p) => comp.compile(p, 'S', fnID).code).join(';');\n\n const allCode = [requiredCode, optionalCode, restCode].filter(Boolean).join(';');\n return {code: allCode, type: 'S'};\n }\n case ReflectionKind.typeParameter:\n throw new Error('Type parameter not implemented in Binary serialization');\n\n case ReflectionKind.union: {\n const rt = runType as UnionRunType;\n rt.checkAllowedChildren(comp);\n const {simpleItems, objectTypes, anyItem} = rt.getUnionChildren(comp);\n const totalLength = simpleItems.length + objectTypes.length + (anyItem ? 1 : 0);\n if (totalLength > MAX_UNION_ITEMS) {\n throw new Error(\n `Binary serialization not supported for Union with more than ${MAX_UNION_ITEMS} items.` +\n ` Found ${totalLength} in ${rt.getUnionTypeNames()}`\n );\n }\n const errName = comp.getLocalVarName('uErr', rt);\n const fail = `throw new Error(${errName});`;\n comp.setContextItem(\n errName,\n `const ${errName} = \"Can not encode union to binary: item does not belong to the union\"`\n );\n const ifElse = createIfElseFn();\n // Helper to generate encode code for a union item\n const getEncodeCode = (childRt: BaseRunType) => {\n const toJit = comp.compile(childRt, 'S', fnID);\n const encodeCode = toJit.code || '';\n const index = rt.getUnionItemIndex(comp, childRt);\n const isUint16 = index > 255;\n const writeIndex = isUint16\n ? `${sεr}.view.setUint16(${sεr}.index, ${index}, 1, (${sεr}.index += 2))`\n : `${sεr}.view.setUint8(${sεr}.index++, ${index})`;\n return `${writeIndex};${encodeCode}`;\n };\n // Generate code for simple items (atomic types)\n const simpleCode = simpleItems.map((childRt) => {\n const isTypeCode = rt.getChildIsTypeWithLooseCheck(childRt, comp);\n return `${ifElse()} (${isTypeCode}) {${getEncodeCode(childRt)}}`;\n });\n // Generate code for object types (need null guard)\n const objCode = objectTypes.length\n ? objectTypes.map((childRt) => {\n const isTypeCode = rt.getChildIsTypeWithLooseCheck(childRt, comp);\n return `${ifElse()} (typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null && ${isTypeCode}) {${getEncodeCode(childRt)}}`;\n })\n : [];\n // Generate code for anyItem (always matches, checked last as fallback)\n const anyCode = anyItem ? `${ifElse(true)} {${getEncodeCode(anyItem)}}` : `${ifElse(true)} {${fail}}`;\n return {code: [...simpleCode, ...objCode, anyCode].join(''), type: 'S'};\n }\n default:\n throw new Error(`Binary serialization not supported for ${ReflectionKind[kind]} types`);\n }\n\n // Default return for cases that break without returning\n return {code: undefined, type: 'S'};\n}\n\n/** Generates bitmap initialization code for optional properties/params. Uses 1 bit per optional item (8 items per byte). */\nfunction getOptionalBitmapItems(\n rt: InterfaceRunType | TupleRunType,\n comp: BinaryCompiler,\n optionalLength = 0,\n currentIndex = 0,\n isTuple = false\n) {\n const sεr = comp.args.sεr;\n const prefix = isTuple ? 't' : '';\n const bitMIndexVar = comp.getLocalVarName(`${prefix}bmI`, rt); // index of the bitmap\n const bitmapLength = Math.ceil(optionalLength / 8);\n const bitIndex = `${currentIndex} & 7`; // equivalent to index % 8\n // initialize bitmap to zero as there could be values left from previous serialization\n const indexVar = comp.getLocalVarName(`${prefix}iBl`, rt);\n const setBitmapToZero =\n bitmapLength > 1\n ? `for (let ${indexVar} = 0; ${indexVar} < ${bitmapLength}; ${indexVar}++) {${sεr}.view.setUint8(${sεr}.index++, 0)}`\n : `${sεr}.view.setUint8(${sεr}.index++, 0)`;\n const bitMapInit = `${bitmapLength > 1 ? 'let ' : 'const'} ${bitMIndexVar} = ${sεr}.index; ${setBitmapToZero}`;\n return {bitMIndexVar, bitmapLength, bitIndex, bitMapInit};\n}\n\nfunction emitToBinaryAs(rt: BaseRunType, comp: BinaryCompiler, kind: ReflectionKind): JitCode {\n const originalKind = rt.src.kind;\n (rt.src as any).kind = kind;\n const result = emitToBinary(rt, comp);\n (rt.src as any).kind = originalKind;\n return result;\n}\n"],"names":["JitFunctions","ReflectionKind","ReflectionSubKind","sεr","MAX_UNION_ITEMS","createIfElseFn"],"mappings":"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"}
1
+ {"version":3,"file":"toBinary.cjs","sources":["../../../../../src/jitCompilers/binary/toBinary.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 {ReflectionKind} from '@deepkit/type';\nimport {ReflectionSubKind} from '../../constants.kind.ts';\nimport {jitBinarySerializerArgs, JitFunctions} from '../../constants.functions.ts';\nimport {createIfElseFn} from '../../lib/utils.ts';\nimport {MAX_UNION_ITEMS} from '../../constants.ts';\nimport type {JitCode} from '../../types.ts';\nimport type {BaseRunType} from '../../lib/baseRunTypes.ts';\nimport type {BaseFnCompiler} from '../../lib/jitFnCompiler.ts';\nimport type {ArrayRunType} from '../../nodes/member/array.ts';\nimport type {PropertyRunType} from '../../nodes/member/property.ts';\nimport type {InterfaceRunType} from '../../nodes/collection/interface.ts';\nimport type {IndexSignatureRunType} from '../../nodes/member/indexProperty.ts';\nimport type {ParameterRunType} from '../../nodes/member/param.ts';\nimport type {TupleRunType} from '../../nodes/collection/tuple.ts';\nimport type {UnionRunType} from '../../nodes/collection/union.ts';\nimport type {IterableRunType} from '../../nodes/native/Iterable.ts';\nimport type {LiteralRunType} from '../../nodes/atomic/literal.ts';\n\ntype BinaryCompiler = BaseFnCompiler<typeof jitBinarySerializerArgs, typeof JitFunctions.toBinary.id>;\nconst fnID = JitFunctions.toBinary.id;\n\n/**\n * Main Binary serialization compiler function\n * Generates JIT code to serialize values to Binary format following Binary 1.1 specification\n *\n * This function generates JavaScript expressions that return Uint8Array containing Binary bytes.\n */\nexport function emitToBinary(runType: BaseRunType, comp: BinaryCompiler): JitCode {\n const src = runType.src;\n const kind = src.kind;\n const sεr = comp.args.sεr;\n\n // hack is used in some case to increase the index passing an extra argument to view.set methods\n // ie: view.setUint32(index, value, littleEndian, index += 4);\n // setUint32 only accepts 3 arguments, but we use the 4rd one to increase the index on a single statement so code can be used as an expression\n\n switch (kind) {\n // ###################### ATOMIC TYPES ######################\n case ReflectionKind.unknown:\n case ReflectionKind.any: {\n // any is serialized as json string\n return {code: `${sεr}.serString(JSON.stringify(${comp.vλl}))`, type: 'S'};\n }\n case ReflectionKind.null:\n return {code: `${sεr}.view.setUint8(${sεr}.index++, 0)`, type: 'S'};\n case ReflectionKind.boolean:\n return {code: `${sεr}.view.setUint8(${sεr}.index++, !!${comp.vλl})`, type: 'S'};\n case ReflectionKind.number: {\n return {code: `${sεr}.view.setFloat64(${sεr}.index,${comp.vλl}, 1, (${sεr}.index += 8))`, type: 'S'};\n }\n case ReflectionKind.string: {\n return {code: `${sεr}.serString(${comp.vλl})`, type: 'S'};\n }\n case ReflectionKind.bigint: {\n return {code: `${sεr}.serString(${comp.vλl}.toString(), true)`, type: 'S'};\n }\n case ReflectionKind.undefined:\n case ReflectionKind.void:\n return {code: `${sεr}.view.setUint8(${sεr}.index++, 1)`, type: 'S'};\n case ReflectionKind.symbol: {\n return {code: `${sεr}.serString(${comp.vλl}.description || '')`, type: 'S'};\n }\n case ReflectionKind.regexp: {\n return {code: `${sεr}.serString(${comp.vλl}.source);${sεr}.serString(${comp.vλl}.flags)`, type: 'S'};\n }\n case ReflectionKind.object:\n // similar to any, this is serialized as json string\n return {code: `${sεr}.serString(JSON.stringify(${comp.vλl}))`, type: 'S'};\n case ReflectionKind.enum: {\n return {code: `${sεr}.serEnum(${comp.vλl})`, type: 'S'};\n }\n case ReflectionKind.enumMember:\n throw new Error('Binary serialization not supported for enum member types');\n case ReflectionKind.never:\n throw new Error('Never type cannot be serialized to Binary');\n case ReflectionKind.templateLiteral:\n // runtime value is a plain string\n return {code: `${sεr}.serString(${comp.vλl})`, type: 'S'};\n case ReflectionKind.literal: {\n if (comp.opts.noLiterals) {\n const lit = (runType as LiteralRunType).src.literal;\n if (lit instanceof RegExp) return emitToBinaryAs(runType, comp, ReflectionKind.regexp);\n switch (typeof lit) {\n case 'string':\n return emitToBinaryAs(runType, comp, ReflectionKind.string);\n case 'number':\n return emitToBinaryAs(runType, comp, ReflectionKind.number);\n case 'boolean':\n return emitToBinaryAs(runType, comp, ReflectionKind.boolean);\n case 'bigint':\n return emitToBinaryAs(runType, comp, ReflectionKind.bigint);\n case 'symbol':\n return emitToBinaryAs(runType, comp, ReflectionKind.symbol);\n default:\n throw new Error(`Unsupported literal type ${typeof lit}`);\n }\n }\n return {code: '', type: 'S'}; // literals can be skipped as we restore the value directly from runType in jit code\n }\n\n // ###################### MEMBER RUNTYPES ######################\n // Types that represent members of collections or other structures\n case ReflectionKind.rest: // rest params are serialized as array but start at rest item index\n case ReflectionKind.array: {\n const rt = runType as ArrayRunType;\n rt.checkNonSkipTypes(comp);\n const child = rt.getMemberType()!;\n const memberJit = comp.compile(child, 'S', fnID);\n if (!memberJit?.code) throw new Error(`Do not know how to serialize Array<${child.getTypeName()}> to Binary.`);\n const index = rt.getChildVarName(comp);\n // serialized as [length, items...]\n return {\n code: `\n ${sεr}.view.setUint32(${sεr}.index, ${comp.vλl}.length, 1); ${sεr}.index += 4;\n for (let ${index} = ${rt.startIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {${memberJit.code}}\n `,\n type: 'S',\n };\n }\n case ReflectionKind.indexSignature: {\n const rt = runType as IndexSignatureRunType;\n const indexKind = (rt.src as any).index?.kind;\n const memberJit = comp.compile(rt.getJitChild(comp), 'S', fnID);\n if (!memberJit?.code) return {code: undefined, type: 'S'};\n\n const propVar = rt.getChildVarName(comp);\n const lengthVar = comp.getLocalVarName('cnt', rt);\n const indexVar = comp.getLocalVarName('piI', rt);\n const varsInit = `let ${lengthVar} = 0; const ${indexVar} = ${sεr}.index; ${sεr}.index += 4;`;\n\n // Serialize entries\n let keySerializationCode: string;\n if (indexKind === ReflectionKind.number) {\n keySerializationCode = `${sεr}.view.setUint32(${sεr}.index , Number(${propVar}), 1); ${sεr}.index += 4;`;\n } else {\n keySerializationCode = `${sεr}.serString(${propVar});`;\n }\n\n return {\n code: `\n ${varsInit};\n for (const ${propVar} in ${comp.vλl}) {${keySerializationCode} ${memberJit.code}; ${lengthVar}++;}\n ${sεr}.view.setUint32(${indexVar}, ${lengthVar}, 1);\n `,\n type: 'S',\n };\n }\n\n case ReflectionKind.function:\n case ReflectionKind.method:\n case ReflectionKind.methodSignature:\n case ReflectionKind.callSignature:\n if (runType.src.subKind === ReflectionSubKind.params) {\n return emitToBinaryAs(runType, comp, ReflectionKind.tuple);\n } else {\n throw new Error('Binary serialization not supported for functions, call compileParams or compileReturn instead.');\n }\n case ReflectionKind.parameter: {\n const rt = runType as ParameterRunType;\n switch (src.subKind) {\n case ReflectionSubKind.mapKey:\n case ReflectionSubKind.mapValue:\n case ReflectionSubKind.setItem: {\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'S', fnID);\n if (!childJit?.code) throw new Error(`Do not know how to serialize ${rt.getTypeName()} to Binary.`);\n return childJit;\n }\n default: {\n return emitToBinaryAs(runType, comp, ReflectionKind.tupleMember);\n }\n }\n }\n case ReflectionKind.property:\n case ReflectionKind.propertySignature: {\n const rt = runType as PropertyRunType;\n const parent = rt.getParent() as InterfaceRunType;\n if (parent.hasIndexSignature(comp)) return {code: undefined, type: 'S'}; // all serialization is done by index signature code\n\n const memberCode = comp.compile(rt.getJitChild(comp), 'S', fnID).code || '';\n if (rt.isOptional()) {\n const {bitMIndexVar, bitIndex} = getOptionalBitmapItems(parent, comp, 0, rt.optionalIndex, false);\n const setBitMask = `${sεr}.setBitMask(${bitMIndexVar}, ${bitIndex})`;\n return {code: `if (${comp.getChildVλl()} !== undefined) {${memberCode};${setBitMask}}`, type: 'S'};\n }\n // non optional properties rely in the order they are defined in the type so no need to include the index\n return {code: `${memberCode}`, type: 'S'};\n }\n case ReflectionKind.tupleMember: {\n const rt = runType as ParameterRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'S', fnID);\n const nullJIt = emitToBinaryAs(rt, comp, ReflectionKind.undefined);\n const itemJit = childJit?.code ? childJit : nullJIt; // if child is not serializable, we serialize null as need to fill the space in the tuple\n if (rt.isRest()) return itemJit;\n // Optional handling uses bitmap set at tuple level\n const optionalIndex = (rt as any).optionalIndex;\n const bitMIndexVar = (rt as any)._bitmapVar;\n const isFnParam = (rt as any)._isFnParam;\n // Treat as optional if either isOptional() is true OR it's a function param (all fn params are optional in binary)\n const isOptional = rt.isOptional() || isFnParam;\n if (isOptional && optionalIndex !== undefined && bitMIndexVar) {\n const bitIndex = optionalIndex & 7; // equivalent to optionalIndex % 8\n const setBitMask = `${sεr}.setBitMask(${bitMIndexVar}, ${bitIndex})`;\n return {code: `if (${comp.getChildVλl()} !== undefined) {${itemJit.code};${setBitMask}}`, type: 'S'};\n }\n return itemJit;\n }\n\n case ReflectionKind.promise:\n throw new Error('Jit compilation disabled for Non Serializable types.');\n\n // ###################### COLLECTION RUNTYPES ######################\n // Types that contain other types as members\n case ReflectionKind.objectLiteral:\n case ReflectionKind.intersection: {\n const rt = runType as InterfaceRunType;\n if (rt.isCallable()) return comp.compile(rt.getCallSignature(), 'S', fnID);\n if (runType.src.subKind === ReflectionSubKind.nonSerializable) {\n throw new Error('Binary serialization is disabled for Non Serializable types');\n } else {\n // we need to ensure non optional properties are serialized first so then we can restore the object correctly\n // non optional properties are restored as: '{a: deserializeA, b: deserializeB, c: deserializeC};\n // and must be serialized/deserialized in the same order they are declared in the type\n const {required, optional, indexSignatures} = rt.splitJitSplitChildren(comp);\n\n if (indexSignatures.length) {\n return comp.compile(indexSignatures[0], 'S', fnID); // index signature code already contains the loop\n }\n\n const requiredProps = required.map((prop) => comp.compile(prop, 'S', fnID).code);\n const requiredPropsCode = requiredProps.join(';');\n\n let optionalPropsCode = '';\n if (optional.length) {\n const {bitMapInit, bitMIndexVar} = getOptionalBitmapItems(rt, comp, optional.length, 0, false);\n const propsCode = optional\n .map((prop, i) => {\n prop.optionalIndex = i;\n const modIndex = i + 1;\n const shouldIncreaseBufferIndex = modIndex % 8 === 0;\n const propCode = comp.compile(prop, 'S', fnID).code;\n if (!shouldIncreaseBufferIndex) return propCode;\n // every 8 props we need to increase the bitmap index\n return `${propCode} ${bitMIndexVar}++;`;\n })\n .filter(Boolean)\n .join('');\n optionalPropsCode = `${bitMapInit}\\n${propsCode}`;\n }\n\n return {code: `${requiredPropsCode}\\n${optionalPropsCode}`, type: 'S'};\n }\n }\n case ReflectionKind.class:\n switch (runType.src.subKind) {\n case ReflectionSubKind.date:\n return {\n code: `${sεr}.view.setFloat64(${sεr}.index, ${comp.vλl}.getTime(), 1, (${sεr}.index += 8))`,\n type: 'S',\n };\n case ReflectionSubKind.map:\n case ReflectionSubKind.set: {\n const rt = runType as IterableRunType;\n const sεr = comp.args.sεr;\n const entry = rt.getCustomVλl(comp)?.vλl || comp.vλl;\n const jitChildren = rt.getJitChildren(comp);\n const childrenCode = jitChildren\n .map((c) => comp.compile(c, 'S', fnID).code)\n .filter(Boolean)\n .join(';');\n // Serialize length at the beginning, then iterate and serialize items\n const setLength = `${sεr}.view.setUint32(${sεr}.index, ${comp.vλl}.size, 1); ${sεr}.index += 4;`;\n return {\n code: `${setLength} for (const ${entry} of ${comp.vλl}) {${childrenCode}}`,\n type: 'S',\n };\n }\n case ReflectionSubKind.nonSerializable:\n throw new Error('Binary serialization disabled for Non Serializable types');\n default: {\n const rt = runType as InterfaceRunType;\n if (rt.isCallable()) {\n const callSignature = rt.getCallSignature();\n if (callSignature) return comp.compile(callSignature, 'S', fnID);\n }\n const originalKind = runType.src.kind;\n (runType.src as any).kind = ReflectionKind.objectLiteral;\n const result = emitToBinary(runType, comp);\n (runType.src as any).kind = originalKind;\n return result;\n }\n }\n break;\n\n case ReflectionKind.infer:\n throw new Error('Infer is not supported in Binary serialization');\n\n case ReflectionKind.tuple: {\n const rt = runType as TupleRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: undefined, type: 'S'};\n const params = rt.getParamRunTypes(comp);\n if (params.length === 0) return {code: undefined, type: 'S'};\n\n // For function params, all params are treated as optional in binary serialization\n // This allows sending null/undefined values over the wire even if the type is not optional\n const isFnParams = runType.src.subKind === ReflectionSubKind.params;\n\n // Split params into required, optional, and rest\n // For function params, all non-rest params are treated as optional\n const required = isFnParams ? [] : params.filter((p) => !p.isOptional() && !p.isRest());\n const optional = isFnParams ? params.filter((p) => !p.isRest()) : params.filter((p) => p.isOptional() && !p.isRest());\n const rest = params.filter((p) => p.isRest());\n\n // Serialize required params first\n const requiredCode = required.map((p) => comp.compile(p, 'S', fnID).code).join(';');\n\n // Serialize optional params with bitmap (groups of 8)\n let optionalCode = '';\n if (optional.length) {\n const {bitMapInit, bitMIndexVar} = getOptionalBitmapItems(rt, comp, optional.length, 0, true);\n const optionalParamsCode = optional\n .map((p, i) => {\n (p as any).optionalIndex = i; // set optionalIndex for use in tupleMember case\n (p as any)._bitmapVar = bitMIndexVar; // pass bitmap variable name to tupleMember case\n (p as any)._isFnParam = isFnParams; // flag to indicate this is a function param\n const paramCode = comp.compile(p, 'S', fnID).code || '';\n const modIndex = i + 1;\n const shouldIncreaseBufferIndex = modIndex % 8 === 0 && modIndex < optional.length;\n const increaseIndex = shouldIncreaseBufferIndex ? `${bitMIndexVar}++;` : '';\n return `${paramCode} ${increaseIndex}`;\n })\n .join('');\n optionalCode = `${bitMapInit}\\n${optionalParamsCode}`;\n }\n\n // Serialize rest params (handled as array by the rest param itself)\n const restCode = rest.map((p) => comp.compile(p, 'S', fnID).code).join(';');\n\n const allCode = [requiredCode, optionalCode, restCode].filter(Boolean).join(';');\n return {code: allCode, type: 'S'};\n }\n case ReflectionKind.typeParameter:\n throw new Error('Type parameter not implemented in Binary serialization');\n\n case ReflectionKind.union: {\n const rt = runType as UnionRunType;\n rt.checkAllowedChildren(comp);\n const {simpleItems, objectTypes, anyItem} = rt.getUnionChildren(comp);\n const totalLength = simpleItems.length + objectTypes.length + (anyItem ? 1 : 0);\n if (totalLength > MAX_UNION_ITEMS) {\n throw new Error(\n `Binary serialization not supported for Union with more than ${MAX_UNION_ITEMS} items.` +\n ` Found ${totalLength} in ${rt.getUnionTypeNames()}`\n );\n }\n const errName = comp.getLocalVarName('uErr', rt);\n const fail = `throw new Error(${errName});`;\n comp.setContextItem(\n errName,\n `const ${errName} = \"Can not encode union to binary: item does not belong to the union\"`\n );\n const ifElse = createIfElseFn();\n // Helper to generate encode code for a union item\n const getEncodeCode = (childRt: BaseRunType) => {\n const toJit = comp.compile(childRt, 'S', fnID);\n const encodeCode = toJit.code || '';\n const index = rt.getUnionItemIndex(comp, childRt);\n const isUint16 = index > 255;\n const writeIndex = isUint16\n ? `${sεr}.view.setUint16(${sεr}.index, ${index}, 1, (${sεr}.index += 2))`\n : `${sεr}.view.setUint8(${sεr}.index++, ${index})`;\n return `${writeIndex};${encodeCode}`;\n };\n // Generate code for simple items (atomic types)\n const simpleCode = simpleItems.map((childRt) => {\n const isTypeCode = rt.getChildIsTypeWithLooseCheck(childRt, comp);\n return `${ifElse()} (${isTypeCode}) {${getEncodeCode(childRt)}}`;\n });\n // Generate code for object types (need null guard)\n const objCode = objectTypes.length\n ? objectTypes.map((childRt) => {\n const isTypeCode = rt.getChildIsTypeWithLooseCheck(childRt, comp);\n return `${ifElse()} (typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null && ${isTypeCode}) {${getEncodeCode(childRt)}}`;\n })\n : [];\n // Generate code for anyItem (always matches, checked last as fallback)\n const anyCode = anyItem ? `${ifElse(true)} {${getEncodeCode(anyItem)}}` : `${ifElse(true)} {${fail}}`;\n return {code: [...simpleCode, ...objCode, anyCode].join(''), type: 'S'};\n }\n default:\n throw new Error(`Binary serialization not supported for ${ReflectionKind[kind]} types`);\n }\n\n // Default return for cases that break without returning\n return {code: undefined, type: 'S'};\n}\n\n/** Generates bitmap initialization code for optional properties/params. Uses 1 bit per optional item (8 items per byte). */\nfunction getOptionalBitmapItems(\n rt: InterfaceRunType | TupleRunType,\n comp: BinaryCompiler,\n optionalLength = 0,\n currentIndex = 0,\n isTuple = false\n) {\n const sεr = comp.args.sεr;\n const prefix = isTuple ? 't' : '';\n const bitMIndexVar = comp.getLocalVarName(`${prefix}bmI`, rt); // index of the bitmap\n const bitmapLength = Math.ceil(optionalLength / 8);\n const bitIndex = `${currentIndex} & 7`; // equivalent to index % 8\n // initialize bitmap to zero as there could be values left from previous serialization\n const indexVar = comp.getLocalVarName(`${prefix}iBl`, rt);\n const setBitmapToZero =\n bitmapLength > 1\n ? `for (let ${indexVar} = 0; ${indexVar} < ${bitmapLength}; ${indexVar}++) {${sεr}.view.setUint8(${sεr}.index++, 0)}`\n : `${sεr}.view.setUint8(${sεr}.index++, 0)`;\n const bitMapInit = `${bitmapLength > 1 ? 'let ' : 'const'} ${bitMIndexVar} = ${sεr}.index; ${setBitmapToZero}`;\n return {bitMIndexVar, bitmapLength, bitIndex, bitMapInit};\n}\n\nfunction emitToBinaryAs(rt: BaseRunType, comp: BinaryCompiler, kind: ReflectionKind): JitCode {\n const originalKind = rt.src.kind;\n (rt.src as any).kind = kind;\n const result = emitToBinary(rt, comp);\n (rt.src as any).kind = originalKind;\n return result;\n}\n"],"names":["JitFunctions","ReflectionKind","ReflectionSubKind","sεr","MAX_UNION_ITEMS","createIfElseFn"],"mappings":"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"}
@@ -5,3 +5,4 @@ import { BaseFnCompiler } from '../../lib/jitFnCompiler.ts';
5
5
  type BinaryCompiler = BaseFnCompiler<typeof jitBinarySerializerArgs, typeof JitFunctions.toBinary.id>;
6
6
  export declare function emitToBinary(runType: BaseRunType, comp: BinaryCompiler): JitCode;
7
7
  export {};
8
+ //# sourceMappingURL=toBinary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toBinary.d.ts","sourceRoot":"","sources":["../../../../../src/jitCompilers/binary/toBinary.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,uBAAuB,EAAE,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAGnF,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAW/D,KAAK,cAAc,GAAG,cAAc,CAAC,OAAO,uBAAuB,EAAE,OAAO,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAStG,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAkXhF"}
@@ -2,3 +2,4 @@ export declare function normalizeForComparison(actual: any, expected: any): {
2
2
  actual: any;
3
3
  expected: any;
4
4
  };
5
+ //# sourceMappingURL=equalsHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"equalsHelpers.d.ts","sourceRoot":"","sources":["../../../../src/jitCompilers/equalsHelpers.ts"],"names":[],"mappings":"AAmBA,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAC,CA+B/F"}
@@ -25,3 +25,4 @@ export declare function roundTrip(serialize: (v: any) => string, deserialize: (v
25
25
  serialized: string;
26
26
  deserialized: any;
27
27
  };
28
+ //# sourceMappingURL=jsonHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonHelpers.d.ts","sourceRoot":"","sources":["../../../../../../src/jitCompilers/json/jsonSpec/jsonHelpers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAK/C,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO;mBAGxB,GAAG;wBACE,GAAG;EAEjC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM;mBAI1D,GAAG;wBACE,GAAG;EAEjC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,eAAe;mBAGrC,GAAG;wBACE,GAAG;EAEjC;AAED,wBAAgB,wCAAwC,CAAC,EAAE,EAAE,gBAAgB;mBAInD,GAAG;wBACE,GAAG;EAEjC;AAED,wBAAgB,wCAAwC,CAAC,EAAE,EAAE,gBAAgB;mBAInD,GAAG;wBACE,GAAG;EAEjC;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG;;;EAKnG"}
@@ -80,7 +80,7 @@ function createStringifyCompiler(fnID) {
80
80
  case type.ReflectionKind.symbol:
81
81
  return { code: `JSON.stringify('Symbol:' + (${comp.vλl}.description || ''))`, type: "E" };
82
82
  case type.ReflectionKind.templateLiteral:
83
- throw new Error("Template Literals are not supported.");
83
+ return { code: `JSON.stringify(${comp.vλl})`, type: "E" };
84
84
  case type.ReflectionKind.undefined: {
85
85
  const isRoot = comp.getNestLevel(runType) === 0;
86
86
  if (isRoot) return { code: `undefined`, type: "E" };
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyJson.cjs","sources":["../../../../../src/jitCompilers/json/stringifyJson.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 {ReflectionKind} from '@deepkit/type';\nimport {ReflectionSubKind} from '../../constants.kind.ts';\nimport {JitFunctions} from '../../constants.functions.ts';\nimport {JitFnCompiler} from '../../lib/jitFnCompiler.ts';\nimport {createIfElseFn, isSafePropName, parentIs} from '../../lib/utils.ts';\nimport type {IndexSignatureRunType} from '../../nodes/member/indexProperty.ts';\nimport type {JitCode} from '../../types.ts';\nimport type {BaseRunType} from '../../lib/baseRunTypes.ts';\nimport type {ClassRunType} from '../../nodes/collection/class.ts';\nimport type {PropertyRunType} from '../../nodes/member/property.ts';\nimport type {MapRunType} from '../../nodes/native/map.ts';\nimport type {SetRunType} from '../../nodes/native/set.ts';\nimport type {InterfaceRunType} from '../../nodes/collection/interface.ts';\nimport type {TupleRunType} from '../../nodes/collection/tuple.ts';\nimport type {FunctionParamsRunType} from '../../nodes/collection/functionParams.ts';\nimport type {UnionRunType} from '../../nodes/collection/union.ts';\nimport type {ParameterRunType} from '../../nodes/member/param.ts';\nimport type {RestParamsRunType} from '../../nodes/member/restParams.ts';\nimport type {ArrayRunType} from '../../nodes/member/array.ts';\nimport type {MemberRunType} from '../../lib/baseRunTypes.ts';\nimport type {LiteralRunType} from '../../nodes/atomic/literal.ts';\nimport type {IterableRunType} from '../../nodes/native/Iterable.ts';\nimport {cpf_asJSONString} from '../../run-types-pure-fns.ts';\n\ntype Operation = typeof JitFunctions.stringifyJson.id | typeof JitFunctions.toJSCode.id;\n\nexport function createStringifyCompiler(fnID: Operation) {\n const compileStringifyIterable = createStringifyIterable(fnID);\n /** Centralized compile jit function with a switch statement that handles all node types. */\n function compileStringify(runType: BaseRunType, comp: JitFnCompiler): JitCode {\n const src = runType.src;\n const kind = src.kind;\n\n switch (kind) {\n // ###################### ATOMIC RUNTYPES ######################\n // Primitive types and other atomic types that don't contain other types\n case ReflectionKind.unknown:\n case ReflectionKind.any:\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.bigint:\n return {code: `'\"'+${comp.vλl}.toString()+'\"'`, type: 'E'};\n case ReflectionKind.boolean:\n return {code: `(${comp.vλl} ? 'true' : 'false')`, type: 'E'};\n case ReflectionKind.enum:\n if (src.indexType.kind === ReflectionKind.number) return {code: comp.vλl, type: 'E'};\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.enumMember:\n throw new Error('StringifyJson enum member is not supported.');\n case ReflectionKind.literal: {\n const rt = runType as LiteralRunType;\n if (src.literal instanceof RegExp) return compileStringify({src: {kind: ReflectionKind.regexp}} as any, comp);\n const literalRt = runType;\n const originalKind = src.kind;\n let result: JitCode;\n switch (typeof rt.src.literal) {\n case 'number':\n literalRt.src.kind = ReflectionKind.number;\n result = compileStringify(literalRt, comp);\n break;\n case 'string':\n literalRt.src.kind = ReflectionKind.string;\n result = compileStringify(literalRt, comp);\n break;\n case 'boolean':\n literalRt.src.kind = ReflectionKind.boolean;\n result = compileStringify(literalRt, comp);\n break;\n case 'bigint':\n literalRt.src.kind = ReflectionKind.bigint;\n result = compileStringify(literalRt, comp);\n break;\n case 'symbol':\n literalRt.src.kind = ReflectionKind.symbol;\n result = compileStringify(literalRt, comp);\n break;\n default:\n result = {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n break;\n }\n literalRt.src.kind = originalKind;\n return result;\n }\n case ReflectionKind.never:\n throw new Error('Never type cannot be stringified.');\n case ReflectionKind.null: {\n const isRoot = comp.getNestLevel(runType) === 0;\n return {code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: 'E'};\n }\n case ReflectionKind.number: {\n const isRoot = comp.getNestLevel(runType) === 0;\n return {code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: 'E'};\n }\n case ReflectionKind.object:\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.regexp: {\n return {code: `JSON.stringify(${comp.vλl}.toString())`, type: 'E'};\n }\n case ReflectionKind.string: {\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n }\n case ReflectionKind.symbol:\n return {code: `JSON.stringify('Symbol:' + (${comp.vλl}.description || ''))`, type: 'E'};\n case ReflectionKind.templateLiteral:\n throw new Error('Template Literals are not supported.');\n case ReflectionKind.undefined: {\n const isRoot = comp.getNestLevel(runType) === 0;\n if (isRoot) return {code: `undefined`, type: 'E'};\n const parentIsArray = parentIs(runType, ReflectionKind.array);\n if (parentIsArray) return {code: `'null'`, type: 'E'}; // we use array.join(',') to serialize arrays, so we need to return null literal (string)\n return {code: `null`, type: 'E'};\n }\n case ReflectionKind.void:\n return {code: 'undefined', type: 'E'};\n\n // ###################### MEMBER RUNTYPES ######################\n // Types that represent members of collections or other structures\n case ReflectionKind.array: {\n const rt = runType as ArrayRunType;\n rt.checkNonSkipTypes(comp);\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n if (!childJit?.code) return {code: `JSON.stringify(${comp.vλl})`, type: 'RB'};\n const jsonItems = comp.getLocalVarName('ls', rt);\n const resultVal = comp.getLocalVarName('res', rt);\n const index = rt.getChildVarName(comp);\n return {\n code: `\n const ${jsonItems} = [];\n for (let ${index} = ${rt.startIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {\n const ${resultVal} = ${childJit.code};\n ${jsonItems}.push(${resultVal});\n }\n return '[' + ${jsonItems}.join(',') + ']';\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.indexSignature: {\n const rt = runType as IndexSignatureRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'E', fnID);\n if (!child || !childJit?.code) return {code: undefined, type: 'RB'};\n const varName = comp.vλl;\n const prop = rt.getChildVarName(comp);\n const arrName = comp.getLocalVarName('ls', rt);\n const sep = rt.skipCommas ? '' : '+\",\"';\n const skipCode = rt.getSkipCode(comp, prop);\n // asJSONString is more optimized for propNames than JSON.stringify\n // in Node, bun is actually slower so we might consider removing this and use native JSON.stringify\n const asJSONStringFn = comp.addPureFunction(cpf_asJSONString);\n return {\n code: `\n const ${arrName} = [];\n for (const ${prop} in ${varName}) {\n ${skipCode}\n if (${prop} !== undefined) ${arrName}.push(${asJSONStringFn}(${prop}) + ':' + ${childJit.code});\n }\n if (!${arrName}.length) return '';\n return ${arrName}.join(',')${sep};\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.function:\n case ReflectionKind.method:\n case ReflectionKind.methodSignature:\n case ReflectionKind.callSignature:\n if (runType.src.subKind === ReflectionSubKind.params) {\n const rt = runType as FunctionParamsRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: '', type: 'E'};\n const params = rt.getParamRunTypes(comp);\n if (params.length === 0) return {code: `'[]'`, type: 'E'};\n const paramsCode = params.map((p) => comp.compile(p, 'E', fnID).code).join('+');\n return {code: `'['+${paramsCode}+']'`, type: 'E'};\n } else {\n throw new Error(\n `Compile function ${getOperationName()} not supported, call compileParams or compileReturn instead.`\n );\n }\n case ReflectionKind.parameter: {\n const rt = runType as ParameterRunType;\n switch (src.subKind) {\n case ReflectionSubKind.mapKey:\n case ReflectionSubKind.mapValue:\n case ReflectionSubKind.setItem:\n return compileStringifyGenericMember(rt, comp);\n default:\n return compileStringifyParameter(rt, comp);\n }\n }\n case ReflectionKind.property:\n case ReflectionKind.propertySignature: {\n const rt = runType as PropertyRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'E', fnID);\n if (!child || !childJit?.code) return {code: undefined, type: 'E'};\n // this can´t be processed in the parent as we need to handle the empty string case when value is undefined\n const sep = rt.skipCommas ? '' : '+\",\"';\n // encoding safe property with ':' inside the string saves a little processing\n // when prop is not safe we need to double encode double quotes and escape characters\n const propDef = getPropName(rt, comp);\n if (rt.src.optional) {\n rt.tempChildVλl = comp.getChildVλl();\n // TODO: check if json for an object with first property undefined is valid (maybe the comma must be dynamic too)\n return {code: `(${rt.tempChildVλl} === undefined ? '' : ${propDef}+${childJit.code}${sep})`, type: 'E'};\n }\n return {code: `${propDef}+${childJit.code}${sep}`, type: 'E'};\n }\n case ReflectionKind.rest: {\n const rt = runType as RestParamsRunType;\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const itemCodeStr = childJit?.code || 'JSON.stringify(' + comp.getChildVλl() + ')';\n const arrName = comp.getLocalVarName('res', rt);\n const itemName = comp.getLocalVarName('its', rt);\n const index = rt.getChildVarName(comp);\n const isFist = rt.getChildIndex(comp) === 0;\n const sep = isFist ? '' : `','+`;\n return {\n code: `\n const ${arrName} = [];\n for (let ${index} = ${rt.getChildIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {\n const ${itemName} = ${itemCodeStr};\n if(${itemName}) ${arrName}.push(${itemName});\n }\n if (!${arrName}.length) {return '';}\n else {return ${sep}${arrName}.join(',')}\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.tupleMember: {\n const rt = runType as ParameterRunType;\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const childCodeStr = childJit?.code || `null`; // non serializable types are set to null\n if (rt.isRest()) return childJit || {code: `null`, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional())\n return {code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: 'E'};\n return {code: `${sep}${childCodeStr}`, type: 'E'};\n }\n case ReflectionKind.promise: {\n throw new Error(`Jit compilation disabled for Non Serializable types.`);\n }\n\n // ###################### COLLECTION RUNTYPES ######################\n // Types that contain other types as members\n case ReflectionKind.objectLiteral:\n case ReflectionKind.intersection: {\n if (runType.src.subKind === ReflectionSubKind.nonSerializable) {\n throw new Error(`${getOperationName()} is disabled for Non Serializable types.`);\n } else {\n const rt = runType as InterfaceRunType;\n return compileStringifyInterface(rt, comp);\n }\n }\n case ReflectionKind.class:\n return compileStringifyClass(runType, comp);\n case ReflectionKind.infer:\n throw new Error('Infer is not supported.');\n case ReflectionKind.tuple: {\n const rt = runType as TupleRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: '', type: 'E'};\n if (rt.getChildRunTypes().length === 0) return {code: `'[]'`, type: 'E'};\n const paramsCode = rt\n .getChildRunTypes()\n .map((p) => comp.compile(p, 'E', fnID).code)\n .join('+');\n return {code: `'['+${paramsCode}+']'`, type: 'E'};\n }\n case ReflectionKind.typeParameter:\n // Type parameter has been replaced by tuple member internally so this should never be called\n throw new Error('Type parameter not implemented.');\n case ReflectionKind.union: {\n const urt = runType as UnionRunType;\n urt.checkAllowedChildren(comp);\n const {simpleItems, objectTypes, anyItem} = urt.getUnionChildren(comp);\n const errName = comp.getLocalVarName('uErr', urt);\n const fail = `throw new Error(${errName});`;\n comp.setContextItem(\n errName,\n `const ${errName} = \"Can not ${getOperationName()} union: item does not belong to the union\"`\n );\n const ifElse = createIfElseFn();\n // Helper to generate stringify code for a union item\n const getStringifyCode = (unionItem: BaseRunType) => {\n const childJit = comp.compile(unionItem, 'E', fnID);\n const encJit = comp.compilePrepareForJson(unionItem, 'E');\n const decJit = comp.compileRestoreFromJson(unionItem, 'E');\n const needsTupleEncoding = !!encJit?.code || !!decJit?.code;\n const skiEncode = !childJit?.code || childJit.code === comp.vλl;\n const stringifyCode = skiEncode ? comp.vλl : childJit.code;\n const index = urt.getUnionItemIndex(comp, unionItem);\n const toTuple = `'[${index},' + ${stringifyCode} + ']'`;\n const tupleCode = unionItem.getFamily() === 'A' ? `(${toTuple})` : toTuple;\n return needsTupleEncoding ? `return ${tupleCode}` : `return ${stringifyCode}`;\n };\n // Generate code for simple items (atomic types)\n const simpleCode = simpleItems.map((unionItem) => {\n const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);\n return `${ifElse()} (${isTypeCode}) {${getStringifyCode(unionItem)}}`;\n });\n // Generate code for object types (need null guard)\n const objCode = objectTypes.length\n ? objectTypes.map((unionItem) => {\n const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);\n return `${ifElse()} (typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null && ${isTypeCode}) {${getStringifyCode(unionItem)}}`;\n })\n : [];\n // Generate code for anyItem (always matches, checked last as fallback)\n const anyCode = anyItem ? `${ifElse(true)} {${getStringifyCode(anyItem)}}` : `${ifElse(true)} {${fail}}`;\n\n return {code: [...simpleCode, ...objCode, anyCode].join(''), type: 'RB'};\n }\n default:\n throw new Error(`Cant ${getOperationName()} for unsupported RunType: ${runType.getTypeName()}`);\n }\n }\n\n function getOperationName() {\n switch (fnID) {\n case JitFunctions.stringifyJson.id:\n return 'StringifyJson';\n case JitFunctions.toJSCode.id:\n return 'ToCode';\n default:\n throw new Error(`Unknown operation: ${fnID}`);\n }\n }\n\n function getPropName(rt: PropertyRunType, comp: JitFnCompiler): string {\n if (!isSafePropName(rt.src.name)) return `${JSON.stringify(rt.getChildLiteral(comp) as string)}+':'`;\n if (fnID === JitFunctions.toJSCode.id) return `'${rt.getChildVarName(comp)}:'`;\n return `'\"${rt.getChildVarName(comp)}\":'`;\n }\n\n function compileStringifyParameter(rt: ParameterRunType, comp: JitFnCompiler): JitCode {\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const childCodeStr = childJit?.code || `null`; // non serializable types are set to null\n if (rt.isRest()) return childJit || {code: `null`, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional())\n return {code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: 'E'};\n return {code: `${sep}${childCodeStr}`, type: 'E'};\n }\n\n function compileStringifyGenericMember(rt: ParameterRunType, comp: JitFnCompiler): JitCode {\n const child = rt.getJitChild(comp);\n const argCode = comp.compile(child, 'E', fnID);\n if (!argCode?.code) return {code: undefined, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional()) return {code: `(${comp.getChildVλl()} === undefined ? '': ${sep}${argCode.code})`, type: 'E'};\n return {code: `${sep}${argCode.code}`, type: 'E'};\n }\n\n function compileStringifyInterface(rt: InterfaceRunType, comp: JitFnCompiler): JitCode {\n if (rt.isCallable()) return comp.compile(rt.getCallSignature(), 'E', fnID);\n const children = rt.getJsonStringifySortedChildren(comp);\n if (children.length === 0) return {code: `''`, type: 'E'};\n const allOptional = children.every((prop) => (prop as MemberRunType<any>).isOptional());\n // if all properties are optional, we can not optimize and use JSON.stringify\n if (allOptional) return compileInterfaceIntoArray(rt, comp, children);\n const childrenCode = children\n .map((prop, i) => {\n const nexChild = children[i + 1];\n const isLast = !nexChild;\n prop.skipCommas = isLast;\n return comp.compile(prop, 'E', fnID).code;\n })\n .filter(Boolean)\n .join('+');\n return {code: `'{'+${childrenCode}+'}'`, type: 'E'};\n }\n\n function compileInterfaceIntoArray(rt: InterfaceRunType, comp: JitFnCompiler, children: MemberRunType<any>[]): JitCode {\n const arrName = comp.getLocalVarName('ns', rt);\n const childrenCode = children\n .map((prop) => {\n prop.skipCommas = true;\n const childJit = comp.compile(prop, 'E', fnID);\n if (!childJit?.code) return '';\n const code = `${arrName}.push(${childJit.code})`;\n // makes an extra check to avoid pushing empty strings to the array (childJit also makes the same check but is better than having to filter the array after)\n return prop.isOptional() && prop.tempChildVλl ? `if (${prop.tempChildVλl} !== undefined){${code}}` : `${code};`;\n })\n .filter(Boolean)\n .join('');\n\n return {code: `(function(){const ${arrName} = [];${childrenCode};return '{'+${arrName}.join(',')+'}'})()`, type: 'E'};\n }\n\n function compileStringifyClass(runType: BaseRunType, comp: JitFnCompiler): JitCode {\n switch (runType.src.subKind) {\n case ReflectionSubKind.date:\n return {code: `'\"'+${comp.vλl}.toJSON()+'\"'`, type: 'E'};\n case ReflectionSubKind.map: {\n const rt = runType as unknown as MapRunType;\n return compileStringifyIterable(rt as unknown as IterableRunType, comp);\n }\n case ReflectionSubKind.set: {\n const rt = runType as unknown as SetRunType;\n return compileStringifyIterable(rt as unknown as IterableRunType, comp);\n }\n case ReflectionSubKind.nonSerializable:\n throw new Error(`Jit compilation disabled for Non Serializable types.`);\n default: {\n const rt = runType as unknown as ClassRunType;\n if (rt.isCallable()) {\n const callSignature = rt.getCallSignature();\n if (callSignature) return comp.compile(callSignature, 'E', fnID);\n }\n // optional and index properties must be compiled first to prevent trailing commas\n // this is because the last trailing comma is calculated statically\n // maybe we need to move that trailing comma compilation to be dynamic\n // but we would need to create a self invoking function for that\n const children = rt.getJsonStringifySortedChildren(comp);\n if (children.length === 0) return {code: `''`, type: 'E'};\n const childrenCode = children\n .map((prop, i) => {\n const nexChild = children[i + 1];\n const isLast = !nexChild;\n prop.skipCommas = isLast;\n return comp.compile(prop, 'E', fnID).code;\n })\n .filter(Boolean)\n .join('+');\n return {code: `'{'+${childrenCode}+'}'`, type: 'E'};\n }\n }\n }\n\n return compileStringify;\n}\n\nexport function createStringifyIterable(fnID: Operation) {\n return function compileStringifyIterable(\n rt: IterableRunType,\n comp: JitFnCompiler,\n /** prefix characters to add before the generated array, used when generating code instead json */\n codePrefix: string = '',\n /** suffix characters to add after the generated array, used when generating code instead json */\n codeSuffix: string = ''\n ): JitCode {\n const entry = rt.getCustomVλl(comp)?.vλl || comp.vλl;\n const jitChildren = rt.getJitChildren(comp);\n const childrenCode = jitChildren.map((c) => comp.compile(c, 'E', fnID).code).join('+');\n const jsonItems = comp.getLocalVarName('ls', rt);\n const resultVal = comp.getLocalVarName('res', rt);\n const childrenResult = jitChildren.length > 1 ? `'['+${childrenCode}+']'` : childrenCode;\n const earlyReturn = codePrefix && codeSuffix ? `if (!${jsonItems}.length) return '${codePrefix}${codeSuffix}';` : '';\n return {\n code: `\n const ${jsonItems} = [];\n for (const ${entry} of ${comp.vλl}) {\n const ${resultVal} = ${childrenResult};\n ${jsonItems}.push(${resultVal});\n }\n ${earlyReturn}return '${codePrefix}[' + ${jsonItems}.join(',') + ']${codeSuffix}'\n `,\n type: 'RB',\n };\n };\n}\n\nexport const emitJsonStringify = createStringifyCompiler(JitFunctions.stringifyJson.id);\n"],"names":["ReflectionKind","parentIs","cpf_asJSONString","ReflectionSubKind","createIfElseFn","JitFunctions","isSafePropName"],"mappings":"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"}
1
+ {"version":3,"file":"stringifyJson.cjs","sources":["../../../../../src/jitCompilers/json/stringifyJson.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 {ReflectionKind} from '@deepkit/type';\nimport {ReflectionSubKind} from '../../constants.kind.ts';\nimport {JitFunctions} from '../../constants.functions.ts';\nimport {JitFnCompiler} from '../../lib/jitFnCompiler.ts';\nimport {createIfElseFn, isSafePropName, parentIs} from '../../lib/utils.ts';\nimport type {IndexSignatureRunType} from '../../nodes/member/indexProperty.ts';\nimport type {JitCode} from '../../types.ts';\nimport type {BaseRunType} from '../../lib/baseRunTypes.ts';\nimport type {ClassRunType} from '../../nodes/collection/class.ts';\nimport type {PropertyRunType} from '../../nodes/member/property.ts';\nimport type {MapRunType} from '../../nodes/native/map.ts';\nimport type {SetRunType} from '../../nodes/native/set.ts';\nimport type {InterfaceRunType} from '../../nodes/collection/interface.ts';\nimport type {TupleRunType} from '../../nodes/collection/tuple.ts';\nimport type {FunctionParamsRunType} from '../../nodes/collection/functionParams.ts';\nimport type {UnionRunType} from '../../nodes/collection/union.ts';\nimport type {ParameterRunType} from '../../nodes/member/param.ts';\nimport type {RestParamsRunType} from '../../nodes/member/restParams.ts';\nimport type {ArrayRunType} from '../../nodes/member/array.ts';\nimport type {MemberRunType} from '../../lib/baseRunTypes.ts';\nimport type {LiteralRunType} from '../../nodes/atomic/literal.ts';\nimport type {IterableRunType} from '../../nodes/native/Iterable.ts';\nimport {cpf_asJSONString} from '../../run-types-pure-fns.ts';\n\ntype Operation = typeof JitFunctions.stringifyJson.id | typeof JitFunctions.toJSCode.id;\n\nexport function createStringifyCompiler(fnID: Operation) {\n const compileStringifyIterable = createStringifyIterable(fnID);\n /** Centralized compile jit function with a switch statement that handles all node types. */\n function compileStringify(runType: BaseRunType, comp: JitFnCompiler): JitCode {\n const src = runType.src;\n const kind = src.kind;\n\n switch (kind) {\n // ###################### ATOMIC RUNTYPES ######################\n // Primitive types and other atomic types that don't contain other types\n case ReflectionKind.unknown:\n case ReflectionKind.any:\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.bigint:\n return {code: `'\"'+${comp.vλl}.toString()+'\"'`, type: 'E'};\n case ReflectionKind.boolean:\n return {code: `(${comp.vλl} ? 'true' : 'false')`, type: 'E'};\n case ReflectionKind.enum:\n if (src.indexType.kind === ReflectionKind.number) return {code: comp.vλl, type: 'E'};\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.enumMember:\n throw new Error('StringifyJson enum member is not supported.');\n case ReflectionKind.literal: {\n const rt = runType as LiteralRunType;\n if (src.literal instanceof RegExp) return compileStringify({src: {kind: ReflectionKind.regexp}} as any, comp);\n const literalRt = runType;\n const originalKind = src.kind;\n let result: JitCode;\n switch (typeof rt.src.literal) {\n case 'number':\n literalRt.src.kind = ReflectionKind.number;\n result = compileStringify(literalRt, comp);\n break;\n case 'string':\n literalRt.src.kind = ReflectionKind.string;\n result = compileStringify(literalRt, comp);\n break;\n case 'boolean':\n literalRt.src.kind = ReflectionKind.boolean;\n result = compileStringify(literalRt, comp);\n break;\n case 'bigint':\n literalRt.src.kind = ReflectionKind.bigint;\n result = compileStringify(literalRt, comp);\n break;\n case 'symbol':\n literalRt.src.kind = ReflectionKind.symbol;\n result = compileStringify(literalRt, comp);\n break;\n default:\n result = {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n break;\n }\n literalRt.src.kind = originalKind;\n return result;\n }\n case ReflectionKind.never:\n throw new Error('Never type cannot be stringified.');\n case ReflectionKind.null: {\n const isRoot = comp.getNestLevel(runType) === 0;\n return {code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: 'E'};\n }\n case ReflectionKind.number: {\n const isRoot = comp.getNestLevel(runType) === 0;\n return {code: isRoot ? `String(${comp.vλl})` : comp.vλl, type: 'E'};\n }\n case ReflectionKind.object:\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.regexp: {\n return {code: `JSON.stringify(${comp.vλl}.toString())`, type: 'E'};\n }\n case ReflectionKind.string: {\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n }\n case ReflectionKind.symbol:\n return {code: `JSON.stringify('Symbol:' + (${comp.vλl}.description || ''))`, type: 'E'};\n case ReflectionKind.templateLiteral:\n // runtime value is a plain string\n return {code: `JSON.stringify(${comp.vλl})`, type: 'E'};\n case ReflectionKind.undefined: {\n const isRoot = comp.getNestLevel(runType) === 0;\n if (isRoot) return {code: `undefined`, type: 'E'};\n const parentIsArray = parentIs(runType, ReflectionKind.array);\n if (parentIsArray) return {code: `'null'`, type: 'E'}; // we use array.join(',') to serialize arrays, so we need to return null literal (string)\n return {code: `null`, type: 'E'};\n }\n case ReflectionKind.void:\n return {code: 'undefined', type: 'E'};\n\n // ###################### MEMBER RUNTYPES ######################\n // Types that represent members of collections or other structures\n case ReflectionKind.array: {\n const rt = runType as ArrayRunType;\n rt.checkNonSkipTypes(comp);\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n if (!childJit?.code) return {code: `JSON.stringify(${comp.vλl})`, type: 'RB'};\n const jsonItems = comp.getLocalVarName('ls', rt);\n const resultVal = comp.getLocalVarName('res', rt);\n const index = rt.getChildVarName(comp);\n return {\n code: `\n const ${jsonItems} = [];\n for (let ${index} = ${rt.startIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {\n const ${resultVal} = ${childJit.code};\n ${jsonItems}.push(${resultVal});\n }\n return '[' + ${jsonItems}.join(',') + ']';\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.indexSignature: {\n const rt = runType as IndexSignatureRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'E', fnID);\n if (!child || !childJit?.code) return {code: undefined, type: 'RB'};\n const varName = comp.vλl;\n const prop = rt.getChildVarName(comp);\n const arrName = comp.getLocalVarName('ls', rt);\n const sep = rt.skipCommas ? '' : '+\",\"';\n const skipCode = rt.getSkipCode(comp, prop);\n // asJSONString is more optimized for propNames than JSON.stringify\n // in Node, bun is actually slower so we might consider removing this and use native JSON.stringify\n const asJSONStringFn = comp.addPureFunction(cpf_asJSONString);\n return {\n code: `\n const ${arrName} = [];\n for (const ${prop} in ${varName}) {\n ${skipCode}\n if (${prop} !== undefined) ${arrName}.push(${asJSONStringFn}(${prop}) + ':' + ${childJit.code});\n }\n if (!${arrName}.length) return '';\n return ${arrName}.join(',')${sep};\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.function:\n case ReflectionKind.method:\n case ReflectionKind.methodSignature:\n case ReflectionKind.callSignature:\n if (runType.src.subKind === ReflectionSubKind.params) {\n const rt = runType as FunctionParamsRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: '', type: 'E'};\n const params = rt.getParamRunTypes(comp);\n if (params.length === 0) return {code: `'[]'`, type: 'E'};\n const paramsCode = params.map((p) => comp.compile(p, 'E', fnID).code).join('+');\n return {code: `'['+${paramsCode}+']'`, type: 'E'};\n } else {\n throw new Error(\n `Compile function ${getOperationName()} not supported, call compileParams or compileReturn instead.`\n );\n }\n case ReflectionKind.parameter: {\n const rt = runType as ParameterRunType;\n switch (src.subKind) {\n case ReflectionSubKind.mapKey:\n case ReflectionSubKind.mapValue:\n case ReflectionSubKind.setItem:\n return compileStringifyGenericMember(rt, comp);\n default:\n return compileStringifyParameter(rt, comp);\n }\n }\n case ReflectionKind.property:\n case ReflectionKind.propertySignature: {\n const rt = runType as PropertyRunType;\n const child = rt.getJitChild(comp);\n const childJit = comp.compile(child, 'E', fnID);\n if (!child || !childJit?.code) return {code: undefined, type: 'E'};\n // this can´t be processed in the parent as we need to handle the empty string case when value is undefined\n const sep = rt.skipCommas ? '' : '+\",\"';\n // encoding safe property with ':' inside the string saves a little processing\n // when prop is not safe we need to double encode double quotes and escape characters\n const propDef = getPropName(rt, comp);\n if (rt.src.optional) {\n rt.tempChildVλl = comp.getChildVλl();\n // TODO: check if json for an object with first property undefined is valid (maybe the comma must be dynamic too)\n return {code: `(${rt.tempChildVλl} === undefined ? '' : ${propDef}+${childJit.code}${sep})`, type: 'E'};\n }\n return {code: `${propDef}+${childJit.code}${sep}`, type: 'E'};\n }\n case ReflectionKind.rest: {\n const rt = runType as RestParamsRunType;\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const itemCodeStr = childJit?.code || 'JSON.stringify(' + comp.getChildVλl() + ')';\n const arrName = comp.getLocalVarName('res', rt);\n const itemName = comp.getLocalVarName('its', rt);\n const index = rt.getChildVarName(comp);\n const isFist = rt.getChildIndex(comp) === 0;\n const sep = isFist ? '' : `','+`;\n return {\n code: `\n const ${arrName} = [];\n for (let ${index} = ${rt.getChildIndex(comp)}; ${index} < ${comp.vλl}.length; ${index}++) {\n const ${itemName} = ${itemCodeStr};\n if(${itemName}) ${arrName}.push(${itemName});\n }\n if (!${arrName}.length) {return '';}\n else {return ${sep}${arrName}.join(',')}\n `,\n type: 'RB',\n };\n }\n case ReflectionKind.tupleMember: {\n const rt = runType as ParameterRunType;\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const childCodeStr = childJit?.code || `null`; // non serializable types are set to null\n if (rt.isRest()) return childJit || {code: `null`, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional())\n return {code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: 'E'};\n return {code: `${sep}${childCodeStr}`, type: 'E'};\n }\n case ReflectionKind.promise: {\n throw new Error(`Jit compilation disabled for Non Serializable types.`);\n }\n\n // ###################### COLLECTION RUNTYPES ######################\n // Types that contain other types as members\n case ReflectionKind.objectLiteral:\n case ReflectionKind.intersection: {\n if (runType.src.subKind === ReflectionSubKind.nonSerializable) {\n throw new Error(`${getOperationName()} is disabled for Non Serializable types.`);\n } else {\n const rt = runType as InterfaceRunType;\n return compileStringifyInterface(rt, comp);\n }\n }\n case ReflectionKind.class:\n return compileStringifyClass(runType, comp);\n case ReflectionKind.infer:\n throw new Error('Infer is not supported.');\n case ReflectionKind.tuple: {\n const rt = runType as TupleRunType;\n const skip = rt.skipJit(comp);\n if (skip) return {code: '', type: 'E'};\n if (rt.getChildRunTypes().length === 0) return {code: `'[]'`, type: 'E'};\n const paramsCode = rt\n .getChildRunTypes()\n .map((p) => comp.compile(p, 'E', fnID).code)\n .join('+');\n return {code: `'['+${paramsCode}+']'`, type: 'E'};\n }\n case ReflectionKind.typeParameter:\n // Type parameter has been replaced by tuple member internally so this should never be called\n throw new Error('Type parameter not implemented.');\n case ReflectionKind.union: {\n const urt = runType as UnionRunType;\n urt.checkAllowedChildren(comp);\n const {simpleItems, objectTypes, anyItem} = urt.getUnionChildren(comp);\n const errName = comp.getLocalVarName('uErr', urt);\n const fail = `throw new Error(${errName});`;\n comp.setContextItem(\n errName,\n `const ${errName} = \"Can not ${getOperationName()} union: item does not belong to the union\"`\n );\n const ifElse = createIfElseFn();\n // Helper to generate stringify code for a union item\n const getStringifyCode = (unionItem: BaseRunType) => {\n const childJit = comp.compile(unionItem, 'E', fnID);\n const encJit = comp.compilePrepareForJson(unionItem, 'E');\n const decJit = comp.compileRestoreFromJson(unionItem, 'E');\n const needsTupleEncoding = !!encJit?.code || !!decJit?.code;\n const skiEncode = !childJit?.code || childJit.code === comp.vλl;\n const stringifyCode = skiEncode ? comp.vλl : childJit.code;\n const index = urt.getUnionItemIndex(comp, unionItem);\n const toTuple = `'[${index},' + ${stringifyCode} + ']'`;\n const tupleCode = unionItem.getFamily() === 'A' ? `(${toTuple})` : toTuple;\n return needsTupleEncoding ? `return ${tupleCode}` : `return ${stringifyCode}`;\n };\n // Generate code for simple items (atomic types)\n const simpleCode = simpleItems.map((unionItem) => {\n const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);\n return `${ifElse()} (${isTypeCode}) {${getStringifyCode(unionItem)}}`;\n });\n // Generate code for object types (need null guard)\n const objCode = objectTypes.length\n ? objectTypes.map((unionItem) => {\n const isTypeCode = urt.getChildIsTypeWithLooseCheck(unionItem, comp);\n return `${ifElse()} (typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null && ${isTypeCode}) {${getStringifyCode(unionItem)}}`;\n })\n : [];\n // Generate code for anyItem (always matches, checked last as fallback)\n const anyCode = anyItem ? `${ifElse(true)} {${getStringifyCode(anyItem)}}` : `${ifElse(true)} {${fail}}`;\n\n return {code: [...simpleCode, ...objCode, anyCode].join(''), type: 'RB'};\n }\n default:\n throw new Error(`Cant ${getOperationName()} for unsupported RunType: ${runType.getTypeName()}`);\n }\n }\n\n function getOperationName() {\n switch (fnID) {\n case JitFunctions.stringifyJson.id:\n return 'StringifyJson';\n case JitFunctions.toJSCode.id:\n return 'ToCode';\n default:\n throw new Error(`Unknown operation: ${fnID}`);\n }\n }\n\n function getPropName(rt: PropertyRunType, comp: JitFnCompiler): string {\n if (!isSafePropName(rt.src.name)) return `${JSON.stringify(rt.getChildLiteral(comp) as string)}+':'`;\n if (fnID === JitFunctions.toJSCode.id) return `'${rt.getChildVarName(comp)}:'`;\n return `'\"${rt.getChildVarName(comp)}\":'`;\n }\n\n function compileStringifyParameter(rt: ParameterRunType, comp: JitFnCompiler): JitCode {\n const childJit = comp.compile(rt.getJitChild(comp), 'E', fnID);\n const childCodeStr = childJit?.code || `null`; // non serializable types are set to null\n if (rt.isRest()) return childJit || {code: `null`, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional())\n return {code: `(${comp.getChildVλl()} === undefined ? ${sep}'null' : ${sep}${childCodeStr})`, type: 'E'};\n return {code: `${sep}${childCodeStr}`, type: 'E'};\n }\n\n function compileStringifyGenericMember(rt: ParameterRunType, comp: JitFnCompiler): JitCode {\n const child = rt.getJitChild(comp);\n const argCode = comp.compile(child, 'E', fnID);\n if (!argCode?.code) return {code: undefined, type: 'E'};\n const isFirst = rt.getChildIndex(comp) === 0;\n const sep = isFirst ? '' : `','+`;\n if (rt.isOptional()) return {code: `(${comp.getChildVλl()} === undefined ? '': ${sep}${argCode.code})`, type: 'E'};\n return {code: `${sep}${argCode.code}`, type: 'E'};\n }\n\n function compileStringifyInterface(rt: InterfaceRunType, comp: JitFnCompiler): JitCode {\n if (rt.isCallable()) return comp.compile(rt.getCallSignature(), 'E', fnID);\n const children = rt.getJsonStringifySortedChildren(comp);\n if (children.length === 0) return {code: `''`, type: 'E'};\n const allOptional = children.every((prop) => (prop as MemberRunType<any>).isOptional());\n // if all properties are optional, we can not optimize and use JSON.stringify\n if (allOptional) return compileInterfaceIntoArray(rt, comp, children);\n const childrenCode = children\n .map((prop, i) => {\n const nexChild = children[i + 1];\n const isLast = !nexChild;\n prop.skipCommas = isLast;\n return comp.compile(prop, 'E', fnID).code;\n })\n .filter(Boolean)\n .join('+');\n return {code: `'{'+${childrenCode}+'}'`, type: 'E'};\n }\n\n function compileInterfaceIntoArray(rt: InterfaceRunType, comp: JitFnCompiler, children: MemberRunType<any>[]): JitCode {\n const arrName = comp.getLocalVarName('ns', rt);\n const childrenCode = children\n .map((prop) => {\n prop.skipCommas = true;\n const childJit = comp.compile(prop, 'E', fnID);\n if (!childJit?.code) return '';\n const code = `${arrName}.push(${childJit.code})`;\n // makes an extra check to avoid pushing empty strings to the array (childJit also makes the same check but is better than having to filter the array after)\n return prop.isOptional() && prop.tempChildVλl ? `if (${prop.tempChildVλl} !== undefined){${code}}` : `${code};`;\n })\n .filter(Boolean)\n .join('');\n\n return {code: `(function(){const ${arrName} = [];${childrenCode};return '{'+${arrName}.join(',')+'}'})()`, type: 'E'};\n }\n\n function compileStringifyClass(runType: BaseRunType, comp: JitFnCompiler): JitCode {\n switch (runType.src.subKind) {\n case ReflectionSubKind.date:\n return {code: `'\"'+${comp.vλl}.toJSON()+'\"'`, type: 'E'};\n case ReflectionSubKind.map: {\n const rt = runType as unknown as MapRunType;\n return compileStringifyIterable(rt as unknown as IterableRunType, comp);\n }\n case ReflectionSubKind.set: {\n const rt = runType as unknown as SetRunType;\n return compileStringifyIterable(rt as unknown as IterableRunType, comp);\n }\n case ReflectionSubKind.nonSerializable:\n throw new Error(`Jit compilation disabled for Non Serializable types.`);\n default: {\n const rt = runType as unknown as ClassRunType;\n if (rt.isCallable()) {\n const callSignature = rt.getCallSignature();\n if (callSignature) return comp.compile(callSignature, 'E', fnID);\n }\n // optional and index properties must be compiled first to prevent trailing commas\n // this is because the last trailing comma is calculated statically\n // maybe we need to move that trailing comma compilation to be dynamic\n // but we would need to create a self invoking function for that\n const children = rt.getJsonStringifySortedChildren(comp);\n if (children.length === 0) return {code: `''`, type: 'E'};\n const childrenCode = children\n .map((prop, i) => {\n const nexChild = children[i + 1];\n const isLast = !nexChild;\n prop.skipCommas = isLast;\n return comp.compile(prop, 'E', fnID).code;\n })\n .filter(Boolean)\n .join('+');\n return {code: `'{'+${childrenCode}+'}'`, type: 'E'};\n }\n }\n }\n\n return compileStringify;\n}\n\nexport function createStringifyIterable(fnID: Operation) {\n return function compileStringifyIterable(\n rt: IterableRunType,\n comp: JitFnCompiler,\n /** prefix characters to add before the generated array, used when generating code instead json */\n codePrefix: string = '',\n /** suffix characters to add after the generated array, used when generating code instead json */\n codeSuffix: string = ''\n ): JitCode {\n const entry = rt.getCustomVλl(comp)?.vλl || comp.vλl;\n const jitChildren = rt.getJitChildren(comp);\n const childrenCode = jitChildren.map((c) => comp.compile(c, 'E', fnID).code).join('+');\n const jsonItems = comp.getLocalVarName('ls', rt);\n const resultVal = comp.getLocalVarName('res', rt);\n const childrenResult = jitChildren.length > 1 ? `'['+${childrenCode}+']'` : childrenCode;\n const earlyReturn = codePrefix && codeSuffix ? `if (!${jsonItems}.length) return '${codePrefix}${codeSuffix}';` : '';\n return {\n code: `\n const ${jsonItems} = [];\n for (const ${entry} of ${comp.vλl}) {\n const ${resultVal} = ${childrenResult};\n ${jsonItems}.push(${resultVal});\n }\n ${earlyReturn}return '${codePrefix}[' + ${jsonItems}.join(',') + ']${codeSuffix}'\n `,\n type: 'RB',\n };\n };\n}\n\nexport const emitJsonStringify = createStringifyCompiler(JitFunctions.stringifyJson.id);\n"],"names":["ReflectionKind","parentIs","cpf_asJSONString","ReflectionSubKind","createIfElseFn","JitFunctions","isSafePropName"],"mappings":"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"}
@@ -8,3 +8,4 @@ export declare function createStringifyCompiler(fnID: Operation): (runType: Base
8
8
  export declare function createStringifyIterable(fnID: Operation): (rt: IterableRunType, comp: JitFnCompiler, codePrefix?: string, codeSuffix?: string) => JitCode;
9
9
  export declare const emitJsonStringify: (runType: BaseRunType, comp: JitFnCompiler) => JitCode;
10
10
  export {};
11
+ //# sourceMappingURL=stringifyJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyJson.d.ts","sourceRoot":"","sources":["../../../../../src/jitCompilers/json/stringifyJson.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAGzD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAc3D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAGpE,KAAK,SAAS,GAAG,OAAO,YAAY,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;AAExF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,aAGhB,WAAW,QAAQ,aAAa,KAAG,OAAO,CAuZhF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,IAE/C,IAAI,eAAe,EACnB,MAAM,aAAa,EAEnB,aAAY,MAAW,EAEvB,aAAY,MAAW,KACxB,OAAO,CAoBb;AAED,eAAO,MAAM,iBAAiB,YAvbS,WAAW,QAAQ,aAAa,KAAG,OAuba,CAAC"}
@@ -25,3 +25,4 @@ export declare function roundTrip(serialize: (v: any) => string, deserialize: (v
25
25
  serialized: string;
26
26
  deserialized: any;
27
27
  };
28
+ //# sourceMappingURL=stringifyHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyHelpers.d.ts","sourceRoot":"","sources":["../../../../../../src/jitCompilers/json/stringifySpec/stringifyHelpers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wCAAwC,CAAC;AAC7E,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAK/C,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO;;wBAGnB,GAAG;EAEjC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM;;wBAIrD,GAAG;EAEjC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,eAAe;;wBAGhC,GAAG;EAEjC;AAED,wBAAgB,wCAAwC,CAAC,EAAE,EAAE,gBAAgB;;wBAI9C,GAAG;EAEjC;AAED,wBAAgB,wCAAwC,CAAC,EAAE,EAAE,gBAAgB;;wBAI9C,GAAG;EAEjC;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG;;;EAKnG"}
@@ -3,3 +3,4 @@ import { BaseRunType } from '../../lib/baseRunTypes.ts';
3
3
  import { JitFnCompiler } from '../../lib/jitFnCompiler.ts';
4
4
  export declare function createToCodeCompiler(): (runType: BaseRunType, comp: JitFnCompiler) => JitCode;
5
5
  export declare function emitToCode(runType: BaseRunType, comp: JitFnCompiler): JitCode;
6
+ //# sourceMappingURL=toJsCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toJsCode.d.ts","sourceRoot":"","sources":["../../../../../src/jitCompilers/json/toJsCode.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAO3D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAKzD,wBAAgB,oBAAoB,cAeA,WAAW,QAAQ,aAAa,KAAG,OAAO,CA6F7E;AAKD,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAG7E"}
@@ -48,3 +48,4 @@ export declare abstract class BaseRunTypeFormat<P extends TypeFormatParams = any
48
48
  getCallJitFormatErr(comp: JitErrorsFnCompiler, expected: BaseRunType<any>, formatter: BaseRunTypeFormat<any>, shouldReturn?: boolean, extraPathLiteral?: StrNumber): (paramName: string, paramValue: string | number | boolean | bigint) => string;
49
49
  printPath(rt: BaseRunType, paramName?: string): string;
50
50
  }
51
+ //# sourceMappingURL=baseRunTypeFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseRunTypeFormat.d.ts","sourceRoot":"","sources":["../../../../src/lib/baseRunTypeFormat.ts"],"names":[],"mappings":"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"}
@@ -71,3 +71,4 @@ export declare abstract class MemberRunType<T extends Type> extends BaseRunType<
71
71
  visitToBinary(comp: JitFnCompiler): JitCode;
72
72
  visitFromBinary(comp: JitFnCompiler): JitCode;
73
73
  }
74
+ //# sourceMappingURL=baseRunTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseRunTypes.d.ts","sourceRoot":"","sources":["../../../../src/lib/baseRunTypes.ts"],"names":[],"mappings":"AAOA,OAAO,EAAkB,aAAa,EAAwC,MAAM,cAAc,CAAC;AACnG,OAAO,KAAK,EACR,OAAO,EAEP,oBAAoB,EACpB,OAAO,EACP,OAAO,EAEP,SAAS,EACT,KAAK,EACL,OAAO,EACP,cAAc,EACd,SAAS,EACT,WAAW,EACX,aAAa,EAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAC,KAAK,QAAQ,EAA0B,MAAM,2BAA2B,CAAC;AAEjF,OAAO,KAAK,EAAmC,IAAI,EAAC,MAAM,eAAe,CAAC;AAI1E,OAAO,KAAK,EAAC,aAAa,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAC,KAAK,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAUzE,8BAAsB,WAAW,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,CAAE,YAAW,OAAO;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAe;IACvC,QAAQ,CAAC,SAAS,IAAI,aAAa;IAMnC,YAAY,QAAO,OAAO,CASxB;IACF,WAAW,QAAgB,WAAW,CAA6B;IACnE,WAAW,QAAO,MAAM,CAA4C;IACpE,SAAS,QAAgB,MAAM,CAA6B;IAC5D,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAIrC,eAAe,IAAI,MAAM,GAAG,SAAS;IAOrC,SAAS,IAAI,SAAS;IAMtB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAMxC,SAAS,QAAO,WAAW,GAAG,SAAS,CAAqD;IAC5F,0BAA0B,CAAC,KAAK,GAAE,OAAO,EAAO,GAAG,SAAS,GAAG,SAAS;IAoBxE,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;IAUlC,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS;IAOxD,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;IAMhE,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ5D,QAAQ,CAAC,IAAI,GAAE,WAAW,CAAC,cAAc,CAAM,GAAG,GAAG;IAgBrD,iBAAiB,GAAI,OAAO,KAAK,EAAE,OAAM,cAAmB,KAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAEtF;IAEF,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,GAAE,cAAmB,GAAG,aAAa;IAmC7G,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAC1E,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IACpF,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAClF,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAC1F,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IACpF,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAE1F,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAClF,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;CACtF;AAMD,8BAAsB,aAAa,CAAC,CAAC,SAAS,IAAI,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACtE,SAAS,IAAI,GAAG;IAGhB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGhD,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGjD,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGhD,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGlD,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAGlD,0BAA0B,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAG3D;AAQD,8BAAsB,iBAAiB,CAAC,CAAC,SAAS,IAAI,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC1E,SAAS,IAAI,GAAG;IAGhB,gBAAgB,QAAO,WAAW,EAAE,CAGlC;IACF,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,EAAE;IAUlD,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE;IAQ9C,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAMhD,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO;IAMxD,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAMlD,0BAA0B,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAM3D;AAMD,8BAAsB,aAAa,CAAC,CAAC,SAAS,IAAI,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAE,YAAW,oBAAoB;IACtG,QAAQ,CAAC,UAAU,IAAI,OAAO;IAC9B,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM;IAC9D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM;IAC9D,QAAQ,CAAC,gBAAgB,IAAI,OAAO;IAEpC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,IAAI,GAAG;IAGhB,aAAa,IAAI,WAAW;IAI5B,aAAa,CAAC,IAAI,EAAE,aAAa;IAKjC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,GAAG,SAAS;IAKzD,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAQhD,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO;IAOxD,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOlD,0BAA0B,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAOxD,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;IAQ3C,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO;CAMhD"}
@@ -3,3 +3,4 @@ import { BaseFnCompiler } from './jitFnCompiler.ts';
3
3
  import { BaseRunType } from './baseRunTypes.ts';
4
4
  export declare function getJITFnHash(id: JitFnID, rt: BaseRunType, opts?: RunTypeOptions): string;
5
5
  export declare function createJitFunction(comp: BaseFnCompiler): (...args: any[]) => any;
6
+ //# sourceMappingURL=createJitFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createJitFunction.d.ts","sourceRoot":"","sources":["../../../../src/lib/createJitFunction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,OAAO,EAAW,cAAc,EAAC,MAAM,aAAa,CAAC;AAClE,OAAO,EAAC,cAAc,EAAgC,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAUnD,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,CAGxF;AAQD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAU/E"}
@@ -2,3 +2,4 @@ import { RunType, RunTypeAnnotation } from '../types.ts';
2
2
  export declare function getRunTypeAnnotations(rt: RunType): RunTypeAnnotation[];
3
3
  export declare function getParsedAnnotationOptions(rt: RunType): any[];
4
4
  export declare function getTypeToObject(rt: RunType): any;
5
+ //# sourceMappingURL=dkProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dkProxy.d.ts","sourceRoot":"","sources":["../../../../src/lib/dkProxy.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,OAAO,EAAE,iBAAiB,EAAU,MAAM,aAAa,CAAC;AAUhE,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,iBAAiB,EAAE,CAStE;AAUD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,CAE7D;AAKD,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,GAAG,CAEhD"}
@@ -16,3 +16,4 @@ export declare const defaultIgnoreFormatProps: string[];
16
16
  export declare function paramsToLiteral(comp: JitFnCompiler | JitErrorsFnCompiler, params: TypeFormatValue, ignoreProps?: string[]): string;
17
17
  export declare function getToLiteralFn(comp: JitFnCompiler | JitErrorsFnCompiler, ignoreProps?: string[]): (params: TypeFormatValue) => string;
18
18
  export declare function dependenciesToLiteral(comp: JitFnCompiler | JitErrorsFnCompiler, params: Record<string, string | CompiledPureFunction>, ignoreProps?: string[]): string;
19
+ //# sourceMappingURL=formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../../../src/lib/formats.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,eAAe,EAAC,MAAM,cAAc,CAAC;AAErF,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAClD,OAAO,EAAiB,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAC,mBAAmB,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAS9D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,UAAQ,GAAG,CAAC,CAUnG;AAGD,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,WAAW,UAAQ,GACpB,iBAAiB,GAAG,SAAS,CAO/B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEpG;AAGD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAE/E;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAIpF;AASD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAenF;AAGD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAQlG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAIjF;AAKD,eAAO,MAAM,wBAAwB,UAAkB,CAAC;AAYxD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAEzH;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,mBAAmB,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IACpF,QAAQ,eAAe,YAClC;AAYD,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,aAAa,GAAG,mBAAmB,EACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAC,EACrD,WAAW,GAAE,MAAM,EAAO,UAG7B"}
@@ -118,3 +118,4 @@ export declare function hasImplements(src: any): src is {
118
118
  implements: Type[];
119
119
  };
120
120
  export declare function isFormatParamMeta(src: TypeFormatValue): src is FormatParamMeta;
121
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../../src/lib/guards.ts"],"names":[],"mappings":"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"}
@@ -107,3 +107,4 @@ export declare function createJitCompiler(rt: BaseRunType, fnID: JitFnID, parent
107
107
  export declare function printClosure(fnWithContext: string, functionName: string): string;
108
108
  export declare type __ΩStackItem = any[];
109
109
  export declare type __ΩJitCompilerLike = any[];
110
+ //# sourceMappingURL=jitFnCompiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jitFnCompiler.d.ts","sourceRoot":"","sources":["../../../../src/lib/jitFnCompiler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAgB,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAG9G,OAAO,KAAK,EAAU,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AAC7H,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAoB,KAAK,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAC,KAAK,QAAQ,EAAa,YAAY,EAAE,KAAK,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAiBrG,MAAM,MAAM,SAAS,GAAG;IAEpB,GAAG,EAAE,MAAM,CAAC;IAEZ,EAAE,EAAE,WAAW,CAAC;IAEhB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAMjE,qBAAa,cAAc,CAAC,WAAW,SAAS,SAAS,GAAG,SAAS,EAAE,EAAE,SAAS,OAAO,GAAG,GAAG,CAC3F,YAAW,iBAAiB,EAAE,eAAe;aASzB,QAAQ,EAAE,WAAW;aAErB,IAAI,EAAE,EAAE;aAER,cAAc,CAAC,EAAE,cAAc;aAG/B,IAAI,EAAE,cAAc;IAZxC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;IAC/E,OAAO,CAAC,UAAU,CAAS;gBAGP,QAAQ,EAAE,WAAW,EAErB,IAAI,EAAE,EAAE,EACxB,aAAa,EAAE,aAAa,EACZ,cAAc,CAAC,EAAE,cAAc,YAAA,EAC/C,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,SAAS,EACF,IAAI,GAAE,cAAmB;IAc7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAM;IAG7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAM;IAK3B,QAAQ,CAAC,gBAAgB,sBAA6B;IAKtD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAS;IAElC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAEvD,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAM;IACjC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAE/B,IAAI,MAAM,WAET;IACD,IAAI,WAAW,QAGd;IAED,GAAG,EAAE,MAAM,CAAM;IACjB,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM;IAW1C,OAAO,CAAC,YAAY,CAAqD;IACzE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM;IAgB7D,OAAO,CAAC,mBAAmB,CAAmB;IAE9C,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAatC,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAO/D,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI3C,cAAc,IAAI,IAAI;IAGtB,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAiBjE,aAAa,IAAI,SAAS,EAAE;IAI5B,iBAAiB,IAAI,MAAM;IAG3B,mBAAmB,IAAI,MAAM;IAG7B,0BAA0B,IAAI;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAG5D,mBAAmB,IAAI,SAAS;IAKhC,WAAW,IAAI,MAAM;IAQrB,oBAAoB,IAAI,OAAO;IAI/B,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAMtD,kBAAkB,IAAI,IAAI;IAG1B,aAAa,IAAI,MAAM;IAOvB,aAAa,CAAC,YAAY,EAAE,MAAM;IAKlC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK/C,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKpC,oBAAoB,IAAI,MAAM,EAAE;IAIhC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAIjE,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS;IAajE,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;IAmDrF,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,uBAAuB;IA4C/B,OAAO,CAAC,wBAAwB;IAWhC,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM;IAczC,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAG5E,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGhF,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGpF,sBAAsB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGrF,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGnF,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAG9E,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGhF,uBAAuB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGtF,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGpF,uBAAuB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAGtF,6BAA6B,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,OAAO;IAM5F,eAAe,CAAC,cAAc,EAAE,oBAAoB,GAAG,MAAM;IAW7D,mBAAmB,CAAC,cAAc,EAAE,oBAAoB,GAAG,IAAI;CAYlE;AAID,qBAAa,aAAa,CAAC,EAAE,SAAS,OAAO,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC;gBAElF,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,EAAE,EACR,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,SAAS,EAClB,IAAI,GAAE,cAAmB;CAKhC;AAED,qBAAa,mBAAmB,CAAC,EAAE,SAAS,OAAO,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,OAAO,YAAY,EAAE,EAAE,CAAC;gBAElG,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,EAAE,EACR,cAAc,CAAC,EAAE,cAAc,EAC/B,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,SAAS,EAClB,IAAI,GAAE,cAAmB;IAK7B,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM;IAa5D,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM;IAO7F,gBAAgB,CACZ,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,EACxC,SAAS,EAAE,iBAAiB,CAAC,GAAG,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAC9C,gBAAgB,CAAC,EAAE,SAAS,GAC7B,MAAM;IA8BT,OAAO,CAAC,gBAAgB;IAWxB,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM;IAM1D,0BAA0B,CAAC,SAAS,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,MAAM;CAIxE;AAMD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC;gBACtD,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS;CAG7H;AAID,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,SAAS,EAClB,IAAI,GAAE,cAAmB,GAC1B,cAAc,CAsBhB;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhF"}
@@ -4,3 +4,4 @@ export declare function registerJitFunctionCompiler(jitFnSettings: JitFnSettings
4
4
  export declare function getJitFunctionCompiler(jitFnSettings: JitFnSettings): (...args: any[]) => any;
5
5
  export declare function getJitFnSettings(fnID: JitFnID): JitFnSettings;
6
6
  export declare function getJITFnName(fnID: JitFnID): string;
7
+ //# sourceMappingURL=jitFnsRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jitFnsRegistry.d.ts","sourceRoot":"","sources":["../../../../src/lib/jitFnsRegistry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,aAAa,EAAoC,MAAM,2BAA2B,CAAC;AAU3F,wBAAsB,2BAA2B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAiBhH;AAGD,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAI5F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAI7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAElD"}
@@ -4,3 +4,4 @@ export type TypeWithCachedIds = Type & Pick<Partial<SrcType>, '_typeId' | '_form
4
4
  export declare function createTypeId(type: TypeWithCachedIds, stack?: Type[]): StrNumber;
5
5
  export declare function computeDeepkitFormatID(deepkitType: TypeWithCachedIds): string | undefined;
6
6
  export declare type __ΩTypeWithCachedIds = any[];
7
+ //# sourceMappingURL=typeId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeId.d.ts","sourceRoot":"","sources":["../../../../src/lib/typeId.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,IAAI,EAA8E,MAAM,eAAe,CAAC;AAMhH,OAAO,KAAK,EAAmB,OAAO,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AAGtE,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;AAGvF,wBAAgB,YAAY,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,GAAE,IAAI,EAAO,GAAG,SAAS,CAKnF;AAoLD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAoBzF"}
@@ -30,3 +30,4 @@ export declare function createIfElseFn(): (isEnd?: boolean) => string;
30
30
  export declare function getJitFnArgCallVarName(parentComp: JitFnCompiler, rt: BaseRunType, idFnToCall: JitFnID, argKey: string): string;
31
31
  export declare function parentIs(rt: BaseRunType, kind: ReflectionKind | ReflectionKind[]): boolean;
32
32
  export declare function addFullStop(code: string): string;
33
+ //# sourceMappingURL=utils.d.ts.map