@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
@@ -0,0 +1,212 @@
1
+ /* ########
2
+ * 2025 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import {ReflectionKind} from '@deepkit/type';
9
+ import {ReflectionSubKind} from '../../constants.kind';
10
+ import type {JitCode} from '../../types';
11
+ import type {BaseRunType} from '../../lib/baseRunTypes';
12
+ import type {LiteralRunType} from '../../nodes/atomic/literal';
13
+
14
+ /**
15
+ * Main XYZ deserialization compiler function
16
+ * Generates JIT code to deserialize XYZ data to JavaScript values
17
+ */
18
+ function _compileFromXYZ(runType: BaseRunType, comp: JitXYZCompiler): JitCode {
19
+ const src = runType.src;
20
+ const kind = src.kind;
21
+
22
+ switch (kind) {
23
+ // ###################### ATOMIC TYPES ######################
24
+ case ReflectionKind.unknown:
25
+ case ReflectionKind.any:
26
+ // TODO
27
+ break;
28
+ case ReflectionKind.null:
29
+ // TODO
30
+ break;
31
+ case ReflectionKind.boolean:
32
+ // TODO
33
+ break;
34
+ case ReflectionKind.number:
35
+ // TODO
36
+ break;
37
+ case ReflectionKind.string:
38
+ // TODO
39
+ break;
40
+ case ReflectionKind.bigint:
41
+ // TODO
42
+ break;
43
+ case ReflectionKind.undefined:
44
+ // TODO
45
+ break;
46
+ case ReflectionKind.void:
47
+ // TODO
48
+ break;
49
+
50
+ case ReflectionKind.symbol:
51
+ // TODO
52
+ break;
53
+
54
+ case ReflectionKind.regexp:
55
+ // TODO
56
+ break;
57
+
58
+ case ReflectionKind.object:
59
+ throw new Error('XYZ deserialization not supported for generic object types');
60
+
61
+ case ReflectionKind.enum:
62
+ // TODO
63
+ break;
64
+
65
+ case ReflectionKind.enumMember:
66
+ throw new Error('XYZ deserialization not supported for enum member types');
67
+
68
+ case ReflectionKind.never:
69
+ throw new Error('Never type cannot be deserialized from XYZ');
70
+
71
+ case ReflectionKind.templateLiteral:
72
+ // TODO: deserialize as string
73
+ break;
74
+
75
+ case ReflectionKind.literal:
76
+ return compileLiteral(runType as LiteralRunType, comp);
77
+
78
+ // ###################### MEMBER RUNTYPES ######################
79
+ // Types that represent members of collections or other structures
80
+ case ReflectionKind.array:
81
+ // TODO
82
+ break;
83
+
84
+ case ReflectionKind.indexSignature:
85
+ // TODO
86
+ break;
87
+
88
+ case ReflectionKind.function:
89
+ case ReflectionKind.method:
90
+ case ReflectionKind.methodSignature:
91
+ case ReflectionKind.callSignature:
92
+ if (runType.src.subKind === ReflectionSubKind.params) {
93
+ // TODO: Handle function parameters
94
+ break;
95
+ } else {
96
+ throw new Error(
97
+ 'XYZ deserialization not supported for function types, call compileParams or compileReturn instead'
98
+ );
99
+ }
100
+
101
+ case ReflectionKind.parameter:
102
+ switch (src.subKind) {
103
+ case ReflectionSubKind.mapKey:
104
+ // TODO: Handle map key parameter
105
+ break;
106
+ case ReflectionSubKind.mapValue:
107
+ // TODO: Handle map value parameter
108
+ break;
109
+ case ReflectionSubKind.setItem:
110
+ // TODO: Handle set item parameter
111
+ break;
112
+ default:
113
+ // TODO: Handle regular parameter
114
+ break;
115
+ }
116
+ break;
117
+
118
+ case ReflectionKind.property:
119
+ case ReflectionKind.propertySignature:
120
+ // TODO
121
+ break;
122
+
123
+ case ReflectionKind.rest:
124
+ // TODO
125
+ break;
126
+
127
+ case ReflectionKind.tupleMember:
128
+ // TODO
129
+ break;
130
+
131
+ case ReflectionKind.promise:
132
+ throw new Error('XYZ deserialization not supported for Promise types');
133
+
134
+ // ###################### COLLECTION RUNTYPES ######################
135
+ // Types that contain other types as members
136
+ case ReflectionKind.objectLiteral:
137
+ case ReflectionKind.intersection:
138
+ if (runType.src.subKind === ReflectionSubKind.nonSerializable) {
139
+ throw new Error('XYZ deserialization is disabled for Non Serializable types');
140
+ } else {
141
+ // TODO: Handle object literal/intersection
142
+ break;
143
+ }
144
+
145
+ case ReflectionKind.class:
146
+ switch (runType.src.subKind) {
147
+ case ReflectionSubKind.date:
148
+ // TODO: Handle Date class
149
+ break;
150
+ case ReflectionSubKind.map:
151
+ // TODO: Handle Map class
152
+ break;
153
+ case ReflectionSubKind.set:
154
+ // TODO: Handle Set class
155
+ break;
156
+ case ReflectionSubKind.nonSerializable:
157
+ throw new Error('XYZ deserialization disabled for Non Serializable types');
158
+ default:
159
+ // TODO: Handle regular class
160
+ break;
161
+ }
162
+ break;
163
+
164
+ case ReflectionKind.infer:
165
+ throw new Error('Infer is not supported in XYZ deserialization');
166
+
167
+ case ReflectionKind.tuple:
168
+ // TODO
169
+ break;
170
+
171
+ case ReflectionKind.typeParameter:
172
+ throw new Error('Type parameter not implemented in XYZ deserialization');
173
+
174
+ case ReflectionKind.union:
175
+ // TODO
176
+ break;
177
+
178
+ default:
179
+ throw new Error(`XYZ deserialization not supported for ${ReflectionKind[kind]} types`);
180
+ }
181
+ }
182
+
183
+ function compileLiteral(runType: LiteralRunType, comp: JitXYZCompiler): JitCode {
184
+ const src = runType.src;
185
+ // Literal types are serialized as their underlying value
186
+ const literalValue = src.literal;
187
+ const originalKind = src.kind;
188
+ // Handle RegExp literals specially
189
+ if (literalValue instanceof RegExp) {
190
+ (src as any).kind = ReflectionKind.regexp;
191
+ } else if (typeof literalValue === 'string') {
192
+ (src as any).kind = ReflectionKind.string;
193
+ } else if (typeof literalValue === 'number') {
194
+ (src as any).kind = ReflectionKind.number;
195
+ } else if (typeof literalValue === 'boolean') {
196
+ (src as any).kind = ReflectionKind.boolean;
197
+ } else if (typeof literalValue === 'bigint') {
198
+ (src as any).kind = ReflectionKind.bigint;
199
+ } else if (typeof literalValue === 'symbol') {
200
+ (src as any).kind = ReflectionKind.symbol;
201
+ } else if (literalValue === null) {
202
+ (src as any).kind = ReflectionKind.null;
203
+ } else {
204
+ // Fallback to string for unknown types
205
+ (src as any).kind = ReflectionKind.string;
206
+ }
207
+ // Recursively call the main function with the changed kind
208
+ const result = _compileFromXYZ(runType, comp);
209
+ // Restore the original kind
210
+ (src as any).kind = originalKind;
211
+ return result;
212
+ }
@@ -0,0 +1,217 @@
1
+ /* ########
2
+ * 2025 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import {ReflectionKind} from '@deepkit/type';
9
+ import {ReflectionSubKind} from '../../constants.kind';
10
+ import type {JitCode} from '../../types';
11
+ import type {BaseRunType} from '../../lib/baseRunTypes';
12
+ import type {LiteralRunType} from '../../nodes/atomic/literal';
13
+
14
+ /**
15
+ * Main XYZ serialization compiler function
16
+ * Generates JIT code to serialize values to XYZ format following XYZ 1.1 specification
17
+ *
18
+ * This function generates JavaScript expressions that return Uint8Array containing XYZ bytes.
19
+ */
20
+ export function _compileToXYZ(runType: BaseRunType, comp: JitXYZCompiler): JitCode {
21
+ const src = runType.src;
22
+ const kind = src.kind;
23
+
24
+ switch (kind) {
25
+ // ###################### ATOMIC TYPES ######################
26
+ case ReflectionKind.unknown:
27
+ case ReflectionKind.any:
28
+ // TODO
29
+ break;
30
+ case ReflectionKind.null:
31
+ // TODO
32
+ break;
33
+
34
+ case ReflectionKind.boolean:
35
+ // TODO
36
+ break;
37
+
38
+ case ReflectionKind.number:
39
+ // TODO
40
+ break;
41
+
42
+ case ReflectionKind.string:
43
+ // TODO
44
+ break;
45
+
46
+ case ReflectionKind.bigint:
47
+ // TODO
48
+ break;
49
+ case ReflectionKind.undefined:
50
+ // TODO
51
+ break;
52
+ case ReflectionKind.void:
53
+ // TODO
54
+ break;
55
+ case ReflectionKind.symbol:
56
+ // TODO
57
+ break;
58
+
59
+ case ReflectionKind.regexp:
60
+ // TODO
61
+ break;
62
+
63
+ case ReflectionKind.object:
64
+ throw new Error('XYZ serialization not supported for generic object types');
65
+
66
+ case ReflectionKind.enum:
67
+ // TODO
68
+ break;
69
+
70
+ case ReflectionKind.enumMember:
71
+ throw new Error('XYZ serialization not supported for enum member types');
72
+
73
+ case ReflectionKind.never:
74
+ throw new Error('Never type cannot be serialized to XYZ');
75
+
76
+ case ReflectionKind.templateLiteral:
77
+ // TODO: serialize as string
78
+ break;
79
+
80
+ case ReflectionKind.literal:
81
+ return compileLiteral(runType as LiteralRunType, comp);
82
+
83
+ // ###################### MEMBER RUNTYPES ######################
84
+ // Types that represent members of collections or other structures
85
+ case ReflectionKind.array:
86
+ // TODO
87
+ break;
88
+
89
+ case ReflectionKind.indexSignature:
90
+ // TODO
91
+ break;
92
+
93
+ case ReflectionKind.function:
94
+ case ReflectionKind.method:
95
+ case ReflectionKind.methodSignature:
96
+ case ReflectionKind.callSignature:
97
+ if (runType.src.subKind === ReflectionSubKind.params) {
98
+ // TODO: Handle function parameters
99
+ break;
100
+ } else {
101
+ throw new Error(
102
+ 'XYZ serialization not supported for function types, call compileParams or compileReturn instead'
103
+ );
104
+ }
105
+
106
+ case ReflectionKind.parameter:
107
+ switch (src.subKind) {
108
+ case ReflectionSubKind.mapKey:
109
+ // TODO: Handle map key parameter
110
+ break;
111
+ case ReflectionSubKind.mapValue:
112
+ // TODO: Handle map value parameter
113
+ break;
114
+ case ReflectionSubKind.setItem:
115
+ // TODO: Handle set item parameter
116
+ break;
117
+ default:
118
+ // TODO: Handle regular parameter
119
+ break;
120
+ }
121
+ break;
122
+
123
+ case ReflectionKind.property:
124
+ case ReflectionKind.propertySignature:
125
+ // TODO
126
+ break;
127
+
128
+ case ReflectionKind.rest:
129
+ // TODO
130
+ break;
131
+
132
+ case ReflectionKind.tupleMember:
133
+ // TODO
134
+ break;
135
+
136
+ case ReflectionKind.promise:
137
+ throw new Error('XYZ serialization not supported for Promise types');
138
+
139
+ // ###################### COLLECTION RUNTYPES ######################
140
+ // Types that contain other types as members
141
+ case ReflectionKind.objectLiteral:
142
+ case ReflectionKind.intersection:
143
+ if (runType.src.subKind === ReflectionSubKind.nonSerializable) {
144
+ throw new Error('XYZ serialization is disabled for Non Serializable types');
145
+ } else {
146
+ // TODO: Handle object literal/intersection
147
+ break;
148
+ }
149
+
150
+ case ReflectionKind.class:
151
+ switch (runType.src.subKind) {
152
+ case ReflectionSubKind.date:
153
+ // TODO: Handle Date class
154
+ break;
155
+ case ReflectionSubKind.map:
156
+ // TODO: Handle Map class
157
+ break;
158
+ case ReflectionSubKind.set:
159
+ // TODO: Handle Set class
160
+ break;
161
+ case ReflectionSubKind.nonSerializable:
162
+ throw new Error('XYZ serialization disabled for Non Serializable types');
163
+ default:
164
+ // TODO: Handle regular class
165
+ break;
166
+ }
167
+ break;
168
+
169
+ case ReflectionKind.infer:
170
+ throw new Error('Infer is not supported in XYZ serialization');
171
+
172
+ case ReflectionKind.tuple:
173
+ // TODO
174
+ break;
175
+
176
+ case ReflectionKind.typeParameter:
177
+ throw new Error('Type parameter not implemented in XYZ serialization');
178
+
179
+ case ReflectionKind.union:
180
+ // TODO
181
+ break;
182
+
183
+ default:
184
+ throw new Error(`XYZ serialization not supported for ${ReflectionKind[kind]} types`);
185
+ }
186
+ }
187
+
188
+ function compileLiteral(runType: LiteralRunType, comp: JitXYZCompiler): JitCode {
189
+ const src = runType.src;
190
+ // Literal types are serialized as their underlying value
191
+ const literalValue = src.literal;
192
+ const originalKind = src.kind;
193
+ // Handle RegExp literals specially
194
+ if (literalValue instanceof RegExp) {
195
+ (src as any).kind = ReflectionKind.regexp;
196
+ } else if (typeof literalValue === 'string') {
197
+ (src as any).kind = ReflectionKind.string;
198
+ } else if (typeof literalValue === 'number') {
199
+ (src as any).kind = ReflectionKind.number;
200
+ } else if (typeof literalValue === 'boolean') {
201
+ (src as any).kind = ReflectionKind.boolean;
202
+ } else if (typeof literalValue === 'bigint') {
203
+ (src as any).kind = ReflectionKind.bigint;
204
+ } else if (typeof literalValue === 'symbol') {
205
+ (src as any).kind = ReflectionKind.symbol;
206
+ } else if (literalValue === null) {
207
+ (src as any).kind = ReflectionKind.null;
208
+ } else {
209
+ // Fallback to string for unknown types
210
+ (src as any).kind = ReflectionKind.string;
211
+ }
212
+ // Recursively call the main function with the changed kind
213
+ const result = _compileToXYZ(runType, comp);
214
+ // Restore the original kind
215
+ (src as any).kind = originalKind;
216
+ return result;
217
+ }
@@ -0,0 +1,6 @@
1
+ # Scaffolding
2
+
3
+ This directory contain the files to scaffold a new JIT compiler for a new format XYZ.
4
+ It is intended for serialization formats as contains from/to XYZ functions. but could be used for any other jit compiled functions.
5
+
6
+ Each JIT compiler is basically a giant switch statement that handles all node types. and return the src code for the operation on that node type.
@@ -0,0 +1,66 @@
1
+ /* ########
2
+ * 2025 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import {JitFunctions} from '../../../constants.functions';
9
+ import type {InterfaceRunType} from '../../../nodes/collection/interface';
10
+ import type {FunctionRunType} from '../../../nodes/function/function';
11
+ import type {RunType} from '../../../types';
12
+
13
+ // ################# UPDATE FOLLOWING FUNCTIONS TO YOUR OWN SERIALIZER #################
14
+
15
+ const SERIALIZE_FN = JitFunctions.prepareForJson;
16
+ const DESERIALIZE_FN = JitFunctions.restoreFromJson;
17
+
18
+ export function createSerializationFns(rt: RunType) {
19
+ const prepareForJson = rt.createJitFunction(SERIALIZE_FN);
20
+ const restoreFromJson = rt.createJitFunction(DESERIALIZE_FN);
21
+ const serialize = (v: any) => JSON.stringify(prepareForJson(v));
22
+ const deserialize = (data: any) => restoreFromJson(JSON.parse(data));
23
+ return {serialize, deserialize};
24
+ }
25
+
26
+ export function createSerializationParamsFn(rt: FunctionRunType, sliceStart?: number) {
27
+ const params = typeof sliceStart === 'number' ? {paramsSlice: {start: sliceStart}} : undefined;
28
+ const prepareForJson = rt.createJitParamsFunction(SERIALIZE_FN, params);
29
+ const restoreFromJson = rt.createJitParamsFunction(DESERIALIZE_FN, params);
30
+ const serialize = (v: any) => JSON.stringify(prepareForJson(v));
31
+ const deserialize = (data: any) => restoreFromJson(JSON.parse(data));
32
+ return {serialize, deserialize};
33
+ }
34
+
35
+ export function createSerializationReturnFn(rt: FunctionRunType) {
36
+ const prepareForJson = rt.createJitReturnFunction(SERIALIZE_FN);
37
+ const restoreFromJson = rt.createJitReturnFunction(DESERIALIZE_FN);
38
+ const serialize = (v: any) => JSON.stringify(prepareForJson(v));
39
+ const deserialize = (data: any) => restoreFromJson(JSON.parse(data));
40
+ return {serialize, deserialize};
41
+ }
42
+
43
+ export function createSerializationCallSignatureParamsFn(rt: InterfaceRunType) {
44
+ const callSignature = rt.getCallSignature()!;
45
+ const prepareForJson = callSignature.createJitParamsFunction(SERIALIZE_FN);
46
+ const restoreFromJson = callSignature.createJitParamsFunction(DESERIALIZE_FN);
47
+ const serialize = (v: any) => JSON.stringify(prepareForJson(v));
48
+ const deserialize = (data: any) => restoreFromJson(JSON.parse(data));
49
+ return {serialize, deserialize};
50
+ }
51
+
52
+ export function createSerializationCallSignatureReturnFn(rt: InterfaceRunType) {
53
+ const callSignature = rt.getCallSignature()!;
54
+ const prepareForJson = callSignature.createJitReturnFunction(SERIALIZE_FN);
55
+ const restoreFromJson = callSignature.createJitReturnFunction(DESERIALIZE_FN);
56
+ const serialize = (v: any) => JSON.stringify(prepareForJson(v));
57
+ const deserialize = (data: any) => restoreFromJson(JSON.parse(data));
58
+ return {serialize, deserialize};
59
+ }
60
+
61
+ export function roundTrip(serialize: (v: any) => string, deserialize: (v: string) => any, value: any) {
62
+ const serialized = serialize(value);
63
+ const deserialized = deserialize(serialized);
64
+ const result = {serialized, deserialized};
65
+ return result;
66
+ }