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,1068 @@
1
+ package factories
2
+
3
+ import (
4
+ "fmt"
5
+ "math"
6
+ "sort"
7
+ "strings"
8
+
9
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
10
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
11
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
12
+ nativeprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
13
+ )
14
+
15
+ type protobufFactoryNamespace struct{}
16
+
17
+ var ProtobufFactory = protobufFactoryNamespace{}
18
+
19
+ type ProtobufFactory_IProps struct {
20
+ Method string
21
+ Checker *shimchecker.Checker
22
+ Transformer any
23
+ Components *schemametadata.MetadataCollection
24
+ Type *shimchecker.Type
25
+ }
26
+
27
+ func (protobufFactoryNamespace) Metadata(props ProtobufFactory_IProps) *schemametadata.MetadataSchema {
28
+ result := MetadataFactory.Analyze(MetadataFactory_IProps{
29
+ Checker: props.Checker,
30
+ Transformer: props.Transformer,
31
+ Options: MetadataFactory_IOptions{
32
+ Escape: false,
33
+ Constant: true,
34
+ Absorb: true,
35
+ Validate: protobufFactory_validate(),
36
+ },
37
+ Components: props.Components,
38
+ Type: props.Type,
39
+ })
40
+ if result.Success == false {
41
+ panic(nativecontext.TransformerError_from(struct {
42
+ Code string
43
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
44
+ }{
45
+ Code: "typia.protobuf." + props.Method,
46
+ Errors: protobufFactory_errors(result.Errors),
47
+ }))
48
+ }
49
+ return result.Data
50
+ }
51
+
52
+ func (protobufFactoryNamespace) EmplaceObject(object *schemametadata.MetadataObjectType) {
53
+ for _, property := range object.Properties {
54
+ protobufFactory_emplaceProperty(property)
55
+ }
56
+ properties := []*nativeprotobuf.IProtobufProperty{}
57
+ for _, property := range object.Properties {
58
+ if property.Of_protobuf_ != nil {
59
+ properties = append(properties, property.Of_protobuf_)
60
+ }
61
+ }
62
+ unique := map[int]bool{}
63
+ for _, property := range properties {
64
+ if property.Fixed == false {
65
+ continue
66
+ }
67
+ for _, union := range property.Union {
68
+ if index := protobufFactory_propertyIndex(union); index != nil {
69
+ unique[*index] = true
70
+ }
71
+ }
72
+ }
73
+ index := 1
74
+ for _, schema := range properties {
75
+ if schema.Fixed {
76
+ for _, union := range schema.Union {
77
+ if next := protobufFactory_propertyIndex(union); next != nil && *next >= index {
78
+ index = *next + 1
79
+ }
80
+ }
81
+ continue
82
+ }
83
+ for _, union := range schema.Union {
84
+ for unique[index] {
85
+ index++
86
+ }
87
+ protobufFactory_setPropertyIndex(union, index)
88
+ unique[index] = true
89
+ }
90
+ index++
91
+ }
92
+ }
93
+
94
+ func protobufFactory_emplaceProperty(prop *schemametadata.MetadataProperty) {
95
+ union := []nativeprotobuf.IProtobufPropertyType{}
96
+ for _, native := range prop.Value.Natives {
97
+ if native.Name == "Uint8Array" {
98
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IByte{
99
+ IProtobufSchema_IByte: nativeprotobuf.IProtobufSchema_IByte{Type: "bytes"},
100
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(native.Tags)),
101
+ })
102
+ }
103
+ }
104
+ union = append(union, protobufFactory_emplaceAtomic(prop.Value)...)
105
+ for _, array := range prop.Value.Arrays {
106
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IArray{
107
+ IProtobufSchema_IArray: nativeprotobuf.IProtobufSchema_IArray{
108
+ Type: "array",
109
+ Array: array.Type,
110
+ Value: protobufFactory_emplaceSchema(array.Type.Value),
111
+ },
112
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(array.Tags)),
113
+ })
114
+ }
115
+ for _, obj := range prop.Value.Objects {
116
+ if protobufFactory_isDynamicObject(obj.Type) {
117
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IMap{
118
+ IProtobufSchema_IMap: nativeprotobuf.IProtobufSchema_IMap{
119
+ Type: "map",
120
+ Map: obj.Type,
121
+ Key: protobufFactory_emplaceSchema(obj.Type.Properties[0].Key),
122
+ Value: protobufFactory_emplaceSchema(obj.Type.Properties[0].Value),
123
+ },
124
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(obj.Tags)),
125
+ })
126
+ } else {
127
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IObject{
128
+ IProtobufSchema_IObject: nativeprotobuf.IProtobufSchema_IObject{Type: "object", Object: obj.Type},
129
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(obj.Tags)),
130
+ })
131
+ }
132
+ }
133
+ for _, entry := range prop.Value.Maps {
134
+ union = append(union, &nativeprotobuf.IProtobufPropertyType_IMap{
135
+ IProtobufSchema_IMap: nativeprotobuf.IProtobufSchema_IMap{
136
+ Type: "map",
137
+ Map: entry,
138
+ Key: protobufFactory_emplaceSchema(entry.Key),
139
+ Value: protobufFactory_emplaceSchema(entry.Value),
140
+ },
141
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(entry.Tags)),
142
+ })
143
+ }
144
+ fixed := true
145
+ for _, elem := range union {
146
+ if protobufFactory_propertyIndex(elem) == nil {
147
+ fixed = false
148
+ break
149
+ }
150
+ }
151
+ prop.Of_protobuf_ = &nativeprotobuf.IProtobufProperty{
152
+ Union: union,
153
+ Fixed: fixed,
154
+ }
155
+ }
156
+
157
+ func protobufFactory_emplaceSchema(metadata *schemametadata.MetadataSchema) nativeprotobuf.IProtobufSchema {
158
+ for _, native := range metadata.Natives {
159
+ if native.Name == "Uint8Array" {
160
+ return nativeprotobuf.IProtobufSchema_IByte{Type: "bytes"}
161
+ }
162
+ }
163
+ atomic := protobufFactory_emplaceAtomic(metadata)
164
+ if len(atomic) != 0 {
165
+ return atomic[0]
166
+ }
167
+ for _, array := range metadata.Arrays {
168
+ return nativeprotobuf.IProtobufSchema_IArray{
169
+ Type: "array",
170
+ Array: array.Type,
171
+ Value: protobufFactory_emplaceSchema(array.Type.Value),
172
+ }
173
+ }
174
+ for _, obj := range metadata.Objects {
175
+ if protobufFactory_isDynamicObject(obj.Type) {
176
+ return nativeprotobuf.IProtobufSchema_IMap{
177
+ Type: "map",
178
+ Map: obj.Type,
179
+ Key: protobufFactory_emplaceSchema(obj.Type.Properties[0].Key),
180
+ Value: protobufFactory_emplaceSchema(obj.Type.Properties[0].Value),
181
+ }
182
+ }
183
+ return nativeprotobuf.IProtobufSchema_IObject{Type: "object", Object: obj.Type}
184
+ }
185
+ for _, entry := range metadata.Maps {
186
+ return nativeprotobuf.IProtobufSchema_IMap{
187
+ Type: "map",
188
+ Map: entry,
189
+ Key: protobufFactory_emplaceSchema(entry.Key),
190
+ Value: protobufFactory_emplaceSchema(entry.Value),
191
+ }
192
+ }
193
+ panic("Error on ProtobufFactory.emplaceSchema(): any type detected.")
194
+ }
195
+
196
+ func protobufFactory_emplaceAtomic(meta *schemametadata.MetadataSchema) []nativeprotobuf.IProtobufPropertyType {
197
+ values := map[string]nativeprotobuf.IProtobufPropertyType{}
198
+ for _, constant := range meta.Constants {
199
+ if constant.Type == "boolean" {
200
+ values["bool"] = &nativeprotobuf.IProtobufPropertyType_IBoolean{
201
+ IProtobufSchema_IBoolean: nativeprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
202
+ Index: protobufFactory_getSequence(protobufFactory_firstTags(constant.Values)),
203
+ }
204
+ } else if constant.Type == "bigint" {
205
+ init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
206
+ for _, value := range constant.Values {
207
+ protobufFactory_emplaceBigint(values, value.Tags, init)
208
+ }
209
+ } else if constant.Type == "number" {
210
+ init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
211
+ for _, value := range constant.Values {
212
+ protobufFactory_emplaceNumber(values, value.Tags, init)
213
+ }
214
+ } else if constant.Type == "string" {
215
+ values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
216
+ IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
217
+ Index: protobufFactory_getSequence(protobufFactory_firstTags(constant.Values)),
218
+ }
219
+ }
220
+ }
221
+ if len(meta.Templates) != 0 {
222
+ values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
223
+ IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
224
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(meta.Templates[0].Tags)),
225
+ }
226
+ }
227
+ for _, atomic := range meta.Atomics {
228
+ if atomic.Type == "boolean" {
229
+ values["bool"] = &nativeprotobuf.IProtobufPropertyType_IBoolean{
230
+ IProtobufSchema_IBoolean: nativeprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
231
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags)),
232
+ }
233
+ } else if atomic.Type == "bigint" {
234
+ protobufFactory_emplaceBigint(values, atomic.Tags, "int64")
235
+ } else if atomic.Type == "number" {
236
+ protobufFactory_emplaceNumber(values, atomic.Tags, "double")
237
+ } else if atomic.Type == "string" {
238
+ values["string"] = &nativeprotobuf.IProtobufPropertyType_IString{
239
+ IProtobufSchema_IString: nativeprotobuf.IProtobufSchema_IString{Type: "string"},
240
+ Index: protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags)),
241
+ }
242
+ }
243
+ }
244
+ keys := make([]string, 0, len(values))
245
+ for key := range values {
246
+ keys = append(keys, key)
247
+ }
248
+ sort.Slice(keys, func(i, j int) bool {
249
+ return protobufFactory_compare(keys[i], keys[j]) < 0
250
+ })
251
+ output := make([]nativeprotobuf.IProtobufPropertyType, 0, len(keys))
252
+ for _, key := range keys {
253
+ output = append(output, values[key])
254
+ }
255
+ return output
256
+ }
257
+
258
+ func protobufFactory_emplaceBigint(output map[string]nativeprotobuf.IProtobufPropertyType, tags [][]schemametadata.IMetadataTypeTag, init string) {
259
+ if len(tags) == 0 {
260
+ output[init] = &nativeprotobuf.IProtobufPropertyType_IBigint{
261
+ IProtobufSchema_IBigint: nativeprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: init},
262
+ Index: nil,
263
+ }
264
+ return
265
+ }
266
+ for _, row := range tags {
267
+ value := init
268
+ for _, tag := range row {
269
+ if tag.Kind == "type" && (tag.Value == "int64" || tag.Value == "uint64") {
270
+ value = fmt.Sprint(tag.Value)
271
+ break
272
+ }
273
+ }
274
+ output[init] = &nativeprotobuf.IProtobufPropertyType_IBigint{
275
+ IProtobufSchema_IBigint: nativeprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: value},
276
+ Index: protobufFactory_getSequence(row),
277
+ }
278
+ }
279
+ }
280
+
281
+ func protobufFactory_emplaceNumber(output map[string]nativeprotobuf.IProtobufPropertyType, tags [][]schemametadata.IMetadataTypeTag, init string) {
282
+ if len(tags) == 0 {
283
+ output[init] = &nativeprotobuf.IProtobufPropertyType_INumber{
284
+ IProtobufSchema_INumber: nativeprotobuf.IProtobufSchema_INumber{Type: "number", Name: init},
285
+ Index: nil,
286
+ }
287
+ return
288
+ }
289
+ for _, row := range tags {
290
+ value := init
291
+ for _, tag := range row {
292
+ if tag.Kind != "type" {
293
+ continue
294
+ }
295
+ str := fmt.Sprint(tag.Value)
296
+ if str == "int32" || str == "uint32" || str == "int64" || str == "uint64" || str == "float" || str == "double" {
297
+ value = str
298
+ break
299
+ }
300
+ }
301
+ output[value] = &nativeprotobuf.IProtobufPropertyType_INumber{
302
+ IProtobufSchema_INumber: nativeprotobuf.IProtobufSchema_INumber{Type: "number", Name: value},
303
+ Index: protobufFactory_getSequence(row),
304
+ }
305
+ }
306
+ }
307
+
308
+ func protobufFactory_validate() MetadataFactory_Validator {
309
+ visited := map[*schemametadata.MetadataObjectType]bool{}
310
+ return func(props struct {
311
+ Metadata *schemametadata.MetadataSchema
312
+ Explore MetadataFactory_IExplore
313
+ Top *schemametadata.MetadataSchema
314
+ }) []string {
315
+ errors := []string{}
316
+ insert := func(msg string) { errors = append(errors, msg) }
317
+ if props.Explore.Top == true {
318
+ onlyObject := props.Metadata.Size() == 1 &&
319
+ len(props.Metadata.Objects) == 1 &&
320
+ props.Metadata.IsRequired() == true &&
321
+ props.Metadata.Nullable == false
322
+ if onlyObject && len(props.Metadata.Objects) != 0 {
323
+ for _, property := range props.Metadata.Objects[0].Type.Properties {
324
+ if property.Key.IsSoleLiteral() == false {
325
+ onlyObject = false
326
+ break
327
+ }
328
+ }
329
+ }
330
+ if onlyObject == false {
331
+ insert("target type must be a sole and static object type")
332
+ }
333
+ }
334
+ for _, obj := range props.Metadata.Objects {
335
+ if visited[obj.Type] {
336
+ continue
337
+ }
338
+ visited[obj.Type] = true
339
+ protobufFactory_validateObject(obj.Type, &errors)
340
+ func() {
341
+ defer func() { _ = recover() }()
342
+ ProtobufFactory.EmplaceObject(obj.Type)
343
+ }()
344
+ }
345
+ noSupport := func(msg string) { insert("does not support " + msg) }
346
+ if props.Metadata.Any {
347
+ noSupport("any type")
348
+ }
349
+ if len(props.Metadata.Functions) != 0 {
350
+ noSupport("functional type")
351
+ }
352
+ if len(props.Metadata.Tuples) != 0 {
353
+ noSupport("tuple type")
354
+ }
355
+ if len(props.Metadata.Sets) != 0 {
356
+ noSupport("Set type")
357
+ }
358
+ for _, native := range props.Metadata.Natives {
359
+ if native.Name == "Uint8Array" {
360
+ continue
361
+ }
362
+ if instead, ok := protobufFactory_BANNED_NATIVE_TYPES[native.Name]; ok {
363
+ noSupport(native.Name + " type. Use " + instead + " type instead.")
364
+ } else {
365
+ noSupport(native.Name + " type")
366
+ }
367
+ }
368
+ if len(props.Metadata.Atomics) != 0 {
369
+ numbers := protobufFactory_getNumbers(props.Metadata)
370
+ bigints := protobufFactory_getBigints(props.Metadata)
371
+ for _, typ := range []string{"int64", "uint64"} {
372
+ if _, ok := numbers[typ]; ok {
373
+ if _, found := bigints[typ]; found {
374
+ insert("tags.Type<\"" + typ + "\"> cannot be used in both number and bigint types. Recommend to remove from number type")
375
+ }
376
+ }
377
+ }
378
+ }
379
+ protobufFactory_validateShape(props.Metadata, noSupport)
380
+ return errors
381
+ }
382
+ }
383
+
384
+ func protobufFactory_validateShape(metadata *schemametadata.MetadataSchema, noSupport func(string)) {
385
+ if len(metadata.Arrays) != 0 {
386
+ for _, array := range metadata.Arrays {
387
+ if len(array.Type.Value.Arrays) != 0 {
388
+ noSupport("over two dimensional array type")
389
+ break
390
+ }
391
+ }
392
+ for _, array := range metadata.Arrays {
393
+ if array.Type.Value.IsRequired() == false || array.Type.Value.Nullable {
394
+ noSupport("optional type in array")
395
+ break
396
+ }
397
+ }
398
+ for _, array := range metadata.Arrays {
399
+ if array.Type.Value.Size() > 1 && len(array.Type.Value.Constants) != 1 {
400
+ noSupport("union type in array")
401
+ break
402
+ }
403
+ }
404
+ for _, array := range metadata.Arrays {
405
+ if len(array.Type.Value.Maps) != 0 {
406
+ noSupport("dynamic object in array")
407
+ break
408
+ }
409
+ for _, obj := range array.Type.Value.Objects {
410
+ if protobufFactory_isStaticObject(obj.Type) == false {
411
+ noSupport("dynamic object in array")
412
+ break
413
+ }
414
+ }
415
+ }
416
+ if metadata.Size() > 1 {
417
+ noSupport("union type with array type")
418
+ }
419
+ }
420
+ if len(metadata.Objects) != 0 {
421
+ for _, obj := range metadata.Objects {
422
+ if len(obj.Type.Properties) == 0 {
423
+ noSupport("empty object type")
424
+ break
425
+ }
426
+ }
427
+ for _, obj := range metadata.Objects {
428
+ dynamic := 0
429
+ static := 0
430
+ for _, property := range obj.Type.Properties {
431
+ if property.Key.IsSoleLiteral() {
432
+ static++
433
+ } else {
434
+ dynamic++
435
+ }
436
+ }
437
+ if dynamic > 1 {
438
+ noSupport("object type with multiple dynamic key typed properties. Keep only one.")
439
+ }
440
+ if static != 0 && dynamic != 0 {
441
+ noSupport("object type with mixed static and dynamic key typed properties. Keep statics or dynamic only.")
442
+ }
443
+ }
444
+ if protobufFactory_isDynamicObject(metadata.Objects[0].Type) {
445
+ for _, property := range metadata.Objects[0].Type.Properties {
446
+ if len(property.Value.Arrays) != 0 {
447
+ noSupport("dynamic object with array value type")
448
+ break
449
+ }
450
+ if protobufFactory_isUnion(property.Value) {
451
+ noSupport("union type in dynamic property")
452
+ break
453
+ }
454
+ }
455
+ if metadata.Size() > 1 {
456
+ noSupport("union type with dynamic object type")
457
+ }
458
+ }
459
+ }
460
+ if len(metadata.Maps) != 0 {
461
+ for _, entry := range metadata.Maps {
462
+ if protobufFactory_isUnion(entry.Key) {
463
+ noSupport("union key typed map")
464
+ }
465
+ if len(protobufFactory_getAtomics(entry.Key)) != 1 {
466
+ noSupport("non-atomic key typed map")
467
+ }
468
+ if entry.Key.IsRequired() == false || entry.Key.Nullable {
469
+ noSupport("optional key typed map")
470
+ }
471
+ if len(entry.Value.Arrays) != 0 {
472
+ noSupport("map type with array value type")
473
+ }
474
+ if protobufFactory_isUnion(entry.Value) {
475
+ noSupport("union type in map value type")
476
+ }
477
+ }
478
+ if metadata.Size() > 1 {
479
+ noSupport("union type with map type")
480
+ }
481
+ }
482
+ }
483
+
484
+ func protobufFactory_validateObject(object *schemametadata.MetadataObjectType, errors *[]string) {
485
+ for _, property := range object.Properties {
486
+ protobufFactory_validateProperty(property.Value, errors)
487
+ }
488
+ entire := map[int]string{}
489
+ for _, property := range object.Properties {
490
+ local := map[int]bool{}
491
+ tagger := func(matrix [][]schemametadata.IMetadataTypeTag) {
492
+ for _, tags := range matrix {
493
+ if value := protobufFactory_getSequence(tags); value != nil {
494
+ local[*value] = true
495
+ }
496
+ }
497
+ }
498
+ for _, c := range property.Value.Constants {
499
+ for _, v := range c.Values {
500
+ tagger(v.Tags)
501
+ }
502
+ }
503
+ for _, a := range property.Value.Atomics {
504
+ tagger(a.Tags)
505
+ }
506
+ for _, t := range property.Value.Templates {
507
+ tagger(t.Tags)
508
+ }
509
+ for _, o := range property.Value.Objects {
510
+ tagger(o.Tags)
511
+ }
512
+ for _, a := range property.Value.Arrays {
513
+ tagger(a.Tags)
514
+ }
515
+ for sequence := range local {
516
+ name := ""
517
+ if property.Key.GetSoleLiteral() != nil {
518
+ name = *property.Key.GetSoleLiteral()
519
+ }
520
+ if prev, ok := entire[sequence]; ok {
521
+ *errors = append(*errors, fmt.Sprintf("The Sequence<%d> tag is duplicated in two properties (%q and %q)", sequence, prev, name))
522
+ } else {
523
+ entire[sequence] = name
524
+ }
525
+ }
526
+ }
527
+ }
528
+
529
+ func protobufFactory_validateProperty(metadata *schemametadata.MetadataSchema, errors *[]string) {
530
+ sequences := map[int]bool{}
531
+ add := func(value int) bool {
532
+ if sequences[value] {
533
+ return false
534
+ }
535
+ sequences[value] = true
536
+ return true
537
+ }
538
+ protobufFactory_validateBooleanSequence(metadata, errors, add)
539
+ protobufFactory_validateNumericSequences(metadata, errors, add, "bigint", "int64", protobufFactory_BIGINT_TYPES)
540
+ protobufFactory_validateNumericSequences(metadata, errors, add, "number", "double", protobufFactory_NUMBER_TYPES)
541
+ protobufFactory_validateStringSequence(metadata, errors, add)
542
+ for _, array := range metadata.Arrays {
543
+ protobufFactory_validateInstanceSequence("array", array.Tags, errors, add)
544
+ }
545
+ for _, object := range metadata.Objects {
546
+ protobufFactory_validateInstanceSequence("object", object.Tags, errors, add)
547
+ }
548
+ for _, entry := range metadata.Maps {
549
+ protobufFactory_validateInstanceSequence("map", entry.Tags, errors, add)
550
+ }
551
+ for _, native := range metadata.Natives {
552
+ if native.Name == "Uint8Array" {
553
+ protobufFactory_validateInstanceSequence("Uint8Array", native.Tags, errors, add)
554
+ }
555
+ }
556
+ }
557
+
558
+ func protobufFactory_validateBooleanSequence(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool) {
559
+ unique, expected, actual := map[int]bool{}, 0, 0
560
+ emplace := func(matrix [][]schemametadata.IMetadataTypeTag) {
561
+ for _, tags := range matrix {
562
+ for _, tag := range tags {
563
+ if sequence := protobufFactory_getSequence([]schemametadata.IMetadataTypeTag{tag}); sequence != nil {
564
+ unique[*sequence] = true
565
+ actual++
566
+ }
567
+ expected++
568
+ }
569
+ }
570
+ }
571
+ for _, atomic := range metadata.Atomics {
572
+ if atomic.Type == "boolean" {
573
+ emplace(atomic.Tags)
574
+ }
575
+ }
576
+ for _, constant := range metadata.Constants {
577
+ if constant.Type == "boolean" {
578
+ for _, value := range constant.Values {
579
+ emplace(value.Tags)
580
+ }
581
+ }
582
+ }
583
+ protobufFactory_validateUniqueSequence("boolean type", unique, expected, actual, errors, add)
584
+ }
585
+
586
+ func protobufFactory_validateNumericSequences(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool, typ string, def string, categories map[string]bool) {
587
+ foundCategories := map[string]bool{}
588
+ getType := func(tags []schemametadata.IMetadataTypeTag) string {
589
+ for _, tag := range tags {
590
+ if tag.Kind == "type" && categories[fmt.Sprint(tag.Value)] {
591
+ return fmt.Sprint(tag.Value)
592
+ }
593
+ }
594
+ return def
595
+ }
596
+ for _, atomic := range metadata.Atomics {
597
+ if atomic.Type == typ {
598
+ for _, tags := range atomic.Tags {
599
+ foundCategories[getType(tags)] = true
600
+ }
601
+ }
602
+ }
603
+ for _, constant := range metadata.Constants {
604
+ if constant.Type == typ {
605
+ for _, value := range constant.Values {
606
+ for _, tags := range value.Tags {
607
+ foundCategories[getType(tags)] = true
608
+ }
609
+ }
610
+ }
611
+ }
612
+ for category := range foundCategories {
613
+ unique, expected, actual := map[int]bool{}, 0, 0
614
+ emplace := func(tags []schemametadata.IMetadataTypeTag) {
615
+ if sequence := protobufFactory_getSequence(tags); sequence != nil {
616
+ unique[*sequence] = true
617
+ actual++
618
+ }
619
+ expected++
620
+ }
621
+ for _, atomic := range metadata.Atomics {
622
+ if atomic.Type == typ {
623
+ for _, tags := range atomic.Tags {
624
+ if getType(tags) == category {
625
+ emplace(tags)
626
+ }
627
+ }
628
+ }
629
+ }
630
+ for _, constant := range metadata.Constants {
631
+ if constant.Type == typ {
632
+ for _, value := range constant.Values {
633
+ for _, tags := range value.Tags {
634
+ if getType(tags) == category {
635
+ emplace(tags)
636
+ }
637
+ }
638
+ }
639
+ }
640
+ }
641
+ protobufFactory_validateUniqueSequence(typ+" type", unique, expected, actual, errors, add)
642
+ }
643
+ }
644
+
645
+ func protobufFactory_validateStringSequence(metadata *schemametadata.MetadataSchema, errors *[]string, add func(int) bool) {
646
+ unique, expected, actual := map[int]bool{}, 0, 0
647
+ emplace := func(matrix [][]schemametadata.IMetadataTypeTag) {
648
+ for _, tags := range matrix {
649
+ for _, tag := range tags {
650
+ if sequence := protobufFactory_getSequence([]schemametadata.IMetadataTypeTag{tag}); sequence != nil {
651
+ unique[*sequence] = true
652
+ actual++
653
+ }
654
+ expected++
655
+ }
656
+ }
657
+ }
658
+ for _, atomic := range metadata.Atomics {
659
+ if atomic.Type == "string" {
660
+ emplace(atomic.Tags)
661
+ }
662
+ }
663
+ for _, constant := range metadata.Constants {
664
+ if constant.Type == "string" {
665
+ for _, value := range constant.Values {
666
+ emplace(value.Tags)
667
+ }
668
+ }
669
+ }
670
+ for _, template := range metadata.Templates {
671
+ emplace(template.Tags)
672
+ }
673
+ protobufFactory_validateUniqueSequence("string type", unique, expected, actual, errors, add)
674
+ }
675
+
676
+ func protobufFactory_validateInstanceSequence(typ string, tags [][]schemametadata.IMetadataTypeTag, errors *[]string, add func(int) bool) {
677
+ unique := map[int]bool{}
678
+ count := 0
679
+ for _, row := range tags {
680
+ if value := protobufFactory_getSequence(row); value != nil {
681
+ unique[*value] = true
682
+ count++
683
+ }
684
+ }
685
+ if len(unique) != 0 && count != len(tags) {
686
+ *errors = append(*errors, "The sequence tag must be declared in every union type members")
687
+ } else if len(unique) > 1 {
688
+ label := "object"
689
+ if typ == "array" {
690
+ label = "an array"
691
+ }
692
+ *errors = append(*errors, "The sequence tag value must be the same in "+label+" type.")
693
+ } else if len(unique) == 1 {
694
+ for value := range unique {
695
+ if add(value) == false {
696
+ *errors = append(*errors, fmt.Sprintf("The sequence tag value %d in %s type is duplicated with other types", value, typ))
697
+ }
698
+ }
699
+ }
700
+ }
701
+
702
+ func protobufFactory_validateUniqueSequence(label string, unique map[int]bool, expected int, actual int, errors *[]string, add func(int) bool) {
703
+ if len(unique) != 0 && actual != expected {
704
+ *errors = append(*errors, "The sequence tag must be declared in every union type members")
705
+ } else if len(unique) > 1 {
706
+ *errors = append(*errors, "The sequence tag value must be the same in "+label+" (including literal types)")
707
+ } else if len(unique) == 1 {
708
+ for value := range unique {
709
+ if add(value) == false {
710
+ *errors = append(*errors, fmt.Sprintf("The sequence tag value %d in %s is duplicated with other types", value, label))
711
+ }
712
+ }
713
+ }
714
+ }
715
+
716
+ func protobufFactory_propertyIndex(prop nativeprotobuf.IProtobufPropertyType) *int {
717
+ switch v := prop.(type) {
718
+ case *nativeprotobuf.IProtobufPropertyType_IByte:
719
+ return v.Index
720
+ case *nativeprotobuf.IProtobufPropertyType_IBoolean:
721
+ return v.Index
722
+ case *nativeprotobuf.IProtobufPropertyType_IBigint:
723
+ return v.Index
724
+ case *nativeprotobuf.IProtobufPropertyType_INumber:
725
+ return v.Index
726
+ case *nativeprotobuf.IProtobufPropertyType_IString:
727
+ return v.Index
728
+ case *nativeprotobuf.IProtobufPropertyType_IArray:
729
+ return v.Index
730
+ case *nativeprotobuf.IProtobufPropertyType_IObject:
731
+ return v.Index
732
+ case *nativeprotobuf.IProtobufPropertyType_IMap:
733
+ return v.Index
734
+ }
735
+ return nil
736
+ }
737
+
738
+ func protobufFactory_setPropertyIndex(prop nativeprotobuf.IProtobufPropertyType, index int) {
739
+ switch v := prop.(type) {
740
+ case *nativeprotobuf.IProtobufPropertyType_IByte:
741
+ v.Index = &index
742
+ case *nativeprotobuf.IProtobufPropertyType_IBoolean:
743
+ v.Index = &index
744
+ case *nativeprotobuf.IProtobufPropertyType_IBigint:
745
+ v.Index = &index
746
+ case *nativeprotobuf.IProtobufPropertyType_INumber:
747
+ v.Index = &index
748
+ case *nativeprotobuf.IProtobufPropertyType_IString:
749
+ v.Index = &index
750
+ case *nativeprotobuf.IProtobufPropertyType_IArray:
751
+ v.Index = &index
752
+ case *nativeprotobuf.IProtobufPropertyType_IObject:
753
+ v.Index = &index
754
+ case *nativeprotobuf.IProtobufPropertyType_IMap:
755
+ v.Index = &index
756
+ }
757
+ }
758
+
759
+ func protobufFactory_firstTagRow(tags [][]schemametadata.IMetadataTypeTag) []schemametadata.IMetadataTypeTag {
760
+ if len(tags) == 0 {
761
+ return []schemametadata.IMetadataTypeTag{}
762
+ }
763
+ return tags[0]
764
+ }
765
+
766
+ func protobufFactory_getSequence(tags []schemametadata.IMetadataTypeTag) *int {
767
+ for _, tag := range tags {
768
+ if tag.Kind != "sequence" {
769
+ continue
770
+ }
771
+ schema, ok := tag.Schema.(map[string]any)
772
+ if ok == false {
773
+ continue
774
+ }
775
+ raw, ok := schema["x-protobuf-sequence"]
776
+ if ok == false {
777
+ continue
778
+ }
779
+ switch value := raw.(type) {
780
+ case int:
781
+ return &value
782
+ case int64:
783
+ next := int(value)
784
+ return &next
785
+ case float64:
786
+ next := int(value)
787
+ return &next
788
+ case string:
789
+ next := 0
790
+ if _, err := fmt.Sscan(value, &next); err == nil {
791
+ return &next
792
+ }
793
+ }
794
+ }
795
+ return nil
796
+ }
797
+
798
+ func protobufFactory_isStaticObject(obj *schemametadata.MetadataObjectType) bool {
799
+ if obj == nil || len(obj.Properties) == 0 {
800
+ return false
801
+ }
802
+ for _, property := range obj.Properties {
803
+ if property.Key.IsSoleLiteral() == false {
804
+ return false
805
+ }
806
+ }
807
+ return true
808
+ }
809
+
810
+ func protobufFactory_isUnion(meta *schemametadata.MetadataSchema) bool {
811
+ return protobufFactory_size(meta) > 1
812
+ }
813
+
814
+ func protobufFactory_size(meta *schemametadata.MetadataSchema) int {
815
+ if meta == nil {
816
+ return 0
817
+ }
818
+ return len(protobufFactory_getAtomics(meta)) +
819
+ len(meta.Arrays) +
820
+ len(meta.Tuples) +
821
+ len(meta.Natives) +
822
+ len(meta.Objects) +
823
+ len(meta.Maps)
824
+ }
825
+
826
+ func protobufFactory_getAtomics(meta *schemametadata.MetadataSchema) map[string]*int {
827
+ output := map[string]*int{}
828
+ for _, constant := range meta.Constants {
829
+ if constant.Type == "boolean" {
830
+ output["bool"] = protobufFactory_getSequence(protobufFactory_firstTags(constant.Values))
831
+ } else if constant.Type == "bigint" {
832
+ init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
833
+ protobufFactory_decodeBigint(output, constant.Values, init)
834
+ } else if constant.Type == "number" {
835
+ init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
836
+ protobufFactory_decodeNumber(output, constant.Values, init)
837
+ } else if constant.Type == "string" {
838
+ output["string"] = protobufFactory_getSequence(protobufFactory_firstTags(constant.Values))
839
+ }
840
+ }
841
+ if len(meta.Templates) != 0 {
842
+ output["string"] = protobufFactory_getSequence(protobufFactory_firstTagRow(meta.Templates[0].Tags))
843
+ }
844
+ for _, atomic := range meta.Atomics {
845
+ if atomic.Type == "boolean" {
846
+ output["bool"] = protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags))
847
+ } else if atomic.Type == "bigint" {
848
+ protobufFactory_decodeBigintTags(output, atomic.Tags, "int64")
849
+ } else if atomic.Type == "number" {
850
+ protobufFactory_decodeNumberTags(output, atomic.Tags, "double")
851
+ } else if atomic.Type == "string" {
852
+ output["string"] = protobufFactory_getSequence(protobufFactory_firstTagRow(atomic.Tags))
853
+ }
854
+ }
855
+ return output
856
+ }
857
+
858
+ func protobufFactory_getNumbers(meta *schemametadata.MetadataSchema) map[string]*int {
859
+ output := map[string]*int{}
860
+ for _, constant := range meta.Constants {
861
+ if constant.Type == "number" {
862
+ init := protobufFactory_getNumberType(protobufFactory_constantValues(constant.Values))
863
+ protobufFactory_decodeNumber(output, constant.Values, init)
864
+ }
865
+ }
866
+ for _, atomic := range meta.Atomics {
867
+ if atomic.Type == "number" {
868
+ protobufFactory_decodeNumberTags(output, atomic.Tags, "double")
869
+ }
870
+ }
871
+ return output
872
+ }
873
+
874
+ func protobufFactory_getBigints(meta *schemametadata.MetadataSchema) map[string]*int {
875
+ output := map[string]*int{}
876
+ for _, constant := range meta.Constants {
877
+ if constant.Type == "bigint" {
878
+ init := protobufFactory_getBigintType(protobufFactory_constantValues(constant.Values))
879
+ protobufFactory_decodeBigint(output, constant.Values, init)
880
+ }
881
+ }
882
+ for _, atomic := range meta.Atomics {
883
+ if atomic.Type == "bigint" {
884
+ protobufFactory_decodeBigintTags(output, atomic.Tags, "int64")
885
+ }
886
+ }
887
+ return output
888
+ }
889
+
890
+ func protobufFactory_decodeBigint(output map[string]*int, values []*schemametadata.MetadataConstantValue, init string) {
891
+ for _, value := range values {
892
+ protobufFactory_decodeBigintTags(output, value.Tags, init)
893
+ }
894
+ }
895
+
896
+ func protobufFactory_decodeNumber(output map[string]*int, values []*schemametadata.MetadataConstantValue, init string) {
897
+ for _, value := range values {
898
+ protobufFactory_decodeNumberTags(output, value.Tags, init)
899
+ }
900
+ }
901
+
902
+ func protobufFactory_decodeBigintTags(output map[string]*int, tags [][]schemametadata.IMetadataTypeTag, init string) {
903
+ if len(tags) == 0 {
904
+ output[init] = nil
905
+ return
906
+ }
907
+ for _, row := range tags {
908
+ value := init
909
+ for _, tag := range row {
910
+ if tag.Kind == "type" && (tag.Value == "int64" || tag.Value == "uint64") {
911
+ value = fmt.Sprint(tag.Value)
912
+ break
913
+ }
914
+ }
915
+ output[value] = protobufFactory_getSequence(row)
916
+ }
917
+ }
918
+
919
+ func protobufFactory_decodeNumberTags(output map[string]*int, tags [][]schemametadata.IMetadataTypeTag, init string) {
920
+ if len(tags) == 0 {
921
+ output[init] = nil
922
+ return
923
+ }
924
+ for _, row := range tags {
925
+ value := init
926
+ for _, tag := range row {
927
+ if tag.Kind != "type" {
928
+ continue
929
+ }
930
+ str := fmt.Sprint(tag.Value)
931
+ if protobufFactory_NUMBER_TYPES[str] {
932
+ value = str
933
+ break
934
+ }
935
+ }
936
+ output[value] = protobufFactory_getSequence(row)
937
+ }
938
+ }
939
+
940
+ func protobufFactory_compare(x string, y string) int {
941
+ return protobufFactory_ATOMIC_ORDER[x] - protobufFactory_ATOMIC_ORDER[y]
942
+ }
943
+
944
+ func protobufFactory_firstTags(values []*schemametadata.MetadataConstantValue) []schemametadata.IMetadataTypeTag {
945
+ if len(values) == 0 {
946
+ return []schemametadata.IMetadataTypeTag{}
947
+ }
948
+ return protobufFactory_firstTagRow(values[0].Tags)
949
+ }
950
+
951
+ func protobufFactory_constantValues(values []*schemametadata.MetadataConstantValue) []any {
952
+ output := make([]any, 0, len(values))
953
+ for _, value := range values {
954
+ output = append(output, value.Value)
955
+ }
956
+ return output
957
+ }
958
+
959
+ func protobufFactory_getBigintType(values []any) string {
960
+ for _, value := range values {
961
+ if strings.HasPrefix(fmt.Sprint(value), "-") {
962
+ return "int64"
963
+ }
964
+ }
965
+ return "uint64"
966
+ }
967
+
968
+ func protobufFactory_getNumberType(values []any) string {
969
+ integers := true
970
+ int32s := true
971
+ for _, value := range values {
972
+ number := protobufFactory_toFloat(value)
973
+ if math.Floor(number) != number {
974
+ integers = false
975
+ break
976
+ }
977
+ if -2147483648 <= number && number <= 2147483647 {
978
+ continue
979
+ }
980
+ int32s = false
981
+ }
982
+ if integers == false {
983
+ return "double"
984
+ }
985
+ if int32s {
986
+ return "int32"
987
+ }
988
+ return "int64"
989
+ }
990
+
991
+ func protobufFactory_toFloat(value any) float64 {
992
+ switch v := value.(type) {
993
+ case float64:
994
+ return v
995
+ case float32:
996
+ return float64(v)
997
+ case int:
998
+ return float64(v)
999
+ case int64:
1000
+ return float64(v)
1001
+ case uint64:
1002
+ return float64(v)
1003
+ default:
1004
+ var out float64
1005
+ fmt.Sscan(fmt.Sprint(value), &out)
1006
+ return out
1007
+ }
1008
+ }
1009
+
1010
+ func protobufFactory_isDynamicObject(obj *schemametadata.MetadataObjectType) bool {
1011
+ return obj != nil && len(obj.Properties) != 0 && obj.Properties[0].Key.IsSoleLiteral() == false
1012
+ }
1013
+
1014
+ func protobufFactory_errors(errors []MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1015
+ output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1016
+ for _, err := range errors {
1017
+ output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1018
+ Name: err.Name,
1019
+ Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1020
+ Object: err.Explore.Object,
1021
+ Property: err.Explore.Property,
1022
+ Parameter: err.Explore.Parameter,
1023
+ Output: err.Explore.Output,
1024
+ },
1025
+ Messages: append([]string{}, err.Messages...),
1026
+ })
1027
+ }
1028
+ return output
1029
+ }
1030
+
1031
+ var protobufFactory_BANNED_NATIVE_TYPES = map[string]string{
1032
+ "Date": "string",
1033
+ "Boolean": "boolean",
1034
+ "BigInt": "bigint",
1035
+ "Number": "number",
1036
+ "String": "string",
1037
+ "Buffer": "Uint8Array",
1038
+ "Uint8ClampedArray": "Uint8Array",
1039
+ "Uint16Array": "Uint8Array",
1040
+ "Uint32Array": "Uint8Array",
1041
+ "BigUint64Array": "Uint8Array",
1042
+ "Int8Array": "Uint8Array",
1043
+ "Int16Array": "Uint8Array",
1044
+ "Int32Array": "Uint8Array",
1045
+ "BigInt64Array": "Uint8Array",
1046
+ "Float32Array": "Uint8Array",
1047
+ "Float64Array": "Uint8Array",
1048
+ "DataView": "Uint8Array",
1049
+ "ArrayBuffer": "Uint8Array",
1050
+ "SharedArrayBuffer": "Uint8Array",
1051
+ "WeakSet": "Array",
1052
+ "WeakMap": "Map",
1053
+ }
1054
+
1055
+ var protobufFactory_NUMBER_TYPES = map[string]bool{
1056
+ "int32": true, "uint32": true, "int64": true, "uint64": true, "float": true, "double": true,
1057
+ }
1058
+ var protobufFactory_BIGINT_TYPES = map[string]bool{"int64": true, "uint64": true}
1059
+ var protobufFactory_ATOMIC_ORDER = map[string]int{
1060
+ "bool": 0,
1061
+ "int32": 1,
1062
+ "uint32": 2,
1063
+ "int64": 3,
1064
+ "uint64": 4,
1065
+ "float": 5,
1066
+ "double": 6,
1067
+ "string": 7,
1068
+ }