typia 13.0.0-dev.20260427-2 → 13.0.0-dev.20260430

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 (923) hide show
  1. package/README.md +0 -1
  2. package/lib/TypeGuardError.js +1 -0
  3. package/lib/TypeGuardError.js.map +1 -1
  4. package/lib/TypeGuardError.mjs +2 -7
  5. package/lib/TypeGuardError.mjs.map +1 -1
  6. package/lib/TypeGuardError2.mjs +51 -58
  7. package/lib/TypeGuardError2.mjs.map +1 -1
  8. package/lib/executable/TypiaGenerateWizard.js +65 -36
  9. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  10. package/lib/executable/TypiaGenerateWizard.mjs +2 -7
  11. package/lib/executable/TypiaGenerateWizard.mjs.map +1 -1
  12. package/lib/executable/TypiaGenerateWizard2.mjs +226 -201
  13. package/lib/executable/TypiaGenerateWizard2.mjs.map +1 -1
  14. package/lib/executable/TypiaSetupWizard.mjs +2 -7
  15. package/lib/executable/TypiaSetupWizard.mjs.map +1 -1
  16. package/lib/executable/TypiaSetupWizard2.mjs +139 -144
  17. package/lib/executable/TypiaSetupWizard2.mjs.map +1 -1
  18. package/lib/executable/generate/ttsc.d.ts +0 -4
  19. package/lib/executable/generate/ttsc.js +15 -50
  20. package/lib/executable/generate/ttsc.js.map +1 -1
  21. package/lib/executable/generate/ttsc.mjs +2 -7
  22. package/lib/executable/generate/ttsc.mjs.map +1 -1
  23. package/lib/executable/generate/ttsc2.mjs +46 -92
  24. package/lib/executable/generate/ttsc2.mjs.map +1 -1
  25. package/lib/executable/setup/ArgumentParser.mjs +2 -7
  26. package/lib/executable/setup/ArgumentParser.mjs.map +1 -1
  27. package/lib/executable/setup/ArgumentParser2.mjs +36 -44
  28. package/lib/executable/setup/ArgumentParser2.mjs.map +1 -1
  29. package/lib/executable/setup/CommandExecutor.mjs +2 -7
  30. package/lib/executable/setup/CommandExecutor.mjs.map +1 -1
  31. package/lib/executable/setup/CommandExecutor2.mjs +15 -23
  32. package/lib/executable/setup/CommandExecutor2.mjs.map +1 -1
  33. package/lib/executable/setup/FileRetriever.mjs +2 -7
  34. package/lib/executable/setup/FileRetriever.mjs.map +1 -1
  35. package/lib/executable/setup/FileRetriever2.mjs +25 -33
  36. package/lib/executable/setup/FileRetriever2.mjs.map +1 -1
  37. package/lib/executable/setup/PackageManager.mjs +2 -7
  38. package/lib/executable/setup/PackageManager.mjs.map +1 -1
  39. package/lib/executable/setup/PackageManager2.mjs +82 -88
  40. package/lib/executable/setup/PackageManager2.mjs.map +1 -1
  41. package/lib/executable/setup/PluginConfigurator.mjs +2 -7
  42. package/lib/executable/setup/PluginConfigurator.mjs.map +1 -1
  43. package/lib/executable/setup/PluginConfigurator2.mjs +60 -68
  44. package/lib/executable/setup/PluginConfigurator2.mjs.map +1 -1
  45. package/lib/executable/typia.mjs +2 -7
  46. package/lib/executable/typia.mjs.map +1 -1
  47. package/lib/executable/typia2.mjs +94 -100
  48. package/lib/executable/typia2.mjs.map +1 -1
  49. package/lib/functional.mjs +2 -7
  50. package/lib/functional.mjs.map +1 -1
  51. package/lib/functional2.mjs +94 -101
  52. package/lib/functional2.mjs.map +1 -1
  53. package/lib/http.mjs +2 -7
  54. package/lib/http.mjs.map +1 -1
  55. package/lib/http2.mjs +134 -141
  56. package/lib/http2.mjs.map +1 -1
  57. package/lib/index.mjs +1 -7
  58. package/lib/index.mjs.map +1 -1
  59. package/lib/index2.mjs +48 -51
  60. package/lib/index2.mjs.map +1 -1
  61. package/lib/internal/_IProtobufWriter.mjs +2 -7
  62. package/lib/internal/_IProtobufWriter.mjs.map +1 -1
  63. package/lib/internal/_IProtobufWriter2.mjs +2 -10
  64. package/lib/internal/_IProtobufWriter2.mjs.map +1 -1
  65. package/lib/internal/_ProtobufReader.mjs +2 -7
  66. package/lib/internal/_ProtobufReader.mjs.map +1 -1
  67. package/lib/internal/_ProtobufReader2.mjs +164 -172
  68. package/lib/internal/_ProtobufReader2.mjs.map +1 -1
  69. package/lib/internal/_ProtobufSizer.mjs +2 -7
  70. package/lib/internal/_ProtobufSizer.mjs.map +1 -1
  71. package/lib/internal/_ProtobufSizer2.mjs +115 -123
  72. package/lib/internal/_ProtobufSizer2.mjs.map +1 -1
  73. package/lib/internal/_ProtobufWriter.mjs +2 -7
  74. package/lib/internal/_ProtobufWriter.mjs.map +1 -1
  75. package/lib/internal/_ProtobufWriter2.mjs +102 -110
  76. package/lib/internal/_ProtobufWriter2.mjs.map +1 -1
  77. package/lib/internal/_accessExpressionAsString.mjs +2 -7
  78. package/lib/internal/_accessExpressionAsString.mjs.map +1 -1
  79. package/lib/internal/_accessExpressionAsString2.mjs +46 -54
  80. package/lib/internal/_accessExpressionAsString2.mjs.map +1 -1
  81. package/lib/internal/_assertGuard.mjs +2 -7
  82. package/lib/internal/_assertGuard.mjs.map +1 -1
  83. package/lib/internal/_assertGuard2.mjs +17 -24
  84. package/lib/internal/_assertGuard2.mjs.map +1 -1
  85. package/lib/internal/_coerceLlmArguments.mjs +2 -7
  86. package/lib/internal/_coerceLlmArguments.mjs.map +1 -1
  87. package/lib/internal/_coerceLlmArguments2.mjs +7 -15
  88. package/lib/internal/_coerceLlmArguments2.mjs.map +1 -1
  89. package/lib/internal/_createStandardSchema.mjs +2 -7
  90. package/lib/internal/_createStandardSchema.mjs.map +1 -1
  91. package/lib/internal/_createStandardSchema2.mjs +135 -143
  92. package/lib/internal/_createStandardSchema2.mjs.map +1 -1
  93. package/lib/internal/_functionalTypeGuardErrorFactory.mjs +2 -7
  94. package/lib/internal/_functionalTypeGuardErrorFactory.mjs.map +1 -1
  95. package/lib/internal/_functionalTypeGuardErrorFactory2.mjs +9 -16
  96. package/lib/internal/_functionalTypeGuardErrorFactory2.mjs.map +1 -1
  97. package/lib/internal/_httpFormDataReadArray.mjs +2 -7
  98. package/lib/internal/_httpFormDataReadArray.mjs.map +1 -1
  99. package/lib/internal/_httpFormDataReadArray2.mjs +6 -14
  100. package/lib/internal/_httpFormDataReadArray2.mjs.map +1 -1
  101. package/lib/internal/_httpFormDataReadBigint.mjs +2 -7
  102. package/lib/internal/_httpFormDataReadBigint.mjs.map +1 -1
  103. package/lib/internal/_httpFormDataReadBigint2.mjs +20 -28
  104. package/lib/internal/_httpFormDataReadBigint2.mjs.map +1 -1
  105. package/lib/internal/_httpFormDataReadBlob.mjs +2 -7
  106. package/lib/internal/_httpFormDataReadBlob.mjs.map +1 -1
  107. package/lib/internal/_httpFormDataReadBlob2.mjs +12 -20
  108. package/lib/internal/_httpFormDataReadBlob2.mjs.map +1 -1
  109. package/lib/internal/_httpFormDataReadBoolean.mjs +2 -7
  110. package/lib/internal/_httpFormDataReadBoolean.mjs.map +1 -1
  111. package/lib/internal/_httpFormDataReadBoolean2.mjs +18 -26
  112. package/lib/internal/_httpFormDataReadBoolean2.mjs.map +1 -1
  113. package/lib/internal/_httpFormDataReadFile.mjs +2 -7
  114. package/lib/internal/_httpFormDataReadFile.mjs.map +1 -1
  115. package/lib/internal/_httpFormDataReadFile2.mjs +12 -20
  116. package/lib/internal/_httpFormDataReadFile2.mjs.map +1 -1
  117. package/lib/internal/_httpFormDataReadNumber.mjs +2 -7
  118. package/lib/internal/_httpFormDataReadNumber.mjs.map +1 -1
  119. package/lib/internal/_httpFormDataReadNumber2.mjs +16 -24
  120. package/lib/internal/_httpFormDataReadNumber2.mjs.map +1 -1
  121. package/lib/internal/_httpFormDataReadString.mjs +2 -7
  122. package/lib/internal/_httpFormDataReadString.mjs.map +1 -1
  123. package/lib/internal/_httpFormDataReadString2.mjs +12 -20
  124. package/lib/internal/_httpFormDataReadString2.mjs.map +1 -1
  125. package/lib/internal/_httpHeaderReadBigint.mjs +2 -7
  126. package/lib/internal/_httpHeaderReadBigint.mjs.map +1 -1
  127. package/lib/internal/_httpHeaderReadBigint2.mjs +14 -22
  128. package/lib/internal/_httpHeaderReadBigint2.mjs.map +1 -1
  129. package/lib/internal/_httpHeaderReadBoolean.mjs +2 -7
  130. package/lib/internal/_httpHeaderReadBoolean.mjs.map +1 -1
  131. package/lib/internal/_httpHeaderReadBoolean2.mjs +12 -20
  132. package/lib/internal/_httpHeaderReadBoolean2.mjs.map +1 -1
  133. package/lib/internal/_httpHeaderReadNumber.mjs +2 -7
  134. package/lib/internal/_httpHeaderReadNumber.mjs.map +1 -1
  135. package/lib/internal/_httpHeaderReadNumber2.mjs +10 -18
  136. package/lib/internal/_httpHeaderReadNumber2.mjs.map +1 -1
  137. package/lib/internal/_httpParameterReadBigint.mjs +2 -7
  138. package/lib/internal/_httpParameterReadBigint.mjs.map +1 -1
  139. package/lib/internal/_httpParameterReadBigint2.mjs +14 -22
  140. package/lib/internal/_httpParameterReadBigint2.mjs.map +1 -1
  141. package/lib/internal/_httpParameterReadBoolean.mjs +2 -7
  142. package/lib/internal/_httpParameterReadBoolean.mjs.map +1 -1
  143. package/lib/internal/_httpParameterReadBoolean2.mjs +12 -20
  144. package/lib/internal/_httpParameterReadBoolean2.mjs.map +1 -1
  145. package/lib/internal/_httpParameterReadNumber.mjs +2 -7
  146. package/lib/internal/_httpParameterReadNumber.mjs.map +1 -1
  147. package/lib/internal/_httpParameterReadNumber2.mjs +10 -18
  148. package/lib/internal/_httpParameterReadNumber2.mjs.map +1 -1
  149. package/lib/internal/_httpParameterReadString.mjs +2 -7
  150. package/lib/internal/_httpParameterReadString.mjs.map +1 -1
  151. package/lib/internal/_httpParameterReadString2.mjs +6 -14
  152. package/lib/internal/_httpParameterReadString2.mjs.map +1 -1
  153. package/lib/internal/_httpQueryParseURLSearchParams.mjs +2 -7
  154. package/lib/internal/_httpQueryParseURLSearchParams.mjs.map +1 -1
  155. package/lib/internal/_httpQueryParseURLSearchParams2.mjs +13 -21
  156. package/lib/internal/_httpQueryParseURLSearchParams2.mjs.map +1 -1
  157. package/lib/internal/_httpQueryReadArray.mjs +2 -7
  158. package/lib/internal/_httpQueryReadArray.mjs.map +1 -1
  159. package/lib/internal/_httpQueryReadArray2.mjs +6 -14
  160. package/lib/internal/_httpQueryReadArray2.mjs.map +1 -1
  161. package/lib/internal/_httpQueryReadBigint.mjs +2 -7
  162. package/lib/internal/_httpQueryReadBigint.mjs.map +1 -1
  163. package/lib/internal/_httpQueryReadBigint2.mjs +14 -22
  164. package/lib/internal/_httpQueryReadBigint2.mjs.map +1 -1
  165. package/lib/internal/_httpQueryReadBoolean.mjs +2 -7
  166. package/lib/internal/_httpQueryReadBoolean.mjs.map +1 -1
  167. package/lib/internal/_httpQueryReadBoolean2.mjs +16 -24
  168. package/lib/internal/_httpQueryReadBoolean2.mjs.map +1 -1
  169. package/lib/internal/_httpQueryReadNumber.mjs +2 -7
  170. package/lib/internal/_httpQueryReadNumber.mjs.map +1 -1
  171. package/lib/internal/_httpQueryReadNumber2.mjs +10 -18
  172. package/lib/internal/_httpQueryReadNumber2.mjs.map +1 -1
  173. package/lib/internal/_httpQueryReadString.mjs +2 -7
  174. package/lib/internal/_httpQueryReadString.mjs.map +1 -1
  175. package/lib/internal/_httpQueryReadString2.mjs +6 -14
  176. package/lib/internal/_httpQueryReadString2.mjs.map +1 -1
  177. package/lib/internal/_isBetween.mjs +2 -7
  178. package/lib/internal/_isBetween.mjs.map +1 -1
  179. package/lib/internal/_isBetween2.mjs +6 -14
  180. package/lib/internal/_isBetween2.mjs.map +1 -1
  181. package/lib/internal/_isBigintString.mjs +2 -7
  182. package/lib/internal/_isBigintString.mjs.map +1 -1
  183. package/lib/internal/_isBigintString2.mjs +14 -22
  184. package/lib/internal/_isBigintString2.mjs.map +1 -1
  185. package/lib/internal/_isFormatByte.mjs +2 -7
  186. package/lib/internal/_isFormatByte.mjs.map +1 -1
  187. package/lib/internal/_isFormatByte2.mjs +10 -18
  188. package/lib/internal/_isFormatByte2.mjs.map +1 -1
  189. package/lib/internal/_isFormatDate.mjs +2 -7
  190. package/lib/internal/_isFormatDate.mjs.map +1 -1
  191. package/lib/internal/_isFormatDate2.mjs +7 -15
  192. package/lib/internal/_isFormatDate2.mjs.map +1 -1
  193. package/lib/internal/_isFormatDateTime.mjs +2 -7
  194. package/lib/internal/_isFormatDateTime.mjs.map +1 -1
  195. package/lib/internal/_isFormatDateTime2.mjs +7 -15
  196. package/lib/internal/_isFormatDateTime2.mjs.map +1 -1
  197. package/lib/internal/_isFormatDuration.mjs +2 -7
  198. package/lib/internal/_isFormatDuration.mjs.map +1 -1
  199. package/lib/internal/_isFormatDuration2.mjs +7 -15
  200. package/lib/internal/_isFormatDuration2.mjs.map +1 -1
  201. package/lib/internal/_isFormatEmail.mjs +2 -7
  202. package/lib/internal/_isFormatEmail.mjs.map +1 -1
  203. package/lib/internal/_isFormatEmail2.mjs +7 -15
  204. package/lib/internal/_isFormatEmail2.mjs.map +1 -1
  205. package/lib/internal/_isFormatHostname.mjs +2 -7
  206. package/lib/internal/_isFormatHostname.mjs.map +1 -1
  207. package/lib/internal/_isFormatHostname2.mjs +7 -15
  208. package/lib/internal/_isFormatHostname2.mjs.map +1 -1
  209. package/lib/internal/_isFormatIdnEmail.mjs +2 -7
  210. package/lib/internal/_isFormatIdnEmail.mjs.map +1 -1
  211. package/lib/internal/_isFormatIdnEmail2.mjs +7 -15
  212. package/lib/internal/_isFormatIdnEmail2.mjs.map +1 -1
  213. package/lib/internal/_isFormatIdnHostname.mjs +2 -7
  214. package/lib/internal/_isFormatIdnHostname.mjs.map +1 -1
  215. package/lib/internal/_isFormatIdnHostname2.mjs +7 -15
  216. package/lib/internal/_isFormatIdnHostname2.mjs.map +1 -1
  217. package/lib/internal/_isFormatIpv4.mjs +2 -7
  218. package/lib/internal/_isFormatIpv4.mjs.map +1 -1
  219. package/lib/internal/_isFormatIpv42.mjs +7 -15
  220. package/lib/internal/_isFormatIpv42.mjs.map +1 -1
  221. package/lib/internal/_isFormatIpv6.mjs +2 -7
  222. package/lib/internal/_isFormatIpv6.mjs.map +1 -1
  223. package/lib/internal/_isFormatIpv62.mjs +7 -15
  224. package/lib/internal/_isFormatIpv62.mjs.map +1 -1
  225. package/lib/internal/_isFormatIri.mjs +2 -7
  226. package/lib/internal/_isFormatIri.mjs.map +1 -1
  227. package/lib/internal/_isFormatIri2.mjs +7 -15
  228. package/lib/internal/_isFormatIri2.mjs.map +1 -1
  229. package/lib/internal/_isFormatIriReference.mjs +2 -7
  230. package/lib/internal/_isFormatIriReference.mjs.map +1 -1
  231. package/lib/internal/_isFormatIriReference2.mjs +7 -15
  232. package/lib/internal/_isFormatIriReference2.mjs.map +1 -1
  233. package/lib/internal/_isFormatJsonPointer.mjs +2 -7
  234. package/lib/internal/_isFormatJsonPointer.mjs.map +1 -1
  235. package/lib/internal/_isFormatJsonPointer2.mjs +7 -15
  236. package/lib/internal/_isFormatJsonPointer2.mjs.map +1 -1
  237. package/lib/internal/_isFormatPassword.mjs +2 -7
  238. package/lib/internal/_isFormatPassword.mjs.map +1 -1
  239. package/lib/internal/_isFormatPassword2.mjs +6 -14
  240. package/lib/internal/_isFormatPassword2.mjs.map +1 -1
  241. package/lib/internal/_isFormatRegex.mjs +2 -7
  242. package/lib/internal/_isFormatRegex.mjs.map +1 -1
  243. package/lib/internal/_isFormatRegex2.mjs +14 -22
  244. package/lib/internal/_isFormatRegex2.mjs.map +1 -1
  245. package/lib/internal/_isFormatRelativeJsonPointer.mjs +2 -7
  246. package/lib/internal/_isFormatRelativeJsonPointer.mjs.map +1 -1
  247. package/lib/internal/_isFormatRelativeJsonPointer2.mjs +7 -15
  248. package/lib/internal/_isFormatRelativeJsonPointer2.mjs.map +1 -1
  249. package/lib/internal/_isFormatTime.mjs +2 -7
  250. package/lib/internal/_isFormatTime.mjs.map +1 -1
  251. package/lib/internal/_isFormatTime2.mjs +7 -15
  252. package/lib/internal/_isFormatTime2.mjs.map +1 -1
  253. package/lib/internal/_isFormatUri.mjs +2 -7
  254. package/lib/internal/_isFormatUri.mjs.map +1 -1
  255. package/lib/internal/_isFormatUri2.mjs +8 -16
  256. package/lib/internal/_isFormatUri2.mjs.map +1 -1
  257. package/lib/internal/_isFormatUriReference.mjs +2 -7
  258. package/lib/internal/_isFormatUriReference.mjs.map +1 -1
  259. package/lib/internal/_isFormatUriReference2.mjs +7 -15
  260. package/lib/internal/_isFormatUriReference2.mjs.map +1 -1
  261. package/lib/internal/_isFormatUriTemplate.mjs +2 -7
  262. package/lib/internal/_isFormatUriTemplate.mjs.map +1 -1
  263. package/lib/internal/_isFormatUriTemplate2.mjs +7 -15
  264. package/lib/internal/_isFormatUriTemplate2.mjs.map +1 -1
  265. package/lib/internal/_isFormatUrl.mjs +2 -7
  266. package/lib/internal/_isFormatUrl.mjs.map +1 -1
  267. package/lib/internal/_isFormatUrl2.mjs +7 -15
  268. package/lib/internal/_isFormatUrl2.mjs.map +1 -1
  269. package/lib/internal/_isFormatUuid.mjs +2 -7
  270. package/lib/internal/_isFormatUuid.mjs.map +1 -1
  271. package/lib/internal/_isFormatUuid2.mjs +7 -15
  272. package/lib/internal/_isFormatUuid2.mjs.map +1 -1
  273. package/lib/internal/_isTypeFloat.mjs +2 -7
  274. package/lib/internal/_isTypeFloat.mjs.map +1 -1
  275. package/lib/internal/_isTypeFloat2.mjs +8 -16
  276. package/lib/internal/_isTypeFloat2.mjs.map +1 -1
  277. package/lib/internal/_isTypeInt32.mjs +2 -7
  278. package/lib/internal/_isTypeInt32.mjs.map +1 -1
  279. package/lib/internal/_isTypeInt322.mjs +8 -16
  280. package/lib/internal/_isTypeInt322.mjs.map +1 -1
  281. package/lib/internal/_isTypeInt64.mjs +2 -7
  282. package/lib/internal/_isTypeInt64.mjs.map +1 -1
  283. package/lib/internal/_isTypeInt642.mjs +8 -16
  284. package/lib/internal/_isTypeInt642.mjs.map +1 -1
  285. package/lib/internal/_isTypeUint32.mjs +2 -7
  286. package/lib/internal/_isTypeUint32.mjs.map +1 -1
  287. package/lib/internal/_isTypeUint322.mjs +8 -16
  288. package/lib/internal/_isTypeUint322.mjs.map +1 -1
  289. package/lib/internal/_isTypeUint64.mjs +2 -7
  290. package/lib/internal/_isTypeUint64.mjs.map +1 -1
  291. package/lib/internal/_isTypeUint642.mjs +8 -16
  292. package/lib/internal/_isTypeUint642.mjs.map +1 -1
  293. package/lib/internal/_isUniqueItems.mjs +2 -7
  294. package/lib/internal/_isUniqueItems.mjs.map +1 -1
  295. package/lib/internal/_isUniqueItems2.mjs +140 -148
  296. package/lib/internal/_isUniqueItems2.mjs.map +1 -1
  297. package/lib/internal/_jsonStringifyNumber.mjs +2 -7
  298. package/lib/internal/_jsonStringifyNumber.mjs.map +1 -1
  299. package/lib/internal/_jsonStringifyNumber2.mjs +6 -14
  300. package/lib/internal/_jsonStringifyNumber2.mjs.map +1 -1
  301. package/lib/internal/_jsonStringifyRest.mjs +2 -7
  302. package/lib/internal/_jsonStringifyRest.mjs.map +1 -1
  303. package/lib/internal/_jsonStringifyRest2.mjs +8 -16
  304. package/lib/internal/_jsonStringifyRest2.mjs.map +1 -1
  305. package/lib/internal/_jsonStringifyString.mjs +2 -7
  306. package/lib/internal/_jsonStringifyString.mjs.map +1 -1
  307. package/lib/internal/_jsonStringifyString2.mjs +42 -50
  308. package/lib/internal/_jsonStringifyString2.mjs.map +1 -1
  309. package/lib/internal/_jsonStringifyTail.mjs +2 -7
  310. package/lib/internal/_jsonStringifyTail.mjs.map +1 -1
  311. package/lib/internal/_jsonStringifyTail2.mjs +6 -14
  312. package/lib/internal/_jsonStringifyTail2.mjs.map +1 -1
  313. package/lib/internal/_llmApplicationFinalize.mjs +2 -7
  314. package/lib/internal/_llmApplicationFinalize.mjs.map +1 -1
  315. package/lib/internal/_llmApplicationFinalize2.mjs +7 -15
  316. package/lib/internal/_llmApplicationFinalize2.mjs.map +1 -1
  317. package/lib/internal/_miscCloneAny.mjs +2 -7
  318. package/lib/internal/_miscCloneAny.mjs.map +1 -1
  319. package/lib/internal/_miscCloneAny2.mjs +64 -72
  320. package/lib/internal/_miscCloneAny2.mjs.map +1 -1
  321. package/lib/internal/_notationAny.mjs +2 -7
  322. package/lib/internal/_notationAny.mjs.map +1 -1
  323. package/lib/internal/_notationAny2.mjs +39 -47
  324. package/lib/internal/_notationAny2.mjs.map +1 -1
  325. package/lib/internal/_notationCamel.mjs +2 -7
  326. package/lib/internal/_notationCamel.mjs.map +1 -1
  327. package/lib/internal/_notationCamel2.mjs +17 -23
  328. package/lib/internal/_notationCamel2.mjs.map +1 -1
  329. package/lib/internal/_notationPascal.mjs +2 -7
  330. package/lib/internal/_notationPascal.mjs.map +1 -1
  331. package/lib/internal/_notationPascal2.mjs +13 -19
  332. package/lib/internal/_notationPascal2.mjs.map +1 -1
  333. package/lib/internal/_notationSnake.mjs +2 -7
  334. package/lib/internal/_notationSnake.mjs.map +1 -1
  335. package/lib/internal/_notationSnake2.mjs +51 -59
  336. package/lib/internal/_notationSnake2.mjs.map +1 -1
  337. package/lib/internal/_parseLlmArguments.mjs +2 -7
  338. package/lib/internal/_parseLlmArguments.mjs.map +1 -1
  339. package/lib/internal/_parseLlmArguments2.mjs +7 -15
  340. package/lib/internal/_parseLlmArguments2.mjs.map +1 -1
  341. package/lib/internal/_randomArray.mjs +2 -7
  342. package/lib/internal/_randomArray.mjs.map +1 -1
  343. package/lib/internal/_randomArray2.mjs +22 -29
  344. package/lib/internal/_randomArray2.mjs.map +1 -1
  345. package/lib/internal/_randomBigint.mjs +2 -7
  346. package/lib/internal/_randomBigint.mjs.map +1 -1
  347. package/lib/internal/_randomBigint2.mjs +9 -16
  348. package/lib/internal/_randomBigint2.mjs.map +1 -1
  349. package/lib/internal/_randomBoolean.mjs +2 -7
  350. package/lib/internal/_randomBoolean.mjs.map +1 -1
  351. package/lib/internal/_randomBoolean2.mjs +6 -14
  352. package/lib/internal/_randomBoolean2.mjs.map +1 -1
  353. package/lib/internal/_randomFormatByte.mjs +2 -7
  354. package/lib/internal/_randomFormatByte.mjs.map +1 -1
  355. package/lib/internal/_randomFormatByte2.mjs +7 -15
  356. package/lib/internal/_randomFormatByte2.mjs.map +1 -1
  357. package/lib/internal/_randomFormatDate.mjs +2 -7
  358. package/lib/internal/_randomFormatDate.mjs.map +1 -1
  359. package/lib/internal/_randomFormatDate2.mjs +17 -24
  360. package/lib/internal/_randomFormatDate2.mjs.map +1 -1
  361. package/lib/internal/_randomFormatDatetime.mjs +2 -7
  362. package/lib/internal/_randomFormatDatetime.mjs.map +1 -1
  363. package/lib/internal/_randomFormatDatetime2.mjs +15 -22
  364. package/lib/internal/_randomFormatDatetime2.mjs.map +1 -1
  365. package/lib/internal/_randomFormatDuration.mjs +2 -7
  366. package/lib/internal/_randomFormatDuration.mjs.map +1 -1
  367. package/lib/internal/_randomFormatDuration2.mjs +32 -39
  368. package/lib/internal/_randomFormatDuration2.mjs.map +1 -1
  369. package/lib/internal/_randomFormatEmail.mjs +2 -7
  370. package/lib/internal/_randomFormatEmail.mjs.map +1 -1
  371. package/lib/internal/_randomFormatEmail2.mjs +14 -21
  372. package/lib/internal/_randomFormatEmail2.mjs.map +1 -1
  373. package/lib/internal/_randomFormatHostname.mjs +2 -7
  374. package/lib/internal/_randomFormatHostname.mjs.map +1 -1
  375. package/lib/internal/_randomFormatHostname2.mjs +10 -17
  376. package/lib/internal/_randomFormatHostname2.mjs.map +1 -1
  377. package/lib/internal/_randomFormatIdnEmail.mjs +2 -7
  378. package/lib/internal/_randomFormatIdnEmail.mjs.map +1 -1
  379. package/lib/internal/_randomFormatIdnEmail2.mjs +9 -16
  380. package/lib/internal/_randomFormatIdnEmail2.mjs.map +1 -1
  381. package/lib/internal/_randomFormatIdnHostname.mjs +2 -7
  382. package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -1
  383. package/lib/internal/_randomFormatIdnHostname2.mjs +9 -16
  384. package/lib/internal/_randomFormatIdnHostname2.mjs.map +1 -1
  385. package/lib/internal/_randomFormatIpv4.mjs +2 -7
  386. package/lib/internal/_randomFormatIpv4.mjs.map +1 -1
  387. package/lib/internal/_randomFormatIpv42.mjs +14 -21
  388. package/lib/internal/_randomFormatIpv42.mjs.map +1 -1
  389. package/lib/internal/_randomFormatIpv6.mjs +2 -7
  390. package/lib/internal/_randomFormatIpv6.mjs.map +1 -1
  391. package/lib/internal/_randomFormatIpv62.mjs +14 -21
  392. package/lib/internal/_randomFormatIpv62.mjs.map +1 -1
  393. package/lib/internal/_randomFormatIri.mjs +2 -7
  394. package/lib/internal/_randomFormatIri.mjs.map +1 -1
  395. package/lib/internal/_randomFormatIri2.mjs +9 -16
  396. package/lib/internal/_randomFormatIri2.mjs.map +1 -1
  397. package/lib/internal/_randomFormatIriReference.mjs +2 -7
  398. package/lib/internal/_randomFormatIriReference.mjs.map +1 -1
  399. package/lib/internal/_randomFormatIriReference2.mjs +9 -16
  400. package/lib/internal/_randomFormatIriReference2.mjs.map +1 -1
  401. package/lib/internal/_randomFormatJsonPointer.mjs +2 -7
  402. package/lib/internal/_randomFormatJsonPointer.mjs.map +1 -1
  403. package/lib/internal/_randomFormatJsonPointer2.mjs +10 -17
  404. package/lib/internal/_randomFormatJsonPointer2.mjs.map +1 -1
  405. package/lib/internal/_randomFormatPassword.mjs +2 -7
  406. package/lib/internal/_randomFormatPassword.mjs.map +1 -1
  407. package/lib/internal/_randomFormatPassword2.mjs +13 -20
  408. package/lib/internal/_randomFormatPassword2.mjs.map +1 -1
  409. package/lib/internal/_randomFormatRegex.mjs +2 -7
  410. package/lib/internal/_randomFormatRegex.mjs.map +1 -1
  411. package/lib/internal/_randomFormatRegex2.mjs +7 -15
  412. package/lib/internal/_randomFormatRegex2.mjs.map +1 -1
  413. package/lib/internal/_randomFormatRelativeJsonPointer.mjs +2 -7
  414. package/lib/internal/_randomFormatRelativeJsonPointer.mjs.map +1 -1
  415. package/lib/internal/_randomFormatRelativeJsonPointer2.mjs +13 -20
  416. package/lib/internal/_randomFormatRelativeJsonPointer2.mjs.map +1 -1
  417. package/lib/internal/_randomFormatTime.mjs +2 -7
  418. package/lib/internal/_randomFormatTime.mjs.map +1 -1
  419. package/lib/internal/_randomFormatTime2.mjs +16 -23
  420. package/lib/internal/_randomFormatTime2.mjs.map +1 -1
  421. package/lib/internal/_randomFormatUri.mjs +2 -7
  422. package/lib/internal/_randomFormatUri.mjs.map +1 -1
  423. package/lib/internal/_randomFormatUri2.mjs +9 -16
  424. package/lib/internal/_randomFormatUri2.mjs.map +1 -1
  425. package/lib/internal/_randomFormatUriReference.mjs +2 -7
  426. package/lib/internal/_randomFormatUriReference.mjs.map +1 -1
  427. package/lib/internal/_randomFormatUriReference2.mjs +9 -16
  428. package/lib/internal/_randomFormatUriReference2.mjs.map +1 -1
  429. package/lib/internal/_randomFormatUriTemplate.mjs +2 -7
  430. package/lib/internal/_randomFormatUriTemplate.mjs.map +1 -1
  431. package/lib/internal/_randomFormatUriTemplate2.mjs +9 -16
  432. package/lib/internal/_randomFormatUriTemplate2.mjs.map +1 -1
  433. package/lib/internal/_randomFormatUrl.mjs +2 -7
  434. package/lib/internal/_randomFormatUrl.mjs.map +1 -1
  435. package/lib/internal/_randomFormatUrl2.mjs +14 -21
  436. package/lib/internal/_randomFormatUrl2.mjs.map +1 -1
  437. package/lib/internal/_randomFormatUuid.mjs +2 -7
  438. package/lib/internal/_randomFormatUuid.mjs.map +1 -1
  439. package/lib/internal/_randomFormatUuid2.mjs +10 -18
  440. package/lib/internal/_randomFormatUuid2.mjs.map +1 -1
  441. package/lib/internal/_randomInteger.js.map +1 -1
  442. package/lib/internal/_randomInteger.mjs +2 -7
  443. package/lib/internal/_randomInteger.mjs.map +1 -1
  444. package/lib/internal/_randomInteger2.mjs +44 -52
  445. package/lib/internal/_randomInteger2.mjs.map +1 -1
  446. package/lib/internal/_randomNumber.mjs +2 -7
  447. package/lib/internal/_randomNumber.mjs.map +1 -1
  448. package/lib/internal/_randomNumber2.mjs +63 -71
  449. package/lib/internal/_randomNumber2.mjs.map +1 -1
  450. package/lib/internal/_randomPattern.mjs +2 -7
  451. package/lib/internal/_randomPattern.mjs.map +1 -1
  452. package/lib/internal/_randomPattern2.mjs +18 -26
  453. package/lib/internal/_randomPattern2.mjs.map +1 -1
  454. package/lib/internal/_randomPick.mjs +2 -7
  455. package/lib/internal/_randomPick.mjs.map +1 -1
  456. package/lib/internal/_randomPick2.mjs +14 -21
  457. package/lib/internal/_randomPick2.mjs.map +1 -1
  458. package/lib/internal/_randomString.mjs +2 -7
  459. package/lib/internal/_randomString.mjs.map +1 -1
  460. package/lib/internal/_randomString2.mjs +26 -33
  461. package/lib/internal/_randomString2.mjs.map +1 -1
  462. package/lib/internal/_throwTypeGuardError.mjs +2 -7
  463. package/lib/internal/_throwTypeGuardError.mjs.map +1 -1
  464. package/lib/internal/_throwTypeGuardError2.mjs +11 -18
  465. package/lib/internal/_throwTypeGuardError2.mjs.map +1 -1
  466. package/lib/internal/_validateReport.js.map +1 -1
  467. package/lib/internal/_validateReport.mjs +2 -7
  468. package/lib/internal/_validateReport.mjs.map +1 -1
  469. package/lib/internal/_validateReport2.mjs +26 -34
  470. package/lib/internal/_validateReport2.mjs.map +1 -1
  471. package/lib/internal/private/__notationCapitalize.mjs +2 -7
  472. package/lib/internal/private/__notationCapitalize.mjs.map +1 -1
  473. package/lib/internal/private/__notationCapitalize2.mjs +6 -14
  474. package/lib/internal/private/__notationCapitalize2.mjs.map +1 -1
  475. package/lib/internal/private/__notationUnsnake.mjs +2 -7
  476. package/lib/internal/private/__notationUnsnake.mjs.map +1 -1
  477. package/lib/internal/private/__notationUnsnake2.mjs +26 -34
  478. package/lib/internal/private/__notationUnsnake2.mjs.map +1 -1
  479. package/lib/json.mjs +2 -7
  480. package/lib/json.mjs.map +1 -1
  481. package/lib/json2.mjs +89 -96
  482. package/lib/json2.mjs.map +1 -1
  483. package/lib/llm.d.ts +1 -1
  484. package/lib/llm.mjs +2 -7
  485. package/lib/llm.mjs.map +1 -1
  486. package/lib/llm2.mjs +49 -56
  487. package/lib/llm2.mjs.map +1 -1
  488. package/lib/misc.mjs +2 -7
  489. package/lib/misc.mjs.map +1 -1
  490. package/lib/misc2.mjs +89 -96
  491. package/lib/misc2.mjs.map +1 -1
  492. package/lib/module.mjs +1 -7
  493. package/lib/module.mjs.map +1 -1
  494. package/lib/module2.mjs +168 -161
  495. package/lib/module2.mjs.map +1 -1
  496. package/lib/notations.mjs +2 -7
  497. package/lib/notations.mjs.map +1 -1
  498. package/lib/notations2.mjs +124 -131
  499. package/lib/notations2.mjs.map +1 -1
  500. package/lib/protobuf.mjs +2 -7
  501. package/lib/protobuf.mjs.map +1 -1
  502. package/lib/protobuf2.mjs +89 -96
  503. package/lib/protobuf2.mjs.map +1 -1
  504. package/lib/re-exports.mjs +1 -7
  505. package/lib/re-exports.mjs.map +1 -1
  506. package/lib/re-exports2.mjs +12 -16
  507. package/lib/re-exports2.mjs.map +1 -1
  508. package/lib/reflect.mjs +2 -7
  509. package/lib/reflect.mjs.map +1 -1
  510. package/lib/reflect2.mjs +19 -26
  511. package/lib/reflect2.mjs.map +1 -1
  512. package/lib/transform.d.ts +6 -3
  513. package/lib/transform.js +5 -10
  514. package/lib/transform.js.map +1 -1
  515. package/lib/transform.mjs +1 -7
  516. package/lib/transform.mjs.map +1 -1
  517. package/lib/transform2.mjs +59 -72
  518. package/lib/transform2.mjs.map +1 -1
  519. package/lib/transformers/NoTransformConfigurationError.mjs +2 -7
  520. package/lib/transformers/NoTransformConfigurationError.mjs.map +1 -1
  521. package/lib/transformers/NoTransformConfigurationError2.mjs +17 -25
  522. package/lib/transformers/NoTransformConfigurationError2.mjs.map +1 -1
  523. package/native/adapter/adapter.go +168 -0
  524. package/native/adapter/cleanup.go +218 -0
  525. package/native/adapter/imports.go +91 -0
  526. package/native/adapter/visit.go +168 -0
  527. package/native/cmd/ttsc-typia/build.go +252 -0
  528. package/native/cmd/ttsc-typia/main.go +95 -0
  529. package/native/cmd/ttsc-typia/transform.go +290 -0
  530. package/native/core/context/IProgrammerProps.go +14 -0
  531. package/native/core/context/ITransformOptions.go +9 -0
  532. package/native/core/context/ITypiaContext.go +23 -0
  533. package/native/core/context/TransformerError.go +117 -0
  534. package/native/core/context/index.go +1 -0
  535. package/native/core/factories/CommentFactory.go +27 -0
  536. package/native/core/factories/ExpressionFactory.go +334 -0
  537. package/native/core/factories/FormatCheatSheet.go +30 -0
  538. package/native/core/factories/IdentifierFactory.go +163 -0
  539. package/native/core/factories/JsonMetadataFactory.go +162 -0
  540. package/native/core/factories/LiteralFactory.go +221 -0
  541. package/native/core/factories/MetadataCommentTagFactory.go +433 -0
  542. package/native/core/factories/MetadataFactory.go +529 -0
  543. package/native/core/factories/MetadataTypeTagFactory.go +560 -0
  544. package/native/core/factories/MetadataTypeTagSchemaFactory.go +117 -0
  545. package/native/core/factories/NumericRangeFactory.go +120 -0
  546. package/native/core/factories/ProtobufFactory.go +1068 -0
  547. package/native/core/factories/StatementFactory.go +105 -0
  548. package/native/core/factories/TemplateFactory.go +77 -0
  549. package/native/core/factories/TypeFactory.go +163 -0
  550. package/native/core/factories/ValueFactory.go +36 -0
  551. package/native/core/factories/index.go +1 -0
  552. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +56 -0
  553. package/native/core/factories/internal/metadata/MetadataHelper.go +225 -0
  554. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +80 -0
  555. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +34 -0
  556. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +44 -0
  557. package/native/core/factories/internal/metadata/emplace_metadata_object.go +231 -0
  558. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +58 -0
  559. package/native/core/factories/internal/metadata/explore_metadata.go +39 -0
  560. package/native/core/factories/internal/metadata/iterate_metadata.go +55 -0
  561. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +36 -0
  562. package/native/core/factories/internal/metadata/iterate_metadata_array.go +77 -0
  563. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +63 -0
  564. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +30 -0
  565. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +247 -0
  566. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +20 -0
  567. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +86 -0
  568. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +56 -0
  569. package/native/core/factories/internal/metadata/iterate_metadata_function.go +93 -0
  570. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +340 -0
  571. package/native/core/factories/internal/metadata/iterate_metadata_map.go +60 -0
  572. package/native/core/factories/internal/metadata/iterate_metadata_native.go +117 -0
  573. package/native/core/factories/internal/metadata/iterate_metadata_object.go +35 -0
  574. package/native/core/factories/internal/metadata/iterate_metadata_set.go +46 -0
  575. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +157 -0
  576. package/native/core/factories/internal/metadata/iterate_metadata_template.go +41 -0
  577. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +24 -0
  578. package/native/core/factories/internal/metadata/iterate_metadata_union.go +22 -0
  579. package/native/core/index.go +1 -0
  580. package/native/core/programmers/AssertProgrammer.go +483 -0
  581. package/native/core/programmers/ImportProgrammer.go +252 -0
  582. package/native/core/programmers/IsProgrammer.go +370 -0
  583. package/native/core/programmers/RandomProgrammer.go +1271 -0
  584. package/native/core/programmers/ValidateProgrammer.go +457 -0
  585. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +169 -0
  586. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +130 -0
  587. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +126 -0
  588. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +100 -0
  589. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +214 -0
  590. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +125 -0
  591. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +168 -0
  592. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +248 -0
  593. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +142 -0
  594. package/native/core/programmers/functional/index.go +1 -0
  595. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +53 -0
  596. package/native/core/programmers/helpers/AtomicPredicator.go +62 -0
  597. package/native/core/programmers/helpers/CloneJoiner.go +261 -0
  598. package/native/core/programmers/helpers/FunctionProgrammer.go +116 -0
  599. package/native/core/programmers/helpers/HttpMetadataUtil.go +30 -0
  600. package/native/core/programmers/helpers/ICheckEntry.go +14 -0
  601. package/native/core/programmers/helpers/IExpressionEntry.go +13 -0
  602. package/native/core/programmers/helpers/NotationJoiner.go +194 -0
  603. package/native/core/programmers/helpers/OptionPredicator.go +23 -0
  604. package/native/core/programmers/helpers/ProtobufUtil.go +297 -0
  605. package/native/core/programmers/helpers/ProtobufWire.go +14 -0
  606. package/native/core/programmers/helpers/PruneJoiner.go +274 -0
  607. package/native/core/programmers/helpers/RandomJoiner.go +193 -0
  608. package/native/core/programmers/helpers/StringifyJoinder.go +394 -0
  609. package/native/core/programmers/helpers/StringifyPredicator.go +25 -0
  610. package/native/core/programmers/helpers/UnionExplorer.go +939 -0
  611. package/native/core/programmers/helpers/UnionPredicator.go +95 -0
  612. package/native/core/programmers/helpers/disable_function_programmer_declare.go +10 -0
  613. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +115 -0
  614. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +59 -0
  615. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +71 -0
  616. package/native/core/programmers/http/HttpFormDataProgrammer.go +414 -0
  617. package/native/core/programmers/http/HttpHeadersProgrammer.go +418 -0
  618. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +140 -0
  619. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +53 -0
  620. package/native/core/programmers/http/HttpIsQueryProgrammer.go +65 -0
  621. package/native/core/programmers/http/HttpParameterProgrammer.go +193 -0
  622. package/native/core/programmers/http/HttpQueryProgrammer.go +475 -0
  623. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +109 -0
  624. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +56 -0
  625. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +68 -0
  626. package/native/core/programmers/http/index.go +1 -0
  627. package/native/core/programmers/index.go +1 -0
  628. package/native/core/programmers/internal/CheckerProgrammer.go +1695 -0
  629. package/native/core/programmers/internal/FeatureProgrammer.go +749 -0
  630. package/native/core/programmers/iterate/check_array_length.go +65 -0
  631. package/native/core/programmers/iterate/check_bigint.go +73 -0
  632. package/native/core/programmers/iterate/check_dynamic_key.go +257 -0
  633. package/native/core/programmers/iterate/check_dynamic_properties.go +283 -0
  634. package/native/core/programmers/iterate/check_everything.go +30 -0
  635. package/native/core/programmers/iterate/check_native.go +41 -0
  636. package/native/core/programmers/iterate/check_number.go +169 -0
  637. package/native/core/programmers/iterate/check_object.go +89 -0
  638. package/native/core/programmers/iterate/check_string.go +73 -0
  639. package/native/core/programmers/iterate/check_template.go +73 -0
  640. package/native/core/programmers/iterate/check_union_array_like.go +416 -0
  641. package/native/core/programmers/iterate/decode_union_object.go +150 -0
  642. package/native/core/programmers/iterate/feature_object_entries.go +172 -0
  643. package/native/core/programmers/iterate/json_schema_alias.go +61 -0
  644. package/native/core/programmers/iterate/json_schema_array.go +65 -0
  645. package/native/core/programmers/iterate/json_schema_bigint.go +17 -0
  646. package/native/core/programmers/iterate/json_schema_boolean.go +17 -0
  647. package/native/core/programmers/iterate/json_schema_constant.go +53 -0
  648. package/native/core/programmers/iterate/json_schema_description.go +21 -0
  649. package/native/core/programmers/iterate/json_schema_discriminator.go +57 -0
  650. package/native/core/programmers/iterate/json_schema_escaped.go +68 -0
  651. package/native/core/programmers/iterate/json_schema_jsDocTags.go +48 -0
  652. package/native/core/programmers/iterate/json_schema_native.go +59 -0
  653. package/native/core/programmers/iterate/json_schema_number.go +17 -0
  654. package/native/core/programmers/iterate/json_schema_object.go +179 -0
  655. package/native/core/programmers/iterate/json_schema_plugin.go +47 -0
  656. package/native/core/programmers/iterate/json_schema_station.go +251 -0
  657. package/native/core/programmers/iterate/json_schema_string.go +17 -0
  658. package/native/core/programmers/iterate/json_schema_template.go +63 -0
  659. package/native/core/programmers/iterate/json_schema_title.go +25 -0
  660. package/native/core/programmers/iterate/json_schema_tuple.go +41 -0
  661. package/native/core/programmers/iterate/metadata_to_pattern.go +64 -0
  662. package/native/core/programmers/iterate/postfix_of_tuple.go +12 -0
  663. package/native/core/programmers/iterate/prune_object_properties.go +101 -0
  664. package/native/core/programmers/iterate/stringify_dynamic_properties.go +212 -0
  665. package/native/core/programmers/iterate/stringify_native.go +9 -0
  666. package/native/core/programmers/iterate/stringify_regular_properties.go +108 -0
  667. package/native/core/programmers/iterate/template_to_pattern.go +29 -0
  668. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +22 -0
  669. package/native/core/programmers/json/JsonApplicationProgrammer.go +374 -0
  670. package/native/core/programmers/json/JsonAssertParseProgrammer.go +118 -0
  671. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +107 -0
  672. package/native/core/programmers/json/JsonIsParseProgrammer.go +165 -0
  673. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +113 -0
  674. package/native/core/programmers/json/JsonSchemaProgrammer.go +94 -0
  675. package/native/core/programmers/json/JsonSchemasProgrammer.go +148 -0
  676. package/native/core/programmers/json/JsonStringifyProgrammer.go +1423 -0
  677. package/native/core/programmers/json/JsonValidateParseProgrammer.go +107 -0
  678. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +125 -0
  679. package/native/core/programmers/json/index.go +1 -0
  680. package/native/core/programmers/llm/LlmApplicationProgrammer.go +500 -0
  681. package/native/core/programmers/llm/LlmCoerceProgrammer.go +108 -0
  682. package/native/core/programmers/llm/LlmControllerProgrammer.go +51 -0
  683. package/native/core/programmers/llm/LlmMetadataFactory.go +90 -0
  684. package/native/core/programmers/llm/LlmParametersProgrammer.go +168 -0
  685. package/native/core/programmers/llm/LlmParseProgrammer.go +120 -0
  686. package/native/core/programmers/llm/LlmSchemaProgrammer.go +474 -0
  687. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +146 -0
  688. package/native/core/programmers/llm/index.go +1 -0
  689. package/native/core/programmers/misc/MiscAssertCloneProgrammer.go +101 -0
  690. package/native/core/programmers/misc/MiscAssertPruneProgrammer.go +116 -0
  691. package/native/core/programmers/misc/MiscCloneProgrammer.go +1206 -0
  692. package/native/core/programmers/misc/MiscIsCloneProgrammer.go +116 -0
  693. package/native/core/programmers/misc/MiscIsPruneProgrammer.go +105 -0
  694. package/native/core/programmers/misc/MiscLiteralsProgrammer.go +125 -0
  695. package/native/core/programmers/misc/MiscPruneProgrammer.go +798 -0
  696. package/native/core/programmers/misc/MiscValidateCloneProgrammer.go +122 -0
  697. package/native/core/programmers/misc/MiscValidatePruneProgrammer.go +113 -0
  698. package/native/core/programmers/misc/index.go +1 -0
  699. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +106 -0
  700. package/native/core/programmers/notations/NotationGeneralProgrammer.go +1381 -0
  701. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +111 -0
  702. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +130 -0
  703. package/native/core/programmers/notations/index.go +1 -0
  704. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +124 -0
  705. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +145 -0
  706. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +845 -0
  707. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1207 -0
  708. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +121 -0
  709. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +115 -0
  710. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +273 -0
  711. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +110 -0
  712. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +145 -0
  713. package/native/core/programmers/protobuf/index.go +1 -0
  714. package/native/core/schemas/index.go +1 -0
  715. package/native/core/schemas/metadata/IMetadataDictionary.go +8 -0
  716. package/native/core/schemas/metadata/MetadataAlias.go +28 -0
  717. package/native/core/schemas/metadata/MetadataAliasType.go +52 -0
  718. package/native/core/schemas/metadata/MetadataApplication.go +41 -0
  719. package/native/core/schemas/metadata/MetadataArray.go +28 -0
  720. package/native/core/schemas/metadata/MetadataArrayType.go +47 -0
  721. package/native/core/schemas/metadata/MetadataAtomic.go +69 -0
  722. package/native/core/schemas/metadata/MetadataCollection.go +490 -0
  723. package/native/core/schemas/metadata/MetadataComponents.go +122 -0
  724. package/native/core/schemas/metadata/MetadataConstant.go +47 -0
  725. package/native/core/schemas/metadata/MetadataConstantValue.go +97 -0
  726. package/native/core/schemas/metadata/MetadataEscaped.go +36 -0
  727. package/native/core/schemas/metadata/MetadataFunction.go +46 -0
  728. package/native/core/schemas/metadata/MetadataMap.go +37 -0
  729. package/native/core/schemas/metadata/MetadataNative.go +72 -0
  730. package/native/core/schemas/metadata/MetadataObject.go +28 -0
  731. package/native/core/schemas/metadata/MetadataObjectType.go +146 -0
  732. package/native/core/schemas/metadata/MetadataParameter.go +46 -0
  733. package/native/core/schemas/metadata/MetadataProperty.go +50 -0
  734. package/native/core/schemas/metadata/MetadataSchema.go +863 -0
  735. package/native/core/schemas/metadata/MetadataSet.go +33 -0
  736. package/native/core/schemas/metadata/MetadataTemplate.go +70 -0
  737. package/native/core/schemas/metadata/MetadataTuple.go +20 -0
  738. package/native/core/schemas/metadata/MetadataTupleType.go +57 -0
  739. package/native/core/schemas/metadata/index.go +1 -0
  740. package/native/core/schemas/protobuf/IProtobufProperty.go +6 -0
  741. package/native/core/schemas/protobuf/IProtobufPropertyType.go +55 -0
  742. package/native/core/schemas/protobuf/IProtobufSchema.go +54 -0
  743. package/native/core/schemas/protobuf/index.go +1 -0
  744. package/native/core/typings/Writable.go +5 -0
  745. package/native/core/utils/PatternUtil.go +57 -0
  746. package/native/core/utils/ProtobufNameEncoder.go +47 -0
  747. package/native/go.mod +35 -0
  748. package/native/go.sum +22 -0
  749. package/native/go.work +20 -0
  750. package/native/go.work.sum +11 -0
  751. package/native/shim/printer/go.mod +5 -0
  752. package/native/shim/printer/shim.go +249 -0
  753. package/native/third_party/ttsc/driver/host.go +31 -0
  754. package/native/third_party/ttsc/driver/program.go +403 -0
  755. package/native/third_party/ttsc/driver/rewrite.go +315 -0
  756. package/native/third_party/ttsc/go.mod +46 -0
  757. package/native/third_party/ttsc/go.sum +22 -0
  758. package/native/third_party/ttsc/shim/ast/extra-shim.json +4 -0
  759. package/native/third_party/ttsc/shim/ast/go.mod +5 -0
  760. package/native/third_party/ttsc/shim/ast/lint.go +328 -0
  761. package/native/third_party/ttsc/shim/ast/shim.go +209 -0
  762. package/native/third_party/ttsc/shim/bundled/extra-shim.json +1 -0
  763. package/native/third_party/ttsc/shim/bundled/go.mod +5 -0
  764. package/native/third_party/ttsc/shim/bundled/shim.go +19 -0
  765. package/native/third_party/ttsc/shim/checker/extra-shim.json +31 -0
  766. package/native/third_party/ttsc/shim/checker/go.mod +5 -0
  767. package/native/third_party/ttsc/shim/checker/shim.go +166 -0
  768. package/native/third_party/ttsc/shim/compiler/extra-shim.json +4 -0
  769. package/native/third_party/ttsc/shim/compiler/go.mod +5 -0
  770. package/native/third_party/ttsc/shim/compiler/shim.go +50 -0
  771. package/native/third_party/ttsc/shim/core/extra-shim.json +4 -0
  772. package/native/third_party/ttsc/shim/core/go.mod +5 -0
  773. package/native/third_party/ttsc/shim/core/shim.go +26 -0
  774. package/native/third_party/ttsc/shim/diagnosticwriter/go.mod +5 -0
  775. package/native/third_party/ttsc/shim/diagnosticwriter/lint.go +137 -0
  776. package/native/third_party/ttsc/shim/diagnosticwriter/shim.go +29 -0
  777. package/native/third_party/ttsc/shim/parser/extra-shim.json +4 -0
  778. package/native/third_party/ttsc/shim/parser/go.mod +5 -0
  779. package/native/third_party/ttsc/shim/parser/shim.go +55 -0
  780. package/native/third_party/ttsc/shim/scanner/extra-shim.json +4 -0
  781. package/native/third_party/ttsc/shim/scanner/go.mod +5 -0
  782. package/native/third_party/ttsc/shim/scanner/shim.go +96 -0
  783. package/native/third_party/ttsc/shim/tsoptions/extra-shim.json +4 -0
  784. package/native/third_party/ttsc/shim/tsoptions/go.mod +5 -0
  785. package/native/third_party/ttsc/shim/tsoptions/shim.go +123 -0
  786. package/native/third_party/ttsc/shim/tspath/extra-shim.json +4 -0
  787. package/native/third_party/ttsc/shim/tspath/go.mod +5 -0
  788. package/native/third_party/ttsc/shim/tspath/shim.go +165 -0
  789. package/native/third_party/ttsc/shim/vfs/cachedvfs/extra-shim.json +4 -0
  790. package/native/third_party/ttsc/shim/vfs/cachedvfs/go.mod +5 -0
  791. package/native/third_party/ttsc/shim/vfs/cachedvfs/shim.go +12 -0
  792. package/native/third_party/ttsc/shim/vfs/extra-shim.json +4 -0
  793. package/native/third_party/ttsc/shim/vfs/go.mod +5 -0
  794. package/native/third_party/ttsc/shim/vfs/osvfs/extra-shim.json +4 -0
  795. package/native/third_party/ttsc/shim/vfs/osvfs/go.mod +5 -0
  796. package/native/third_party/ttsc/shim/vfs/osvfs/shim.go +13 -0
  797. package/native/third_party/ttsc/shim/vfs/shim.go +19 -0
  798. package/native/transform/CallExpressionTransformer.go +620 -0
  799. package/native/transform/FileTransformer.go +172 -0
  800. package/native/transform/ITransformProps.go +5 -0
  801. package/native/transform/ImportTransformer.go +282 -0
  802. package/native/transform/NodeTransformer.go +25 -0
  803. package/native/transform/TransformerError.go +11 -0
  804. package/native/transform/TypiaGenerator.go +168 -0
  805. package/native/transform/features/AssertTransformer.go +39 -0
  806. package/native/transform/features/CreateAssertTransformer.go +39 -0
  807. package/native/transform/features/CreateIsTransformer.go +35 -0
  808. package/native/transform/features/CreateRandomTransformer.go +47 -0
  809. package/native/transform/features/CreateValidateTransformer.go +35 -0
  810. package/native/transform/features/IsTransformer.go +35 -0
  811. package/native/transform/features/RandomTransformer.go +51 -0
  812. package/native/transform/features/ValidateTransformer.go +35 -0
  813. package/native/transform/features/functional/FunctionalGenericTransformer.go +70 -0
  814. package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +22 -0
  815. package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +22 -0
  816. package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +28 -0
  817. package/native/transform/features/http/CreateHttpFormDataTransformer.go +22 -0
  818. package/native/transform/features/http/CreateHttpHeadersTransformer.go +22 -0
  819. package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +22 -0
  820. package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +22 -0
  821. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +28 -0
  822. package/native/transform/features/http/CreateHttpParameterTransformer.go +22 -0
  823. package/native/transform/features/http/CreateHttpQueryTransformer.go +28 -0
  824. package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +22 -0
  825. package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +22 -0
  826. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +28 -0
  827. package/native/transform/features/http/HttpAssertFormDataTransformer.go +22 -0
  828. package/native/transform/features/http/HttpAssertHeadersTransformer.go +22 -0
  829. package/native/transform/features/http/HttpAssertQueryTransformer.go +28 -0
  830. package/native/transform/features/http/HttpFormDataTransformer.go +22 -0
  831. package/native/transform/features/http/HttpHeadersTransformer.go +22 -0
  832. package/native/transform/features/http/HttpIsFormDataTransformer.go +22 -0
  833. package/native/transform/features/http/HttpIsHeadersTransformer.go +22 -0
  834. package/native/transform/features/http/HttpIsQueryTransformer.go +28 -0
  835. package/native/transform/features/http/HttpParameterTransformer.go +22 -0
  836. package/native/transform/features/http/HttpQueryTransformer.go +28 -0
  837. package/native/transform/features/http/HttpValidateFormDataTransformer.go +22 -0
  838. package/native/transform/features/http/HttpValidateHeadersTransformer.go +22 -0
  839. package/native/transform/features/http/HttpValidateQueryTransformer.go +28 -0
  840. package/native/transform/features/json/JsonApplicationTransformer.go +76 -0
  841. package/native/transform/features/json/JsonAssertParseTransformer.go +22 -0
  842. package/native/transform/features/json/JsonAssertStringifyTransformer.go +22 -0
  843. package/native/transform/features/json/JsonCreateAssertParseTransformer.go +22 -0
  844. package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +22 -0
  845. package/native/transform/features/json/JsonCreateIsParseTransformer.go +22 -0
  846. package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +22 -0
  847. package/native/transform/features/json/JsonCreateStringifyTransformer.go +22 -0
  848. package/native/transform/features/json/JsonCreateValidateParseTransformer.go +22 -0
  849. package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +22 -0
  850. package/native/transform/features/json/JsonIsParseTransformer.go +22 -0
  851. package/native/transform/features/json/JsonIsStringifyTransformer.go +22 -0
  852. package/native/transform/features/json/JsonSchemaTransformer.go +176 -0
  853. package/native/transform/features/json/JsonSchemasTransformer.go +110 -0
  854. package/native/transform/features/json/JsonStringifyTransformer.go +22 -0
  855. package/native/transform/features/json/JsonValidateParseTransformer.go +22 -0
  856. package/native/transform/features/json/JsonValidateStringifyTransformer.go +22 -0
  857. package/native/transform/features/llm/LlmApplicationTransformer.go +54 -0
  858. package/native/transform/features/llm/LlmCoerceTransformer.go +61 -0
  859. package/native/transform/features/llm/LlmControllerTransformer.go +59 -0
  860. package/native/transform/features/llm/LlmCreateCoerceTransformer.go +54 -0
  861. package/native/transform/features/llm/LlmCreateParseTransformer.go +54 -0
  862. package/native/transform/features/llm/LlmParametersTransformer.go +49 -0
  863. package/native/transform/features/llm/LlmParseTransformer.go +61 -0
  864. package/native/transform/features/llm/LlmSchemaTransformer.go +167 -0
  865. package/native/transform/features/llm/LlmStructuredOutputTransformer.go +55 -0
  866. package/native/transform/features/misc/MiscAssertCloneTransformer.go +22 -0
  867. package/native/transform/features/misc/MiscAssertPruneTransformer.go +22 -0
  868. package/native/transform/features/misc/MiscCloneTransformer.go +22 -0
  869. package/native/transform/features/misc/MiscCreateAssertCloneTransformer.go +22 -0
  870. package/native/transform/features/misc/MiscCreateAssertPruneTransformer.go +22 -0
  871. package/native/transform/features/misc/MiscCreateCloneTransformer.go +22 -0
  872. package/native/transform/features/misc/MiscCreateIsCloneTransformer.go +22 -0
  873. package/native/transform/features/misc/MiscCreateIsPruneTransformer.go +22 -0
  874. package/native/transform/features/misc/MiscCreatePruneTransformer.go +22 -0
  875. package/native/transform/features/misc/MiscCreateValidateCloneTransformer.go +22 -0
  876. package/native/transform/features/misc/MiscCreateValidatePruneTransformer.go +22 -0
  877. package/native/transform/features/misc/MiscIsCloneTransformer.go +22 -0
  878. package/native/transform/features/misc/MiscIsPruneTransformer.go +22 -0
  879. package/native/transform/features/misc/MiscLiteralsTransformer.go +32 -0
  880. package/native/transform/features/misc/MiscPruneTransformer.go +22 -0
  881. package/native/transform/features/misc/MiscValidateCloneTransformer.go +22 -0
  882. package/native/transform/features/misc/MiscValidatePruneTransformer.go +22 -0
  883. package/native/transform/features/notations/NotationAssertGeneralTransformer.go +27 -0
  884. package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +27 -0
  885. package/native/transform/features/notations/NotationCreateGeneralTransformer.go +27 -0
  886. package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +27 -0
  887. package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +27 -0
  888. package/native/transform/features/notations/NotationGeneralTransformer.go +36 -0
  889. package/native/transform/features/notations/NotationIsGeneralTransformer.go +27 -0
  890. package/native/transform/features/notations/NotationValidateGeneralTransformer.go +27 -0
  891. package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +22 -0
  892. package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +22 -0
  893. package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +22 -0
  894. package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +22 -0
  895. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +22 -0
  896. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +22 -0
  897. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +22 -0
  898. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +22 -0
  899. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +22 -0
  900. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +22 -0
  901. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +22 -0
  902. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +22 -0
  903. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +22 -0
  904. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +22 -0
  905. package/native/transform/features/protobuf/ProtobufMessageTransformer.go +31 -0
  906. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +22 -0
  907. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +22 -0
  908. package/native/transform/features/reflect/ReflectMetadataTransformer.go +74 -0
  909. package/native/transform/features/reflect/ReflectNameTransformer.go +100 -0
  910. package/native/transform/features/reflect/ReflectSchemaTransformer.go +153 -0
  911. package/native/transform/features/reflect/ReflectSchemasTransformer.go +69 -0
  912. package/native/transform/index.go +1 -0
  913. package/native/transform/internal/GenericTransformer.go +235 -0
  914. package/native/transform/transform.go +50 -0
  915. package/package.json +11 -20
  916. package/src/TypeGuardError.ts +1 -0
  917. package/src/executable/TypiaGenerateWizard.ts +87 -64
  918. package/src/executable/generate/ttsc.ts +18 -49
  919. package/src/internal/_randomInteger.ts +5 -5
  920. package/src/internal/_validateReport.ts +2 -1
  921. package/src/llm.ts +1 -1
  922. package/src/transform.ts +6 -14
  923. package/bin/ttsc-typia-native +0 -0
@@ -0,0 +1,1423 @@
1
+ package json
2
+
3
+ import (
4
+ "fmt"
5
+ "strings"
6
+
7
+ shimast "github.com/microsoft/typescript-go/shim/ast"
8
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
10
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
11
+ nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
12
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
+ nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
15
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
16
+ )
17
+
18
+ type jsonStringifyProgrammerNamespace struct{}
19
+
20
+ var JsonStringifyProgrammer = jsonStringifyProgrammerNamespace{}
21
+
22
+ type JsonStringifyProgrammer_DecomposeProps struct {
23
+ Validated bool
24
+ Context nativecontext.ITypiaContext
25
+ Functor *nativehelpers.FunctionProgrammer
26
+ Type *shimchecker.Type
27
+ Name *string
28
+ }
29
+
30
+ const jsonStringifyProgrammer_PREFIX = "_s"
31
+
32
+ var jsonStringifyProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
33
+
34
+ func (jsonStringifyProgrammerNamespace) Decompose(props JsonStringifyProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
35
+ config := jsonStringifyProgrammer_configure(struct {
36
+ Context nativecontext.ITypiaContext
37
+ Functor *nativehelpers.FunctionProgrammer
38
+ Validated bool
39
+ }{
40
+ Context: props.Context,
41
+ Functor: props.Functor,
42
+ Validated: props.Validated,
43
+ })
44
+ if props.Validated == false {
45
+ config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
46
+ return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
47
+ Context: props.Context,
48
+ Functor: props.Functor,
49
+ Collection: collection,
50
+ })
51
+ }
52
+ }
53
+ composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
54
+ Context: props.Context,
55
+ Config: config,
56
+ Functor: props.Functor,
57
+ Type: props.Type,
58
+ Name: props.Name,
59
+ })
60
+ return nativeinternal.FeatureProgrammer_IDecomposed{
61
+ Functions: composed.Functions,
62
+ Statements: composed.Statements,
63
+ Arrow: jsonStringifyProgrammer_factory.NewArrowFunction(
64
+ nil,
65
+ nil,
66
+ jsonStringifyProgrammer_factory.NewNodeList(composed.Parameters),
67
+ composed.Response,
68
+ nil,
69
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
70
+ composed.Body,
71
+ ),
72
+ }
73
+ }
74
+
75
+ func (jsonStringifyProgrammerNamespace) Write(props nativecontext.IProgrammerProps) *shimast.Node {
76
+ functor := nativehelpers.NewFunctionProgrammer(jsonStringifyProgrammer_method_text(props.Modulo))
77
+ result := JsonStringifyProgrammer.Decompose(JsonStringifyProgrammer_DecomposeProps{
78
+ Context: props.Context,
79
+ Functor: functor,
80
+ Type: props.Type,
81
+ Name: props.Name,
82
+ Validated: false,
83
+ })
84
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
85
+ Modulo: props.Modulo,
86
+ Functor: functor,
87
+ Result: result,
88
+ })
89
+ }
90
+
91
+ func jsonStringifyProgrammer_write_array_functions(props struct {
92
+ Config nativeinternal.FeatureProgrammer_IConfig
93
+ Functor *nativehelpers.FunctionProgrammer
94
+ Collection *schemametadata.MetadataCollection
95
+ }) []*shimast.Node {
96
+ output := []*shimast.Node{}
97
+ for i, typ := range props.Collection.Arrays() {
98
+ if typ.Recursive == false {
99
+ continue
100
+ }
101
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
102
+ Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
103
+ Value: jsonStringifyProgrammer_factory.NewArrowFunction(
104
+ nil,
105
+ nil,
106
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
107
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
108
+ Type: nativefactories.TypeFactory.Keyword("any"),
109
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
110
+ })),
111
+ nativefactories.TypeFactory.Keyword("any"),
112
+ nil,
113
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
114
+ jsonStringifyProgrammer_decode_array_inline(jsonStringifyProgrammer_decodeArrayProps{
115
+ Config: props.Config,
116
+ Functor: props.Functor,
117
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
118
+ Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
119
+ Type: typ,
120
+ Tags: [][]schemametadata.IMetadataTypeTag{},
121
+ }),
122
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
123
+ Tracable: props.Config.Trace,
124
+ Source: "function",
125
+ From: "array",
126
+ Postfix: "",
127
+ },
128
+ }),
129
+ ),
130
+ }))
131
+ }
132
+ return output
133
+ }
134
+
135
+ func jsonStringifyProgrammer_write_tuple_functions(props struct {
136
+ Context nativecontext.ITypiaContext
137
+ Config nativeinternal.FeatureProgrammer_IConfig
138
+ Functor *nativehelpers.FunctionProgrammer
139
+ Collection *schemametadata.MetadataCollection
140
+ Validated bool
141
+ }) []*shimast.Node {
142
+ output := []*shimast.Node{}
143
+ for i, tuple := range props.Collection.Tuples() {
144
+ if tuple.Recursive == false {
145
+ continue
146
+ }
147
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
148
+ Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
149
+ Value: jsonStringifyProgrammer_factory.NewArrowFunction(
150
+ nil,
151
+ nil,
152
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
153
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
154
+ Type: nativefactories.TypeFactory.Keyword("any"),
155
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
156
+ })),
157
+ nativefactories.TypeFactory.Keyword("any"),
158
+ nil,
159
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
160
+ jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
161
+ Context: props.Context,
162
+ Config: props.Config,
163
+ Functor: props.Functor,
164
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
165
+ Tuple: tuple,
166
+ Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: props.Config.Trace, Source: "function", From: "array", Postfix: ""},
167
+ Validated: props.Validated,
168
+ }),
169
+ ),
170
+ }))
171
+ }
172
+ return output
173
+ }
174
+
175
+ func jsonStringifyProgrammer_decode(props struct {
176
+ Context nativecontext.ITypiaContext
177
+ Config nativeinternal.FeatureProgrammer_IConfig
178
+ Functor *nativehelpers.FunctionProgrammer
179
+ Input *shimast.Node
180
+ Metadata *schemametadata.MetadataSchema
181
+ Explore nativeinternal.FeatureProgrammer_IExplore
182
+ Validated bool
183
+ }) *shimast.Node {
184
+ if props.Metadata.Any {
185
+ return jsonStringifyProgrammer_wrap_required(struct {
186
+ Input *shimast.Node
187
+ Metadata *schemametadata.MetadataSchema
188
+ Explore nativeinternal.FeatureProgrammer_IExplore
189
+ Expression *shimast.Node
190
+ }{
191
+ Input: props.Input,
192
+ Metadata: props.Metadata,
193
+ Explore: props.Explore,
194
+ Expression: jsonStringifyProgrammer_wrap_functional(struct {
195
+ Input *shimast.Node
196
+ Metadata *schemametadata.MetadataSchema
197
+ Explore nativeinternal.FeatureProgrammer_IExplore
198
+ Expression *shimast.Node
199
+ }{
200
+ Input: props.Input,
201
+ Metadata: props.Metadata,
202
+ Explore: props.Explore,
203
+ Expression: jsonStringifyProgrammer_factory.NewCallExpression(
204
+ jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
205
+ nil,
206
+ nil,
207
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
208
+ shimast.NodeFlagsNone,
209
+ ),
210
+ }),
211
+ })
212
+ }
213
+
214
+ size := props.Metadata.Size()
215
+ if size == 0 && (props.Metadata.IsRequired() == false || props.Metadata.Nullable) {
216
+ if props.Metadata.IsRequired() == false && props.Metadata.Nullable {
217
+ if props.Explore.From == "array" {
218
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
219
+ }
220
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
221
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindEqualsEqualsEqualsToken, props.Input),
222
+ nil,
223
+ jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone),
224
+ nil,
225
+ jsonStringifyProgrammer_factory.NewIdentifier("undefined"),
226
+ )
227
+ } else if props.Metadata.IsRequired() == false {
228
+ if props.Explore.From == "array" {
229
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
230
+ }
231
+ return jsonStringifyProgrammer_factory.NewIdentifier("undefined")
232
+ }
233
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
234
+ }
235
+
236
+ unions := []jsonStringifyProgrammer_IUnion{}
237
+ if props.Metadata.Escaped != nil {
238
+ metadata := props.Metadata.Escaped.Returns
239
+ isDate := props.Metadata.Escaped.Original.Size() == 1 &&
240
+ len(props.Metadata.Escaped.Original.Natives) != 0 &&
241
+ props.Metadata.Escaped.Original.Natives[0].Name == "Date"
242
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
243
+ Type: "resolved",
244
+ Is: func() *shimast.Node {
245
+ if isDate {
246
+ return nativeiterate.Check_native(nativeiterate.Check_nativeProps{
247
+ Name: "Date",
248
+ Input: props.Input,
249
+ })
250
+ }
251
+ return nativeprogrammers.IsProgrammer.Decode_to_json(struct {
252
+ Input *shimast.Expression
253
+ CheckNull bool
254
+ }{Input: props.Input, CheckNull: false})
255
+ },
256
+ Value: func() *shimast.Node {
257
+ next := props
258
+ next.Metadata = metadata
259
+ return jsonStringifyProgrammer_decode_to_json(next)
260
+ },
261
+ })
262
+ } else if len(props.Metadata.Functions) != 0 {
263
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
264
+ Type: "functional",
265
+ Is: func() *shimast.Node {
266
+ return nativeprogrammers.IsProgrammer.Decode_functional(props.Input)
267
+ },
268
+ Value: func() *shimast.Node {
269
+ return jsonStringifyProgrammer_decode_functional(props.Explore)
270
+ },
271
+ })
272
+ }
273
+
274
+ if len(props.Metadata.Templates) != 0 && nativehelpers.AtomicPredicator.Template(props.Metadata) {
275
+ partial := schemametadata.MetadataSchema_initialize()
276
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
277
+ Type: "string",
278
+ Tags: [][]schemametadata.IMetadataTypeTag{},
279
+ }))
280
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
281
+ Type: "template literal",
282
+ Is: func() *shimast.Node {
283
+ next := props
284
+ next.Metadata = partial
285
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
286
+ Context: next.Context,
287
+ Functor: next.Functor,
288
+ Metadata: next.Metadata,
289
+ Input: next.Input,
290
+ Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
291
+ })
292
+ },
293
+ Value: func() *shimast.Node {
294
+ next := props
295
+ return jsonStringifyProgrammer_decode_atomic(struct {
296
+ Context nativecontext.ITypiaContext
297
+ Input *shimast.Node
298
+ Type string
299
+ Explore nativeinternal.FeatureProgrammer_IExplore
300
+ Validated bool
301
+ }{Context: next.Context, Input: next.Input, Type: "string", Explore: next.Explore, Validated: next.Validated})
302
+ },
303
+ })
304
+ }
305
+
306
+ for _, constant := range props.Metadata.Constants {
307
+ constant := constant
308
+ if nativehelpers.AtomicPredicator.Constant(struct {
309
+ Metadata *schemametadata.MetadataSchema
310
+ Name string
311
+ }{Metadata: props.Metadata, Name: constant.Type}) == false {
312
+ continue
313
+ }
314
+ if constant.Type != "string" {
315
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
316
+ Type: "atomic",
317
+ Is: func() *shimast.Node {
318
+ partial := schemametadata.MetadataSchema_initialize()
319
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
320
+ Type: constant.Type,
321
+ Tags: [][]schemametadata.IMetadataTypeTag{},
322
+ }))
323
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
324
+ Context: props.Context,
325
+ Functor: props.Functor,
326
+ Metadata: partial,
327
+ Input: props.Input,
328
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
329
+ })
330
+ },
331
+ Value: func() *shimast.Node {
332
+ return jsonStringifyProgrammer_decode_atomic(struct {
333
+ Context nativecontext.ITypiaContext
334
+ Input *shimast.Node
335
+ Type string
336
+ Explore nativeinternal.FeatureProgrammer_IExplore
337
+ Validated bool
338
+ }{Context: props.Context, Input: props.Input, Type: constant.Type, Explore: props.Explore, Validated: props.Validated})
339
+ },
340
+ })
341
+ } else if len(props.Metadata.Templates) == 0 {
342
+ values := make([]string, 0, len(constant.Values))
343
+ for _, value := range constant.Values {
344
+ if str, ok := value.Value.(string); ok {
345
+ values = append(values, str)
346
+ }
347
+ }
348
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
349
+ Type: "const string",
350
+ Is: func() *shimast.Node {
351
+ partial := schemametadata.MetadataSchema_initialize()
352
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
353
+ Type: "string",
354
+ Tags: [][]schemametadata.IMetadataTypeTag{},
355
+ }))
356
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
357
+ Context: props.Context,
358
+ Functor: props.Functor,
359
+ Metadata: partial,
360
+ Input: props.Input,
361
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
362
+ })
363
+ },
364
+ Value: func() *shimast.Node {
365
+ return jsonStringifyProgrammer_decode_constant_string(struct {
366
+ Context nativecontext.ITypiaContext
367
+ Functor *nativehelpers.FunctionProgrammer
368
+ Input *shimast.Node
369
+ Values []string
370
+ Explore nativeinternal.FeatureProgrammer_IExplore
371
+ Validated bool
372
+ }{Context: props.Context, Functor: props.Functor, Input: props.Input, Values: values, Explore: props.Explore, Validated: props.Validated})
373
+ },
374
+ })
375
+ }
376
+ }
377
+
378
+ for _, atomic := range props.Metadata.Atomics {
379
+ atomic := atomic
380
+ if nativehelpers.AtomicPredicator.Atomic(struct {
381
+ Metadata *schemametadata.MetadataSchema
382
+ Name string
383
+ }{Metadata: props.Metadata, Name: atomic.Type}) {
384
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
385
+ Type: "atomic",
386
+ Is: func() *shimast.Node {
387
+ partial := schemametadata.MetadataSchema_initialize()
388
+ partial.Atomics = append(partial.Atomics, atomic)
389
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
390
+ Context: props.Context,
391
+ Functor: props.Functor,
392
+ Metadata: partial,
393
+ Input: props.Input,
394
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
395
+ })
396
+ },
397
+ Value: func() *shimast.Node {
398
+ return jsonStringifyProgrammer_decode_atomic(struct {
399
+ Context nativecontext.ITypiaContext
400
+ Input *shimast.Node
401
+ Type string
402
+ Explore nativeinternal.FeatureProgrammer_IExplore
403
+ Validated bool
404
+ }{Context: props.Context, Input: props.Input, Type: atomic.Type, Explore: props.Explore, Validated: props.Validated})
405
+ },
406
+ })
407
+ }
408
+ }
409
+
410
+ for _, tuple := range props.Metadata.Tuples {
411
+ tuple := tuple
412
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
413
+ Type: "tuple",
414
+ Is: func() *shimast.Node {
415
+ partial := schemametadata.MetadataSchema_initialize()
416
+ partial.Tuples = append(partial.Tuples, tuple)
417
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
418
+ Context: props.Context,
419
+ Functor: props.Functor,
420
+ Metadata: partial,
421
+ Input: props.Input,
422
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
423
+ })
424
+ },
425
+ Value: func() *shimast.Node {
426
+ return jsonStringifyProgrammer_decode_tuple(jsonStringifyProgrammer_decodeTupleProps{
427
+ Context: props.Context,
428
+ Config: props.Config,
429
+ Functor: props.Functor,
430
+ Input: props.Input,
431
+ Tuple: tuple,
432
+ Explore: props.Explore,
433
+ Validated: props.Validated,
434
+ })
435
+ },
436
+ })
437
+ }
438
+
439
+ if len(props.Metadata.Arrays) != 0 {
440
+ value := func() *shimast.Node {
441
+ if len(props.Metadata.Arrays) == 1 {
442
+ explore := props.Explore
443
+ explore.From = "array"
444
+ return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
445
+ Config: props.Config,
446
+ Functor: props.Functor,
447
+ Input: props.Input,
448
+ Array: props.Metadata.Arrays[0],
449
+ Explore: explore,
450
+ })
451
+ }
452
+ if jsonStringifyProgrammer_some_arrays(props.Metadata.Arrays, func(elem *schemametadata.MetadataArray) bool {
453
+ return elem.Type.Value.Any
454
+ }) {
455
+ return jsonStringifyProgrammer_factory.NewCallExpression(
456
+ jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
457
+ nil,
458
+ nil,
459
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
460
+ shimast.NodeFlagsNone,
461
+ )
462
+ }
463
+ explore := props.Explore
464
+ explore.From = "array"
465
+ return jsonStringifyProgrammer_explore_arrays(jsonStringifyProgrammer_exploreArraysProps{
466
+ Context: props.Context,
467
+ Config: props.Config,
468
+ Functor: props.Functor,
469
+ Input: props.Input,
470
+ Arrays: props.Metadata.Arrays,
471
+ Explore: explore,
472
+ })
473
+ }
474
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
475
+ Type: "array",
476
+ Is: func() *shimast.Node {
477
+ return nativefactories.ExpressionFactory.IsArray(props.Input)
478
+ },
479
+ Value: value,
480
+ })
481
+ }
482
+
483
+ for _, native := range props.Metadata.Natives {
484
+ native := native
485
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
486
+ Type: "object",
487
+ Is: func() *shimast.Node {
488
+ return nativeiterate.Check_native(nativeiterate.Check_nativeProps{Name: native.Name, Input: props.Input})
489
+ },
490
+ Value: func() *shimast.Node {
491
+ if nativehelpers.AtomicPredicator.Native(native.Name) {
492
+ return jsonStringifyProgrammer_decode_atomic(struct {
493
+ Context nativecontext.ITypiaContext
494
+ Input *shimast.Node
495
+ Type string
496
+ Explore nativeinternal.FeatureProgrammer_IExplore
497
+ Validated bool
498
+ }{Context: props.Context, Input: props.Input, Type: strings.ToLower(native.Name), Explore: props.Explore, Validated: props.Validated})
499
+ }
500
+ return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
501
+ },
502
+ })
503
+ }
504
+
505
+ if len(props.Metadata.Sets) != 0 {
506
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
507
+ Type: "object",
508
+ Is: func() *shimast.Node {
509
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
510
+ },
511
+ Value: func() *shimast.Node {
512
+ return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
513
+ },
514
+ })
515
+ }
516
+ if len(props.Metadata.Maps) != 0 {
517
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
518
+ Type: "object",
519
+ Is: func() *shimast.Node {
520
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
521
+ },
522
+ Value: func() *shimast.Node {
523
+ return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
524
+ },
525
+ })
526
+ }
527
+ if len(props.Metadata.Objects) != 0 {
528
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
529
+ Type: "object",
530
+ Is: func() *shimast.Node {
531
+ return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
532
+ CheckNull: true,
533
+ CheckArray: jsonStringifyProgrammer_some_objects(props.Metadata.Objects, func(object *schemametadata.MetadataObject) bool {
534
+ return jsonStringifyProgrammer_every_properties(object.Type.Properties, func(prop *schemametadata.MetadataProperty) bool {
535
+ return !prop.Key.IsSoleLiteral() || !prop.Value.IsRequired()
536
+ })
537
+ }),
538
+ Input: props.Input,
539
+ })
540
+ },
541
+ Value: func() *shimast.Node {
542
+ explore := props.Explore
543
+ explore.From = "object"
544
+ return jsonStringifyProgrammer_explore_objects(jsonStringifyProgrammer_exploreObjectsProps{
545
+ Config: props.Config,
546
+ Functor: props.Functor,
547
+ Input: props.Input,
548
+ Metadata: props.Metadata,
549
+ Explore: explore,
550
+ })
551
+ },
552
+ })
553
+ }
554
+
555
+ wrapper := func(output *shimast.Node) *shimast.Node {
556
+ return jsonStringifyProgrammer_wrap_required(struct {
557
+ Input *shimast.Node
558
+ Metadata *schemametadata.MetadataSchema
559
+ Explore nativeinternal.FeatureProgrammer_IExplore
560
+ Expression *shimast.Node
561
+ }{
562
+ Input: props.Input,
563
+ Metadata: props.Metadata,
564
+ Explore: props.Explore,
565
+ Expression: jsonStringifyProgrammer_wrap_nullable(struct {
566
+ Input *shimast.Node
567
+ Metadata *schemametadata.MetadataSchema
568
+ Expression *shimast.Node
569
+ }{Input: props.Input, Metadata: props.Metadata, Expression: output}),
570
+ })
571
+ }
572
+ if len(unions) == 0 {
573
+ return jsonStringifyProgrammer_factory.NewCallExpression(
574
+ jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
575
+ nil,
576
+ nil,
577
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
578
+ shimast.NodeFlagsNone,
579
+ )
580
+ }
581
+ if len(unions) == 1 {
582
+ return wrapper(unions[0].Value())
583
+ }
584
+ return wrapper(jsonStringifyProgrammer_factory.NewCallExpression(
585
+ jsonStringifyProgrammer_factory.NewArrowFunction(
586
+ nil,
587
+ nil,
588
+ jsonStringifyProgrammer_factory.NewNodeList(nil),
589
+ nil,
590
+ nil,
591
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
592
+ jsonStringifyProgrammer_iterate(jsonStringifyProgrammer_iterateProps{
593
+ Context: props.Context,
594
+ Functor: props.Functor,
595
+ Input: props.Input,
596
+ Expected: props.Metadata.GetName(),
597
+ Unions: unions,
598
+ }),
599
+ ),
600
+ nil,
601
+ nil,
602
+ nil,
603
+ shimast.NodeFlagsNone,
604
+ ))
605
+ }
606
+
607
+ func jsonStringifyProgrammer_decode_object(props struct {
608
+ Functor *nativehelpers.FunctionProgrammer
609
+ Input *shimast.Node
610
+ Object *schemametadata.MetadataObjectType
611
+ Explore nativeinternal.FeatureProgrammer_IExplore
612
+ }) *shimast.Node {
613
+ return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
614
+ Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{Trace: false, Path: false, Prefix: jsonStringifyProgrammer_PREFIX},
615
+ Functor: props.Functor,
616
+ Object: props.Object,
617
+ Input: props.Input,
618
+ Explore: props.Explore,
619
+ })
620
+ }
621
+
622
+ type jsonStringifyProgrammer_decodeArrayProps struct {
623
+ Config nativeinternal.FeatureProgrammer_IConfig
624
+ Functor *nativehelpers.FunctionProgrammer
625
+ Input *shimast.Node
626
+ Array *schemametadata.MetadataArray
627
+ Explore nativeinternal.FeatureProgrammer_IExplore
628
+ }
629
+
630
+ func jsonStringifyProgrammer_decode_array(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
631
+ if props.Array.Type.Recursive {
632
+ index := 0
633
+ if props.Array.Type.Index != nil {
634
+ index = *props.Array.Type.Index
635
+ }
636
+ return jsonStringifyProgrammer_factory.NewCallExpression(
637
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, index))),
638
+ nil,
639
+ nil,
640
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
641
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
642
+ Input: props.Input,
643
+ Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", "array"),
644
+ })),
645
+ shimast.NodeFlagsNone,
646
+ )
647
+ }
648
+ return jsonStringifyProgrammer_decode_array_inline(props)
649
+ }
650
+
651
+ func jsonStringifyProgrammer_decode_array_inline(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
652
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
653
+ Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
654
+ Trace: props.Config.Trace,
655
+ Path: props.Config.Path,
656
+ Decoder: props.Config.Decoder,
657
+ Prefix: props.Config.Prefix,
658
+ },
659
+ Functor: props.Functor,
660
+ Combiner: func(next struct {
661
+ Input *shimast.Expression
662
+ Arrow *shimast.Node
663
+ }) *shimast.Node {
664
+ return nativehelpers.StringifyJoiner.Array(nativehelpers.StringifyJoiner_ArrayProps{
665
+ Input: next.Input,
666
+ Arrow: next.Arrow,
667
+ })
668
+ },
669
+ Array: props.Array,
670
+ Input: props.Input,
671
+ Explore: props.Explore,
672
+ })
673
+ }
674
+
675
+ type jsonStringifyProgrammer_decodeTupleProps struct {
676
+ Context nativecontext.ITypiaContext
677
+ Config nativeinternal.FeatureProgrammer_IConfig
678
+ Functor *nativehelpers.FunctionProgrammer
679
+ Input *shimast.Node
680
+ Tuple *schemametadata.MetadataTuple
681
+ Explore nativeinternal.FeatureProgrammer_IExplore
682
+ Validated bool
683
+ }
684
+
685
+ func jsonStringifyProgrammer_decode_tuple(props jsonStringifyProgrammer_decodeTupleProps) *shimast.Node {
686
+ if props.Tuple.Type.Recursive {
687
+ index := 0
688
+ if props.Tuple.Type.Index != nil {
689
+ index = *props.Tuple.Type.Index
690
+ }
691
+ return jsonStringifyProgrammer_factory.NewCallExpression(
692
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, index))),
693
+ nil,
694
+ nil,
695
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
696
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
697
+ Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", props.Explore.From),
698
+ Input: props.Input,
699
+ })),
700
+ shimast.NodeFlagsNone,
701
+ )
702
+ }
703
+ return jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
704
+ Context: props.Context,
705
+ Config: props.Config,
706
+ Functor: props.Functor,
707
+ Input: props.Input,
708
+ Tuple: props.Tuple.Type,
709
+ Explore: props.Explore,
710
+ Validated: props.Validated,
711
+ })
712
+ }
713
+
714
+ type jsonStringifyProgrammer_decodeTupleInlineProps struct {
715
+ Context nativecontext.ITypiaContext
716
+ Config nativeinternal.FeatureProgrammer_IConfig
717
+ Functor *nativehelpers.FunctionProgrammer
718
+ Input *shimast.Node
719
+ Tuple *schemametadata.MetadataTupleType
720
+ Explore nativeinternal.FeatureProgrammer_IExplore
721
+ Validated bool
722
+ }
723
+
724
+ func jsonStringifyProgrammer_decode_tuple_inline(props jsonStringifyProgrammer_decodeTupleInlineProps) *shimast.Node {
725
+ elements := []*shimast.Node{}
726
+ for index, elem := range props.Tuple.Elements {
727
+ if elem.Rest != nil {
728
+ continue
729
+ }
730
+ explore := props.Explore
731
+ explore.From = "array"
732
+ if len(props.Explore.Postfix) != 0 {
733
+ explore.Postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
734
+ } else {
735
+ explore.Postfix = fmt.Sprintf("\"[%d]\"", index)
736
+ }
737
+ elements = append(elements, jsonStringifyProgrammer_decode(struct {
738
+ Context nativecontext.ITypiaContext
739
+ Config nativeinternal.FeatureProgrammer_IConfig
740
+ Functor *nativehelpers.FunctionProgrammer
741
+ Input *shimast.Node
742
+ Metadata *schemametadata.MetadataSchema
743
+ Explore nativeinternal.FeatureProgrammer_IExplore
744
+ Validated bool
745
+ }{
746
+ Context: props.Context,
747
+ Config: props.Config,
748
+ Functor: props.Functor,
749
+ Input: jsonStringifyProgrammer_factory.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index), shimast.NodeFlagsNone),
750
+ Metadata: elem,
751
+ Explore: explore,
752
+ Validated: props.Validated,
753
+ }))
754
+ }
755
+ var rest *shimast.Node
756
+ if len(props.Tuple.Elements) != 0 {
757
+ last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
758
+ if last.Rest != nil {
759
+ explore := props.Explore
760
+ start := len(props.Tuple.Elements) - 1
761
+ explore.Start = &start
762
+ code := jsonStringifyProgrammer_decode(struct {
763
+ Context nativecontext.ITypiaContext
764
+ Config nativeinternal.FeatureProgrammer_IConfig
765
+ Functor *nativehelpers.FunctionProgrammer
766
+ Input *shimast.Node
767
+ Metadata *schemametadata.MetadataSchema
768
+ Explore nativeinternal.FeatureProgrammer_IExplore
769
+ Validated bool
770
+ }{
771
+ Context: props.Context,
772
+ Config: props.Config,
773
+ Functor: props.Functor,
774
+ Input: jsonStringifyProgrammer_factory.NewCallExpression(
775
+ nativefactories.IdentifierFactory.Access(props.Input, "slice"),
776
+ nil,
777
+ nil,
778
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start)}),
779
+ shimast.NodeFlagsNone,
780
+ ),
781
+ Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
782
+ Explore: explore,
783
+ Validated: props.Validated,
784
+ })
785
+ rest = jsonStringifyProgrammer_factory.NewCallExpression(
786
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyRest"),
787
+ nil,
788
+ nil,
789
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{code}),
790
+ shimast.NodeFlagsNone,
791
+ )
792
+ }
793
+ }
794
+ return nativehelpers.StringifyJoiner.Tuple(nativehelpers.StringifyJoiner_TupleProps{
795
+ Elements: elements,
796
+ Rest: rest,
797
+ })
798
+ }
799
+
800
+ func jsonStringifyProgrammer_decode_atomic(props struct {
801
+ Context nativecontext.ITypiaContext
802
+ Input *shimast.Node
803
+ Type string
804
+ Explore nativeinternal.FeatureProgrammer_IExplore
805
+ Validated bool
806
+ }) *shimast.Node {
807
+ input := props.Input
808
+ if props.Type == "string" {
809
+ return jsonStringifyProgrammer_factory.NewCallExpression(
810
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyString"),
811
+ nil,
812
+ nil,
813
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
814
+ shimast.NodeFlagsNone,
815
+ )
816
+ } else if props.Type == "number" {
817
+ if !(props.Validated && nativehelpers.OptionPredicator.Finite(props.Context.Options)) {
818
+ input = jsonStringifyProgrammer_factory.NewCallExpression(
819
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyNumber"),
820
+ nil,
821
+ nil,
822
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
823
+ shimast.NodeFlagsNone,
824
+ )
825
+ }
826
+ }
827
+ return jsonStringifyProgrammer_factory.NewCallExpression(
828
+ jsonStringifyProgrammer_factory.NewIdentifier("String"),
829
+ nil,
830
+ nil,
831
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{input}),
832
+ shimast.NodeFlagsNone,
833
+ )
834
+ }
835
+
836
+ func jsonStringifyProgrammer_decode_constant_string(props struct {
837
+ Context nativecontext.ITypiaContext
838
+ Functor *nativehelpers.FunctionProgrammer
839
+ Input *shimast.Node
840
+ Values []string
841
+ Explore nativeinternal.FeatureProgrammer_IExplore
842
+ Validated bool
843
+ }) *shimast.Node {
844
+ if jsonStringifyProgrammer_every_strings(props.Values, func(value string) bool {
845
+ return nativehelpers.StringifyPredicator.Require_escape(value) == false
846
+ }) {
847
+ return jsonStringifyProgrammer_binary(
848
+ jsonStringifyProgrammer_binary(
849
+ jsonStringifyProgrammer_factory.NewStringLiteral("\"", shimast.TokenFlagsNone),
850
+ shimast.KindPlusToken,
851
+ props.Input,
852
+ ),
853
+ shimast.KindPlusToken,
854
+ jsonStringifyProgrammer_factory.NewStringLiteral("\"", shimast.TokenFlagsNone),
855
+ )
856
+ }
857
+ return jsonStringifyProgrammer_decode_atomic(struct {
858
+ Context nativecontext.ITypiaContext
859
+ Input *shimast.Node
860
+ Type string
861
+ Explore nativeinternal.FeatureProgrammer_IExplore
862
+ Validated bool
863
+ }{Context: props.Context, Input: props.Input, Type: "string", Explore: props.Explore, Validated: props.Validated})
864
+ }
865
+
866
+ func jsonStringifyProgrammer_decode_to_json(props struct {
867
+ Context nativecontext.ITypiaContext
868
+ Config nativeinternal.FeatureProgrammer_IConfig
869
+ Functor *nativehelpers.FunctionProgrammer
870
+ Input *shimast.Node
871
+ Metadata *schemametadata.MetadataSchema
872
+ Explore nativeinternal.FeatureProgrammer_IExplore
873
+ Validated bool
874
+ }) *shimast.Node {
875
+ next := props
876
+ next.Input = jsonStringifyProgrammer_factory.NewCallExpression(
877
+ nativefactories.IdentifierFactory.Access(props.Input, "toJSON"),
878
+ nil,
879
+ nil,
880
+ jsonStringifyProgrammer_factory.NewNodeList(nil),
881
+ shimast.NodeFlagsNone,
882
+ )
883
+ return jsonStringifyProgrammer_decode(next)
884
+ }
885
+
886
+ func jsonStringifyProgrammer_decode_functional(explore nativeinternal.FeatureProgrammer_IExplore) *shimast.Node {
887
+ if explore.From == "array" {
888
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
889
+ }
890
+ return jsonStringifyProgrammer_factory.NewIdentifier("undefined")
891
+ }
892
+
893
+ type jsonStringifyProgrammer_exploreObjectsProps struct {
894
+ Config nativeinternal.FeatureProgrammer_IConfig
895
+ Functor *nativehelpers.FunctionProgrammer
896
+ Input *shimast.Node
897
+ Metadata *schemametadata.MetadataSchema
898
+ Explore nativeinternal.FeatureProgrammer_IExplore
899
+ }
900
+
901
+ func jsonStringifyProgrammer_explore_objects(props jsonStringifyProgrammer_exploreObjectsProps) *shimast.Node {
902
+ if len(props.Metadata.Objects) == 1 {
903
+ return jsonStringifyProgrammer_decode_object(struct {
904
+ Functor *nativehelpers.FunctionProgrammer
905
+ Input *shimast.Node
906
+ Object *schemametadata.MetadataObjectType
907
+ Explore nativeinternal.FeatureProgrammer_IExplore
908
+ }{
909
+ Functor: props.Functor,
910
+ Input: props.Input,
911
+ Object: props.Metadata.Objects[0].Type,
912
+ Explore: props.Explore,
913
+ })
914
+ }
915
+ index := 0
916
+ if props.Metadata.Union_index != nil {
917
+ index = *props.Metadata.Union_index
918
+ }
919
+ return jsonStringifyProgrammer_factory.NewCallExpression(
920
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", jsonStringifyProgrammer_PREFIX, index))),
921
+ nil,
922
+ nil,
923
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
924
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
925
+ Input: props.Input,
926
+ Explore: props.Explore,
927
+ })),
928
+ shimast.NodeFlagsNone,
929
+ )
930
+ }
931
+
932
+ type jsonStringifyProgrammer_exploreArraysProps struct {
933
+ Context nativecontext.ITypiaContext
934
+ Config nativeinternal.FeatureProgrammer_IConfig
935
+ Functor *nativehelpers.FunctionProgrammer
936
+ Input *shimast.Node
937
+ Arrays []*schemametadata.MetadataArray
938
+ Explore nativeinternal.FeatureProgrammer_IExplore
939
+ }
940
+
941
+ func jsonStringifyProgrammer_explore_arrays(props jsonStringifyProgrammer_exploreArraysProps) *shimast.Node {
942
+ return jsonStringifyProgrammer_explore_array_like_union_types(jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[*schemametadata.MetadataArray]{
943
+ Config: props.Config,
944
+ Functor: props.Functor,
945
+ Factory: func(next jsonStringifyProgrammer_arrayLikeFactoryProps[*schemametadata.MetadataArray]) *shimast.Node {
946
+ return nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
947
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
948
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
949
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
950
+ Context: props.Context,
951
+ Functor: props.Functor,
952
+ Metadata: v.Definition.(*schemametadata.MetadataArray).Type.Value,
953
+ Input: v.Input,
954
+ Explore: jsonStringifyProgrammer_checker_explore(v.Explore),
955
+ })
956
+ },
957
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
958
+ return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
959
+ Config: props.Config,
960
+ Functor: props.Functor,
961
+ Input: v.Input,
962
+ Array: v.Definition.(*schemametadata.MetadataArray),
963
+ Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
964
+ })
965
+ },
966
+ Empty: jsonStringifyProgrammer_factory.NewStringLiteral("[]", shimast.TokenFlagsNone),
967
+ Success: jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
968
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
969
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
970
+ Context: props.Context,
971
+ Functor: props.Functor,
972
+ Expected: v.Expected,
973
+ Input: v.Input,
974
+ })
975
+ },
976
+ },
977
+ Parameters: next.Parameters,
978
+ Input: next.Input,
979
+ Arrays: next.Definitions,
980
+ Explore: next.Explore,
981
+ })
982
+ },
983
+ Input: props.Input,
984
+ Elements: props.Arrays,
985
+ Explore: props.Explore,
986
+ })
987
+ }
988
+
989
+ type jsonStringifyProgrammer_arrayLikeFactoryProps[T any] struct {
990
+ Parameters []*shimast.Node
991
+ Input *shimast.Node
992
+ Definitions []T
993
+ Explore nativeinternal.FeatureProgrammer_IExplore
994
+ }
995
+
996
+ type jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T interface {
997
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
998
+ }] struct {
999
+ Config nativeinternal.FeatureProgrammer_IConfig
1000
+ Functor *nativehelpers.FunctionProgrammer
1001
+ Factory func(next jsonStringifyProgrammer_arrayLikeFactoryProps[T]) *shimast.Node
1002
+ Input *shimast.Node
1003
+ Elements []T
1004
+ Explore nativeinternal.FeatureProgrammer_IExplore
1005
+ }
1006
+
1007
+ func jsonStringifyProgrammer_explore_array_like_union_types[T interface {
1008
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1009
+ }](props jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T]) *shimast.Node {
1010
+ arrow := func(next struct {
1011
+ Parameters []*shimast.Node
1012
+ Explore nativeinternal.FeatureProgrammer_IExplore
1013
+ Input *shimast.Node
1014
+ }) *shimast.Node {
1015
+ return props.Factory(jsonStringifyProgrammer_arrayLikeFactoryProps[T]{
1016
+ Definitions: props.Elements,
1017
+ Parameters: next.Parameters,
1018
+ Input: next.Input,
1019
+ Explore: next.Explore,
1020
+ })
1021
+ }
1022
+ arrayExplore := props.Explore
1023
+ arrayExplore.Source = "function"
1024
+ arrayExplore.From = "array"
1025
+ return jsonStringifyProgrammer_factory.NewCallExpression(
1026
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.EmplaceUnion(props.Config.Prefix, jsonStringifyProgrammer_array_like_names(props.Elements), func() *shimast.Node {
1027
+ explore := arrayExplore
1028
+ explore.Postfix = ""
1029
+ return arrow(struct {
1030
+ Parameters []*shimast.Node
1031
+ Explore nativeinternal.FeatureProgrammer_IExplore
1032
+ Input *shimast.Node
1033
+ }{
1034
+ Parameters: nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
1035
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
1036
+ Type: nativefactories.TypeFactory.Keyword("any"),
1037
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
1038
+ }),
1039
+ Explore: explore,
1040
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
1041
+ })
1042
+ })),
1043
+ nil,
1044
+ nil,
1045
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
1046
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
1047
+ Explore: arrayExplore,
1048
+ Input: props.Input,
1049
+ })),
1050
+ shimast.NodeFlagsNone,
1051
+ )
1052
+ }
1053
+
1054
+ func jsonStringifyProgrammer_wrap_required(props struct {
1055
+ Input *shimast.Node
1056
+ Metadata *schemametadata.MetadataSchema
1057
+ Explore nativeinternal.FeatureProgrammer_IExplore
1058
+ Expression *shimast.Node
1059
+ }) *shimast.Node {
1060
+ if props.Metadata.IsRequired() && props.Metadata.Any == false {
1061
+ return props.Expression
1062
+ }
1063
+ alternate := jsonStringifyProgrammer_factory.NewIdentifier("undefined")
1064
+ if props.Explore.From == "array" {
1065
+ alternate = jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
1066
+ }
1067
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
1068
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewIdentifier("undefined"), shimast.KindExclamationEqualsEqualsToken, props.Input),
1069
+ nil,
1070
+ props.Expression,
1071
+ nil,
1072
+ alternate,
1073
+ )
1074
+ }
1075
+
1076
+ func jsonStringifyProgrammer_wrap_nullable(props struct {
1077
+ Input *shimast.Node
1078
+ Metadata *schemametadata.MetadataSchema
1079
+ Expression *shimast.Node
1080
+ }) *shimast.Node {
1081
+ if props.Metadata.Nullable == false {
1082
+ return props.Expression
1083
+ }
1084
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
1085
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindExclamationEqualsEqualsToken, props.Input),
1086
+ nil,
1087
+ props.Expression,
1088
+ nil,
1089
+ jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone),
1090
+ )
1091
+ }
1092
+
1093
+ func jsonStringifyProgrammer_wrap_functional(props struct {
1094
+ Input *shimast.Node
1095
+ Metadata *schemametadata.MetadataSchema
1096
+ Explore nativeinternal.FeatureProgrammer_IExplore
1097
+ Expression *shimast.Node
1098
+ }) *shimast.Node {
1099
+ if len(props.Metadata.Functions) == 0 {
1100
+ return props.Expression
1101
+ }
1102
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
1103
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewStringLiteral("function", shimast.TokenFlagsNone), shimast.KindExclamationEqualsEqualsToken, nativefactories.ValueFactory.TYPEOF(props.Input)),
1104
+ nil,
1105
+ props.Expression,
1106
+ nil,
1107
+ jsonStringifyProgrammer_decode_functional(props.Explore),
1108
+ )
1109
+ }
1110
+
1111
+ type jsonStringifyProgrammer_iterateProps struct {
1112
+ Context nativecontext.ITypiaContext
1113
+ Functor *nativehelpers.FunctionProgrammer
1114
+ Input *shimast.Node
1115
+ Unions []jsonStringifyProgrammer_IUnion
1116
+ Expected string
1117
+ }
1118
+
1119
+ func jsonStringifyProgrammer_iterate(props jsonStringifyProgrammer_iterateProps) *shimast.Node {
1120
+ statements := []*shimast.Node{}
1121
+ for _, union := range props.Unions {
1122
+ statements = append(statements, jsonStringifyProgrammer_factory.NewIfStatement(
1123
+ union.Is(),
1124
+ jsonStringifyProgrammer_factory.NewReturnStatement(union.Value()),
1125
+ nil,
1126
+ ))
1127
+ }
1128
+ statements = append(statements, jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1129
+ Context: props.Context,
1130
+ Functor: props.Functor,
1131
+ Input: props.Input,
1132
+ Expected: props.Expected,
1133
+ }))
1134
+ return jsonStringifyProgrammer_factory.NewBlock(jsonStringifyProgrammer_factory.NewNodeList(statements), true)
1135
+ }
1136
+
1137
+ func jsonStringifyProgrammer_configure(props struct {
1138
+ Context nativecontext.ITypiaContext
1139
+ Functor *nativehelpers.FunctionProgrammer
1140
+ Validated bool
1141
+ }) nativeinternal.FeatureProgrammer_IConfig {
1142
+ var config nativeinternal.FeatureProgrammer_IConfig
1143
+ config = nativeinternal.FeatureProgrammer_IConfig{
1144
+ Types: nativeinternal.FeatureProgrammer_IConfig_ITypes{
1145
+ Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1146
+ if name != nil {
1147
+ return jsonStringifyProgrammer_factory.NewTypeReferenceNode(jsonStringifyProgrammer_factory.NewIdentifier(*name), nil)
1148
+ }
1149
+ return jsonStringifyProgrammer_factory.NewTypeReferenceNode(jsonStringifyProgrammer_factory.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1150
+ Checker: props.Context.Checker,
1151
+ Type: t,
1152
+ })), nil)
1153
+ },
1154
+ Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1155
+ return nativefactories.TypeFactory.Keyword("string")
1156
+ },
1157
+ },
1158
+ Prefix: jsonStringifyProgrammer_PREFIX,
1159
+ Trace: false,
1160
+ Path: false,
1161
+ Initializer: jsonStringifyProgrammer_initializer,
1162
+ Decoder: func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
1163
+ return jsonStringifyProgrammer_decode(struct {
1164
+ Context nativecontext.ITypiaContext
1165
+ Config nativeinternal.FeatureProgrammer_IConfig
1166
+ Functor *nativehelpers.FunctionProgrammer
1167
+ Input *shimast.Node
1168
+ Metadata *schemametadata.MetadataSchema
1169
+ Explore nativeinternal.FeatureProgrammer_IExplore
1170
+ Validated bool
1171
+ }{
1172
+ Context: props.Context,
1173
+ Functor: props.Functor,
1174
+ Config: config,
1175
+ Metadata: next.Metadata,
1176
+ Input: next.Input,
1177
+ Explore: next.Explore,
1178
+ Validated: props.Validated,
1179
+ })
1180
+ },
1181
+ Objector: nativeinternal.FeatureProgrammer_IConfig_IObjector{
1182
+ Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
1183
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1184
+ Context: props.Context,
1185
+ Functor: props.Functor,
1186
+ Metadata: next.Metadata,
1187
+ Input: next.Input,
1188
+ Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
1189
+ })
1190
+ },
1191
+ Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
1192
+ return jsonStringifyProgrammer_decode_object(struct {
1193
+ Functor *nativehelpers.FunctionProgrammer
1194
+ Input *shimast.Node
1195
+ Object *schemametadata.MetadataObjectType
1196
+ Explore nativeinternal.FeatureProgrammer_IExplore
1197
+ }{Functor: props.Functor, Input: next.Input, Object: next.Object, Explore: next.Explore})
1198
+ },
1199
+ Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
1200
+ return nativehelpers.StringifyJoiner.Object(nativehelpers.StringifyJoiner_ObjectProps{
1201
+ Context: props.Context,
1202
+ Entries: next.Entries,
1203
+ })
1204
+ },
1205
+ Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1206
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1207
+ Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1208
+ return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1209
+ Context: props.Context,
1210
+ Functor: props.Functor,
1211
+ Input: v.Input,
1212
+ Object: v.Object,
1213
+ Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
1214
+ })
1215
+ },
1216
+ Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1217
+ return jsonStringifyProgrammer_decode_object(struct {
1218
+ Functor *nativehelpers.FunctionProgrammer
1219
+ Input *shimast.Node
1220
+ Object *schemametadata.MetadataObjectType
1221
+ Explore nativeinternal.FeatureProgrammer_IExplore
1222
+ }{Functor: props.Functor, Input: v.Input, Object: v.Object, Explore: jsonStringifyProgrammer_feature_explore(v.Explore)})
1223
+ },
1224
+ Success: func(exp *shimast.Expression) *shimast.Node {
1225
+ return exp
1226
+ },
1227
+ Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
1228
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1229
+ Context: props.Context,
1230
+ Functor: props.Functor,
1231
+ Expected: v.Expected,
1232
+ Input: v.Input,
1233
+ })
1234
+ },
1235
+ Objects: next.Objects,
1236
+ Explore: next.Explore,
1237
+ Input: next.Input,
1238
+ })
1239
+ },
1240
+ Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
1241
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1242
+ Context: props.Context,
1243
+ Functor: props.Functor,
1244
+ Expected: next.Expected,
1245
+ Input: next.Input,
1246
+ })
1247
+ },
1248
+ },
1249
+ Generator: nativeinternal.FeatureProgrammer_IConfig_IGenerator{
1250
+ Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1251
+ return jsonStringifyProgrammer_write_array_functions(struct {
1252
+ Config nativeinternal.FeatureProgrammer_IConfig
1253
+ Functor *nativehelpers.FunctionProgrammer
1254
+ Collection *schemametadata.MetadataCollection
1255
+ }{Config: config, Functor: props.Functor, Collection: collection})
1256
+ },
1257
+ Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1258
+ return jsonStringifyProgrammer_write_tuple_functions(struct {
1259
+ Context nativecontext.ITypiaContext
1260
+ Config nativeinternal.FeatureProgrammer_IConfig
1261
+ Functor *nativehelpers.FunctionProgrammer
1262
+ Collection *schemametadata.MetadataCollection
1263
+ Validated bool
1264
+ }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection, Validated: props.Validated})
1265
+ },
1266
+ },
1267
+ }
1268
+ return config
1269
+ }
1270
+
1271
+ func jsonStringifyProgrammer_initializer(props nativeinternal.FeatureProgrammer_InitializerProps) nativeinternal.FeatureProgrammer_InitializerOutput {
1272
+ result := nativefactories.JsonMetadataFactory.Analyze(nativefactories.JsonMetadataFactory_IProps{
1273
+ Method: props.Functor.Method,
1274
+ Checker: props.Context.Checker,
1275
+ Transformer: props.Context.Transformer,
1276
+ Type: props.Type,
1277
+ })
1278
+ return nativeinternal.FeatureProgrammer_InitializerOutput{
1279
+ Collection: result.Collection,
1280
+ Metadata: result.Metadata,
1281
+ }
1282
+ }
1283
+
1284
+ type jsonStringifyProgrammer_throwProps struct {
1285
+ Context nativecontext.ITypiaContext
1286
+ Functor *nativehelpers.FunctionProgrammer
1287
+ Expected string
1288
+ Input *shimast.Node
1289
+ }
1290
+
1291
+ func jsonStringifyProgrammer_create_throw_error(props jsonStringifyProgrammer_throwProps) *shimast.Node {
1292
+ return jsonStringifyProgrammer_factory.NewExpressionStatement(
1293
+ jsonStringifyProgrammer_factory.NewCallExpression(
1294
+ jsonStringifyProgrammer_internal(props.Context, "throwTypeGuardError"),
1295
+ nil,
1296
+ jsonStringifyProgrammer_factory.NewNodeList(nil),
1297
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{
1298
+ jsonStringifyProgrammer_factory.NewObjectLiteralExpression(
1299
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{
1300
+ jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method"), nil, nil, jsonStringifyProgrammer_factory.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1301
+ jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected"), nil, nil, jsonStringifyProgrammer_factory.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1302
+ jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value"), nil, nil, props.Input),
1303
+ }),
1304
+ true,
1305
+ ),
1306
+ }),
1307
+ shimast.NodeFlagsNone,
1308
+ ),
1309
+ )
1310
+ }
1311
+
1312
+ type jsonStringifyProgrammer_IUnion struct {
1313
+ Type string
1314
+ Is func() *shimast.Node
1315
+ Value func() *shimast.Node
1316
+ }
1317
+
1318
+ func jsonStringifyProgrammer_binary(left *shimast.Node, operator shimast.Kind, right *shimast.Node) *shimast.Node {
1319
+ return jsonStringifyProgrammer_factory.NewBinaryExpression(nil, left, nil, jsonStringifyProgrammer_factory.NewToken(operator), right)
1320
+ }
1321
+
1322
+ func jsonStringifyProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1323
+ if importer, ok := context.Importer.(interface{ Internal(string) *shimast.Node }); ok {
1324
+ return importer.Internal(name)
1325
+ }
1326
+ return jsonStringifyProgrammer_factory.NewIdentifier(name)
1327
+ }
1328
+
1329
+ func jsonStringifyProgrammer_method_text(modulo *shimast.Node) string {
1330
+ if modulo == nil {
1331
+ return ""
1332
+ }
1333
+ return modulo.Text()
1334
+ }
1335
+
1336
+ func jsonStringifyProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1337
+ switch v := input.(type) {
1338
+ case nativeinternal.FeatureProgrammer_IExplore:
1339
+ return v
1340
+ case *nativeinternal.FeatureProgrammer_IExplore:
1341
+ return *v
1342
+ default:
1343
+ return nativeinternal.FeatureProgrammer_IExplore{}
1344
+ }
1345
+ }
1346
+
1347
+ func jsonStringifyProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1348
+ v := jsonStringifyProgrammer_feature_explore(input)
1349
+ return nativeinternal.CheckerProgrammer_IExplore{
1350
+ Tracable: v.Tracable,
1351
+ Source: v.Source,
1352
+ From: v.From,
1353
+ Postfix: v.Postfix,
1354
+ Start: v.Start,
1355
+ }
1356
+ }
1357
+
1358
+ func jsonStringifyProgrammer_explore_with(explore nativeinternal.FeatureProgrammer_IExplore, source string, from string) nativeinternal.FeatureProgrammer_IExplore {
1359
+ explore.Source = source
1360
+ explore.From = from
1361
+ return explore
1362
+ }
1363
+
1364
+ func jsonStringifyProgrammer_some_arrays(values []*schemametadata.MetadataArray, pred func(*schemametadata.MetadataArray) bool) bool {
1365
+ for _, value := range values {
1366
+ if pred(value) {
1367
+ return true
1368
+ }
1369
+ }
1370
+ return false
1371
+ }
1372
+
1373
+ func jsonStringifyProgrammer_some_objects(values []*schemametadata.MetadataObject, pred func(*schemametadata.MetadataObject) bool) bool {
1374
+ for _, value := range values {
1375
+ if pred(value) {
1376
+ return true
1377
+ }
1378
+ }
1379
+ return false
1380
+ }
1381
+
1382
+ func jsonStringifyProgrammer_every_properties(values []*schemametadata.MetadataProperty, pred func(*schemametadata.MetadataProperty) bool) bool {
1383
+ for _, value := range values {
1384
+ if pred(value) == false {
1385
+ return false
1386
+ }
1387
+ }
1388
+ return true
1389
+ }
1390
+
1391
+ func jsonStringifyProgrammer_every_strings(values []string, pred func(string) bool) bool {
1392
+ for _, value := range values {
1393
+ if pred(value) == false {
1394
+ return false
1395
+ }
1396
+ }
1397
+ return true
1398
+ }
1399
+
1400
+ func jsonStringifyProgrammer_array_like_names[T interface {
1401
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1402
+ }](values []T) string {
1403
+ names := make([]string, 0, len(values))
1404
+ for _, value := range values {
1405
+ switch typed := any(value).(type) {
1406
+ case *schemametadata.MetadataArray:
1407
+ names = append(names, typed.Type.Name)
1408
+ case *schemametadata.MetadataTuple:
1409
+ names = append(names, typed.Type.Name)
1410
+ }
1411
+ }
1412
+ return strings.Join(names, " | ")
1413
+ }
1414
+
1415
+ func jsonStringifyProgrammer_merge_functions(groups ...map[string]*shimast.Node) map[string]*shimast.Node {
1416
+ output := map[string]*shimast.Node{}
1417
+ for _, group := range groups {
1418
+ for key, value := range group {
1419
+ output[key] = value
1420
+ }
1421
+ }
1422
+ return output
1423
+ }