typia 15.0.0 → 15.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1330) hide show
  1. package/lib/TypeGuardError.d.ts +20 -4
  2. package/lib/TypeGuardError.mjs.map +1 -1
  3. package/lib/basic.d.ts +787 -0
  4. package/lib/basic.js +104 -0
  5. package/lib/basic.js.map +1 -0
  6. package/lib/basic.mjs +86 -0
  7. package/lib/basic.mjs.map +1 -0
  8. package/lib/compare.d.ts +21 -0
  9. package/lib/compare.js.map +1 -1
  10. package/lib/compare.mjs.map +1 -1
  11. package/lib/functional.d.ts +42 -0
  12. package/lib/functional.js.map +1 -1
  13. package/lib/functional.mjs.map +1 -1
  14. package/lib/http.d.ts +124 -24
  15. package/lib/http.js.map +1 -1
  16. package/lib/http.mjs.map +1 -1
  17. package/lib/index.mjs +2 -1
  18. package/lib/index.mjs.map +1 -1
  19. package/lib/internal/_IProtobufWriter.d.ts +115 -0
  20. package/lib/internal/_ProtobufReader.d.ts +159 -1
  21. package/lib/internal/_ProtobufReader.js +159 -1
  22. package/lib/internal/_ProtobufReader.js.map +1 -1
  23. package/lib/internal/_ProtobufReader.mjs +159 -1
  24. package/lib/internal/_ProtobufReader.mjs.map +1 -1
  25. package/lib/internal/_ProtobufSizer.d.ts +135 -4
  26. package/lib/internal/_ProtobufSizer.js +134 -2
  27. package/lib/internal/_ProtobufSizer.js.map +1 -1
  28. package/lib/internal/_ProtobufSizer.mjs +133 -2
  29. package/lib/internal/_ProtobufSizer.mjs.map +1 -1
  30. package/lib/internal/_ProtobufWriter.d.ts +151 -0
  31. package/lib/internal/_ProtobufWriter.js +154 -1
  32. package/lib/internal/_ProtobufWriter.js.map +1 -1
  33. package/lib/internal/_ProtobufWriter.mjs +153 -2
  34. package/lib/internal/_ProtobufWriter.mjs.map +1 -1
  35. package/lib/internal/_accessExpressionAsString.d.ts +11 -0
  36. package/lib/internal/_accessExpressionAsString.js +11 -0
  37. package/lib/internal/_accessExpressionAsString.js.map +1 -1
  38. package/lib/internal/_accessExpressionAsString.mjs +11 -0
  39. package/lib/internal/_accessExpressionAsString.mjs.map +1 -1
  40. package/lib/internal/_assertGuard.d.ts +12 -0
  41. package/lib/internal/_assertGuard.js +12 -0
  42. package/lib/internal/_assertGuard.js.map +1 -1
  43. package/lib/internal/_assertGuard.mjs +12 -0
  44. package/lib/internal/_assertGuard.mjs.map +1 -1
  45. package/lib/internal/_coerceLlmArguments.d.ts +10 -0
  46. package/lib/internal/_coerceLlmArguments.js +10 -0
  47. package/lib/internal/_coerceLlmArguments.js.map +1 -1
  48. package/lib/internal/_coerceLlmArguments.mjs +10 -0
  49. package/lib/internal/_coerceLlmArguments.mjs.map +1 -1
  50. package/lib/internal/_createLlmEvaluation.js +9 -46
  51. package/lib/internal/_createLlmEvaluation.js.map +1 -1
  52. package/lib/internal/_createLlmEvaluation.mjs +7 -35
  53. package/lib/internal/_createLlmEvaluation.mjs.map +1 -1
  54. package/lib/internal/_createStandardSchema.d.ts +13 -0
  55. package/lib/internal/_createStandardSchema.js +13 -0
  56. package/lib/internal/_createStandardSchema.js.map +1 -1
  57. package/lib/internal/_createStandardSchema.mjs +13 -0
  58. package/lib/internal/_createStandardSchema.mjs.map +1 -1
  59. package/lib/internal/_decimal.d.ts +75 -0
  60. package/lib/internal/_decimal.js +55 -0
  61. package/lib/internal/_decimal.js.map +1 -1
  62. package/lib/internal/_decimal.mjs +55 -0
  63. package/lib/internal/_decimal.mjs.map +1 -1
  64. package/lib/internal/_functionalTypeGuardErrorFactory.d.ts +8 -0
  65. package/lib/internal/_functionalTypeGuardErrorFactory.js +8 -0
  66. package/lib/internal/_functionalTypeGuardErrorFactory.js.map +1 -1
  67. package/lib/internal/_functionalTypeGuardErrorFactory.mjs +8 -0
  68. package/lib/internal/_functionalTypeGuardErrorFactory.mjs.map +1 -1
  69. package/lib/internal/_httpFormDataReadArray.d.ts +9 -0
  70. package/lib/internal/_httpFormDataReadArray.js +9 -0
  71. package/lib/internal/_httpFormDataReadArray.js.map +1 -1
  72. package/lib/internal/_httpFormDataReadArray.mjs +9 -0
  73. package/lib/internal/_httpFormDataReadArray.mjs.map +1 -1
  74. package/lib/internal/_httpFormDataReadBigint.d.ts +12 -0
  75. package/lib/internal/_httpFormDataReadBigint.js +19 -5
  76. package/lib/internal/_httpFormDataReadBigint.js.map +1 -1
  77. package/lib/internal/_httpFormDataReadBigint.mjs +13 -1
  78. package/lib/internal/_httpFormDataReadBigint.mjs.map +1 -1
  79. package/lib/internal/_httpFormDataReadBlob.d.ts +11 -0
  80. package/lib/internal/_httpFormDataReadBlob.js +11 -0
  81. package/lib/internal/_httpFormDataReadBlob.js.map +1 -1
  82. package/lib/internal/_httpFormDataReadBlob.mjs +11 -0
  83. package/lib/internal/_httpFormDataReadBlob.mjs.map +1 -1
  84. package/lib/internal/_httpFormDataReadBoolean.d.ts +11 -0
  85. package/lib/internal/_httpFormDataReadBoolean.js +23 -10
  86. package/lib/internal/_httpFormDataReadBoolean.js.map +1 -1
  87. package/lib/internal/_httpFormDataReadBoolean.mjs +12 -1
  88. package/lib/internal/_httpFormDataReadBoolean.mjs.map +1 -1
  89. package/lib/internal/_httpFormDataReadFile.d.ts +11 -0
  90. package/lib/internal/_httpFormDataReadFile.js +11 -0
  91. package/lib/internal/_httpFormDataReadFile.js.map +1 -1
  92. package/lib/internal/_httpFormDataReadFile.mjs +11 -0
  93. package/lib/internal/_httpFormDataReadFile.mjs.map +1 -1
  94. package/lib/internal/_httpFormDataReadNumber.d.ts +11 -0
  95. package/lib/internal/_httpFormDataReadNumber.js +18 -5
  96. package/lib/internal/_httpFormDataReadNumber.js.map +1 -1
  97. package/lib/internal/_httpFormDataReadNumber.mjs +12 -1
  98. package/lib/internal/_httpFormDataReadNumber.mjs.map +1 -1
  99. package/lib/internal/_httpFormDataReadString.d.ts +14 -1
  100. package/lib/internal/_httpFormDataReadString.js +15 -2
  101. package/lib/internal/_httpFormDataReadString.js.map +1 -1
  102. package/lib/internal/_httpFormDataReadString.mjs +14 -1
  103. package/lib/internal/_httpFormDataReadString.mjs.map +1 -1
  104. package/lib/internal/_httpHeaderReadBigint.d.ts +11 -0
  105. package/lib/internal/_httpHeaderReadBigint.js +16 -1
  106. package/lib/internal/_httpHeaderReadBigint.js.map +1 -1
  107. package/lib/internal/_httpHeaderReadBigint.mjs +13 -1
  108. package/lib/internal/_httpHeaderReadBigint.mjs.map +1 -1
  109. package/lib/internal/_httpHeaderReadBoolean.d.ts +12 -0
  110. package/lib/internal/_httpHeaderReadBoolean.js +12 -0
  111. package/lib/internal/_httpHeaderReadBoolean.js.map +1 -1
  112. package/lib/internal/_httpHeaderReadBoolean.mjs +12 -0
  113. package/lib/internal/_httpHeaderReadBoolean.mjs.map +1 -1
  114. package/lib/internal/_httpHeaderReadNumber.d.ts +11 -0
  115. package/lib/internal/_httpHeaderReadNumber.js +16 -1
  116. package/lib/internal/_httpHeaderReadNumber.js.map +1 -1
  117. package/lib/internal/_httpHeaderReadNumber.mjs +13 -1
  118. package/lib/internal/_httpHeaderReadNumber.mjs.map +1 -1
  119. package/lib/internal/_httpParameterReadBigint.d.ts +11 -0
  120. package/lib/internal/_httpParameterReadBigint.js +15 -0
  121. package/lib/internal/_httpParameterReadBigint.js.map +1 -1
  122. package/lib/internal/_httpParameterReadBigint.mjs +12 -0
  123. package/lib/internal/_httpParameterReadBigint.mjs.map +1 -1
  124. package/lib/internal/_httpParameterReadBoolean.d.ts +11 -0
  125. package/lib/internal/_httpParameterReadBoolean.js +11 -0
  126. package/lib/internal/_httpParameterReadBoolean.js.map +1 -1
  127. package/lib/internal/_httpParameterReadBoolean.mjs +11 -0
  128. package/lib/internal/_httpParameterReadBoolean.mjs.map +1 -1
  129. package/lib/internal/_httpParameterReadNumber.d.ts +11 -0
  130. package/lib/internal/_httpParameterReadNumber.js +15 -0
  131. package/lib/internal/_httpParameterReadNumber.js.map +1 -1
  132. package/lib/internal/_httpParameterReadNumber.mjs +12 -0
  133. package/lib/internal/_httpParameterReadNumber.mjs.map +1 -1
  134. package/lib/internal/_httpParameterReadString.d.ts +14 -1
  135. package/lib/internal/_httpParameterReadString.js +14 -1
  136. package/lib/internal/_httpParameterReadString.js.map +1 -1
  137. package/lib/internal/_httpParameterReadString.mjs +14 -1
  138. package/lib/internal/_httpParameterReadString.mjs.map +1 -1
  139. package/lib/internal/_httpQueryParseURLSearchParams.d.ts +14 -0
  140. package/lib/internal/_httpQueryParseURLSearchParams.js +14 -0
  141. package/lib/internal/_httpQueryParseURLSearchParams.js.map +1 -1
  142. package/lib/internal/_httpQueryParseURLSearchParams.mjs +14 -0
  143. package/lib/internal/_httpQueryParseURLSearchParams.mjs.map +1 -1
  144. package/lib/internal/_httpQueryReadArray.d.ts +9 -0
  145. package/lib/internal/_httpQueryReadArray.js +9 -0
  146. package/lib/internal/_httpQueryReadArray.js.map +1 -1
  147. package/lib/internal/_httpQueryReadArray.mjs +9 -0
  148. package/lib/internal/_httpQueryReadArray.mjs.map +1 -1
  149. package/lib/internal/_httpQueryReadBigint.d.ts +11 -0
  150. package/lib/internal/_httpQueryReadBigint.js +19 -1
  151. package/lib/internal/_httpQueryReadBigint.js.map +1 -1
  152. package/lib/internal/_httpQueryReadBigint.mjs +12 -1
  153. package/lib/internal/_httpQueryReadBigint.mjs.map +1 -1
  154. package/lib/internal/_httpQueryReadBoolean.d.ts +12 -0
  155. package/lib/internal/_httpQueryReadBoolean.js +16 -1
  156. package/lib/internal/_httpQueryReadBoolean.js.map +1 -1
  157. package/lib/internal/_httpQueryReadBoolean.mjs +13 -1
  158. package/lib/internal/_httpQueryReadBoolean.mjs.map +1 -1
  159. package/lib/internal/_httpQueryReadNumber.d.ts +11 -0
  160. package/lib/internal/_httpQueryReadNumber.js +19 -1
  161. package/lib/internal/_httpQueryReadNumber.js.map +1 -1
  162. package/lib/internal/_httpQueryReadNumber.mjs +12 -1
  163. package/lib/internal/_httpQueryReadNumber.mjs.map +1 -1
  164. package/lib/internal/_httpQueryReadString.d.ts +14 -1
  165. package/lib/internal/_httpQueryReadString.js +14 -1
  166. package/lib/internal/_httpQueryReadString.js.map +1 -1
  167. package/lib/internal/_httpQueryReadString.mjs +14 -1
  168. package/lib/internal/_httpQueryReadString.mjs.map +1 -1
  169. package/lib/internal/_isBetween.d.ts +8 -0
  170. package/lib/internal/_isBetween.js +8 -0
  171. package/lib/internal/_isBetween.js.map +1 -1
  172. package/lib/internal/_isBetween.mjs +8 -0
  173. package/lib/internal/_isBetween.mjs.map +1 -1
  174. package/lib/internal/_isBigintString.d.ts +11 -0
  175. package/lib/internal/_isBigintString.js +11 -0
  176. package/lib/internal/_isBigintString.js.map +1 -1
  177. package/lib/internal/_isBigintString.mjs +11 -0
  178. package/lib/internal/_isBigintString.mjs.map +1 -1
  179. package/lib/internal/_isFormatByte.d.ts +12 -0
  180. package/lib/internal/_isFormatByte.js +12 -0
  181. package/lib/internal/_isFormatByte.js.map +1 -1
  182. package/lib/internal/_isFormatByte.mjs +12 -0
  183. package/lib/internal/_isFormatByte.mjs.map +1 -1
  184. package/lib/internal/_isFormatDate.d.ts +11 -0
  185. package/lib/internal/_isFormatDate.js +11 -0
  186. package/lib/internal/_isFormatDate.js.map +1 -1
  187. package/lib/internal/_isFormatDate.mjs +11 -0
  188. package/lib/internal/_isFormatDate.mjs.map +1 -1
  189. package/lib/internal/_isFormatDateTime.d.ts +13 -0
  190. package/lib/internal/_isFormatDateTime.js +13 -0
  191. package/lib/internal/_isFormatDateTime.js.map +1 -1
  192. package/lib/internal/_isFormatDateTime.mjs +13 -0
  193. package/lib/internal/_isFormatDateTime.mjs.map +1 -1
  194. package/lib/internal/_isFormatDuration.d.ts +13 -0
  195. package/lib/internal/_isFormatDuration.js +13 -0
  196. package/lib/internal/_isFormatDuration.js.map +1 -1
  197. package/lib/internal/_isFormatDuration.mjs +13 -0
  198. package/lib/internal/_isFormatDuration.mjs.map +1 -1
  199. package/lib/internal/_isFormatEmail.d.ts +13 -0
  200. package/lib/internal/_isFormatEmail.js +13 -0
  201. package/lib/internal/_isFormatEmail.js.map +1 -1
  202. package/lib/internal/_isFormatEmail.mjs +13 -0
  203. package/lib/internal/_isFormatEmail.mjs.map +1 -1
  204. package/lib/internal/_isFormatHostname.d.ts +12 -0
  205. package/lib/internal/_isFormatHostname.js +12 -0
  206. package/lib/internal/_isFormatHostname.js.map +1 -1
  207. package/lib/internal/_isFormatHostname.mjs +12 -0
  208. package/lib/internal/_isFormatHostname.mjs.map +1 -1
  209. package/lib/internal/_isFormatIdnEmail.d.ts +14 -0
  210. package/lib/internal/_isFormatIdnEmail.js +14 -0
  211. package/lib/internal/_isFormatIdnEmail.js.map +1 -1
  212. package/lib/internal/_isFormatIdnEmail.mjs +14 -0
  213. package/lib/internal/_isFormatIdnEmail.mjs.map +1 -1
  214. package/lib/internal/_isFormatIdnHostname.d.ts +14 -0
  215. package/lib/internal/_isFormatIdnHostname.js +14 -0
  216. package/lib/internal/_isFormatIdnHostname.js.map +1 -1
  217. package/lib/internal/_isFormatIdnHostname.mjs +14 -0
  218. package/lib/internal/_isFormatIdnHostname.mjs.map +1 -1
  219. package/lib/internal/_isFormatIpv4.d.ts +11 -0
  220. package/lib/internal/_isFormatIpv4.js +11 -0
  221. package/lib/internal/_isFormatIpv4.js.map +1 -1
  222. package/lib/internal/_isFormatIpv4.mjs +11 -0
  223. package/lib/internal/_isFormatIpv4.mjs.map +1 -1
  224. package/lib/internal/_isFormatIpv6.d.ts +12 -0
  225. package/lib/internal/_isFormatIpv6.js +12 -0
  226. package/lib/internal/_isFormatIpv6.js.map +1 -1
  227. package/lib/internal/_isFormatIpv6.mjs +12 -0
  228. package/lib/internal/_isFormatIpv6.mjs.map +1 -1
  229. package/lib/internal/_isFormatIri.d.ts +11 -0
  230. package/lib/internal/_isFormatIri.js +11 -0
  231. package/lib/internal/_isFormatIri.js.map +1 -1
  232. package/lib/internal/_isFormatIri.mjs +11 -0
  233. package/lib/internal/_isFormatIri.mjs.map +1 -1
  234. package/lib/internal/_isFormatIriReference.d.ts +13 -0
  235. package/lib/internal/_isFormatIriReference.js +13 -0
  236. package/lib/internal/_isFormatIriReference.js.map +1 -1
  237. package/lib/internal/_isFormatIriReference.mjs +13 -0
  238. package/lib/internal/_isFormatIriReference.mjs.map +1 -1
  239. package/lib/internal/_isFormatJsonPointer.d.ts +11 -0
  240. package/lib/internal/_isFormatJsonPointer.js +11 -0
  241. package/lib/internal/_isFormatJsonPointer.js.map +1 -1
  242. package/lib/internal/_isFormatJsonPointer.mjs +11 -0
  243. package/lib/internal/_isFormatJsonPointer.mjs.map +1 -1
  244. package/lib/internal/_isFormatPassword.d.ts +11 -0
  245. package/lib/internal/_isFormatPassword.js +11 -0
  246. package/lib/internal/_isFormatPassword.js.map +1 -1
  247. package/lib/internal/_isFormatPassword.mjs +11 -0
  248. package/lib/internal/_isFormatPassword.mjs.map +1 -1
  249. package/lib/internal/_isFormatRegex.d.ts +11 -0
  250. package/lib/internal/_isFormatRegex.js +11 -0
  251. package/lib/internal/_isFormatRegex.js.map +1 -1
  252. package/lib/internal/_isFormatRegex.mjs +11 -0
  253. package/lib/internal/_isFormatRegex.mjs.map +1 -1
  254. package/lib/internal/_isFormatRelativeJsonPointer.d.ts +11 -0
  255. package/lib/internal/_isFormatRelativeJsonPointer.js +11 -0
  256. package/lib/internal/_isFormatRelativeJsonPointer.js.map +1 -1
  257. package/lib/internal/_isFormatRelativeJsonPointer.mjs +11 -0
  258. package/lib/internal/_isFormatRelativeJsonPointer.mjs.map +1 -1
  259. package/lib/internal/_isFormatTime.d.ts +12 -0
  260. package/lib/internal/_isFormatTime.js +12 -0
  261. package/lib/internal/_isFormatTime.js.map +1 -1
  262. package/lib/internal/_isFormatTime.mjs +12 -0
  263. package/lib/internal/_isFormatTime.mjs.map +1 -1
  264. package/lib/internal/_isFormatUri.d.ts +15 -0
  265. package/lib/internal/_isFormatUri.js +15 -0
  266. package/lib/internal/_isFormatUri.js.map +1 -1
  267. package/lib/internal/_isFormatUri.mjs +15 -0
  268. package/lib/internal/_isFormatUri.mjs.map +1 -1
  269. package/lib/internal/_isFormatUriReference.d.ts +11 -0
  270. package/lib/internal/_isFormatUriReference.js +11 -0
  271. package/lib/internal/_isFormatUriReference.js.map +1 -1
  272. package/lib/internal/_isFormatUriReference.mjs +11 -0
  273. package/lib/internal/_isFormatUriReference.mjs.map +1 -1
  274. package/lib/internal/_isFormatUriTemplate.d.ts +13 -0
  275. package/lib/internal/_isFormatUriTemplate.js +14 -1
  276. package/lib/internal/_isFormatUriTemplate.js.map +1 -1
  277. package/lib/internal/_isFormatUriTemplate.mjs +14 -1
  278. package/lib/internal/_isFormatUriTemplate.mjs.map +1 -1
  279. package/lib/internal/_isFormatUrl.d.ts +15 -0
  280. package/lib/internal/_isFormatUrl.js +15 -0
  281. package/lib/internal/_isFormatUrl.js.map +1 -1
  282. package/lib/internal/_isFormatUrl.mjs +15 -0
  283. package/lib/internal/_isFormatUrl.mjs.map +1 -1
  284. package/lib/internal/_isFormatUuid.d.ts +11 -0
  285. package/lib/internal/_isFormatUuid.js +11 -0
  286. package/lib/internal/_isFormatUuid.js.map +1 -1
  287. package/lib/internal/_isFormatUuid.mjs +11 -0
  288. package/lib/internal/_isFormatUuid.mjs.map +1 -1
  289. package/lib/internal/_isMultipleOf.d.ts +11 -0
  290. package/lib/internal/_isMultipleOf.js +11 -0
  291. package/lib/internal/_isMultipleOf.js.map +1 -1
  292. package/lib/internal/_isMultipleOf.mjs +11 -0
  293. package/lib/internal/_isMultipleOf.mjs.map +1 -1
  294. package/lib/internal/_isTypeFloat.d.ts +9 -0
  295. package/lib/internal/_isTypeFloat.js +9 -0
  296. package/lib/internal/_isTypeFloat.js.map +1 -1
  297. package/lib/internal/_isTypeFloat.mjs +9 -0
  298. package/lib/internal/_isTypeFloat.mjs.map +1 -1
  299. package/lib/internal/_isTypeInt16.d.ts +8 -0
  300. package/lib/internal/_isTypeInt16.js +8 -0
  301. package/lib/internal/_isTypeInt16.js.map +1 -1
  302. package/lib/internal/_isTypeInt16.mjs +8 -0
  303. package/lib/internal/_isTypeInt16.mjs.map +1 -1
  304. package/lib/internal/_isTypeInt32.d.ts +8 -0
  305. package/lib/internal/_isTypeInt32.js +8 -0
  306. package/lib/internal/_isTypeInt32.js.map +1 -1
  307. package/lib/internal/_isTypeInt32.mjs +8 -0
  308. package/lib/internal/_isTypeInt32.mjs.map +1 -1
  309. package/lib/internal/_isTypeInt64.d.ts +11 -0
  310. package/lib/internal/_isTypeInt64.js +11 -0
  311. package/lib/internal/_isTypeInt64.js.map +1 -1
  312. package/lib/internal/_isTypeInt64.mjs +11 -0
  313. package/lib/internal/_isTypeInt64.mjs.map +1 -1
  314. package/lib/internal/_isTypeInt64Bigint.d.ts +8 -0
  315. package/lib/internal/_isTypeInt64Bigint.js +8 -0
  316. package/lib/internal/_isTypeInt64Bigint.js.map +1 -1
  317. package/lib/internal/_isTypeInt64Bigint.mjs +8 -0
  318. package/lib/internal/_isTypeInt64Bigint.mjs.map +1 -1
  319. package/lib/internal/_isTypeInt8.d.ts +8 -0
  320. package/lib/internal/_isTypeInt8.js +8 -0
  321. package/lib/internal/_isTypeInt8.js.map +1 -1
  322. package/lib/internal/_isTypeInt8.mjs +8 -0
  323. package/lib/internal/_isTypeInt8.mjs.map +1 -1
  324. package/lib/internal/_isTypeUint16.d.ts +8 -0
  325. package/lib/internal/_isTypeUint16.js +8 -0
  326. package/lib/internal/_isTypeUint16.js.map +1 -1
  327. package/lib/internal/_isTypeUint16.mjs +8 -0
  328. package/lib/internal/_isTypeUint16.mjs.map +1 -1
  329. package/lib/internal/_isTypeUint32.d.ts +8 -0
  330. package/lib/internal/_isTypeUint32.js +8 -0
  331. package/lib/internal/_isTypeUint32.js.map +1 -1
  332. package/lib/internal/_isTypeUint32.mjs +8 -0
  333. package/lib/internal/_isTypeUint32.mjs.map +1 -1
  334. package/lib/internal/_isTypeUint64.d.ts +11 -0
  335. package/lib/internal/_isTypeUint64.js +11 -0
  336. package/lib/internal/_isTypeUint64.js.map +1 -1
  337. package/lib/internal/_isTypeUint64.mjs +11 -0
  338. package/lib/internal/_isTypeUint64.mjs.map +1 -1
  339. package/lib/internal/_isTypeUint64Bigint.d.ts +8 -0
  340. package/lib/internal/_isTypeUint64Bigint.js +8 -0
  341. package/lib/internal/_isTypeUint64Bigint.js.map +1 -1
  342. package/lib/internal/_isTypeUint64Bigint.mjs +8 -0
  343. package/lib/internal/_isTypeUint64Bigint.mjs.map +1 -1
  344. package/lib/internal/_isTypeUint8.d.ts +8 -0
  345. package/lib/internal/_isTypeUint8.js +8 -0
  346. package/lib/internal/_isTypeUint8.js.map +1 -1
  347. package/lib/internal/_isTypeUint8.mjs +8 -0
  348. package/lib/internal/_isTypeUint8.mjs.map +1 -1
  349. package/lib/internal/_isUniqueItems.d.ts +17 -0
  350. package/lib/internal/_isUniqueItems.js +58 -0
  351. package/lib/internal/_isUniqueItems.js.map +1 -1
  352. package/lib/internal/_isUniqueItems.mjs +41 -0
  353. package/lib/internal/_isUniqueItems.mjs.map +1 -1
  354. package/lib/internal/_jsonStringifyArray.js +2 -0
  355. package/lib/internal/_jsonStringifyArray.js.map +1 -1
  356. package/lib/internal/_jsonStringifyArray.mjs +2 -0
  357. package/lib/internal/_jsonStringifyArray.mjs.map +1 -1
  358. package/lib/internal/_jsonStringifyElement.js +2 -0
  359. package/lib/internal/_jsonStringifyElement.js.map +1 -1
  360. package/lib/internal/_jsonStringifyElement.mjs +2 -0
  361. package/lib/internal/_jsonStringifyElement.mjs.map +1 -1
  362. package/lib/internal/_jsonStringifyNumber.d.ts +9 -0
  363. package/lib/internal/_jsonStringifyNumber.js +9 -0
  364. package/lib/internal/_jsonStringifyNumber.js.map +1 -1
  365. package/lib/internal/_jsonStringifyNumber.mjs +9 -0
  366. package/lib/internal/_jsonStringifyNumber.mjs.map +1 -1
  367. package/lib/internal/_jsonStringifyProperty.js +3 -1
  368. package/lib/internal/_jsonStringifyProperty.js.map +1 -1
  369. package/lib/internal/_jsonStringifyProperty.mjs +3 -1
  370. package/lib/internal/_jsonStringifyProperty.mjs.map +1 -1
  371. package/lib/internal/_jsonStringifyRest.d.ts +11 -0
  372. package/lib/internal/_jsonStringifyRest.js +11 -0
  373. package/lib/internal/_jsonStringifyRest.js.map +1 -1
  374. package/lib/internal/_jsonStringifyRest.mjs +11 -0
  375. package/lib/internal/_jsonStringifyRest.mjs.map +1 -1
  376. package/lib/internal/_jsonStringifyString.d.ts +13 -0
  377. package/lib/internal/_jsonStringifyString.js +13 -0
  378. package/lib/internal/_jsonStringifyString.js.map +1 -1
  379. package/lib/internal/_jsonStringifyString.mjs +13 -0
  380. package/lib/internal/_jsonStringifyString.mjs.map +1 -1
  381. package/lib/internal/_jsonStringifyTail.d.ts +8 -0
  382. package/lib/internal/_jsonStringifyTail.js +8 -0
  383. package/lib/internal/_jsonStringifyTail.js.map +1 -1
  384. package/lib/internal/_jsonStringifyTail.mjs +8 -0
  385. package/lib/internal/_jsonStringifyTail.mjs.map +1 -1
  386. package/lib/internal/_llmApplicationFinalize.d.ts +13 -0
  387. package/lib/internal/_llmApplicationFinalize.js +13 -0
  388. package/lib/internal/_llmApplicationFinalize.js.map +1 -1
  389. package/lib/internal/_llmApplicationFinalize.mjs +13 -0
  390. package/lib/internal/_llmApplicationFinalize.mjs.map +1 -1
  391. package/lib/internal/_notationAny.d.ts +14 -0
  392. package/lib/internal/_notationAny.js +14 -0
  393. package/lib/internal/_notationAny.js.map +1 -1
  394. package/lib/internal/_notationAny.mjs +14 -0
  395. package/lib/internal/_notationAny.mjs.map +1 -1
  396. package/lib/internal/_notationAssign.d.ts +12 -0
  397. package/lib/internal/_notationAssign.js +12 -0
  398. package/lib/internal/_notationAssign.js.map +1 -1
  399. package/lib/internal/_notationAssign.mjs +12 -0
  400. package/lib/internal/_notationAssign.mjs.map +1 -1
  401. package/lib/internal/_notationKebab.d.ts +9 -0
  402. package/lib/internal/_notationKebab.js +9 -0
  403. package/lib/internal/_notationKebab.js.map +1 -1
  404. package/lib/internal/_notationKebab.mjs +9 -0
  405. package/lib/internal/_notationKebab.mjs.map +1 -1
  406. package/lib/internal/_notationKeyCollision.d.ts +8 -0
  407. package/lib/internal/_notationKeyCollision.js +8 -0
  408. package/lib/internal/_notationKeyCollision.js.map +1 -1
  409. package/lib/internal/_notationKeyCollision.mjs +8 -0
  410. package/lib/internal/_notationKeyCollision.mjs.map +1 -1
  411. package/lib/internal/_notationSnake.d.ts +12 -0
  412. package/lib/internal/_notationSnake.js +12 -0
  413. package/lib/internal/_notationSnake.js.map +1 -1
  414. package/lib/internal/_notationSnake.mjs +12 -0
  415. package/lib/internal/_notationSnake.mjs.map +1 -1
  416. package/lib/internal/_parseLlmArguments.d.ts +12 -0
  417. package/lib/internal/_parseLlmArguments.js +12 -0
  418. package/lib/internal/_parseLlmArguments.js.map +1 -1
  419. package/lib/internal/_parseLlmArguments.mjs +12 -0
  420. package/lib/internal/_parseLlmArguments.mjs.map +1 -1
  421. package/lib/internal/_plainCloneAny.d.ts +15 -0
  422. package/lib/internal/_plainCloneAny.js +15 -0
  423. package/lib/internal/_plainCloneAny.js.map +1 -1
  424. package/lib/internal/_plainCloneAny.mjs +15 -0
  425. package/lib/internal/_plainCloneAny.mjs.map +1 -1
  426. package/lib/internal/_randomArray.d.ts +19 -1
  427. package/lib/internal/_randomArray.js +32 -14
  428. package/lib/internal/_randomArray.js.map +1 -1
  429. package/lib/internal/_randomArray.mjs +24 -6
  430. package/lib/internal/_randomArray.mjs.map +1 -1
  431. package/lib/internal/_randomBigint.d.ts +17 -1
  432. package/lib/internal/_randomBigint.js +95 -2
  433. package/lib/internal/_randomBigint.js.map +1 -1
  434. package/lib/internal/_randomBigint.mjs +75 -2
  435. package/lib/internal/_randomBigint.mjs.map +1 -1
  436. package/lib/internal/_randomBoolean.d.ts +8 -0
  437. package/lib/internal/_randomBoolean.js +8 -0
  438. package/lib/internal/_randomBoolean.js.map +1 -1
  439. package/lib/internal/_randomBoolean.mjs +8 -0
  440. package/lib/internal/_randomBoolean.mjs.map +1 -1
  441. package/lib/internal/_randomFormatByte.d.ts +8 -0
  442. package/lib/internal/_randomFormatByte.js +8 -0
  443. package/lib/internal/_randomFormatByte.js.map +1 -1
  444. package/lib/internal/_randomFormatByte.mjs +8 -0
  445. package/lib/internal/_randomFormatByte.mjs.map +1 -1
  446. package/lib/internal/_randomFormatDate.d.ts +10 -0
  447. package/lib/internal/_randomFormatDate.js +10 -0
  448. package/lib/internal/_randomFormatDate.js.map +1 -1
  449. package/lib/internal/_randomFormatDate.mjs +10 -0
  450. package/lib/internal/_randomFormatDate.mjs.map +1 -1
  451. package/lib/internal/_randomFormatDatetime.d.ts +10 -0
  452. package/lib/internal/_randomFormatDatetime.js +10 -0
  453. package/lib/internal/_randomFormatDatetime.js.map +1 -1
  454. package/lib/internal/_randomFormatDatetime.mjs +10 -0
  455. package/lib/internal/_randomFormatDatetime.mjs.map +1 -1
  456. package/lib/internal/_randomFormatDuration.d.ts +8 -0
  457. package/lib/internal/_randomFormatDuration.js +8 -0
  458. package/lib/internal/_randomFormatDuration.js.map +1 -1
  459. package/lib/internal/_randomFormatDuration.mjs +8 -0
  460. package/lib/internal/_randomFormatDuration.mjs.map +1 -1
  461. package/lib/internal/_randomFormatEmail.d.ts +8 -0
  462. package/lib/internal/_randomFormatEmail.js +8 -0
  463. package/lib/internal/_randomFormatEmail.js.map +1 -1
  464. package/lib/internal/_randomFormatEmail.mjs +8 -0
  465. package/lib/internal/_randomFormatEmail.mjs.map +1 -1
  466. package/lib/internal/_randomFormatHostname.d.ts +15 -1
  467. package/lib/internal/_randomFormatHostname.js +15 -1
  468. package/lib/internal/_randomFormatHostname.js.map +1 -1
  469. package/lib/internal/_randomFormatHostname.mjs +15 -1
  470. package/lib/internal/_randomFormatHostname.mjs.map +1 -1
  471. package/lib/internal/_randomFormatIdnEmail.d.ts +13 -0
  472. package/lib/internal/_randomFormatIdnEmail.js +13 -0
  473. package/lib/internal/_randomFormatIdnEmail.js.map +1 -1
  474. package/lib/internal/_randomFormatIdnEmail.mjs +13 -0
  475. package/lib/internal/_randomFormatIdnEmail.mjs.map +1 -1
  476. package/lib/internal/_randomFormatIdnHostname.d.ts +12 -0
  477. package/lib/internal/_randomFormatIdnHostname.js +12 -0
  478. package/lib/internal/_randomFormatIdnHostname.js.map +1 -1
  479. package/lib/internal/_randomFormatIdnHostname.mjs +12 -0
  480. package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -1
  481. package/lib/internal/_randomFormatIpv4.d.ts +8 -0
  482. package/lib/internal/_randomFormatIpv4.js +8 -0
  483. package/lib/internal/_randomFormatIpv4.js.map +1 -1
  484. package/lib/internal/_randomFormatIpv4.mjs +8 -0
  485. package/lib/internal/_randomFormatIpv4.mjs.map +1 -1
  486. package/lib/internal/_randomFormatIpv6.d.ts +8 -0
  487. package/lib/internal/_randomFormatIpv6.js +8 -0
  488. package/lib/internal/_randomFormatIpv6.js.map +1 -1
  489. package/lib/internal/_randomFormatIpv6.mjs +8 -0
  490. package/lib/internal/_randomFormatIpv6.mjs.map +1 -1
  491. package/lib/internal/_randomFormatIri.d.ts +11 -0
  492. package/lib/internal/_randomFormatIri.js +11 -0
  493. package/lib/internal/_randomFormatIri.js.map +1 -1
  494. package/lib/internal/_randomFormatIri.mjs +11 -0
  495. package/lib/internal/_randomFormatIri.mjs.map +1 -1
  496. package/lib/internal/_randomFormatIriReference.d.ts +12 -0
  497. package/lib/internal/_randomFormatIriReference.js +12 -0
  498. package/lib/internal/_randomFormatIriReference.js.map +1 -1
  499. package/lib/internal/_randomFormatIriReference.mjs +12 -0
  500. package/lib/internal/_randomFormatIriReference.mjs.map +1 -1
  501. package/lib/internal/_randomFormatJsonPointer.d.ts +12 -0
  502. package/lib/internal/_randomFormatJsonPointer.js +12 -0
  503. package/lib/internal/_randomFormatJsonPointer.js.map +1 -1
  504. package/lib/internal/_randomFormatJsonPointer.mjs +12 -0
  505. package/lib/internal/_randomFormatJsonPointer.mjs.map +1 -1
  506. package/lib/internal/_randomFormatPassword.d.ts +13 -0
  507. package/lib/internal/_randomFormatPassword.js +13 -0
  508. package/lib/internal/_randomFormatPassword.js.map +1 -1
  509. package/lib/internal/_randomFormatPassword.mjs +13 -0
  510. package/lib/internal/_randomFormatPassword.mjs.map +1 -1
  511. package/lib/internal/_randomFormatRegex.d.ts +8 -0
  512. package/lib/internal/_randomFormatRegex.js +8 -0
  513. package/lib/internal/_randomFormatRegex.js.map +1 -1
  514. package/lib/internal/_randomFormatRegex.mjs +8 -0
  515. package/lib/internal/_randomFormatRegex.mjs.map +1 -1
  516. package/lib/internal/_randomFormatRelativeJsonPointer.d.ts +8 -0
  517. package/lib/internal/_randomFormatRelativeJsonPointer.js +8 -0
  518. package/lib/internal/_randomFormatRelativeJsonPointer.js.map +1 -1
  519. package/lib/internal/_randomFormatRelativeJsonPointer.mjs +8 -0
  520. package/lib/internal/_randomFormatRelativeJsonPointer.mjs.map +1 -1
  521. package/lib/internal/_randomFormatTime.d.ts +13 -0
  522. package/lib/internal/_randomFormatTime.js +13 -0
  523. package/lib/internal/_randomFormatTime.js.map +1 -1
  524. package/lib/internal/_randomFormatTime.mjs +13 -0
  525. package/lib/internal/_randomFormatTime.mjs.map +1 -1
  526. package/lib/internal/_randomFormatUri.d.ts +12 -0
  527. package/lib/internal/_randomFormatUri.js +12 -0
  528. package/lib/internal/_randomFormatUri.js.map +1 -1
  529. package/lib/internal/_randomFormatUri.mjs +12 -0
  530. package/lib/internal/_randomFormatUri.mjs.map +1 -1
  531. package/lib/internal/_randomFormatUriReference.d.ts +12 -0
  532. package/lib/internal/_randomFormatUriReference.js +12 -0
  533. package/lib/internal/_randomFormatUriReference.js.map +1 -1
  534. package/lib/internal/_randomFormatUriReference.mjs +12 -0
  535. package/lib/internal/_randomFormatUriReference.mjs.map +1 -1
  536. package/lib/internal/_randomFormatUriTemplate.d.ts +12 -0
  537. package/lib/internal/_randomFormatUriTemplate.js +12 -0
  538. package/lib/internal/_randomFormatUriTemplate.js.map +1 -1
  539. package/lib/internal/_randomFormatUriTemplate.mjs +12 -0
  540. package/lib/internal/_randomFormatUriTemplate.mjs.map +1 -1
  541. package/lib/internal/_randomFormatUrl.d.ts +12 -0
  542. package/lib/internal/_randomFormatUrl.js +12 -0
  543. package/lib/internal/_randomFormatUrl.js.map +1 -1
  544. package/lib/internal/_randomFormatUrl.mjs +12 -0
  545. package/lib/internal/_randomFormatUrl.mjs.map +1 -1
  546. package/lib/internal/_randomFormatUuid.d.ts +13 -0
  547. package/lib/internal/_randomFormatUuid.js +13 -0
  548. package/lib/internal/_randomFormatUuid.js.map +1 -1
  549. package/lib/internal/_randomFormatUuid.mjs +13 -0
  550. package/lib/internal/_randomFormatUuid.mjs.map +1 -1
  551. package/lib/internal/_randomInteger.d.ts +17 -1
  552. package/lib/internal/_randomInteger.js +74 -23
  553. package/lib/internal/_randomInteger.js.map +1 -1
  554. package/lib/internal/_randomInteger.mjs +62 -23
  555. package/lib/internal/_randomInteger.mjs.map +1 -1
  556. package/lib/internal/_randomMultiple.d.ts +18 -1
  557. package/lib/internal/_randomMultiple.js +30 -13
  558. package/lib/internal/_randomMultiple.js.map +1 -1
  559. package/lib/internal/_randomMultiple.mjs +30 -13
  560. package/lib/internal/_randomMultiple.mjs.map +1 -1
  561. package/lib/internal/_randomNumber.d.ts +17 -1
  562. package/lib/internal/_randomNumber.js +67 -18
  563. package/lib/internal/_randomNumber.js.map +1 -1
  564. package/lib/internal/_randomNumber.mjs +59 -22
  565. package/lib/internal/_randomNumber.mjs.map +1 -1
  566. package/lib/internal/_randomPattern.d.ts +12 -0
  567. package/lib/internal/_randomPattern.js +12 -0
  568. package/lib/internal/_randomPattern.js.map +1 -1
  569. package/lib/internal/_randomPattern.mjs +12 -0
  570. package/lib/internal/_randomPattern.mjs.map +1 -1
  571. package/lib/internal/_randomPick.d.ts +13 -1
  572. package/lib/internal/_randomPick.js +15 -3
  573. package/lib/internal/_randomPick.js.map +1 -1
  574. package/lib/internal/_randomPick.mjs +15 -3
  575. package/lib/internal/_randomPick.mjs.map +1 -1
  576. package/lib/internal/_randomString.d.ts +15 -1
  577. package/lib/internal/_randomString.js +19 -5
  578. package/lib/internal/_randomString.js.map +1 -1
  579. package/lib/internal/_randomString.mjs +19 -5
  580. package/lib/internal/_randomString.mjs.map +1 -1
  581. package/lib/internal/_randomStringLength.d.ts +30 -1
  582. package/lib/internal/_randomStringLength.js +23 -1
  583. package/lib/internal/_randomStringLength.js.map +1 -1
  584. package/lib/internal/_randomStringLength.mjs +23 -1
  585. package/lib/internal/_randomStringLength.mjs.map +1 -1
  586. package/lib/internal/_stringLength.d.ts +11 -0
  587. package/lib/internal/_stringLength.js +11 -0
  588. package/lib/internal/_stringLength.js.map +1 -1
  589. package/lib/internal/_stringLength.mjs +11 -0
  590. package/lib/internal/_stringLength.mjs.map +1 -1
  591. package/lib/internal/_stringLengthGte.d.ts +11 -0
  592. package/lib/internal/_stringLengthGte.js +11 -0
  593. package/lib/internal/_stringLengthGte.js.map +1 -1
  594. package/lib/internal/_stringLengthGte.mjs +11 -0
  595. package/lib/internal/_stringLengthGte.mjs.map +1 -1
  596. package/lib/internal/_stringLengthLte.d.ts +11 -0
  597. package/lib/internal/_stringLengthLte.js +11 -0
  598. package/lib/internal/_stringLengthLte.js.map +1 -1
  599. package/lib/internal/_stringLengthLte.mjs +11 -0
  600. package/lib/internal/_stringLengthLte.mjs.map +1 -1
  601. package/lib/internal/_throwTypeGuardError.d.ts +9 -0
  602. package/lib/internal/_throwTypeGuardError.js +9 -0
  603. package/lib/internal/_throwTypeGuardError.js.map +1 -1
  604. package/lib/internal/_throwTypeGuardError.mjs +9 -0
  605. package/lib/internal/_throwTypeGuardError.mjs.map +1 -1
  606. package/lib/internal/_validateReport.d.ts +15 -0
  607. package/lib/internal/_validateReport.js +15 -0
  608. package/lib/internal/_validateReport.js.map +1 -1
  609. package/lib/internal/_validateReport.mjs +15 -0
  610. package/lib/internal/_validateReport.mjs.map +1 -1
  611. package/lib/internal/private/__notationRename.d.ts +5 -0
  612. package/lib/internal/private/__notationRename.js +5 -0
  613. package/lib/internal/private/__notationRename.js.map +1 -1
  614. package/lib/internal/private/__notationRename.mjs +5 -0
  615. package/lib/internal/private/__notationRename.mjs.map +1 -1
  616. package/lib/internal/private/__randomComposition.d.ts +27 -3
  617. package/lib/internal/private/__randomComposition.js +27 -3
  618. package/lib/internal/private/__randomComposition.js.map +1 -1
  619. package/lib/internal/private/__randomComposition.mjs +27 -3
  620. package/lib/internal/private/__randomComposition.mjs.map +1 -1
  621. package/lib/internal/private/__randomEpoch.d.ts +15 -0
  622. package/lib/internal/private/__randomEpoch.js +5 -0
  623. package/lib/internal/private/__randomEpoch.js.map +1 -1
  624. package/lib/internal/private/__randomEpoch.mjs +5 -0
  625. package/lib/internal/private/__randomEpoch.mjs.map +1 -1
  626. package/lib/json.d.ts +49 -14
  627. package/lib/json.js.map +1 -1
  628. package/lib/json.mjs.map +1 -1
  629. package/lib/llm.d.ts +41 -25
  630. package/lib/llm.js.map +1 -1
  631. package/lib/llm.mjs.map +1 -1
  632. package/lib/module.d.ts +1 -702
  633. package/lib/module.js +1 -101
  634. package/lib/module.js.map +1 -1
  635. package/lib/module.mjs +1 -81
  636. package/lib/module.mjs.map +1 -1
  637. package/lib/notations.d.ts +60 -0
  638. package/lib/notations.js.map +1 -1
  639. package/lib/notations.mjs.map +1 -1
  640. package/lib/plain.d.ts +38 -0
  641. package/lib/plain.js.map +1 -1
  642. package/lib/plain.mjs.map +1 -1
  643. package/lib/protobuf.d.ts +38 -4
  644. package/lib/protobuf.js.map +1 -1
  645. package/lib/protobuf.mjs.map +1 -1
  646. package/lib/reflect.d.ts +16 -12
  647. package/lib/reflect.js.map +1 -1
  648. package/lib/reflect.mjs.map +1 -1
  649. package/lib/transform.d.ts +17 -0
  650. package/lib/transform.js +17 -0
  651. package/lib/transform.js.map +1 -1
  652. package/lib/transform.mjs +17 -0
  653. package/lib/transform.mjs.map +1 -1
  654. package/native/adapter/adapter.go +28 -3
  655. package/native/adapter/adapter_options_branch_matrix_test.go +39 -34
  656. package/native/adapter/plugin_options.go +5 -0
  657. package/native/adapter/plugin_options_payload_matrix_test.go +5 -0
  658. package/native/cmd/ttsc-typia/any_array_type_tags_transform_test.go +38 -131
  659. package/native/cmd/ttsc-typia/assert_guard_factory_contract_test.go +31 -58
  660. package/native/cmd/ttsc-typia/atomic_intersection_schema_transform_test.go +28 -79
  661. package/native/cmd/ttsc-typia/bigint_literal_precision_transform_test.go +16 -82
  662. package/native/cmd/ttsc-typia/build_diagnostics_preserve_details_test.go +41 -0
  663. package/native/cmd/ttsc-typia/build_no_emit_preserves_analysis_options_test.go +9 -10
  664. package/native/cmd/ttsc-typia/build_no_emit_transform_diagnostics_test.go +9 -7
  665. package/native/cmd/ttsc-typia/build_plugin_options_come_from_payload_test.go +9 -11
  666. package/native/cmd/ttsc-typia/build_transactional_emit_success_test.go +9 -7
  667. package/native/cmd/ttsc-typia/build_transform_failure_atomicity_test.go +9 -7
  668. package/native/cmd/ttsc-typia/callable_interface_function_semantics_transform_test.go +9 -164
  669. package/native/cmd/ttsc-typia/callable_type_literal_boundaries_transform_test.go +20 -580
  670. package/native/cmd/ttsc-typia/compare_equal_cover_transform_test.go +10 -127
  671. package/native/cmd/ttsc-typia/compare_functional_union_membership_transform_test.go +93 -289
  672. package/native/cmd/ttsc-typia/compare_less_nan_transform_test.go +15 -66
  673. package/native/cmd/ttsc-typia/compare_nondiscriminable_union_transform_test.go +9 -221
  674. package/native/cmd/ttsc-typia/create_assert_error_factory_arity_test.go +11 -82
  675. package/native/cmd/ttsc-typia/default_library_spoof_native_identity_transform_test.go +10 -100
  676. package/native/cmd/ttsc-typia/demo_rejects_bad_flag_test.go +15 -14
  677. package/native/cmd/ttsc-typia/dependency_collector_virtual_scheme_test.go +8 -17
  678. package/native/cmd/ttsc-typia/dynamic_key_path_helper_alias_transform_test.go +10 -70
  679. package/native/cmd/ttsc-typia/dynamic_key_tags_transform_test.go +9 -120
  680. package/native/cmd/ttsc-typia/exact_optional_family_emission_contract_test.go +252 -0
  681. package/native/cmd/ttsc-typia/exclude_type_tag_transform_test.go +10 -102
  682. package/native/cmd/ttsc-typia/fixture_directories_test.go +154 -0
  683. package/native/cmd/ttsc-typia/functional_promised_type_transform_test.go +11 -104
  684. package/native/cmd/ttsc-typia/functional_receiver_transform_test.go +16 -124
  685. package/native/cmd/ttsc-typia/inline_type_display_name_transform_test.go +10 -183
  686. package/native/cmd/ttsc-typia/instance_union_create_is_transform_test.go +11 -88
  687. package/native/cmd/ttsc-typia/intersection_nonsensible_backstop_transform_test.go +17 -30
  688. package/native/cmd/ttsc-typia/intersection_union_validation_transform_test.go +10 -404
  689. package/native/cmd/ttsc-typia/json_application_alias_function_validation_transform_test.go +10 -22
  690. package/native/cmd/ttsc-typia/json_is_stringify_scoped_checker_transform_test.go +10 -111
  691. package/native/cmd/ttsc-typia/json_schema_dynamic_key_determinism_transform_test.go +25 -110
  692. package/native/cmd/ttsc-typia/json_schema_nonsensible_intersection_diagnostic_test.go +10 -22
  693. package/native/cmd/ttsc-typia/json_stringify_constant_atomic_union_transform_test.go +10 -101
  694. package/native/cmd/ttsc-typia/lib_replacement_native_identity_transform_test.go +11 -98
  695. package/native/cmd/ttsc-typia/llm_evaluation_accepts_property_probability_test.go +5 -0
  696. package/native/cmd/ttsc-typia/llm_evaluation_accepts_unselected_source_probability_test.go +5 -0
  697. package/native/cmd/ttsc-typia/llm_evaluation_complete_object_shape_test.go +5 -0
  698. package/native/cmd/ttsc-typia/llm_evaluation_emits_configured_decimals_test.go +53 -0
  699. package/native/cmd/ttsc-typia/llm_evaluation_ignores_declaration_probability_without_call_test.go +5 -0
  700. package/native/cmd/ttsc-typia/llm_evaluation_plan_emission_transform_test.go +5 -0
  701. package/native/cmd/ttsc-typia/llm_evaluation_program_scan_dependencies_test.go +5 -0
  702. package/native/cmd/ttsc-typia/llm_evaluation_rejects_alias_comment_test.go +5 -0
  703. package/native/cmd/ttsc-typia/llm_evaluation_rejects_alias_refinement_test.go +5 -0
  704. package/native/cmd/ttsc-typia/llm_evaluation_rejects_computed_method_probability_test.go +5 -0
  705. package/native/cmd/ttsc-typia/llm_evaluation_rejects_conflicting_boolean_tags_test.go +52 -0
  706. package/native/cmd/ttsc-typia/llm_evaluation_rejects_finer_than_probability_decimals_test.go +100 -0
  707. package/native/cmd/ttsc-typia/llm_evaluation_rejects_imported_declaration_probability_test.go +6 -1
  708. package/native/cmd/ttsc-typia/llm_evaluation_rejects_invalid_config_test.go +51 -0
  709. package/native/cmd/ttsc-typia/llm_evaluation_rejects_invalid_probability_test.go +14 -0
  710. package/native/cmd/ttsc-typia/llm_evaluation_rejects_oversized_questions_test.go +79 -0
  711. package/native/cmd/ttsc-typia/llm_evaluation_rejects_refinements_test.go +5 -0
  712. package/native/cmd/ttsc-typia/llm_evaluation_rejects_shared_values_test.go +128 -0
  713. package/native/cmd/ttsc-typia/llm_evaluation_rejects_undecidable_types_test.go +6 -12
  714. package/native/cmd/ttsc-typia/local_function_named_like_typia_operation_transform_test.go +9 -17
  715. package/native/cmd/ttsc-typia/metadata_type_tag_sole_malformed_diagnostic_test.go +10 -28
  716. package/native/cmd/ttsc-typia/native_collection_identity_is_transform_test.go +9 -129
  717. package/native/cmd/ttsc-typia/native_generic_name_guard_is_transform_test.go +10 -95
  718. package/native/cmd/ttsc-typia/native_name_collision_is_transform_test.go +9 -122
  719. package/native/cmd/ttsc-typia/native_named_intersection_union_transform_test.go +10 -135
  720. package/native/cmd/ttsc-typia/node_buffer_native_exports_is_transform_test.go +18 -234
  721. package/native/cmd/ttsc-typia/non_trailing_rest_tuple_transform_test.go +19 -71
  722. package/native/cmd/ttsc-typia/notation_kebab_case_transform_test.go +10 -109
  723. package/native/cmd/ttsc-typia/notation_pascal_case_transform_test.go +10 -142
  724. package/native/cmd/ttsc-typia/notation_unicode_key_transform_test.go +9 -201
  725. package/native/cmd/ttsc-typia/nullable_primitive_property_is_transform_test.go +10 -102
  726. package/native/cmd/ttsc-typia/object_custom_tag_validation_transform_test.go +10 -112
  727. package/native/cmd/ttsc-typia/object_union_explicit_pointer_schema_transform_test.go +68 -114
  728. package/native/cmd/ttsc-typia/package_declaration_native_identity_is_transform_test.go +10 -114
  729. package/native/cmd/ttsc-typia/pattern_line_terminator_escape_transform_test.go +45 -123
  730. package/native/cmd/ttsc-typia/plain_classify_class_ref_transform_test.go +12 -97
  731. package/native/cmd/ttsc-typia/plain_classify_container_seed_transform_test.go +12 -74
  732. package/native/cmd/ttsc-typia/plain_classify_cross_module_extra_transform_test.go +15 -91
  733. package/native/cmd/ttsc-typia/plain_classify_cross_module_transform_test.go +40 -0
  734. package/native/cmd/ttsc-typia/plain_classify_deep_nested_transform_test.go +12 -103
  735. package/native/cmd/ttsc-typia/plain_classify_field_copy_transform_test.go +10 -120
  736. package/native/cmd/ttsc-typia/plain_classify_from_new_transform_test.go +12 -255
  737. package/native/cmd/ttsc-typia/plain_classify_generic_private_rejected_test.go +30 -0
  738. package/native/cmd/ttsc-typia/plain_classify_inherited_private_rejected_test.go +33 -0
  739. package/native/cmd/ttsc-typia/plain_classify_named_interface_field_copy_test.go +33 -0
  740. package/native/cmd/ttsc-typia/plain_classify_private_field_rejected_test.go +36 -0
  741. package/native/cmd/ttsc-typia/plain_classify_recursive_anonymous_object_test.go +30 -0
  742. package/native/cmd/ttsc-typia/plain_classify_self_ref_private_rejected_test.go +33 -0
  743. package/native/cmd/ttsc-typia/plain_classify_static_private_allowed_test.go +35 -0
  744. package/native/cmd/ttsc-typia/plain_classify_strategy_edges_transform_test.go +16 -291
  745. package/native/cmd/ttsc-typia/plain_classify_unbound_anonymous_class_test.go +35 -0
  746. package/native/cmd/ttsc-typia/plain_classify_union_transform_test.go +12 -73
  747. package/native/cmd/ttsc-typia/plain_classify_validated_union_transform_test.go +11 -146
  748. package/native/cmd/ttsc-typia/plain_clone_bigint_wrapper_transform_test.go +10 -80
  749. package/native/cmd/ttsc-typia/private_field_filter_is_transform_test.go +10 -137
  750. package/native/cmd/ttsc-typia/project_catalog_transform_coverage_test.go +4 -0
  751. package/native/cmd/ttsc-typia/project_dependencies_barrel_reexport_transform_test.go +6 -10
  752. package/native/cmd/ttsc-typia/project_dependencies_callee_argument_transform_test.go +6 -10
  753. package/native/cmd/ttsc-typia/project_dependencies_callee_barrel_transform_test.go +6 -10
  754. package/native/cmd/ttsc-typia/project_dependencies_callee_inference_transform_test.go +6 -10
  755. package/native/cmd/ttsc-typia/project_dependencies_callee_shape_transform_test.go +6 -10
  756. package/native/cmd/ttsc-typia/project_dependencies_callee_untransformed_barrel_transform_test.go +6 -10
  757. package/native/cmd/ttsc-typia/project_dependencies_collapsed_alias_transform_test.go +6 -10
  758. package/native/cmd/ttsc-typia/project_dependencies_complete_diagnostic_transform_test.go +7 -11
  759. package/native/cmd/ttsc-typia/project_dependencies_complete_envelope_transform_test.go +6 -10
  760. package/native/cmd/ttsc-typia/project_dependencies_complete_inferred_type_transform_test.go +6 -10
  761. package/native/cmd/ttsc-typia/project_dependencies_complete_replaced_library_transform_test.go +6 -10
  762. package/native/cmd/ttsc-typia/project_dependencies_complete_untouched_reprint_transform_test.go +6 -10
  763. package/native/cmd/ttsc-typia/project_dependencies_computed_key_transform_test.go +6 -10
  764. package/native/cmd/ttsc-typia/project_dependencies_custom_lib_name_transform_test.go +6 -10
  765. package/native/cmd/ttsc-typia/project_dependencies_default_barrel_transform_test.go +6 -10
  766. package/native/cmd/ttsc-typia/project_dependencies_empty_heritage_transform_test.go +6 -10
  767. package/native/cmd/ttsc-typia/project_dependencies_enum_member_value_transform_test.go +6 -10
  768. package/native/cmd/ttsc-typia/project_dependencies_envelope_transform_test.go +6 -10
  769. package/native/cmd/ttsc-typia/project_dependencies_index_signature_alias_transform_test.go +9 -12
  770. package/native/cmd/ttsc-typia/project_dependencies_inferred_declaration_transform_test.go +6 -10
  771. package/native/cmd/ttsc-typia/project_dependencies_jsdoc_typedef_transform_test.go +6 -10
  772. package/native/cmd/ttsc-typia/project_dependencies_local_reexport_transform_test.go +6 -10
  773. package/native/cmd/ttsc-typia/project_dependencies_named_tuple_member_transform_test.go +6 -10
  774. package/native/cmd/ttsc-typia/project_dependencies_qualified_barrel_transform_test.go +6 -10
  775. package/native/cmd/ttsc-typia/project_dependencies_signature_alias_transform_test.go +6 -10
  776. package/native/cmd/ttsc-typia/project_dependencies_star_barrel_transform_test.go +6 -10
  777. package/native/cmd/ttsc-typia/project_dependencies_type_parameter_default_transform_test.go +6 -10
  778. package/native/cmd/ttsc-typia/project_reference_graph_envelope_transform_test.go +10 -32
  779. package/native/cmd/ttsc-typia/protobuf_diagnostic_code_transform_test.go +9 -31
  780. package/native/cmd/ttsc-typia/protobuf_is_encode_finite_number_transform_test.go +10 -23
  781. package/native/cmd/ttsc-typia/protobuf_object_generic_union_encode_transform_test.go +12 -114
  782. package/native/cmd/ttsc-typia/protobuf_sequence_field_numbers_transform_test.go +9 -26
  783. package/native/cmd/ttsc-typia/random_recursive_min_items_diagnostic_test.go +26 -22
  784. package/native/cmd/ttsc-typia/random_unsatisfiable_recursive_diagnostic_test.go +10 -26
  785. package/native/cmd/ttsc-typia/recursive_conditional_alias_name_transform_test.go +10 -185
  786. package/native/cmd/ttsc-typia/recursive_visit_tracking_transform_test.go +10 -291
  787. package/native/cmd/ttsc-typia/reflect_literals_non_literal_rejection_transform_test.go +9 -28
  788. package/native/cmd/ttsc-typia/schema_dts_role_transform_test.go +11 -206
  789. package/native/cmd/ttsc-typia/schema_literal_helpers_test.go +110 -0
  790. package/native/cmd/ttsc-typia/shadowed_typia_module_declaration_diagnostic_test.go +9 -17
  791. package/native/cmd/ttsc-typia/shallow_depth_argument_error_transform_test.go +10 -24
  792. package/native/cmd/ttsc-typia/shallow_depth_limit_transform_test.go +10 -105
  793. package/native/cmd/ttsc-typia/shallow_nested_depth_transform_test.go +10 -24
  794. package/native/cmd/ttsc-typia/symbol_key_member_filter_transform_test.go +10 -147
  795. package/native/cmd/ttsc-typia/template_interpolation_type_tags_transform_test.go +10 -272
  796. package/native/cmd/ttsc-typia/template_literal_type_tags_transform_test.go +10 -92
  797. package/native/cmd/ttsc-typia/transform_diagnostics_preserve_details_test.go +9 -86
  798. package/native/cmd/ttsc-typia/transform_fixtures_emit_coverage_test.go +48 -29
  799. package/native/cmd/ttsc-typia/transform_helpers_test.go +41 -360
  800. package/native/cmd/ttsc-typia/transform_plugin_options_come_from_payload_test.go +9 -12
  801. package/native/cmd/ttsc-typia/transform_project_diagnostics_preserve_details_test.go +54 -0
  802. package/native/cmd/ttsc-typia/transform_single_file_failure_atomicity_test.go +9 -11
  803. package/native/cmd/ttsc-typia/transform_single_file_failure_writes_no_stdout_test.go +9 -8
  804. package/native/cmd/ttsc-typia/transform_single_file_js_distinguishes_same_basename_sources_test.go +9 -14
  805. package/native/cmd/ttsc-typia/transform_single_file_js_locates_output_across_layouts_test.go +9 -16
  806. package/native/cmd/ttsc-typia/transform_single_file_success_publishes_artifact_test.go +9 -9
  807. package/native/cmd/ttsc-typia/transform_wasm_host_argv_reports_diagnostics_test.go +9 -10
  808. package/native/cmd/ttsc-typia/tuple_optional_compare_clone_transform_test.go +33 -181
  809. package/native/cmd/ttsc-typia/typia_diagnostic_formatting_test.go +46 -0
  810. package/native/cmd/ttsc-typia/uri_template_comment_dotted_variable_transform_test.go +57 -0
  811. package/native/cmd/ttsc-typia/user_global_native_identity_transform_test.go +16 -202
  812. package/native/cmd/ttsc-typia/wrong_type_tag_target_diagnostic_test.go +12 -12
  813. package/native/core/context/EmitFactory.go +10 -0
  814. package/native/core/context/IProgrammerProps.go +21 -4
  815. package/native/core/context/ITransformOptions.go +22 -4
  816. package/native/core/context/ITypiaContext.go +61 -11
  817. package/native/core/context/ImportProgrammer.go +144 -6
  818. package/native/core/context/TransformerError.go +74 -7
  819. package/native/core/context/import_programmer_default_type_only_needs_every_request_test.go +58 -0
  820. package/native/core/context/import_programmer_module_identifier_test.go +5 -0
  821. package/native/core/context/import_programmer_statement_coverage_test.go +106 -50
  822. package/native/core/context/transformer_error_formatting_test.go +82 -77
  823. package/native/core/factories/CommentFactory.go +8 -0
  824. package/native/core/factories/ExpressionFactory.go +121 -5
  825. package/native/core/factories/FormatCheatSheet.go +1 -1
  826. package/native/core/factories/JsonMetadataFactory.go +29 -4
  827. package/native/core/factories/LiteralFactory.go +24 -1
  828. package/native/core/factories/MetadataCommentTagFactory.go +177 -29
  829. package/native/core/factories/MetadataFactory.go +59 -5
  830. package/native/core/factories/ProtobufFactory.go +17 -4
  831. package/native/core/factories/StatementFactory.go +38 -5
  832. package/native/core/factories/TemplateFactory.go +10 -0
  833. package/native/core/factories/TypeFactory.go +33 -5
  834. package/native/core/factories/expression_factory_number_spells_non_finite_values_test.go +74 -0
  835. package/native/core/factories/factory_utility_coverage_test.go +8 -3
  836. package/native/core/factories/format_alias_resolves_to_cheat_sheet_test.go +5 -0
  837. package/native/core/factories/format_alias_table_targets_the_cheat_sheet_test.go +20 -30
  838. package/native/core/factories/identifier_factory_postfix_escapes_every_key_test.go +5 -0
  839. package/native/core/factories/identifier_factory_postfix_survives_every_code_point_test.go +5 -0
  840. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +115 -22
  841. package/native/core/factories/internal/metadata/MetadataHelper.go +64 -1
  842. package/native/core/factories/internal/metadata/comment_tags_coverage_test.go +167 -148
  843. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +28 -1
  844. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +10 -3
  845. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +17 -0
  846. package/native/core/factories/internal/metadata/emplace_metadata_object.go +12 -1
  847. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +10 -0
  848. package/native/core/factories/internal/metadata/explore_metadata.go +48 -9
  849. package/native/core/factories/internal/metadata/iterate_metadata.go +12 -0
  850. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +8 -0
  851. package/native/core/factories/internal/metadata/iterate_metadata_array.go +7 -0
  852. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +7 -0
  853. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +8 -0
  854. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +8 -0
  855. package/native/core/factories/internal/metadata/iterate_metadata_collection_branch_matrix_test.go +148 -143
  856. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +7 -0
  857. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +68 -0
  858. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +7 -0
  859. package/native/core/factories/internal/metadata/iterate_metadata_function.go +33 -10
  860. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +22 -11
  861. package/native/core/factories/internal/metadata/iterate_metadata_intersection_brand_coverage_test.go +5 -0
  862. package/native/core/factories/internal/metadata/iterate_metadata_intersection_coverage_test.go +88 -83
  863. package/native/core/factories/internal/metadata/iterate_metadata_intersection_shareable_name_test.go +4 -0
  864. package/native/core/factories/internal/metadata/iterate_metadata_map.go +7 -0
  865. package/native/core/factories/internal/metadata/iterate_metadata_native.go +11 -1
  866. package/native/core/factories/internal/metadata/iterate_metadata_object.go +8 -0
  867. package/native/core/factories/internal/metadata/iterate_metadata_set.go +7 -0
  868. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +11 -0
  869. package/native/core/factories/internal/metadata/iterate_metadata_template.go +7 -0
  870. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +7 -0
  871. package/native/core/factories/internal/metadata/iterate_metadata_union.go +10 -0
  872. package/native/core/factories/internal/metadata/js_doc_link_text_test.go +5 -0
  873. package/native/core/factories/internal/metadata/js_doc_parameter_name_reads_qualified_name_test.go +31 -26
  874. package/native/core/factories/internal/metadata/js_doc_type_tag_blank_separation_test.go +88 -0
  875. package/native/core/factories/internal/metadata/sort_constants_coverage_test.go +50 -39
  876. package/native/core/factories/internal/metadata/type_arguments_precondition_test.go +5 -0
  877. package/native/core/factories/json_metadata_factory_dedupes_bigint_diagnostics_test.go +5 -0
  878. package/native/core/factories/json_metadata_factory_rejects_bigint_native_test.go +5 -0
  879. package/native/core/factories/literal_factory_null_survives_objects_test.go +5 -0
  880. package/native/core/factories/literal_factory_ordered_object_marshals_json_test.go +5 -0
  881. package/native/core/factories/metadata_comment_tag_factory_coverage_test.go +5 -0
  882. package/native/core/factories/metadata_comment_tag_factory_exclusivity_matches_interface_test.go +10 -5
  883. package/native/core/factories/metadata_comment_tag_factory_holds_bigint_tags_exact_test.go +173 -0
  884. package/native/core/factories/metadata_comment_tag_factory_reads_javascript_numbers_test.go +163 -0
  885. package/native/core/factories/metadata_comment_tag_factory_rejects_out_of_range_integer_test.go +7 -2
  886. package/native/core/factories/metadata_comment_tag_factory_string_length_helpers_test.go +5 -0
  887. package/native/core/factories/metadata_type_tag_factory_accepts_legal_tag_combinations_test.go +6 -1
  888. package/native/core/factories/metadata_type_tag_factory_keeps_bool_form_exclusivity_test.go +5 -0
  889. package/native/core/factories/metadata_type_tag_factory_rejects_cross_kind_exclusive_tags_test.go +5 -0
  890. package/native/core/factories/metadata_type_tag_factory_rejects_duplicated_array_form_tags_test.go +5 -0
  891. package/native/core/factories/metadata_type_tag_factory_reports_all_invalid_candidates_test.go +5 -0
  892. package/native/core/factories/numeric_range_factory_enforces_64bit_bounds_test.go +58 -2
  893. package/native/core/factories/protobuf_factory_bigint_keeps_each_width_test.go +47 -0
  894. package/native/core/factories/protobuf_factory_rejects_invalid_field_names_test.go +5 -0
  895. package/native/core/factories/protobuf_recovery_ownership_test.go +5 -0
  896. package/native/core/programmers/AssertProgrammer.go +27 -0
  897. package/native/core/programmers/IsProgrammer.go +67 -1
  898. package/native/core/programmers/RandomProgrammer.go +39 -22
  899. package/native/core/programmers/ValidateProgrammer.go +28 -1
  900. package/native/core/programmers/compare/CompareEqualProgrammer.go +26 -3
  901. package/native/core/programmers/compare/CompareLessProgrammer.go +17 -3
  902. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +47 -6
  903. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +70 -13
  904. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +76 -12
  905. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +31 -5
  906. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +169 -18
  907. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +67 -11
  908. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +31 -5
  909. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +63 -12
  910. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +68 -11
  911. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +22 -2
  912. package/native/core/programmers/helpers/ClassifyJoiner.go +14 -6
  913. package/native/core/programmers/helpers/CloneJoiner.go +29 -0
  914. package/native/core/programmers/helpers/FunctionProgrammer.go +98 -0
  915. package/native/core/programmers/helpers/ICheckEntry.go +16 -0
  916. package/native/core/programmers/helpers/IExpressionEntry.go +8 -0
  917. package/native/core/programmers/helpers/ModuloText.go +5 -0
  918. package/native/core/programmers/helpers/NotationJoiner.go +23 -0
  919. package/native/core/programmers/helpers/ProtobufWire.go +8 -0
  920. package/native/core/programmers/helpers/PruneJoiner.go +21 -0
  921. package/native/core/programmers/helpers/RandomJoiner.go +52 -5
  922. package/native/core/programmers/helpers/StringifyJoinder.go +31 -12
  923. package/native/core/programmers/helpers/UnionExplorer.go +202 -70
  924. package/native/core/programmers/helpers/UnionPredicator.go +9 -0
  925. package/native/core/programmers/helpers/clone_joiner_optional_condition_test.go +14 -1
  926. package/native/core/programmers/helpers/function_programmer_unique_names_test.go +5 -0
  927. package/native/core/programmers/helpers/joiner_branch_coverage_test.go +5 -0
  928. package/native/core/programmers/helpers/option_predicator_contract_matrix_test.go +84 -0
  929. package/native/core/programmers/helpers/random_joiner_recursive_array_guard_test.go +5 -0
  930. package/native/core/programmers/helpers/union_explorer_coverage_test.go +120 -112
  931. package/native/core/programmers/helpers/union_predicator_checks_neighbor_flag_test.go +5 -0
  932. package/native/core/programmers/helpers/union_predicator_skips_atomic_like_native_fields_test.go +5 -0
  933. package/native/core/programmers/helpers/union_predicator_skips_collection_bucket_fields_test.go +5 -0
  934. package/native/core/programmers/helpers/union_predicator_skips_shared_native_names_test.go +5 -0
  935. package/native/core/programmers/helpers/union_predicator_skips_shared_object_fields_test.go +5 -0
  936. package/native/core/programmers/helpers/union_predicator_skips_shared_template_fields_test.go +5 -0
  937. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +9 -0
  938. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +9 -0
  939. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +20 -0
  940. package/native/core/programmers/http/HttpFormDataProgrammer.go +48 -2
  941. package/native/core/programmers/http/HttpHeadersProgrammer.go +63 -4
  942. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +8 -0
  943. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +8 -0
  944. package/native/core/programmers/http/HttpIsQueryProgrammer.go +19 -1
  945. package/native/core/programmers/http/HttpParameterProgrammer.go +1 -3
  946. package/native/core/programmers/http/HttpQueryProgrammer.go +44 -44
  947. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +8 -0
  948. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +8 -0
  949. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +18 -1
  950. package/native/core/programmers/http/http_programmer_helper_coverage_test.go +98 -93
  951. package/native/core/programmers/internal/CheckerProgrammer.go +162 -18
  952. package/native/core/programmers/internal/FeatureProgrammer.go +254 -38
  953. package/native/core/programmers/internal/feature_programmer_visit_guard_test.go +82 -55
  954. package/native/core/programmers/internal/internal_utility_coverage_test.go +338 -345
  955. package/native/core/programmers/iterate/check_array_length.go +15 -0
  956. package/native/core/programmers/iterate/check_bigint.go +14 -0
  957. package/native/core/programmers/iterate/check_dynamic_key.go +33 -19
  958. package/native/core/programmers/iterate/check_dynamic_key_tag_rows_test.go +59 -32
  959. package/native/core/programmers/iterate/check_dynamic_properties.go +70 -16
  960. package/native/core/programmers/iterate/check_everything.go +7 -0
  961. package/native/core/programmers/iterate/check_native.go +14 -0
  962. package/native/core/programmers/iterate/check_number.go +16 -0
  963. package/native/core/programmers/iterate/check_number_option_contract_matrix_test.go +84 -0
  964. package/native/core/programmers/iterate/check_object.go +28 -0
  965. package/native/core/programmers/iterate/check_object_strict_optional_undefined_test.go +6 -1
  966. package/native/core/programmers/iterate/check_object_type_tags.go +15 -0
  967. package/native/core/programmers/iterate/check_string.go +14 -0
  968. package/native/core/programmers/iterate/check_template.go +15 -0
  969. package/native/core/programmers/iterate/decode_union_object.go +35 -2
  970. package/native/core/programmers/iterate/exact_optional_checker_entry_contract_test.go +142 -0
  971. package/native/core/programmers/iterate/exact_optional_graph_clone_random_contract_test.go +213 -0
  972. package/native/core/programmers/iterate/feature_object_entries.go +40 -0
  973. package/native/core/programmers/iterate/iterate_utility_coverage_test.go +30 -5
  974. package/native/core/programmers/iterate/json_schema_array.go +16 -0
  975. package/native/core/programmers/iterate/json_schema_bigint.go +7 -0
  976. package/native/core/programmers/iterate/json_schema_boolean.go +7 -0
  977. package/native/core/programmers/iterate/json_schema_discriminator_declaration_syntax_test.go +10 -5
  978. package/native/core/programmers/iterate/json_schema_jsDocTags.go +10 -3
  979. package/native/core/programmers/iterate/json_schema_jsdoc_tags_cast_reads_javascript_numbers_test.go +69 -0
  980. package/native/core/programmers/iterate/json_schema_native.go +27 -0
  981. package/native/core/programmers/iterate/json_schema_number.go +7 -0
  982. package/native/core/programmers/iterate/json_schema_pattern_property_order_test.go +5 -0
  983. package/native/core/programmers/iterate/json_schema_plugin.go +7 -0
  984. package/native/core/programmers/iterate/json_schema_station.go +16 -0
  985. package/native/core/programmers/iterate/json_schema_string.go +7 -0
  986. package/native/core/programmers/iterate/openapi_v3_downgrader.go +29 -10
  987. package/native/core/programmers/iterate/openapi_v3_downgrader_boolean_default_test.go +9 -4
  988. package/native/core/programmers/iterate/openapi_v3_downgrader_test.go +9 -4
  989. package/native/core/programmers/iterate/postfix_of_tuple.go +8 -0
  990. package/native/core/programmers/iterate/template_interpolation_tags_test.go +46 -4
  991. package/native/core/programmers/iterate/template_runtime_pattern.go +10 -4
  992. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +8 -0
  993. package/native/core/programmers/json/JsonApplicationProgrammer.go +9 -0
  994. package/native/core/programmers/json/JsonAssertParseProgrammer.go +9 -0
  995. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +9 -0
  996. package/native/core/programmers/json/JsonIsParseProgrammer.go +7 -0
  997. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +8 -0
  998. package/native/core/programmers/json/JsonSchemaProgrammer.go +15 -0
  999. package/native/core/programmers/json/JsonSchemasProgrammer.go +16 -0
  1000. package/native/core/programmers/json/JsonStringifyProgrammer.go +20 -32
  1001. package/native/core/programmers/json/JsonValidateParseProgrammer.go +8 -0
  1002. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +8 -0
  1003. package/native/core/programmers/json/json_schema_programmer_coverage_test.go +176 -171
  1004. package/native/core/programmers/json/json_schemas_programmer_dedupes_bigint_diagnostics_test.go +5 -0
  1005. package/native/core/programmers/json/json_schemas_programmer_rejects_bigint_native_test.go +5 -0
  1006. package/native/core/programmers/json/json_stringify_programmer_coverage_test.go +400 -398
  1007. package/native/core/programmers/llm/LlmApplicationProgrammer.go +10 -9
  1008. package/native/core/programmers/llm/LlmCoerceProgrammer.go +16 -9
  1009. package/native/core/programmers/llm/LlmControllerProgrammer.go +10 -0
  1010. package/native/core/programmers/llm/LlmEvaluationProgrammer.go +107 -11
  1011. package/native/core/programmers/llm/LlmParametersProgrammer.go +8 -9
  1012. package/native/core/programmers/llm/LlmParseProgrammer.go +24 -9
  1013. package/native/core/programmers/llm/LlmSchemaProgrammer.go +50 -13
  1014. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +8 -9
  1015. package/native/core/programmers/llm/llm_application_programmer_coverage_test.go +146 -141
  1016. package/native/core/programmers/llm/llm_reference_codec_test.go +5 -0
  1017. package/native/core/programmers/llm/llm_reference_description_test.go +13 -3
  1018. package/native/core/programmers/llm/llm_schema_programmer_coverage_test.go +255 -250
  1019. package/native/core/programmers/llm/llm_schema_programmer_dedupes_bigint_diagnostics_test.go +5 -0
  1020. package/native/core/programmers/llm/llm_schema_programmer_rejects_bigint_native_test.go +5 -0
  1021. package/native/core/programmers/llm/llm_schema_programmer_rejects_exclude_tag_in_strict_test.go +7 -3
  1022. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +32 -4
  1023. package/native/core/programmers/notations/NotationGeneralProgrammer.go +70 -42
  1024. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +29 -3
  1025. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +32 -4
  1026. package/native/core/programmers/notations/notation_general_helpers_test.go +363 -367
  1027. package/native/core/programmers/notations/notation_general_programmer_pascal_multiword_test.go +5 -0
  1028. package/native/core/programmers/notations/notation_general_programmer_snake_prefix_test.go +5 -0
  1029. package/native/core/programmers/notations/notation_general_programmer_underscore_boundary_test.go +5 -0
  1030. package/native/core/programmers/plain/PlainAssertClassifyProgrammer.go +23 -3
  1031. package/native/core/programmers/plain/PlainAssertCloneProgrammer.go +22 -3
  1032. package/native/core/programmers/plain/PlainAssertPruneProgrammer.go +22 -3
  1033. package/native/core/programmers/plain/PlainClassifyProgrammer.go +61 -85
  1034. package/native/core/programmers/plain/PlainCloneProgrammer.go +34 -38
  1035. package/native/core/programmers/plain/PlainIsCloneProgrammer.go +18 -2
  1036. package/native/core/programmers/plain/PlainIsPruneProgrammer.go +18 -2
  1037. package/native/core/programmers/plain/PlainPruneProgrammer.go +29 -10
  1038. package/native/core/programmers/plain/PlainValidateClassifyProgrammer.go +22 -3
  1039. package/native/core/programmers/plain/PlainValidateCloneProgrammer.go +22 -3
  1040. package/native/core/programmers/plain/PlainValidatePruneProgrammer.go +22 -3
  1041. package/native/core/programmers/plain/plain_programmer_helper_coverage_test.go +6 -3
  1042. package/native/core/programmers/plain/plain_prune_programmer_branch_matrix_test.go +5 -0
  1043. package/native/core/programmers/plain/plain_tuple_seed_recovery_ownership_test.go +5 -0
  1044. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +19 -0
  1045. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +19 -0
  1046. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +19 -1
  1047. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +30 -30
  1048. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +19 -1
  1049. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +19 -1
  1050. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +11 -5
  1051. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +19 -1
  1052. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +19 -1
  1053. package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +493 -453
  1054. package/native/core/programmers/random_programmer_helper_coverage_test.go +350 -342
  1055. package/native/core/programmers/random_programmer_length_argument_test.go +32 -1
  1056. package/native/core/programmers/random_programmer_min_items_tag_test.go +5 -0
  1057. package/native/core/programmers/random_programmer_pick_hook_test.go +88 -0
  1058. package/native/core/programmers/reflect/ReflectLiteralsProgrammer.go +15 -0
  1059. package/native/core/schemas/metadata/IMetadataTypeTagSequence.go +12 -1
  1060. package/native/core/schemas/metadata/MetadataAlias.go +41 -1
  1061. package/native/core/schemas/metadata/MetadataAliasType.go +57 -21
  1062. package/native/core/schemas/metadata/MetadataArray.go +37 -1
  1063. package/native/core/schemas/metadata/MetadataArrayType.go +52 -18
  1064. package/native/core/schemas/metadata/MetadataAtomic.go +44 -10
  1065. package/native/core/schemas/metadata/MetadataBigint.go +20 -4
  1066. package/native/core/schemas/metadata/MetadataCollection.go +264 -53
  1067. package/native/core/schemas/metadata/MetadataComponents.go +13 -116
  1068. package/native/core/schemas/metadata/MetadataConstant.go +35 -13
  1069. package/native/core/schemas/metadata/MetadataConstantValue.go +87 -20
  1070. package/native/core/schemas/metadata/MetadataDefaultLibrary.go +20 -0
  1071. package/native/core/schemas/metadata/MetadataDependency.go +52 -2
  1072. package/native/core/schemas/metadata/MetadataEscaped.go +48 -8
  1073. package/native/core/schemas/metadata/MetadataFunction.go +42 -16
  1074. package/native/core/schemas/metadata/MetadataMap.go +53 -4
  1075. package/native/core/schemas/metadata/MetadataNative.go +65 -9
  1076. package/native/core/schemas/metadata/MetadataObject.go +37 -1
  1077. package/native/core/schemas/metadata/MetadataObjectType.go +117 -74
  1078. package/native/core/schemas/metadata/MetadataParameter.go +51 -16
  1079. package/native/core/schemas/metadata/MetadataProperty.go +49 -19
  1080. package/native/core/schemas/metadata/MetadataSchema.go +324 -198
  1081. package/native/core/schemas/metadata/MetadataSet.go +49 -2
  1082. package/native/core/schemas/metadata/MetadataTemplate.go +61 -15
  1083. package/native/core/schemas/metadata/MetadataTuple.go +21 -0
  1084. package/native/core/schemas/metadata/MetadataTupleType.go +61 -19
  1085. package/native/core/schemas/metadata/metadata_atomic_tags_are_owned_test.go +75 -0
  1086. package/native/core/schemas/metadata/metadata_bigint_is_comparable_test.go +5 -0
  1087. package/native/core/schemas/metadata/metadata_collection_generic_argument_dot_test.go +13 -8
  1088. package/native/core/schemas/metadata/metadata_collection_name_allocation_test.go +9 -2
  1089. package/native/core/schemas/metadata/metadata_collection_openapi_name_cascade_test.go +5 -0
  1090. package/native/core/schemas/metadata/metadata_collection_openapi_name_test.go +7 -1
  1091. package/native/core/schemas/metadata/metadata_object_coverage_compares_property_values_test.go +61 -0
  1092. package/native/core/schemas/metadata/metadata_object_type_required_literal_property_test.go +7 -1
  1093. package/native/core/schemas/metadata/metadata_schema_covers_tag_matrix_test.go +8 -3
  1094. package/native/core/schemas/metadata/metadata_schema_merge_keeps_inputs_test.go +117 -0
  1095. package/native/core/schemas/metadata/metadata_schema_optional_root_isolation_test.go +59 -0
  1096. package/native/core/schemas/metadata/metadata_schema_shallow_clone_names_test.go +36 -0
  1097. package/native/core/schemas/metadata/metadata_schema_sole_literal_caches_pointer_test.go +5 -0
  1098. package/native/core/schemas/metadata/schema_sequence_and_json_coverage_test.go +289 -387
  1099. package/native/core/schemas/protobuf/IProtobufProperty.go +11 -0
  1100. package/native/core/schemas/protobuf/IProtobufPropertyType.go +94 -0
  1101. package/native/core/schemas/protobuf/IProtobufSchema.go +89 -5
  1102. package/native/core/utils/NumberUtil.go +201 -0
  1103. package/native/core/utils/PromiseTypeFactory.go +12 -1
  1104. package/native/core/utils/number_util_rational_keeps_written_value_test.go +67 -0
  1105. package/native/core/utils/number_util_reads_javascript_number_grammar_test.go +152 -0
  1106. package/native/core/utils/promise_type_factory_semantics_test.go +5 -0
  1107. package/native/transform/CallExpressionTransformer.go +42 -10
  1108. package/native/transform/FileTransformer.go +72 -53
  1109. package/native/transform/ITransformProps.go +7 -0
  1110. package/native/transform/NodeTransformer.go +10 -1
  1111. package/native/transform/TransformerError.go +31 -0
  1112. package/native/transform/call_expression_transformer_registry_coverage_test.go +40 -31
  1113. package/native/transform/call_expression_transformer_target_test.go +33 -4
  1114. package/native/transform/features/CreateIsTransformer.go +0 -1
  1115. package/native/transform/features/CreateShallowTransformer.go +0 -1
  1116. package/native/transform/features/CreateValidateTransformer.go +0 -1
  1117. package/native/transform/features/IsTransformer.go +0 -1
  1118. package/native/transform/features/ShallowTransformer.go +0 -1
  1119. package/native/transform/features/ValidateTransformer.go +0 -1
  1120. package/native/transform/features/functional/FunctionalGenericTransformer.go +46 -7
  1121. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +0 -1
  1122. package/native/transform/features/http/CreateHttpQueryTransformer.go +0 -1
  1123. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +0 -1
  1124. package/native/transform/features/http/HttpIsQueryTransformer.go +0 -1
  1125. package/native/transform/features/http/HttpQueryTransformer.go +0 -1
  1126. package/native/transform/features/http/HttpValidateQueryTransformer.go +0 -1
  1127. package/native/transform/features/llm/LlmEvaluationProbabilityDeclarations_test.go +6 -1
  1128. package/native/transform/features/llm/LlmEvaluationTransformer.go +55 -1
  1129. package/native/transform/features/notations/notation_transformer_capitalize_test.go +29 -0
  1130. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +1 -1
  1131. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +1 -1
  1132. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +1 -1
  1133. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +1 -1
  1134. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +1 -1
  1135. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +1 -1
  1136. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +1 -1
  1137. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +1 -1
  1138. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +1 -1
  1139. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +1 -1
  1140. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +1 -1
  1141. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +1 -1
  1142. package/native/transform/features/reflect/reflect_metadata_transformer_edge_branches_test.go +42 -30
  1143. package/native/transform/file_transformer_coverage_test.go +17 -3
  1144. package/native/transform/internal/GenericTransformer.go +67 -113
  1145. package/native/transform/transform.go +16 -2
  1146. package/package.json +7 -6
  1147. package/src/TypeGuardError.ts +20 -4
  1148. package/src/basic.ts +1020 -0
  1149. package/src/compare.ts +21 -0
  1150. package/src/functional.ts +42 -0
  1151. package/src/http.ts +136 -34
  1152. package/src/internal/_IProtobufWriter.ts +115 -0
  1153. package/src/internal/_ProtobufReader.ts +159 -1
  1154. package/src/internal/_ProtobufSizer.ts +137 -5
  1155. package/src/internal/_ProtobufWriter.ts +154 -1
  1156. package/src/internal/_accessExpressionAsString.ts +11 -0
  1157. package/src/internal/_assertGuard.ts +12 -0
  1158. package/src/internal/_coerceLlmArguments.ts +10 -0
  1159. package/src/internal/_createLlmEvaluation.ts +10 -53
  1160. package/src/internal/_createStandardSchema.ts +13 -0
  1161. package/src/internal/_decimal.ts +77 -0
  1162. package/src/internal/_functionalTypeGuardErrorFactory.ts +8 -0
  1163. package/src/internal/_httpFormDataReadArray.ts +9 -0
  1164. package/src/internal/_httpFormDataReadBigint.ts +15 -1
  1165. package/src/internal/_httpFormDataReadBlob.ts +11 -0
  1166. package/src/internal/_httpFormDataReadBoolean.ts +14 -1
  1167. package/src/internal/_httpFormDataReadFile.ts +11 -0
  1168. package/src/internal/_httpFormDataReadNumber.ts +14 -1
  1169. package/src/internal/_httpFormDataReadString.ts +15 -1
  1170. package/src/internal/_httpHeaderReadBigint.ts +17 -1
  1171. package/src/internal/_httpHeaderReadBoolean.ts +12 -0
  1172. package/src/internal/_httpHeaderReadNumber.ts +17 -1
  1173. package/src/internal/_httpParameterReadBigint.ts +14 -0
  1174. package/src/internal/_httpParameterReadBoolean.ts +11 -0
  1175. package/src/internal/_httpParameterReadNumber.ts +14 -0
  1176. package/src/internal/_httpParameterReadString.ts +17 -2
  1177. package/src/internal/_httpQueryParseURLSearchParams.ts +14 -0
  1178. package/src/internal/_httpQueryReadArray.ts +9 -0
  1179. package/src/internal/_httpQueryReadBigint.ts +18 -1
  1180. package/src/internal/_httpQueryReadBoolean.ts +15 -1
  1181. package/src/internal/_httpQueryReadNumber.ts +18 -1
  1182. package/src/internal/_httpQueryReadString.ts +15 -1
  1183. package/src/internal/_isBetween.ts +8 -0
  1184. package/src/internal/_isBigintString.ts +11 -0
  1185. package/src/internal/_isFormatByte.ts +12 -0
  1186. package/src/internal/_isFormatDate.ts +11 -0
  1187. package/src/internal/_isFormatDateTime.ts +13 -0
  1188. package/src/internal/_isFormatDuration.ts +13 -0
  1189. package/src/internal/_isFormatEmail.ts +13 -0
  1190. package/src/internal/_isFormatHostname.ts +12 -0
  1191. package/src/internal/_isFormatIdnEmail.ts +14 -0
  1192. package/src/internal/_isFormatIdnHostname.ts +14 -0
  1193. package/src/internal/_isFormatIpv4.ts +11 -0
  1194. package/src/internal/_isFormatIpv6.ts +12 -0
  1195. package/src/internal/_isFormatIri.ts +11 -0
  1196. package/src/internal/_isFormatIriReference.ts +13 -0
  1197. package/src/internal/_isFormatJsonPointer.ts +11 -0
  1198. package/src/internal/_isFormatPassword.ts +11 -0
  1199. package/src/internal/_isFormatRegex.ts +11 -0
  1200. package/src/internal/_isFormatRelativeJsonPointer.ts +11 -0
  1201. package/src/internal/_isFormatTime.ts +12 -0
  1202. package/src/internal/_isFormatUri.ts +15 -0
  1203. package/src/internal/_isFormatUriReference.ts +11 -0
  1204. package/src/internal/_isFormatUriTemplate.ts +14 -1
  1205. package/src/internal/_isFormatUrl.ts +15 -0
  1206. package/src/internal/_isFormatUuid.ts +11 -0
  1207. package/src/internal/_isMultipleOf.ts +11 -0
  1208. package/src/internal/_isTypeFloat.ts +9 -0
  1209. package/src/internal/_isTypeInt16.ts +8 -0
  1210. package/src/internal/_isTypeInt32.ts +8 -0
  1211. package/src/internal/_isTypeInt64.ts +11 -0
  1212. package/src/internal/_isTypeInt64Bigint.ts +8 -0
  1213. package/src/internal/_isTypeInt8.ts +8 -0
  1214. package/src/internal/_isTypeUint16.ts +8 -0
  1215. package/src/internal/_isTypeUint32.ts +8 -0
  1216. package/src/internal/_isTypeUint64.ts +11 -0
  1217. package/src/internal/_isTypeUint64Bigint.ts +8 -0
  1218. package/src/internal/_isTypeUint8.ts +8 -0
  1219. package/src/internal/_isUniqueItems.ts +46 -0
  1220. package/src/internal/_jsonStringifyArray.ts +2 -0
  1221. package/src/internal/_jsonStringifyElement.ts +2 -0
  1222. package/src/internal/_jsonStringifyNumber.ts +9 -0
  1223. package/src/internal/_jsonStringifyProperty.ts +3 -1
  1224. package/src/internal/_jsonStringifyRest.ts +11 -0
  1225. package/src/internal/_jsonStringifyString.ts +13 -0
  1226. package/src/internal/_jsonStringifyTail.ts +8 -0
  1227. package/src/internal/_llmApplicationFinalize.ts +13 -0
  1228. package/src/internal/_notationAny.ts +14 -0
  1229. package/src/internal/_notationAssign.ts +12 -0
  1230. package/src/internal/_notationKebab.ts +9 -0
  1231. package/src/internal/_notationKeyCollision.ts +8 -0
  1232. package/src/internal/_notationSnake.ts +12 -0
  1233. package/src/internal/_parseLlmArguments.ts +12 -0
  1234. package/src/internal/_plainCloneAny.ts +15 -0
  1235. package/src/internal/_randomArray.ts +42 -20
  1236. package/src/internal/_randomBigint.ts +116 -3
  1237. package/src/internal/_randomBoolean.ts +8 -0
  1238. package/src/internal/_randomFormatByte.ts +8 -0
  1239. package/src/internal/_randomFormatDate.ts +10 -0
  1240. package/src/internal/_randomFormatDatetime.ts +10 -0
  1241. package/src/internal/_randomFormatDuration.ts +8 -0
  1242. package/src/internal/_randomFormatEmail.ts +8 -0
  1243. package/src/internal/_randomFormatHostname.ts +15 -1
  1244. package/src/internal/_randomFormatIdnEmail.ts +13 -0
  1245. package/src/internal/_randomFormatIdnHostname.ts +12 -0
  1246. package/src/internal/_randomFormatIpv4.ts +8 -0
  1247. package/src/internal/_randomFormatIpv6.ts +8 -0
  1248. package/src/internal/_randomFormatIri.ts +11 -0
  1249. package/src/internal/_randomFormatIriReference.ts +12 -0
  1250. package/src/internal/_randomFormatJsonPointer.ts +12 -0
  1251. package/src/internal/_randomFormatPassword.ts +13 -0
  1252. package/src/internal/_randomFormatRegex.ts +8 -0
  1253. package/src/internal/_randomFormatRelativeJsonPointer.ts +8 -0
  1254. package/src/internal/_randomFormatTime.ts +13 -0
  1255. package/src/internal/_randomFormatUri.ts +12 -0
  1256. package/src/internal/_randomFormatUriReference.ts +12 -0
  1257. package/src/internal/_randomFormatUriTemplate.ts +12 -0
  1258. package/src/internal/_randomFormatUrl.ts +12 -0
  1259. package/src/internal/_randomFormatUuid.ts +13 -0
  1260. package/src/internal/_randomInteger.ts +99 -33
  1261. package/src/internal/_randomMultiple.ts +47 -15
  1262. package/src/internal/_randomNumber.ts +107 -38
  1263. package/src/internal/_randomPattern.ts +12 -0
  1264. package/src/internal/_randomPick.ts +25 -7
  1265. package/src/internal/_randomString.ts +36 -13
  1266. package/src/internal/_randomStringLength.ts +31 -1
  1267. package/src/internal/_stringLength.ts +11 -0
  1268. package/src/internal/_stringLengthGte.ts +11 -0
  1269. package/src/internal/_stringLengthLte.ts +11 -0
  1270. package/src/internal/_throwTypeGuardError.ts +9 -0
  1271. package/src/internal/_validateReport.ts +15 -0
  1272. package/src/internal/private/__notationRename.ts +5 -0
  1273. package/src/internal/private/__randomComposition.ts +27 -3
  1274. package/src/internal/private/__randomEpoch.ts +15 -0
  1275. package/src/json.ts +49 -14
  1276. package/src/llm.ts +45 -26
  1277. package/src/module.ts +1 -935
  1278. package/src/notations.ts +60 -0
  1279. package/src/plain.ts +38 -0
  1280. package/src/protobuf.ts +41 -7
  1281. package/src/reflect.ts +16 -12
  1282. package/src/transform.ts +17 -0
  1283. package/native/cmd/ttsc-typia/boolean_literal_discriminant_schema_transform_test.go +0 -374
  1284. package/native/cmd/ttsc-typia/build_reports_semantic_diagnostics_test.go +0 -34
  1285. package/native/cmd/ttsc-typia/build_reports_syntactic_diagnostics_test.go +0 -34
  1286. package/native/cmd/ttsc-typia/command_routes_and_diagnostics_coverage_test.go +0 -316
  1287. package/native/cmd/ttsc-typia/compare_less_transform_test.go +0 -180
  1288. package/native/cmd/ttsc-typia/compare_method_delegation_transform_test.go +0 -173
  1289. package/native/cmd/ttsc-typia/compare_native_object_overmatch_transform_test.go +0 -161
  1290. package/native/cmd/ttsc-typia/compare_template_literal_union_transform_test.go +0 -241
  1291. package/native/cmd/ttsc-typia/compare_union_discrimination_transform_test.go +0 -289
  1292. package/native/cmd/ttsc-typia/escaped_property_key_path_transform_test.go +0 -193
  1293. package/native/cmd/ttsc-typia/finite_option_number_leaf_transform_test.go +0 -240
  1294. package/native/cmd/ttsc-typia/intersection_all_never_union_transform_test.go +0 -168
  1295. package/native/cmd/ttsc-typia/intersection_brand_transform_test.go +0 -267
  1296. package/native/cmd/ttsc-typia/is_object_function_member_transform_test.go +0 -205
  1297. package/native/cmd/ttsc-typia/json_is_stringify_finite_number_transform_test.go +0 -198
  1298. package/native/cmd/ttsc-typia/json_stringify_contextual_undefined_transform_test.go +0 -556
  1299. package/native/cmd/ttsc-typia/json_stringify_special_key_transform_test.go +0 -238
  1300. package/native/cmd/ttsc-typia/notation_dynamic_keys_transform_test.go +0 -286
  1301. package/native/cmd/ttsc-typia/notation_literal_collision_transform_test.go +0 -164
  1302. package/native/cmd/ttsc-typia/plain_prune_union_object_overmatch_transform_test.go +0 -219
  1303. package/native/cmd/ttsc-typia/recursive_container_helper_index_transform_test.go +0 -206
  1304. package/native/cmd/ttsc-typia/reflect_literals_bigint_transform_test.go +0 -148
  1305. package/native/cmd/ttsc-typia/reflect_schema_bigint_transform_test.go +0 -173
  1306. package/native/cmd/ttsc-typia/run_default_build_route_test.go +0 -31
  1307. package/native/cmd/ttsc-typia/shallow_depth_runtime_test.go +0 -173
  1308. package/native/cmd/ttsc-typia/shallow_factory_depth_runtime_test.go +0 -171
  1309. package/native/cmd/ttsc-typia/symbol_index_domain_transform_test.go +0 -316
  1310. package/native/cmd/ttsc-typia/transform_declaration_source_produces_no_javascript_test.go +0 -67
  1311. package/native/cmd/ttsc-typia/transform_single_file_js_empty_emit_reports_no_output_test.go +0 -100
  1312. package/native/core/factories/internal/metadata/optional_coalesce_coverage_test.go +0 -38
  1313. package/native/core/programmers/functional/functional_assert_helper_coverage_test.go +0 -26
  1314. package/native/core/programmers/iterate/iterate_check_coverage_test.go +0 -96
  1315. package/native/core/programmers/programmer_direct_helper_coverage_test.go +0 -70
  1316. package/native/core/schemas/metadata/IMetadataDictionary.go +0 -8
  1317. package/native/core/schemas/protobuf/protobuf_marker_coverage_test.go +0 -58
  1318. package/native/core/typings/Writable.go +0 -5
  1319. package/native/transform/ImportTransformer.go +0 -285
  1320. package/native/transform/TypiaGenerator.go +0 -171
  1321. package/native/transform/features/feature_transformer_entry_coverage_test.go +0 -59
  1322. package/native/transform/features/http/http_transformer_entry_coverage_test.go +0 -65
  1323. package/native/transform/features/json/json_transformer_entry_coverage_test.go +0 -56
  1324. package/native/transform/features/llm/llm_transformer_entry_coverage_test.go +0 -50
  1325. package/native/transform/features/notations/notation_transformer_entry_coverage_test.go +0 -58
  1326. package/native/transform/features/plain/plain_transformer_entry_coverage_test.go +0 -61
  1327. package/native/transform/features/protobuf/protobuf_transformer_entry_coverage_test.go +0 -56
  1328. package/native/transform/features/reflect/reflect_transformer_entry_coverage_test.go +0 -47
  1329. package/native/transform/import_transformer_coverage_test.go +0 -153
  1330. package/native/transform/typia_generator_helpers_coverage_test.go +0 -166
@@ -4,477 +4,517 @@
4
4
  package protobuf
5
5
 
6
6
  import (
7
- "testing"
7
+ "testing"
8
8
 
9
- shimast "github.com/microsoft/typescript-go/shim/ast"
10
- shimprinter "github.com/microsoft/typescript-go/shim/printer"
11
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
12
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
15
- schemaprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
9
+ shimast "github.com/microsoft/typescript-go/shim/ast"
10
+ shimprinter "github.com/microsoft/typescript-go/shim/printer"
11
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
12
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
13
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
14
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
15
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
16
+ schemaprotobuf "github.com/samchon/typia/packages/typia/native/core/schemas/protobuf"
16
17
  )
17
18
 
18
19
  // TestProtobufProgrammerHelperCoverage exercises protobuf helper branches.
19
20
  //
20
- // Protobuf encode and decode helpers normalize schema variants and feature
21
- // explore values before larger reader/writer generation starts. They are pure
21
+ // Protobuf encode and decode helpers normalize schema variants before larger
22
+ // reader/writer generation starts. They are pure
22
23
  // helpers, so direct unit calls are enough to keep these branches visible.
23
24
  //
24
25
  // 1. Read bigint names from property and schema bigint variants.
25
26
  // 2. Verify unsupported bigint schema variants return an empty name.
26
- // 3. Convert feature explore values from value, pointer, and unknown inputs.
27
- // 4. Convert feature explore values into checker explore values.
28
- // 5. Visit encode/decode schema switches for every protobuf property variant.
29
- // 6. Build object, map, and discriminator-union protobuf encode blocks.
30
- // 7. Exercise encode union, wrapper, container, and fallback helper branches.
31
- // 8. Exercise protobuf decode property, array, map, default, and importer helpers.
27
+ // 3. Visit encode/decode schema switches for every protobuf property variant.
28
+ // 4. Build object, map, and discriminator-union protobuf encode blocks.
29
+ // 5. Exercise encode union, wrapper, container, and fallback helper branches.
30
+ // 6. Exercise protobuf decode property, array, map, default, and importer helpers.
31
+ //
32
+ // @evidence contracts/testing.md#behavioral-verification Protobuf helpers are called to read bigint names from property and schema variants, and build encode and decode blocks; names and proto3 scalar defaults are compared. An admitted factory-produced primitive/static-object union requires exactly four ordered outer guards; remaining builder calls only require non-nil nodes.
33
+ // @evidence contracts/testing.md#independent-expectations Authored schema variants define names/default literals and the preserved boolean/object/number/string guard order for the admitted producer shape. Neither counts nor guards come from generated snapshots; non-nil checks are construction-only limitations.
34
+ // @evidence contracts/testing.md#distinguishing-cases Supported and unsupported bigint variants and fallback switches are contrasted. The admitted two-object union detects duplicate aggregate arms; the original mixed array/Map union remains a synthetic construction smoke case because public validation rejects such container unions.
35
+ // @evidence contracts/testing.md#execution-ownership The typia_native_internal Go command (go -C packages/typia/test test -tags typia_native_internal ../native/...) runs this same-package Test function in process. The tagged test calls helpers on constructed metadata with no checker, filesystem fixture or process.
32
36
  func TestProtobufProgrammerHelperCoverage(t *testing.T) {
33
- emit := shimprinter.NewEmitContext()
34
- if protobufDecodeProgrammer_bigintName(&schemaprotobuf.IProtobufPropertyType_IBigint{
35
- IProtobufSchema_IBigint: schemaprotobuf.IProtobufSchema_IBigint{Name: "int64"},
36
- }) != "int64" {
37
- t.Fatal("protobuf bigint property name mismatch")
38
- }
39
- if protobufDecodeProgrammer_bigintName(schemaprotobuf.IProtobufSchema_IBigint{Name: "uint64"}) != "uint64" ||
40
- protobufDecodeProgrammer_bigintName(schemaprotobuf.IProtobufSchema_IString{}) != "" {
41
- t.Fatal("protobuf bigint schema name mismatch")
42
- }
43
- explore := nativeinternal.FeatureProgrammer_IExplore{Tracable: true, Source: "source", From: "from", Postfix: ".x"}
44
- if protobufEncodeProgrammer_feature_explore(explore).Postfix != ".x" ||
45
- protobufEncodeProgrammer_feature_explore(&explore).Source != "source" ||
46
- protobufEncodeProgrammer_feature_explore("unknown").Postfix != "" {
47
- t.Fatal("protobuf feature explore conversion mismatch")
48
- }
49
- if protobufEncodeProgrammer_checker_explore(&explore).From != "from" {
50
- t.Fatal("protobuf checker explore conversion mismatch")
51
- }
37
+ emit := shimprinter.NewEmitContext()
38
+ if protobufDecodeProgrammer_bigintName(&schemaprotobuf.IProtobufPropertyType_IBigint{
39
+ IProtobufSchema_IBigint: schemaprotobuf.IProtobufSchema_IBigint{Name: "int64"},
40
+ }) != "int64" {
41
+ t.Fatal("protobuf bigint property name mismatch")
42
+ }
43
+ if protobufDecodeProgrammer_bigintName(schemaprotobuf.IProtobufSchema_IBigint{Name: "uint64"}) != "uint64" ||
44
+ protobufDecodeProgrammer_bigintName(schemaprotobuf.IProtobufSchema_IString{}) != "" {
45
+ t.Fatal("protobuf bigint schema name mismatch")
46
+ }
52
47
 
53
- factory := shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
54
- context := nativecontext.ITypiaContext{}
55
- functor := nativehelpers.NewFunctionProgrammer("protobuf.encode")
56
- input := factory.NewIdentifier("input")
57
- first := 1
58
- second := 2
59
- alpha := protobufProgrammerObject("Alpha", "kind", "alpha")
60
- beta := protobufProgrammerObject("Beta", "kind", "beta")
61
- rest := schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{Name: "Rest"})
62
- objectSchema := &schemaprotobuf.IProtobufPropertyType_IObject{
63
- IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: alpha},
64
- Index: &first,
65
- }
66
- mapSchema := &schemaprotobuf.IProtobufPropertyType_IMap{
67
- IProtobufSchema_IMap: schemaprotobuf.IProtobufSchema_IMap{
68
- Type: "map",
69
- Map: alpha,
70
- Key: schemaprotobuf.IProtobufSchema_IString{Type: "string"},
71
- Value: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int32"},
72
- },
73
- Index: &second,
74
- }
75
- concreteMap := schemametadata.MetadataMap_create(schemametadata.MetadataMap{
76
- Key: protobufProgrammerAtomic("string"),
77
- Value: protobufProgrammerAtomic("number"),
78
- })
79
- concreteMapSchema := &schemaprotobuf.IProtobufPropertyType_IMap{
80
- IProtobufSchema_IMap: schemaprotobuf.IProtobufSchema_IMap{
81
- Type: "map",
82
- Map: concreteMap,
83
- Key: schemaprotobuf.IProtobufSchema_IString{Type: "string"},
84
- Value: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int32"},
85
- },
86
- Index: &second,
87
- }
88
- arrayType := schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
89
- Name: "string[]",
90
- Value: protobufProgrammerLiteral("value"),
91
- Nullables: []bool{},
92
- })
93
- propertyVariants := []schemaprotobuf.IProtobufPropertyType{
94
- &schemaprotobuf.IProtobufPropertyType_IByte{IProtobufSchema_IByte: schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"}, Index: &first},
95
- &schemaprotobuf.IProtobufPropertyType_IBoolean{IProtobufSchema_IBoolean: schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"}, Index: &first},
96
- &schemaprotobuf.IProtobufPropertyType_IBigint{IProtobufSchema_IBigint: schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"}, Index: &first},
97
- &schemaprotobuf.IProtobufPropertyType_INumber{IProtobufSchema_INumber: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "double"}, Index: &first},
98
- &schemaprotobuf.IProtobufPropertyType_IString{IProtobufSchema_IString: schemaprotobuf.IProtobufSchema_IString{Type: "string"}, Index: &first},
99
- &schemaprotobuf.IProtobufPropertyType_IArray{IProtobufSchema_IArray: schemaprotobuf.IProtobufSchema_IArray{Type: "array", Array: arrayType, Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}}, Index: &first},
100
- objectSchema,
101
- mapSchema,
102
- concreteMapSchema,
103
- }
104
- for _, variant := range propertyVariants {
105
- if protobufEncodeProgrammer_propertyIndex(variant) == nil ||
106
- protobufDecodeProgrammer_propertyIndex(variant) == nil ||
107
- protobufEncodeProgrammer_schemaType(variant) == "" ||
108
- protobufDecodeProgrammer_schemaType(variant) == "" {
109
- t.Fatalf("protobuf property switch missed %T", variant)
110
- }
111
- if protobufDecodeProgrammer_decode_property_type(protobufDecodeProgrammer_decodePropertyTypeProps{
112
- Context: context,
113
- Accessor: input,
114
- Schema: variant,
115
- Required: false,
116
- }) == nil {
117
- t.Fatalf("protobuf decode property switch missed %T", variant)
118
- }
119
- }
120
- schemaVariants := []schemaprotobuf.IProtobufSchema{
121
- schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"},
122
- schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
123
- schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"},
124
- schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "float"},
125
- schemaprotobuf.IProtobufSchema_IString{Type: "string"},
126
- schemaprotobuf.IProtobufSchema_IArray{Type: "array", Array: arrayType, Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}},
127
- schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: alpha},
128
- schemaprotobuf.IProtobufSchema_IMap{Type: "map", Map: alpha, Key: schemaprotobuf.IProtobufSchema_IString{Type: "string"}, Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}},
129
- }
130
- for _, variant := range schemaVariants {
131
- if protobufEncodeProgrammer_schemaType(variant) == "" ||
132
- protobufDecodeProgrammer_schemaType(variant) == "" {
133
- t.Fatalf("protobuf schema switch missed %T", variant)
134
- }
135
- }
136
- if protobufDecodeProgrammer_arrayValueName(propertyVariants[5]) != "\"value\"" ||
137
- protobufDecodeProgrammer_arrayValueName(schemaprotobuf.IProtobufSchema_IArray{Type: "array", Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}}) != "string" ||
138
- protobufDecodeProgrammer_arrayValueName(schemaprotobuf.IProtobufSchema_IString{Type: "string"}) != "unknown" {
139
- t.Fatal("protobuf array value name branch mismatch")
140
- }
141
- if protobufDecodeProgrammer_propertyIndex(nil) != nil ||
142
- protobufDecodeProgrammer_schemaType(nil) != "" ||
143
- protobufDecodeProgrammer_numberName(schemaprotobuf.IProtobufSchema_IString{Type: "string"}) != "" ||
144
- protobufDecodeProgrammer_arrayValue(nil) != nil ||
145
- protobufDecodeProgrammer_objectSchema(&schemaprotobuf.IProtobufPropertyType_IObject{IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta}, Index: &first}) != beta {
146
- t.Fatal("protobuf decode fallback switch helpers mismatch")
147
- }
148
- if protobufEncodeProgrammer_propertyIndex(objectSchema) == nil ||
149
- protobufEncodeProgrammer_schemaType(mapSchema) != "map" ||
150
- protobufEncodeProgrammer_objectSchema(mapSchema) != alpha ||
151
- len(protobufEncodeProgrammer_objectSchemas([]schemaprotobuf.IProtobufPropertyType{objectSchema, mapSchema})) != 2 {
152
- t.Fatal("protobuf object schema helpers missed object/map branches")
153
- }
154
- for _, schemas := range [][]schemaprotobuf.IProtobufPropertyType{
155
- {objectSchema},
156
- {mapSchema},
157
- {
158
- objectSchema,
159
- &schemaprotobuf.IProtobufPropertyType_IObject{
160
- IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta},
161
- Index: &second,
162
- },
163
- &schemaprotobuf.IProtobufPropertyType_IObject{
164
- IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: rest},
165
- Index: &second,
166
- },
167
- },
168
- } {
169
- if protobufEncodeProgrammer_explore_objects(protobufEncodeProgrammer_exploreObjectsProps{
170
- Context: context,
171
- Functor: functor,
172
- Input: input,
173
- Schemas: schemas,
174
- Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: true},
175
- }) == nil {
176
- t.Fatal("protobuf object exploration returned nil")
177
- }
178
- }
179
- unionBlock := protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
180
- Context: context,
181
- Functor: functor,
182
- Metadata: schemametadata.MetadataSchema_initialize(),
183
- Protobuf: &schemaprotobuf.IProtobufProperty{Union: propertyVariants},
184
- Input: input,
185
- Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: true},
186
- })
187
- if unionBlock == nil {
188
- t.Fatal("protobuf union property should decode")
189
- }
190
- for _, meta := range []*schemametadata.MetadataSchema{
191
- schemametadata.MetadataSchema_create(schemametadata.MetadataSchema{Optional: true, Nullable: true}),
192
- schemametadata.MetadataSchema_create(schemametadata.MetadataSchema{Optional: true}),
193
- schemametadata.MetadataSchema_create(schemametadata.MetadataSchema{Required: true, Nullable: true}),
194
- } {
195
- if protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
196
- Context: context,
197
- Functor: functor,
198
- Metadata: meta,
199
- Protobuf: &schemaprotobuf.IProtobufProperty{Union: []schemaprotobuf.IProtobufPropertyType{
200
- &schemaprotobuf.IProtobufPropertyType_IString{IProtobufSchema_IString: schemaprotobuf.IProtobufSchema_IString{Type: "string"}, Index: &first},
201
- }},
202
- Input: input,
203
- }) == nil {
204
- t.Fatal("protobuf optional/nullable wrapper should decode")
205
- }
206
- }
207
- if protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
208
- Context: context,
209
- Functor: functor,
210
- Metadata: schemametadata.MetadataSchema_initialize(),
211
- Protobuf: &schemaprotobuf.IProtobufProperty{},
212
- Input: input,
213
- }) == nil {
214
- t.Fatal("protobuf empty union should produce an empty block")
215
- }
216
- if len(protobufDecodeProgrammer_decode_property(protobufDecodeProgrammer_decodePropertyProps{
217
- Context: context,
218
- Metadata: schemametadata.MetadataSchema_initialize(),
219
- Protobuf: nil,
220
- Accessor: input,
221
- })) != 0 {
222
- t.Fatal("nil protobuf property should produce no decode statements")
223
- }
224
- for _, meta := range []*schemametadata.MetadataSchema{
225
- func() *schemametadata.MetadataSchema {
226
- next := schemametadata.MetadataSchema_initialize()
227
- next.Arrays = append(next.Arrays, schemametadata.MetadataArray_create(schemametadata.MetadataArray{Type: arrayType}))
228
- return next
229
- }(),
230
- func() *schemametadata.MetadataSchema {
231
- next := schemametadata.MetadataSchema_initialize()
232
- next.Maps = append(next.Maps, concreteMap)
233
- return next
234
- }(),
235
- func() *schemametadata.MetadataSchema {
236
- next := schemametadata.MetadataSchema_initialize()
237
- next.Natives = append(next.Natives, schemametadata.MetadataNative_create(schemametadata.MetadataNative{Name: "Uint8Array"}))
238
- return next
239
- }(),
240
- protobufProgrammerAtomic("string"),
241
- func() *schemametadata.MetadataSchema {
242
- next := schemametadata.MetadataSchema_initialize()
243
- next.Constants = append(next.Constants, schemametadata.MetadataConstant_create(schemametadata.MetadataConstant{
244
- Type: "string",
245
- Values: []*schemametadata.MetadataConstantValue{
246
- schemametadata.MetadataConstantValue_create(schemametadata.MetadataConstantValue{Value: ""}),
247
- },
248
- }))
249
- return next
250
- }(),
251
- func() *schemametadata.MetadataSchema {
252
- next := schemametadata.MetadataSchema_initialize()
253
- next.Templates = append(next.Templates, schemametadata.MetadataTemplate_create(schemametadata.MetadataTemplate{
254
- Row: []*schemametadata.MetadataSchema{protobufProgrammerAtomic("string")},
255
- }))
256
- return next
257
- }(),
258
- func() *schemametadata.MetadataSchema {
259
- next := schemametadata.MetadataSchema_initialize()
260
- next.Objects = append(next.Objects, schemametadata.MetadataObject_create(schemametadata.MetadataObject{
261
- Type: schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{Name: "Dynamic"}),
262
- }))
263
- return next
264
- }(),
265
- } {
266
- if protobufDecodeProgrammer_write_property_default_value(meta, emit) == nil {
267
- t.Fatal("protobuf decode default value returned nil")
268
- }
269
- }
270
- // #2179: an absent required number/boolean/bigint seeds its proto3 typed
271
- // default (0/false/0n), just as an absent required string seeds "". Each
272
- // seed is wrapped in an `as any`, so unwrap it and pin the literal so a
273
- // regression to `undefined` cannot pass.
274
- for _, expected := range []struct {
275
- typ string
276
- kind shimast.Kind
277
- text string
278
- }{
279
- {typ: "number", kind: shimast.KindNumericLiteral, text: "0"},
280
- {typ: "boolean", kind: shimast.KindFalseKeyword, text: ""},
281
- {typ: "bigint", kind: shimast.KindBigIntLiteral, text: "0n"},
282
- {typ: "string", kind: shimast.KindStringLiteral, text: ""},
283
- } {
284
- seed := protobufDecodeProgrammer_write_property_default_value(protobufProgrammerAtomic(expected.typ), emit)
285
- if seed == nil || seed.Kind != shimast.KindAsExpression {
286
- t.Fatalf("protobuf %s default should be an as-expression", expected.typ)
287
- }
288
- inner := seed.Expression()
289
- if inner == nil || inner.Kind != expected.kind {
290
- t.Fatalf("protobuf %s default seeded the wrong node kind", expected.typ)
291
- }
292
- if expected.text != "" && inner.Text() != expected.text {
293
- t.Fatalf("protobuf %s default seeded %q instead of %q", expected.typ, inner.Text(), expected.text)
294
- }
295
- }
296
- if protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
297
- Context: nativecontext.ITypiaContext{},
298
- Condition: protobufDecodeProgrammer_factory.NewKeywordExpression(
299
- shimast.KindTrueKeyword,
300
- ),
301
- Tag: "tag",
302
- Output: "output",
303
- Object: protobufProgrammerObject("DecodeBody", "kind", "body"),
304
- }) == nil {
305
- t.Fatal("protobuf decode object body returned nil")
306
- }
307
- if protobufDecodeProgrammer_decode_number(schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int64"}, emit) == nil ||
308
- protobufDecodeProgrammer_decode_number(&schemaprotobuf.IProtobufPropertyType_INumber{IProtobufSchema_INumber: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "uint64"}, Index: &first}, emit) == nil {
309
- t.Fatal("protobuf decode number bigint-compatible branch returned nil")
310
- }
311
- for _, schema := range []schemaprotobuf.IProtobufSchema{
312
- schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"},
313
- schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
314
- schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"},
315
- schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "double"},
316
- schemaprotobuf.IProtobufSchema_IString{Type: "string"},
317
- schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta},
318
- } {
319
- if protobufDecodeProgrammer_decode_array_value(schema, emit) == nil {
320
- t.Fatalf("protobuf decode array value returned nil for %T", schema)
321
- }
322
- }
323
- if protobufDecodeProgrammer_decode_array(protobufDecodeProgrammer_decodeArrayProps{
324
- Accessor: input,
325
- Schema: schemaprotobuf.IProtobufSchema_IArray{
326
- Type: "array",
327
- Value: schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
328
- },
329
- Required: false,
330
- }, emit) == nil || protobufDecodeProgrammer_decode_array(protobufDecodeProgrammer_decodeArrayProps{
331
- Accessor: input,
332
- Schema: schemaprotobuf.IProtobufSchema_IArray{
333
- Type: "array",
334
- Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"},
335
- },
336
- Required: true,
337
- }, emit) == nil {
338
- t.Fatal("protobuf decode array branches returned nil")
339
- }
340
- if protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
341
- Context: context,
342
- Accessor: input,
343
- Key: protobufProgrammerAtomic("string"),
344
- Value: protobufProgrammerAtomic("number"),
345
- Schema: schemaprotobuf.IProtobufSchema_IMap{Type: "map"},
346
- Initializer: factory.NewNewExpression(factory.NewIdentifier("Map"), nil, nil),
347
- Required: true,
348
- Setter: func() *shimast.Node { return input },
349
- }) == nil || protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
350
- Context: context,
351
- Accessor: input,
352
- Key: protobufProgrammerAtomic("string"),
353
- Value: protobufProgrammerAtomic("number"),
354
- Schema: schemaprotobuf.IProtobufSchema_IMap{Type: "map"},
355
- Initializer: factory.NewNewExpression(factory.NewIdentifier("Map"), nil, nil),
356
- Required: false,
357
- Setter: func() *shimast.Node { return input },
358
- }) == nil {
359
- t.Fatal("protobuf decode map branches returned nil")
360
- }
361
- func() {
362
- defer func() {
363
- if recover() == nil {
364
- t.Fatal("protobuf decode property type default should panic")
365
- }
366
- }()
367
- _ = protobufDecodeProgrammer_decode_property_type(protobufDecodeProgrammer_decodePropertyTypeProps{
368
- Context: context,
369
- Accessor: input,
370
- Schema: nil,
371
- Required: true,
372
- })
373
- }()
374
- func() {
375
- defer func() {
376
- if recover() == nil {
377
- t.Fatal("protobuf decode array value default should panic")
378
- }
379
- }()
380
- _ = protobufDecodeProgrammer_decode_array_value(nil, emit)
381
- }()
382
- for _, schema := range []schemaprotobuf.IProtobufSchema{
383
- &schemaprotobuf.IProtobufPropertyType_IBoolean{IProtobufSchema_IBoolean: schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"}, Index: &first},
384
- schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
385
- &schemaprotobuf.IProtobufPropertyType_IBigint{IProtobufSchema_IBigint: schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"}, Index: &first},
386
- schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "uint64"},
387
- &schemaprotobuf.IProtobufPropertyType_INumber{IProtobufSchema_INumber: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "float"}, Index: &first},
388
- schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "double"},
389
- schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"},
390
- schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta},
391
- } {
392
- if protobufEncodeProgrammer_decode_container_value(struct {
393
- Context nativecontext.ITypiaContext
394
- Functor *nativehelpers.FunctionProgrammer
395
- Schema schemaprotobuf.IProtobufSchema
396
- Index int
397
- Kind string
398
- Input *shimast.Node
399
- }{Context: context, Functor: functor, Schema: schema, Index: 1, Kind: "map", Input: input}) == nil {
400
- t.Fatalf("protobuf container value should decode %T", schema)
401
- }
402
- }
403
- if protobufEncodeProgrammer_decode_bigint(struct {
404
- Candidates []string
405
- Type string
406
- Input *shimast.Node
407
- Index *int
408
- }{Candidates: []string{"int64"}, Type: "int64", Input: input, Index: &first}, emit).Is() == nil {
409
- t.Fatal("single bigint candidate should use typeof predicate")
410
- }
411
- if protobufEncodeProgrammer_decode_number(struct {
412
- Candidates []string
413
- Type string
414
- Input *shimast.Node
415
- Index *int
416
- }{Candidates: []string{"int32", "uint32"}, Type: "uint32", Input: input, Index: &first}, emit).Is() == nil {
417
- t.Fatal("multiple number candidates should use range predicate")
418
- }
419
- if protobufEncodeProgrammer_containerIndex("array", 1) != nil ||
420
- protobufEncodeProgrammer_indexValue(nil) != 0 ||
421
- func() bool {
422
- _, ok := protobufEncodeProgrammer_numberSchema(schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int32"})
423
- return ok
424
- }() == false ||
425
- func() bool {
426
- _, ok := protobufEncodeProgrammer_numberSchema(schemaprotobuf.IProtobufSchema_IString{Type: "string"})
427
- return ok
428
- }() {
429
- t.Fatal("protobuf fallback helper branches mismatch")
430
- }
431
- if protobufEncodeProgrammer_objectSchema(schemaprotobuf.IProtobufSchema_IMap{Type: "map", Map: beta}) != beta ||
432
- protobufEncodeProgrammer_objectSchema(schemaprotobuf.IProtobufSchema_IString{Type: "string"}) != nil {
433
- t.Fatal("protobuf object schema fallback mismatch")
434
- }
435
- nodeName := factory.NewIdentifier("DirectType")
436
- if protobufEncodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: "StringType"}) == nil ||
437
- protobufEncodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: nodeName}) != nodeName ||
438
- protobufEncodeProgrammer_internal(context, "internal") == nil ||
439
- protobufEncodeProgrammer_method_text(nil) != "" {
440
- t.Fatal("protobuf import/internal/method fallback helpers mismatch")
441
- }
442
- importContext := nativecontext.ITypiaContext{Importer: nativecontext.NewImportProgrammer()}
443
- if protobufDecodeProgrammer_import_type(importContext, nativecontext.ImportProgrammer_TypeProps{Name: "Imported"}) == nil ||
444
- protobufDecodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: "StringType"}) == nil ||
445
- protobufDecodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: nodeName}) != nodeName ||
446
- protobufDecodeProgrammer_internal(importContext, "internal") == nil ||
447
- protobufDecodeProgrammer_internal(context, "internal") == nil ||
448
- protobufDecodeProgrammer_method_text(factory.NewIdentifier("method")) == "" {
449
- t.Fatal("protobuf decode import/internal/method helpers mismatch")
450
- }
48
+ factory := shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
49
+ context := nativecontext.ITypiaContext{}
50
+ functor := nativehelpers.NewFunctionProgrammer("protobuf.encode")
51
+ input := factory.NewIdentifier("input")
52
+ first := 1
53
+ second := 2
54
+ alpha := protobufProgrammerObject("Alpha", "kind", "alpha")
55
+ beta := protobufProgrammerObject("Beta", "kind", "beta")
56
+ rest := schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{Name: "Rest"})
57
+ objectSchema := &schemaprotobuf.IProtobufPropertyType_IObject{
58
+ IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: alpha},
59
+ Index: &first,
60
+ }
61
+ mapSchema := &schemaprotobuf.IProtobufPropertyType_IMap{
62
+ IProtobufSchema_IMap: schemaprotobuf.IProtobufSchema_IMap{
63
+ Type: "map",
64
+ Map: alpha,
65
+ Key: schemaprotobuf.IProtobufSchema_IString{Type: "string"},
66
+ Value: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int32"},
67
+ },
68
+ Index: &second,
69
+ }
70
+ concreteMap := schemametadata.MetadataMap_create(schemametadata.MetadataMap{
71
+ Key: protobufProgrammerAtomic("string"),
72
+ Value: protobufProgrammerAtomic("number"),
73
+ })
74
+ concreteMapSchema := &schemaprotobuf.IProtobufPropertyType_IMap{
75
+ IProtobufSchema_IMap: schemaprotobuf.IProtobufSchema_IMap{
76
+ Type: "map",
77
+ Map: concreteMap,
78
+ Key: schemaprotobuf.IProtobufSchema_IString{Type: "string"},
79
+ Value: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int32"},
80
+ },
81
+ Index: &second,
82
+ }
83
+ arrayType := schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
84
+ Name: "string[]",
85
+ Value: protobufProgrammerLiteral("value"),
86
+ Nullables: []bool{},
87
+ })
88
+ propertyVariants := []schemaprotobuf.IProtobufPropertyType{
89
+ &schemaprotobuf.IProtobufPropertyType_IByte{IProtobufSchema_IByte: schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"}, Index: &first},
90
+ &schemaprotobuf.IProtobufPropertyType_IBoolean{IProtobufSchema_IBoolean: schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"}, Index: &first},
91
+ &schemaprotobuf.IProtobufPropertyType_IBigint{IProtobufSchema_IBigint: schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"}, Index: &first},
92
+ &schemaprotobuf.IProtobufPropertyType_INumber{IProtobufSchema_INumber: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "double"}, Index: &first},
93
+ &schemaprotobuf.IProtobufPropertyType_IString{IProtobufSchema_IString: schemaprotobuf.IProtobufSchema_IString{Type: "string"}, Index: &first},
94
+ &schemaprotobuf.IProtobufPropertyType_IArray{IProtobufSchema_IArray: schemaprotobuf.IProtobufSchema_IArray{Type: "array", Array: arrayType, Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}}, Index: &first},
95
+ objectSchema,
96
+ mapSchema,
97
+ concreteMapSchema,
98
+ }
99
+ for _, variant := range propertyVariants {
100
+ if protobufEncodeProgrammer_propertyIndex(variant) == nil ||
101
+ protobufDecodeProgrammer_propertyIndex(variant) == nil ||
102
+ protobufEncodeProgrammer_schemaType(variant) == "" ||
103
+ protobufDecodeProgrammer_schemaType(variant) == "" {
104
+ t.Fatalf("protobuf property switch missed %T", variant)
105
+ }
106
+ if protobufDecodeProgrammer_decode_property_type(protobufDecodeProgrammer_decodePropertyTypeProps{
107
+ Context: context,
108
+ Accessor: input,
109
+ Schema: variant,
110
+ Required: false,
111
+ }) == nil {
112
+ t.Fatalf("protobuf decode property switch missed %T", variant)
113
+ }
114
+ }
115
+ schemaVariants := []schemaprotobuf.IProtobufSchema{
116
+ schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"},
117
+ schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
118
+ schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"},
119
+ schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "float"},
120
+ schemaprotobuf.IProtobufSchema_IString{Type: "string"},
121
+ schemaprotobuf.IProtobufSchema_IArray{Type: "array", Array: arrayType, Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}},
122
+ schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: alpha},
123
+ schemaprotobuf.IProtobufSchema_IMap{Type: "map", Map: alpha, Key: schemaprotobuf.IProtobufSchema_IString{Type: "string"}, Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}},
124
+ }
125
+ for _, variant := range schemaVariants {
126
+ if protobufEncodeProgrammer_schemaType(variant) == "" ||
127
+ protobufDecodeProgrammer_schemaType(variant) == "" {
128
+ t.Fatalf("protobuf schema switch missed %T", variant)
129
+ }
130
+ }
131
+ if protobufDecodeProgrammer_arrayValueName(propertyVariants[5]) != "\"value\"" ||
132
+ protobufDecodeProgrammer_arrayValueName(schemaprotobuf.IProtobufSchema_IArray{Type: "array", Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"}}) != "string" ||
133
+ protobufDecodeProgrammer_arrayValueName(schemaprotobuf.IProtobufSchema_IString{Type: "string"}) != "unknown" {
134
+ t.Fatal("protobuf array value name branch mismatch")
135
+ }
136
+ if protobufDecodeProgrammer_propertyIndex(nil) != nil ||
137
+ protobufDecodeProgrammer_schemaType(nil) != "" ||
138
+ protobufDecodeProgrammer_numberName(schemaprotobuf.IProtobufSchema_IString{Type: "string"}) != "" ||
139
+ protobufDecodeProgrammer_arrayValue(nil) != nil ||
140
+ protobufDecodeProgrammer_objectSchema(&schemaprotobuf.IProtobufPropertyType_IObject{IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta}, Index: &first}) != beta {
141
+ t.Fatal("protobuf decode fallback switch helpers mismatch")
142
+ }
143
+ if protobufEncodeProgrammer_propertyIndex(objectSchema) == nil ||
144
+ protobufEncodeProgrammer_schemaType(mapSchema) != "map" ||
145
+ protobufEncodeProgrammer_objectSchema(mapSchema) != alpha ||
146
+ len(protobufEncodeProgrammer_objectSchemas([]schemaprotobuf.IProtobufPropertyType{objectSchema, mapSchema})) != 2 {
147
+ t.Fatal("protobuf object schema helpers missed object/map branches")
148
+ }
149
+ for _, schemas := range [][]schemaprotobuf.IProtobufPropertyType{
150
+ {objectSchema},
151
+ {mapSchema},
152
+ {
153
+ objectSchema,
154
+ &schemaprotobuf.IProtobufPropertyType_IObject{
155
+ IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta},
156
+ Index: &second,
157
+ },
158
+ &schemaprotobuf.IProtobufPropertyType_IObject{
159
+ IProtobufSchema_IObject: schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: rest},
160
+ Index: &second,
161
+ },
162
+ },
163
+ } {
164
+ if protobufEncodeProgrammer_explore_objects(protobufEncodeProgrammer_exploreObjectsProps{
165
+ Context: context,
166
+ Functor: functor,
167
+ Input: input,
168
+ Schemas: schemas,
169
+ Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: true},
170
+ }) == nil {
171
+ t.Fatal("protobuf object exploration returned nil")
172
+ }
173
+ }
174
+ unionBlock := protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
175
+ Context: context,
176
+ Functor: functor,
177
+ Metadata: schemametadata.MetadataSchema_initialize(),
178
+ Protobuf: &schemaprotobuf.IProtobufProperty{Union: propertyVariants},
179
+ Input: input,
180
+ Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: true},
181
+ })
182
+ if unionBlock == nil {
183
+ t.Fatal("protobuf union property should decode")
184
+ }
185
+ // A factory-produced primitive/static-object union is admitted by validation.
186
+ // Container unions in the original mixed fixture are construction smoke only.
187
+ admitted := protobufProgrammerAtomic("boolean")
188
+ admitted.Atomics = append(admitted.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{Type: "number"}), schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{Type: "string"}))
189
+ admitted.Objects = []*schemametadata.MetadataObject{
190
+ schemametadata.MetadataObject_create(schemametadata.MetadataObject{Type: alpha}),
191
+ schemametadata.MetadataObject_create(schemametadata.MetadataObject{Type: beta}),
192
+ }
193
+ property := schemametadata.MetadataProperty_create(schemametadata.MetadataProperty{Key: protobufProgrammerLiteral("value"), Value: admitted})
194
+ nativefactories.ProtobufFactory.EmplaceObject(schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{Name: "Owner", Properties: []*schemametadata.MetadataProperty{property}}))
195
+ produced := protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{Context: context, Functor: functor, Metadata: admitted, Protobuf: property.Of_protobuf_, Input: input})
196
+ if produced == nil || produced.Kind != shimast.KindBlock || len(produced.Statements()) != 1 {
197
+ t.Fatal("admitted union must have one outer dispatch ladder")
198
+ }
199
+ arm := produced.Statements()[0]
200
+ for _, expected := range []string{"boolean", "object", "number", "string"} {
201
+ if arm == nil || arm.Kind != shimast.KindIfStatement {
202
+ t.Fatalf("missing outer %s arm", expected)
203
+ }
204
+ condition := arm.AsIfStatement().Expression
205
+ if expected == "object" {
206
+ if condition.Kind != shimast.KindBinaryExpression || condition.AsBinaryExpression().OperatorToken.Kind != shimast.KindAmpersandAmpersandToken {
207
+ t.Fatal("object arm must guard typeof and null")
208
+ }
209
+ nullGuard := condition.AsBinaryExpression().Right
210
+ if nullGuard.Kind != shimast.KindBinaryExpression ||
211
+ nullGuard.AsBinaryExpression().OperatorToken.Kind != shimast.KindExclamationEqualsEqualsToken ||
212
+ nullGuard.AsBinaryExpression().Left.Kind != shimast.KindNullKeyword ||
213
+ nullGuard.AsBinaryExpression().Right != input {
214
+ t.Fatal("object arm must exclude null on the original input")
215
+ }
216
+ condition = condition.AsBinaryExpression().Left
217
+ }
218
+ if condition.Kind != shimast.KindBinaryExpression {
219
+ t.Fatalf("%s arm must use a typeof equality", expected)
220
+ }
221
+ equality := condition.AsBinaryExpression()
222
+ if equality.OperatorToken.Kind != shimast.KindEqualsEqualsEqualsToken || equality.Left.Kind != shimast.KindStringLiteral || equality.Left.Text() != expected || equality.Right.Kind != shimast.KindTypeOfExpression || equality.Right.AsTypeOfExpression().Expression != input {
223
+ t.Fatalf("outer %s guard changed order or input", expected)
224
+ }
225
+ arm = arm.AsIfStatement().ElseStatement
226
+ }
227
+ if arm == nil || arm.Kind == shimast.KindIfStatement {
228
+ t.Fatal("exactly four outer arms must precede the error fallback")
229
+ }
230
+ for _, meta := range []*schemametadata.MetadataSchema{
231
+ schemametadata.MetadataSchema_create(schemametadata.MetadataSchema{Optional: true, Nullable: true}),
232
+ schemametadata.MetadataSchema_create(schemametadata.MetadataSchema{Optional: true}),
233
+ schemametadata.MetadataSchema_create(schemametadata.MetadataSchema{Required: true, Nullable: true}),
234
+ } {
235
+ if protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
236
+ Context: context,
237
+ Functor: functor,
238
+ Metadata: meta,
239
+ Protobuf: &schemaprotobuf.IProtobufProperty{Union: []schemaprotobuf.IProtobufPropertyType{
240
+ &schemaprotobuf.IProtobufPropertyType_IString{IProtobufSchema_IString: schemaprotobuf.IProtobufSchema_IString{Type: "string"}, Index: &first},
241
+ }},
242
+ Input: input,
243
+ }) == nil {
244
+ t.Fatal("protobuf optional/nullable wrapper should decode")
245
+ }
246
+ }
247
+ if protobufEncodeProgrammer_decode_property(protobufEncodeProgrammer_decodePropertyProps{
248
+ Context: context,
249
+ Functor: functor,
250
+ Metadata: schemametadata.MetadataSchema_initialize(),
251
+ Protobuf: &schemaprotobuf.IProtobufProperty{},
252
+ Input: input,
253
+ }) == nil {
254
+ t.Fatal("protobuf empty union should produce an empty block")
255
+ }
256
+ if len(protobufDecodeProgrammer_decode_property(protobufDecodeProgrammer_decodePropertyProps{
257
+ Context: context,
258
+ Metadata: schemametadata.MetadataSchema_initialize(),
259
+ Protobuf: nil,
260
+ Accessor: input,
261
+ })) != 0 {
262
+ t.Fatal("nil protobuf property should produce no decode statements")
263
+ }
264
+ for _, meta := range []*schemametadata.MetadataSchema{
265
+ func() *schemametadata.MetadataSchema {
266
+ next := schemametadata.MetadataSchema_initialize()
267
+ next.Arrays = append(next.Arrays, schemametadata.MetadataArray_create(schemametadata.MetadataArray{Type: arrayType}))
268
+ return next
269
+ }(),
270
+ func() *schemametadata.MetadataSchema {
271
+ next := schemametadata.MetadataSchema_initialize()
272
+ next.Maps = append(next.Maps, concreteMap)
273
+ return next
274
+ }(),
275
+ func() *schemametadata.MetadataSchema {
276
+ next := schemametadata.MetadataSchema_initialize()
277
+ next.Natives = append(next.Natives, schemametadata.MetadataNative_create(schemametadata.MetadataNative{Name: "Uint8Array"}))
278
+ return next
279
+ }(),
280
+ protobufProgrammerAtomic("string"),
281
+ func() *schemametadata.MetadataSchema {
282
+ next := schemametadata.MetadataSchema_initialize()
283
+ next.Constants = append(next.Constants, schemametadata.MetadataConstant_create(schemametadata.MetadataConstant{
284
+ Type: "string",
285
+ Values: []*schemametadata.MetadataConstantValue{
286
+ schemametadata.MetadataConstantValue_create(schemametadata.MetadataConstantValue{Value: ""}),
287
+ },
288
+ }))
289
+ return next
290
+ }(),
291
+ func() *schemametadata.MetadataSchema {
292
+ next := schemametadata.MetadataSchema_initialize()
293
+ next.Templates = append(next.Templates, schemametadata.MetadataTemplate_create(schemametadata.MetadataTemplate{
294
+ Row: []*schemametadata.MetadataSchema{protobufProgrammerAtomic("string")},
295
+ }))
296
+ return next
297
+ }(),
298
+ func() *schemametadata.MetadataSchema {
299
+ next := schemametadata.MetadataSchema_initialize()
300
+ next.Objects = append(next.Objects, schemametadata.MetadataObject_create(schemametadata.MetadataObject{
301
+ Type: schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{Name: "Dynamic"}),
302
+ }))
303
+ return next
304
+ }(),
305
+ } {
306
+ if protobufDecodeProgrammer_write_property_default_value(meta, emit) == nil {
307
+ t.Fatal("protobuf decode default value returned nil")
308
+ }
309
+ }
310
+ // #2179: an absent required number/boolean/bigint seeds its proto3 typed
311
+ // default (0/false/0n), just as an absent required string seeds "". Each
312
+ // seed is wrapped in an `as any`, so unwrap it and pin the literal so a
313
+ // regression to `undefined` cannot pass.
314
+ for _, expected := range []struct {
315
+ typ string
316
+ kind shimast.Kind
317
+ text string
318
+ }{
319
+ {typ: "number", kind: shimast.KindNumericLiteral, text: "0"},
320
+ {typ: "boolean", kind: shimast.KindFalseKeyword, text: ""},
321
+ {typ: "bigint", kind: shimast.KindBigIntLiteral, text: "0n"},
322
+ {typ: "string", kind: shimast.KindStringLiteral, text: ""},
323
+ } {
324
+ seed := protobufDecodeProgrammer_write_property_default_value(protobufProgrammerAtomic(expected.typ), emit)
325
+ if seed == nil || seed.Kind != shimast.KindAsExpression {
326
+ t.Fatalf("protobuf %s default should be an as-expression", expected.typ)
327
+ }
328
+ inner := seed.Expression()
329
+ if inner == nil || inner.Kind != expected.kind {
330
+ t.Fatalf("protobuf %s default seeded the wrong node kind", expected.typ)
331
+ }
332
+ if (expected.kind == shimast.KindStringLiteral || expected.text != "") && inner.Text() != expected.text {
333
+ t.Fatalf("protobuf %s default seeded %q instead of %q", expected.typ, inner.Text(), expected.text)
334
+ }
335
+ }
336
+ if protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
337
+ Context: nativecontext.ITypiaContext{},
338
+ Condition: protobufDecodeProgrammer_factory.NewKeywordExpression(
339
+ shimast.KindTrueKeyword,
340
+ ),
341
+ Tag: "tag",
342
+ Output: "output",
343
+ Object: protobufProgrammerObject("DecodeBody", "kind", "body"),
344
+ }) == nil {
345
+ t.Fatal("protobuf decode object body returned nil")
346
+ }
347
+ if protobufDecodeProgrammer_decode_number(schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int64"}, emit) == nil ||
348
+ protobufDecodeProgrammer_decode_number(&schemaprotobuf.IProtobufPropertyType_INumber{IProtobufSchema_INumber: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "uint64"}, Index: &first}, emit) == nil {
349
+ t.Fatal("protobuf decode number bigint-compatible branch returned nil")
350
+ }
351
+ for _, schema := range []schemaprotobuf.IProtobufSchema{
352
+ schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"},
353
+ schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
354
+ schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"},
355
+ schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "double"},
356
+ schemaprotobuf.IProtobufSchema_IString{Type: "string"},
357
+ schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta},
358
+ } {
359
+ if protobufDecodeProgrammer_decode_array_value(schema, emit) == nil {
360
+ t.Fatalf("protobuf decode array value returned nil for %T", schema)
361
+ }
362
+ }
363
+ if protobufDecodeProgrammer_decode_array(protobufDecodeProgrammer_decodeArrayProps{
364
+ Accessor: input,
365
+ Schema: schemaprotobuf.IProtobufSchema_IArray{
366
+ Type: "array",
367
+ Value: schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
368
+ },
369
+ Required: false,
370
+ }, emit) == nil || protobufDecodeProgrammer_decode_array(protobufDecodeProgrammer_decodeArrayProps{
371
+ Accessor: input,
372
+ Schema: schemaprotobuf.IProtobufSchema_IArray{
373
+ Type: "array",
374
+ Value: schemaprotobuf.IProtobufSchema_IString{Type: "string"},
375
+ },
376
+ Required: true,
377
+ }, emit) == nil {
378
+ t.Fatal("protobuf decode array branches returned nil")
379
+ }
380
+ if protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
381
+ Context: context,
382
+ Accessor: input,
383
+ Key: protobufProgrammerAtomic("string"),
384
+ Value: protobufProgrammerAtomic("number"),
385
+ Schema: schemaprotobuf.IProtobufSchema_IMap{Type: "map"},
386
+ Initializer: factory.NewNewExpression(factory.NewIdentifier("Map"), nil, nil),
387
+ Required: true,
388
+ Setter: func() *shimast.Node { return input },
389
+ }) == nil || protobufDecodeProgrammer_decode_map(protobufDecodeProgrammer_decodeMapProps{
390
+ Context: context,
391
+ Accessor: input,
392
+ Key: protobufProgrammerAtomic("string"),
393
+ Value: protobufProgrammerAtomic("number"),
394
+ Schema: schemaprotobuf.IProtobufSchema_IMap{Type: "map"},
395
+ Initializer: factory.NewNewExpression(factory.NewIdentifier("Map"), nil, nil),
396
+ Required: false,
397
+ Setter: func() *shimast.Node { return input },
398
+ }) == nil {
399
+ t.Fatal("protobuf decode map branches returned nil")
400
+ }
401
+ func() {
402
+ defer func() {
403
+ if got := recover(); got != "Error on ProtobufDecodeProgrammer.write(): unknown property type" {
404
+ t.Fatalf("protobuf decode property refusal changed: %v", got)
405
+ }
406
+ }()
407
+ _ = protobufDecodeProgrammer_decode_property_type(protobufDecodeProgrammer_decodePropertyTypeProps{
408
+ Context: context,
409
+ Accessor: input,
410
+ Schema: nil,
411
+ Required: true,
412
+ })
413
+ }()
414
+ func() {
415
+ defer func() {
416
+ if got := recover(); got != "unreachable condition" {
417
+ t.Fatalf("protobuf decode array refusal changed: %v", got)
418
+ }
419
+ }()
420
+ _ = protobufDecodeProgrammer_decode_array_value(nil, emit)
421
+ }()
422
+ for _, schema := range []schemaprotobuf.IProtobufSchema{
423
+ &schemaprotobuf.IProtobufPropertyType_IBoolean{IProtobufSchema_IBoolean: schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"}, Index: &first},
424
+ schemaprotobuf.IProtobufSchema_IBoolean{Type: "bool"},
425
+ &schemaprotobuf.IProtobufPropertyType_IBigint{IProtobufSchema_IBigint: schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "int64"}, Index: &first},
426
+ schemaprotobuf.IProtobufSchema_IBigint{Type: "bigint", Name: "uint64"},
427
+ &schemaprotobuf.IProtobufPropertyType_INumber{IProtobufSchema_INumber: schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "float"}, Index: &first},
428
+ schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "double"},
429
+ schemaprotobuf.IProtobufSchema_IByte{Type: "bytes"},
430
+ schemaprotobuf.IProtobufSchema_IObject{Type: "object", Object: beta},
431
+ } {
432
+ if protobufEncodeProgrammer_decode_container_value(struct {
433
+ Context nativecontext.ITypiaContext
434
+ Functor *nativehelpers.FunctionProgrammer
435
+ Schema schemaprotobuf.IProtobufSchema
436
+ Index int
437
+ Kind string
438
+ Input *shimast.Node
439
+ }{Context: context, Functor: functor, Schema: schema, Index: 1, Kind: "map", Input: input}) == nil {
440
+ t.Fatalf("protobuf container value should decode %T", schema)
441
+ }
442
+ }
443
+ if protobufEncodeProgrammer_decode_bigint(struct {
444
+ Candidates []string
445
+ Type string
446
+ Input *shimast.Node
447
+ Index *int
448
+ }{Candidates: []string{"int64"}, Type: "int64", Input: input, Index: &first}, emit).Is() == nil {
449
+ t.Fatal("single bigint candidate should use typeof predicate")
450
+ }
451
+ if protobufEncodeProgrammer_decode_number(struct {
452
+ Candidates []string
453
+ Type string
454
+ Input *shimast.Node
455
+ Index *int
456
+ }{Candidates: []string{"int32", "uint32"}, Type: "uint32", Input: input, Index: &first}, emit).Is() == nil {
457
+ t.Fatal("multiple number candidates should use range predicate")
458
+ }
459
+ if protobufEncodeProgrammer_containerIndex("array", 1) != nil ||
460
+ protobufEncodeProgrammer_indexValue(nil) != 0 ||
461
+ func() bool {
462
+ _, ok := protobufEncodeProgrammer_numberSchema(schemaprotobuf.IProtobufSchema_INumber{Type: "number", Name: "int32"})
463
+ return ok
464
+ }() == false ||
465
+ func() bool {
466
+ _, ok := protobufEncodeProgrammer_numberSchema(schemaprotobuf.IProtobufSchema_IString{Type: "string"})
467
+ return ok
468
+ }() {
469
+ t.Fatal("protobuf fallback helper branches mismatch")
470
+ }
471
+ if protobufEncodeProgrammer_objectSchema(schemaprotobuf.IProtobufSchema_IMap{Type: "map", Map: beta}) != beta ||
472
+ protobufEncodeProgrammer_objectSchema(schemaprotobuf.IProtobufSchema_IString{Type: "string"}) != nil {
473
+ t.Fatal("protobuf object schema fallback mismatch")
474
+ }
475
+ nodeName := factory.NewIdentifier("DirectType")
476
+ if protobufEncodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: "StringType"}) == nil ||
477
+ protobufEncodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: nodeName}) != nodeName ||
478
+ protobufEncodeProgrammer_internal(context, "internal") == nil ||
479
+ protobufEncodeProgrammer_method_text(nil) != "" {
480
+ t.Fatal("protobuf import/internal/method fallback helpers mismatch")
481
+ }
482
+ importContext := nativecontext.ITypiaContext{Importer: nativecontext.NewImportProgrammer()}
483
+ if protobufDecodeProgrammer_import_type(importContext, nativecontext.ImportProgrammer_TypeProps{Name: "Imported"}) == nil ||
484
+ protobufDecodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: "StringType"}) == nil ||
485
+ protobufDecodeProgrammer_import_type(context, nativecontext.ImportProgrammer_TypeProps{Name: nodeName}) != nodeName ||
486
+ protobufDecodeProgrammer_internal(importContext, "internal") == nil ||
487
+ protobufDecodeProgrammer_internal(context, "internal") == nil ||
488
+ protobufDecodeProgrammer_method_text(factory.NewIdentifier("method")) == "" {
489
+ t.Fatal("protobuf decode import/internal/method helpers mismatch")
490
+ }
451
491
  }
452
492
 
453
493
  func protobufProgrammerObject(name string, key string, value string) *schemametadata.MetadataObjectType {
454
- return schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{
455
- Name: name,
456
- Properties: []*schemametadata.MetadataProperty{
457
- schemametadata.MetadataProperty_create(schemametadata.MetadataProperty{
458
- Key: protobufProgrammerLiteral(key),
459
- Value: protobufProgrammerLiteral(value),
460
- }),
461
- },
462
- })
494
+ return schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{
495
+ Name: name,
496
+ Properties: []*schemametadata.MetadataProperty{
497
+ schemametadata.MetadataProperty_create(schemametadata.MetadataProperty{
498
+ Key: protobufProgrammerLiteral(key),
499
+ Value: protobufProgrammerLiteral(value),
500
+ }),
501
+ },
502
+ })
463
503
  }
464
504
 
465
505
  func protobufProgrammerLiteral(value string) *schemametadata.MetadataSchema {
466
- meta := schemametadata.MetadataSchema_initialize()
467
- meta.Constants = append(meta.Constants, schemametadata.MetadataConstant_create(schemametadata.MetadataConstant{
468
- Type: "string",
469
- Values: []*schemametadata.MetadataConstantValue{
470
- schemametadata.MetadataConstantValue_create(schemametadata.MetadataConstantValue{Value: value}),
471
- },
472
- }))
473
- return meta
506
+ meta := schemametadata.MetadataSchema_initialize()
507
+ meta.Constants = append(meta.Constants, schemametadata.MetadataConstant_create(schemametadata.MetadataConstant{
508
+ Type: "string",
509
+ Values: []*schemametadata.MetadataConstantValue{
510
+ schemametadata.MetadataConstantValue_create(schemametadata.MetadataConstantValue{Value: value}),
511
+ },
512
+ }))
513
+ return meta
474
514
  }
475
515
 
476
516
  func protobufProgrammerAtomic(typ string) *schemametadata.MetadataSchema {
477
- meta := schemametadata.MetadataSchema_initialize()
478
- meta.Atomics = append(meta.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{Type: typ}))
479
- return meta
517
+ meta := schemametadata.MetadataSchema_initialize()
518
+ meta.Atomics = append(meta.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{Type: typ}))
519
+ return meta
480
520
  }