typia 15.1.0 → 15.2.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 (295) hide show
  1. package/lib/TypeGuardError.js.map +1 -1
  2. package/lib/basic.js.map +1 -1
  3. package/lib/compare.js.map +1 -1
  4. package/lib/functional.js.map +1 -1
  5. package/lib/http.js.map +1 -1
  6. package/lib/index.js.map +1 -1
  7. package/lib/internal/_IProtobufWriter.js.map +1 -1
  8. package/lib/internal/_ProtobufReader.js.map +1 -1
  9. package/lib/internal/_ProtobufSizer.js.map +1 -1
  10. package/lib/internal/_ProtobufWriter.js.map +1 -1
  11. package/lib/internal/_accessExpressionAsString.js.map +1 -1
  12. package/lib/internal/_assertGuard.js.map +1 -1
  13. package/lib/internal/_coerceLlmArguments.js.map +1 -1
  14. package/lib/internal/_createLlmEvaluation.js.map +1 -1
  15. package/lib/internal/_createStandardSchema.js.map +1 -1
  16. package/lib/internal/_decimal.js.map +1 -1
  17. package/lib/internal/_functionalTypeGuardErrorFactory.js.map +1 -1
  18. package/lib/internal/_httpFormDataReadArray.js.map +1 -1
  19. package/lib/internal/_httpFormDataReadBigint.js.map +1 -1
  20. package/lib/internal/_httpFormDataReadBlob.js.map +1 -1
  21. package/lib/internal/_httpFormDataReadBoolean.js.map +1 -1
  22. package/lib/internal/_httpFormDataReadFile.js.map +1 -1
  23. package/lib/internal/_httpFormDataReadNumber.js.map +1 -1
  24. package/lib/internal/_httpFormDataReadString.js.map +1 -1
  25. package/lib/internal/_httpHeaderReadBigint.js.map +1 -1
  26. package/lib/internal/_httpHeaderReadBoolean.js.map +1 -1
  27. package/lib/internal/_httpHeaderReadNumber.js.map +1 -1
  28. package/lib/internal/_httpParameterReadBigint.js.map +1 -1
  29. package/lib/internal/_httpParameterReadBoolean.js.map +1 -1
  30. package/lib/internal/_httpParameterReadNumber.js.map +1 -1
  31. package/lib/internal/_httpParameterReadString.js.map +1 -1
  32. package/lib/internal/_httpQueryParseURLSearchParams.js.map +1 -1
  33. package/lib/internal/_httpQueryReadArray.js.map +1 -1
  34. package/lib/internal/_httpQueryReadBigint.js.map +1 -1
  35. package/lib/internal/_httpQueryReadBoolean.js.map +1 -1
  36. package/lib/internal/_httpQueryReadNumber.js.map +1 -1
  37. package/lib/internal/_httpQueryReadString.js.map +1 -1
  38. package/lib/internal/_isBetween.js.map +1 -1
  39. package/lib/internal/_isBigintString.js.map +1 -1
  40. package/lib/internal/_isFormatByte.js.map +1 -1
  41. package/lib/internal/_isFormatDate.js.map +1 -1
  42. package/lib/internal/_isFormatDateTime.js.map +1 -1
  43. package/lib/internal/_isFormatDuration.js.map +1 -1
  44. package/lib/internal/_isFormatEmail.js.map +1 -1
  45. package/lib/internal/_isFormatHostname.js.map +1 -1
  46. package/lib/internal/_isFormatIdnEmail.js.map +1 -1
  47. package/lib/internal/_isFormatIdnHostname.js.map +1 -1
  48. package/lib/internal/_isFormatIpv4.js.map +1 -1
  49. package/lib/internal/_isFormatIpv6.js.map +1 -1
  50. package/lib/internal/_isFormatIri.js.map +1 -1
  51. package/lib/internal/_isFormatIriReference.js.map +1 -1
  52. package/lib/internal/_isFormatJsonPointer.js.map +1 -1
  53. package/lib/internal/_isFormatPassword.js.map +1 -1
  54. package/lib/internal/_isFormatRegex.js.map +1 -1
  55. package/lib/internal/_isFormatRelativeJsonPointer.js.map +1 -1
  56. package/lib/internal/_isFormatTime.js.map +1 -1
  57. package/lib/internal/_isFormatUri.js.map +1 -1
  58. package/lib/internal/_isFormatUriReference.js.map +1 -1
  59. package/lib/internal/_isFormatUriTemplate.js.map +1 -1
  60. package/lib/internal/_isFormatUrl.js.map +1 -1
  61. package/lib/internal/_isFormatUuid.js.map +1 -1
  62. package/lib/internal/_isMultipleOf.js.map +1 -1
  63. package/lib/internal/_isTypeFloat.js.map +1 -1
  64. package/lib/internal/_isTypeInt16.js.map +1 -1
  65. package/lib/internal/_isTypeInt32.js.map +1 -1
  66. package/lib/internal/_isTypeInt64.js.map +1 -1
  67. package/lib/internal/_isTypeInt64Bigint.js.map +1 -1
  68. package/lib/internal/_isTypeInt8.js.map +1 -1
  69. package/lib/internal/_isTypeUint16.js.map +1 -1
  70. package/lib/internal/_isTypeUint32.js.map +1 -1
  71. package/lib/internal/_isTypeUint64.js.map +1 -1
  72. package/lib/internal/_isTypeUint64Bigint.js.map +1 -1
  73. package/lib/internal/_isTypeUint8.js.map +1 -1
  74. package/lib/internal/_isUniqueItems.js.map +1 -1
  75. package/lib/internal/_jsonStringifyArray.js.map +1 -1
  76. package/lib/internal/_jsonStringifyElement.js.map +1 -1
  77. package/lib/internal/_jsonStringifyNumber.js.map +1 -1
  78. package/lib/internal/_jsonStringifyProperty.js.map +1 -1
  79. package/lib/internal/_jsonStringifyRest.js.map +1 -1
  80. package/lib/internal/_jsonStringifyString.js.map +1 -1
  81. package/lib/internal/_jsonStringifyTail.js.map +1 -1
  82. package/lib/internal/_llmApplicationFinalize.js +8 -1
  83. package/lib/internal/_llmApplicationFinalize.js.map +1 -1
  84. package/lib/internal/_notationAny.js.map +1 -1
  85. package/lib/internal/_notationAssign.js.map +1 -1
  86. package/lib/internal/_notationCamel.js.map +1 -1
  87. package/lib/internal/_notationKebab.js.map +1 -1
  88. package/lib/internal/_notationKeyCollision.js.map +1 -1
  89. package/lib/internal/_notationPascal.js.map +1 -1
  90. package/lib/internal/_notationSnake.js.map +1 -1
  91. package/lib/internal/_parseLlmArguments.js.map +1 -1
  92. package/lib/internal/_plainCloneAny.js.map +1 -1
  93. package/lib/internal/_randomArray.js.map +1 -1
  94. package/lib/internal/_randomBigint.js.map +1 -1
  95. package/lib/internal/_randomBoolean.js.map +1 -1
  96. package/lib/internal/_randomFormatByte.js.map +1 -1
  97. package/lib/internal/_randomFormatDate.js.map +1 -1
  98. package/lib/internal/_randomFormatDatetime.js.map +1 -1
  99. package/lib/internal/_randomFormatDuration.js.map +1 -1
  100. package/lib/internal/_randomFormatEmail.js.map +1 -1
  101. package/lib/internal/_randomFormatHostname.js.map +1 -1
  102. package/lib/internal/_randomFormatIdnEmail.js.map +1 -1
  103. package/lib/internal/_randomFormatIdnHostname.js.map +1 -1
  104. package/lib/internal/_randomFormatIpv4.js.map +1 -1
  105. package/lib/internal/_randomFormatIpv6.js.map +1 -1
  106. package/lib/internal/_randomFormatIri.js.map +1 -1
  107. package/lib/internal/_randomFormatIriReference.js.map +1 -1
  108. package/lib/internal/_randomFormatJsonPointer.js.map +1 -1
  109. package/lib/internal/_randomFormatPassword.js.map +1 -1
  110. package/lib/internal/_randomFormatRegex.js.map +1 -1
  111. package/lib/internal/_randomFormatRelativeJsonPointer.js.map +1 -1
  112. package/lib/internal/_randomFormatTime.js.map +1 -1
  113. package/lib/internal/_randomFormatUri.js.map +1 -1
  114. package/lib/internal/_randomFormatUriReference.js.map +1 -1
  115. package/lib/internal/_randomFormatUriTemplate.js.map +1 -1
  116. package/lib/internal/_randomFormatUrl.js.map +1 -1
  117. package/lib/internal/_randomFormatUuid.js.map +1 -1
  118. package/lib/internal/_randomInteger.js.map +1 -1
  119. package/lib/internal/_randomMultiple.js.map +1 -1
  120. package/lib/internal/_randomNumber.js.map +1 -1
  121. package/lib/internal/_randomPattern.js.map +1 -1
  122. package/lib/internal/_randomPick.js.map +1 -1
  123. package/lib/internal/_randomString.js.map +1 -1
  124. package/lib/internal/_randomStringLength.js.map +1 -1
  125. package/lib/internal/_stringLength.js.map +1 -1
  126. package/lib/internal/_stringLengthGte.js.map +1 -1
  127. package/lib/internal/_stringLengthLte.js.map +1 -1
  128. package/lib/internal/_throwTypeGuardError.js.map +1 -1
  129. package/lib/internal/_validateReport.js.map +1 -1
  130. package/lib/internal/private/__notationRename.js.map +1 -1
  131. package/lib/internal/private/__randomComposition.js.map +1 -1
  132. package/lib/internal/private/__randomEpoch.js.map +1 -1
  133. package/lib/json.js.map +1 -1
  134. package/lib/llm.js.map +1 -1
  135. package/lib/module.js.map +1 -1
  136. package/lib/notations.js.map +1 -1
  137. package/lib/plain.js.map +1 -1
  138. package/lib/protobuf.js.map +1 -1
  139. package/lib/re-exports.js.map +1 -1
  140. package/lib/reflect.js.map +1 -1
  141. package/lib/transform.d.ts +5 -2
  142. package/lib/transform.js +6 -2
  143. package/lib/transform.js.map +1 -1
  144. package/lib/transform.mjs +7 -3
  145. package/lib/transform.mjs.map +1 -1
  146. package/lib/transformers/NoTransformConfigurationError.js.map +1 -1
  147. package/native/cmd/ttsc-typia/build.go +3 -1
  148. package/native/cmd/ttsc-typia/content_mapper_transform_ts71_test.go +102 -0
  149. package/native/cmd/ttsc-typia/diagnostics.go +1 -1
  150. package/native/cmd/ttsc-typia/distinct_programs_concurrent_emit_test.go +167 -0
  151. package/native/cmd/ttsc-typia/exact_optional_family_emission_contract_test.go +2 -1
  152. package/native/cmd/ttsc-typia/project_dependencies_heritage_forms_transform_test.go +84 -0
  153. package/native/cmd/ttsc-typia/schema_literal_helpers_test.go +2 -1
  154. package/native/cmd/ttsc-typia/transform.go +7 -6
  155. package/native/core/context/EmitFactory.go +20 -29
  156. package/native/core/context/ImportProgrammer.go +5 -7
  157. package/native/core/context/NodeFactory.go +25 -0
  158. package/native/core/context/node_factory_ownership_test.go +45 -0
  159. package/native/core/factories/ExpressionFactory.go +13 -14
  160. package/native/core/factories/IdentifierFactory.go +3 -5
  161. package/native/core/factories/LiteralFactory.go +6 -8
  162. package/native/core/factories/NumericRangeFactory.go +8 -10
  163. package/native/core/factories/StatementFactory.go +5 -7
  164. package/native/core/factories/TemplateFactory.go +1 -3
  165. package/native/core/factories/TypeFactory.go +7 -9
  166. package/native/core/factories/ValueFactory.go +5 -7
  167. package/native/core/factories/factory_utility_coverage_test.go +21 -20
  168. package/native/core/factories/internal/metadata/MetadataHelper.go +13 -13
  169. package/native/core/factories/internal/metadata/comment_tags_coverage_test.go +7 -16
  170. package/native/core/factories/internal/metadata/emplace_metadata_object.go +36 -27
  171. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +2 -2
  172. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +4 -4
  173. package/native/core/factories/internal/metadata/iterate_metadata_function.go +2 -2
  174. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +11 -11
  175. package/native/core/factories/internal/metadata/js_doc_link_text_test.go +6 -16
  176. package/native/core/factories/internal/metadata/js_doc_parameter_name_reads_qualified_name_test.go +2 -1
  177. package/native/core/factories/internal/metadata/js_doc_source_helpers_test.go +44 -0
  178. package/native/core/factories/internal/metadata/js_doc_type_tag_blank_separation_test.go +16 -22
  179. package/native/core/factories/numeric_range_factory_enforces_64bit_bounds_test.go +2 -1
  180. package/native/core/programmers/AssertProgrammer.go +16 -18
  181. package/native/core/programmers/IsProgrammer.go +10 -12
  182. package/native/core/programmers/RandomProgrammer.go +29 -31
  183. package/native/core/programmers/ValidateProgrammer.go +20 -22
  184. package/native/core/programmers/compare/CompareEqualProgrammer.go +1 -3
  185. package/native/core/programmers/compare/CompareLessProgrammer.go +1 -3
  186. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +3 -5
  187. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +2 -2
  188. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +2 -2
  189. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +2 -2
  190. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +8 -10
  191. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +2 -2
  192. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +4 -6
  193. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +2 -2
  194. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +2 -2
  195. package/native/core/programmers/helpers/ClassifyJoiner.go +1 -3
  196. package/native/core/programmers/helpers/CloneJoiner.go +8 -14
  197. package/native/core/programmers/helpers/FunctionProgrammer.go +3 -5
  198. package/native/core/programmers/helpers/NotationJoiner.go +6 -12
  199. package/native/core/programmers/helpers/PruneJoiner.go +10 -12
  200. package/native/core/programmers/helpers/RandomJoiner.go +5 -7
  201. package/native/core/programmers/helpers/StringifyJoinder.go +15 -17
  202. package/native/core/programmers/helpers/UnionExplorer.go +24 -26
  203. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +2 -4
  204. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +1 -1
  205. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +1 -1
  206. package/native/core/programmers/http/HttpFormDataProgrammer.go +9 -11
  207. package/native/core/programmers/http/HttpHeadersProgrammer.go +7 -9
  208. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +2 -4
  209. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +1 -1
  210. package/native/core/programmers/http/HttpIsQueryProgrammer.go +1 -1
  211. package/native/core/programmers/http/HttpParameterProgrammer.go +2 -4
  212. package/native/core/programmers/http/HttpQueryProgrammer.go +8 -10
  213. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +2 -4
  214. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +1 -1
  215. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +1 -1
  216. package/native/core/programmers/internal/CheckerProgrammer.go +26 -28
  217. package/native/core/programmers/internal/FeatureProgrammer.go +32 -34
  218. package/native/core/programmers/iterate/check_array_length.go +1 -1
  219. package/native/core/programmers/iterate/check_bigint.go +2 -4
  220. package/native/core/programmers/iterate/check_dynamic_key.go +5 -7
  221. package/native/core/programmers/iterate/check_dynamic_properties.go +43 -57
  222. package/native/core/programmers/iterate/check_everything.go +3 -5
  223. package/native/core/programmers/iterate/check_exclude.go +2 -4
  224. package/native/core/programmers/iterate/check_native.go +2 -4
  225. package/native/core/programmers/iterate/check_number.go +2 -4
  226. package/native/core/programmers/iterate/check_object.go +3 -5
  227. package/native/core/programmers/iterate/check_object_type_tags.go +1 -1
  228. package/native/core/programmers/iterate/check_string.go +2 -4
  229. package/native/core/programmers/iterate/check_template.go +7 -9
  230. package/native/core/programmers/iterate/decode_union_object.go +2 -4
  231. package/native/core/programmers/iterate/feature_object_entries.go +2 -4
  232. package/native/core/programmers/json/JsonAssertParseProgrammer.go +2 -2
  233. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +2 -4
  234. package/native/core/programmers/json/JsonIsParseProgrammer.go +4 -6
  235. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +2 -4
  236. package/native/core/programmers/json/JsonStringifyProgrammer.go +37 -39
  237. package/native/core/programmers/json/JsonValidateParseProgrammer.go +2 -2
  238. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +2 -4
  239. package/native/core/programmers/llm/LlmApplicationProgrammer.go +1 -3
  240. package/native/core/programmers/llm/LlmCoerceProgrammer.go +2 -4
  241. package/native/core/programmers/llm/LlmControllerProgrammer.go +1 -3
  242. package/native/core/programmers/llm/LlmEvaluationProgrammer.go +1 -3
  243. package/native/core/programmers/llm/LlmParametersProgrammer.go +1 -3
  244. package/native/core/programmers/llm/LlmParseProgrammer.go +3 -5
  245. package/native/core/programmers/llm/LlmSchemaProgrammer.go +5 -7
  246. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +2 -4
  247. package/native/core/programmers/llm/llm_schema_programmer_coverage_test.go +1 -1
  248. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +1 -3
  249. package/native/core/programmers/notations/NotationGeneralProgrammer.go +26 -28
  250. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +1 -3
  251. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +1 -3
  252. package/native/core/programmers/plain/PlainAssertClassifyProgrammer.go +2 -4
  253. package/native/core/programmers/plain/PlainAssertCloneProgrammer.go +2 -4
  254. package/native/core/programmers/plain/PlainAssertPruneProgrammer.go +2 -4
  255. package/native/core/programmers/plain/PlainClassifyProgrammer.go +44 -46
  256. package/native/core/programmers/plain/PlainCloneProgrammer.go +30 -32
  257. package/native/core/programmers/plain/PlainIsCloneProgrammer.go +2 -4
  258. package/native/core/programmers/plain/PlainIsPruneProgrammer.go +2 -4
  259. package/native/core/programmers/plain/PlainPruneProgrammer.go +26 -28
  260. package/native/core/programmers/plain/PlainValidateClassifyProgrammer.go +2 -4
  261. package/native/core/programmers/plain/PlainValidateCloneProgrammer.go +2 -4
  262. package/native/core/programmers/plain/PlainValidatePruneProgrammer.go +2 -4
  263. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +2 -4
  264. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +2 -4
  265. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +24 -25
  266. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +23 -25
  267. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +2 -4
  268. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +2 -4
  269. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +1 -3
  270. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +2 -4
  271. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +3 -5
  272. package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +1 -1
  273. package/native/core/programmers/reflect/ReflectLiteralsProgrammer.go +1 -3
  274. package/native/core/schemas/metadata/MetadataCollection.go +2 -2
  275. package/native/core/schemas/metadata/MetadataDefaultLibrary.go +1 -1
  276. package/native/core/schemas/metadata/MetadataDependency.go +13 -13
  277. package/native/core/utils/PromiseTypeFactory.go +3 -3
  278. package/native/go.mod +3 -4
  279. package/native/go.work +1 -1
  280. package/native/transform/CallExpressionTransformer.go +4 -4
  281. package/native/transform/FileTransformer.go +2 -4
  282. package/native/transform/features/RandomTransformer.go +1 -3
  283. package/native/transform/features/compare/CompareEqualTransformer.go +1 -1
  284. package/native/transform/features/compare/CompareLessTransformer.go +1 -1
  285. package/native/transform/features/functional/FunctionalGenericTransformer.go +2 -2
  286. package/native/transform/features/llm/LlmCoerceTransformer.go +1 -1
  287. package/native/transform/features/llm/LlmEvaluationProbabilityDeclarations.go +1 -1
  288. package/native/transform/features/llm/LlmEvaluationTransformer.go +1 -1
  289. package/native/transform/features/llm/LlmParseTransformer.go +1 -1
  290. package/native/transform/features/llm/LlmSchemaTransformer.go +1 -3
  291. package/native/transform/features/reflect/ReflectNameTransformer.go +1 -3
  292. package/native/transform/file_transformer_coverage_test.go +2 -1
  293. package/native/transform/internal/GenericTransformer.go +1 -3
  294. package/package.json +6 -6
  295. package/src/transform.ts +6 -2
@@ -61,10 +61,8 @@ type protobufEncodeProgrammer_IUnion struct {
61
61
 
62
62
  const protobufEncodeProgrammer_PREFIX = "_pe"
63
63
 
64
- var protobufEncodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
65
-
66
64
  func (protobufEncodeProgrammerNamespace) Decompose(props ProtobufEncodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
67
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
65
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
68
66
  collection := schemametadata.NewMetadataCollection()
69
67
  metadata := nativefactories.ProtobufFactory.Metadata(nativefactories.ProtobufFactory_IProps{
70
68
  Method: protobufEncodeProgrammer_method_text(props.Modulo),
@@ -148,7 +146,7 @@ func (protobufEncodeProgrammerNamespace) Write(props ProtobufEncodeProgrammer_IP
148
146
  Type: props.Type,
149
147
  Name: props.Name,
150
148
  })
151
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
149
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
152
150
  Modulo: props.Modulo,
153
151
  Functor: functor,
154
152
  Result: result,
@@ -163,7 +161,7 @@ type protobufEncodeProgrammer_writeEncoderProps struct {
163
161
  }
164
162
 
165
163
  func protobufEncodeProgrammer_write_encoder(props protobufEncodeProgrammer_writeEncoderProps) *shimast.Node {
166
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
164
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
167
165
  functors := []*shimast.Node{}
168
166
  for _, object := range props.Collection.Objects() {
169
167
  if nativehelpers.ProtobufUtil.IsStaticObject(object) == false {
@@ -260,7 +258,7 @@ type protobufEncodeProgrammer_writeObjectFunctionProps struct {
260
258
  }
261
259
 
262
260
  func protobufEncodeProgrammer_write_object_function(props protobufEncodeProgrammer_writeObjectFunctionProps) *shimast.Node {
263
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
261
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
264
262
  body := []*shimast.Node{}
265
263
  guarded := props.Object.Recursive && props.Functor.Visited()
266
264
  if guarded {
@@ -331,7 +329,7 @@ type protobufEncodeProgrammer_decodePropertyProps struct {
331
329
  }
332
330
 
333
331
  func protobufEncodeProgrammer_decode_property(props protobufEncodeProgrammer_decodePropertyProps) *shimast.Node {
334
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
332
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
335
333
  union := []protobufEncodeProgrammer_IUnion{}
336
334
  bigintCandidates := protobufEncodeProgrammer_bigintCandidates(props.Protobuf.Union)
337
335
  numberCandidates := protobufEncodeProgrammer_numberCandidates(props.Protobuf.Union)
@@ -542,7 +540,7 @@ func protobufEncodeProgrammer_decode_bigint(props struct {
542
540
  Input *shimast.Node
543
541
  Index *int
544
542
  }, emit *shimprinter.EmitContext) protobufEncodeProgrammer_IUnion {
545
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
543
+ f := nativecontext.NodeFactoryOf(emit)
546
544
  return protobufEncodeProgrammer_IUnion{
547
545
  Is: func() *shimast.Node {
548
546
  typeof := protobufEncodeProgrammer_strict_equal(
@@ -553,7 +551,7 @@ func protobufEncodeProgrammer_decode_bigint(props struct {
553
551
  if len(props.Candidates) == 1 {
554
552
  return typeof
555
553
  }
556
- return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Bigint(props.Type, props.Input), emit)
554
+ return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Bigint(props.Type, props.Input, emit), emit)
557
555
  },
558
556
  Value: func() *shimast.Node {
559
557
  expressions := []*shimast.Node{}
@@ -575,7 +573,7 @@ func protobufEncodeProgrammer_decode_number(props struct {
575
573
  Input *shimast.Node
576
574
  Index *int
577
575
  }, emit *shimprinter.EmitContext) protobufEncodeProgrammer_IUnion {
578
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
576
+ f := nativecontext.NodeFactoryOf(emit)
579
577
  return protobufEncodeProgrammer_IUnion{
580
578
  Is: func() *shimast.Node {
581
579
  typeof := protobufEncodeProgrammer_strict_equal(
@@ -586,7 +584,7 @@ func protobufEncodeProgrammer_decode_number(props struct {
586
584
  if len(props.Candidates) == 1 {
587
585
  return typeof
588
586
  }
589
- return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Number(props.Type, props.Input), emit)
587
+ return protobufEncodeProgrammer_logical_and(typeof, nativefactories.NumericRangeFactory.Number(props.Type, props.Input, emit), emit)
590
588
  },
591
589
  Value: func() *shimast.Node {
592
590
  expressions := []*shimast.Node{}
@@ -688,7 +686,7 @@ type protobufEncodeProgrammer_decodeArrayProps struct {
688
686
  }
689
687
 
690
688
  func protobufEncodeProgrammer_decode_array(props protobufEncodeProgrammer_decodeArrayProps) *shimast.Node {
691
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
689
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
692
690
  value := props.Schema.Value
693
691
  wire := nativehelpers.VARIANT
694
692
  if protobufEncodeProgrammer_schemaType(value) == "object" || protobufEncodeProgrammer_schemaType(value) == "bytes" || protobufEncodeProgrammer_schemaType(value) == "string" {
@@ -760,7 +758,7 @@ type protobufEncodeProgrammer_decodeObjectProps struct {
760
758
  }
761
759
 
762
760
  func protobufEncodeProgrammer_decode_object(props protobufEncodeProgrammer_decodeObjectProps) *shimast.Node {
763
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
761
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
764
762
  object := protobufEncodeProgrammer_objectSchema(props.Schema)
765
763
  objectIndex := 0
766
764
  if object != nil {
@@ -791,7 +789,7 @@ type protobufEncodeProgrammer_decodeMapProps struct {
791
789
  }
792
790
 
793
791
  func protobufEncodeProgrammer_decode_map(props protobufEncodeProgrammer_decodeMapProps) *shimast.Node {
794
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
792
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
795
793
  each := []*shimast.Node{
796
794
  f.NewExpressionStatement(protobufEncodeProgrammer_decode_tag(struct {
797
795
  Wire nativehelpers.ProtobufWire
@@ -839,7 +837,7 @@ type protobufEncodeProgrammer_exploreObjectsProps struct {
839
837
  }
840
838
 
841
839
  func protobufEncodeProgrammer_explore_objects(props protobufEncodeProgrammer_exploreObjectsProps) *shimast.Node {
842
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
840
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
843
841
  out := func(schema schemaprotobuf.IProtobufPropertyType) *shimast.Node {
844
842
  if protobufEncodeProgrammer_schemaType(schema) == "object" {
845
843
  return protobufEncodeProgrammer_decode_object(protobufEncodeProgrammer_decodeObjectProps{
@@ -880,7 +878,7 @@ func protobufEncodeProgrammer_explore_objects(props protobufEncodeProgrammer_exp
880
878
  }
881
879
  specifications := nativehelpers.UnionPredicator.Object(objects)
882
880
  if len(specifications) == 0 {
883
- condition := nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
881
+ condition := nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{Emit: props.Context.Emit,
884
882
  Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
885
883
  return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
886
884
  Context: props.Context,
@@ -1023,7 +1021,7 @@ type protobufEncodeProgrammer_throwProps struct {
1023
1021
  }
1024
1022
 
1025
1023
  func protobufEncodeProgrammer_create_throw_error(props protobufEncodeProgrammer_throwProps) *shimast.Node {
1026
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, props.Context.Emit)
1024
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1027
1025
  return f.NewExpressionStatement(
1028
1026
  f.NewCallExpression(
1029
1027
  protobufEncodeProgrammer_internal(props.Context, "throwTypeGuardError"),
@@ -1042,7 +1040,7 @@ func protobufEncodeProgrammer_create_throw_error(props protobufEncodeProgrammer_
1042
1040
  }
1043
1041
 
1044
1042
  func protobufEncodeProgrammer_callWriter(method string, args []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1045
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1043
+ f := nativecontext.NodeFactoryOf(emit)
1046
1044
  return f.NewCallExpression(
1047
1045
  nativefactories.IdentifierFactory.Access(emit, f.NewIdentifier("writer"), method),
1048
1046
  nil,
@@ -1053,7 +1051,7 @@ func protobufEncodeProgrammer_callWriter(method string, args []*shimast.Node, em
1053
1051
  }
1054
1052
 
1055
1053
  func protobufEncodeProgrammer_expressionBlock(expressions []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1056
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1054
+ f := nativecontext.NodeFactoryOf(emit)
1057
1055
  statements := make([]*shimast.Node, 0, len(expressions))
1058
1056
  for _, expr := range expressions {
1059
1057
  statements = append(statements, f.NewExpressionStatement(expr))
@@ -1062,7 +1060,7 @@ func protobufEncodeProgrammer_expressionBlock(expressions []*shimast.Node, emit
1062
1060
  }
1063
1061
 
1064
1062
  func protobufEncodeProgrammer_chainUnion(union []protobufEncodeProgrammer_IUnion, context nativecontext.ITypiaContext, functor *nativehelpers.FunctionProgrammer, input *shimast.Node, expected string) *shimast.Node {
1065
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1063
+ f := nativecontext.NodeFactoryOf(context.Emit)
1066
1064
  var next *shimast.Node
1067
1065
  for i := len(union) - 1; i >= 0; i-- {
1068
1066
  var elseStatement *shimast.Node
@@ -1086,17 +1084,17 @@ func protobufEncodeProgrammer_chainUnion(union []protobufEncodeProgrammer_IUnion
1086
1084
  }
1087
1085
 
1088
1086
  func protobufEncodeProgrammer_strict_equal(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1089
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1087
+ f := nativecontext.NodeFactoryOf(emit)
1090
1088
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindEqualsEqualsEqualsToken), right)
1091
1089
  }
1092
1090
 
1093
1091
  func protobufEncodeProgrammer_strict_not_equal(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1094
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1092
+ f := nativecontext.NodeFactoryOf(emit)
1095
1093
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindExclamationEqualsEqualsToken), right)
1096
1094
  }
1097
1095
 
1098
1096
  func protobufEncodeProgrammer_logical_and(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1099
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, emit)
1097
+ f := nativecontext.NodeFactoryOf(emit)
1100
1098
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindAmpersandAmpersandToken), right)
1101
1099
  }
1102
1100
 
@@ -1249,7 +1247,7 @@ func protobufEncodeProgrammer_import_type(context nativecontext.ITypiaContext, p
1249
1247
  if importer := context.Importer; importer != nil {
1250
1248
  return importer.Type(props)
1251
1249
  }
1252
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1250
+ f := nativecontext.NodeFactoryOf(context.Emit)
1253
1251
  if str, ok := props.Name.(string); ok {
1254
1252
  return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1255
1253
  }
@@ -1260,7 +1258,7 @@ func protobufEncodeProgrammer_internal(context nativecontext.ITypiaContext, name
1260
1258
  if importer := context.Importer; importer != nil {
1261
1259
  return importer.Internal(name)
1262
1260
  }
1263
- f := nativecontext.EmitFactoryOf(protobufEncodeProgrammer_factory, context.Emit)
1261
+ f := nativecontext.NodeFactoryOf(context.Emit)
1264
1262
  return f.NewIdentifier(name)
1265
1263
  }
1266
1264
 
@@ -48,10 +48,8 @@ type ProtobufIsDecodeProgrammer_DecomposeProps struct {
48
48
  Name *string
49
49
  }
50
50
 
51
- var protobufIsDecodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
52
-
53
51
  func (protobufIsDecodeProgrammerNamespace) Decompose(props ProtobufIsDecodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
54
- f := nativecontext.EmitFactoryOf(protobufIsDecodeProgrammer_factory, props.Context.Emit)
52
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
55
53
  isContext := props.Context
56
54
  functional := false
57
55
  numeric := false
@@ -132,7 +130,7 @@ func (protobufIsDecodeProgrammerNamespace) Write(props ProtobufIsDecodeProgramme
132
130
  Type: props.Type,
133
131
  Name: props.Name,
134
132
  })
135
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
133
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
136
134
  Modulo: props.Modulo,
137
135
  Functor: functor,
138
136
  Result: result,
@@ -48,10 +48,8 @@ type ProtobufIsEncodeProgrammer_DecomposeProps struct {
48
48
  Name *string
49
49
  }
50
50
 
51
- var protobufIsEncodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
52
-
53
51
  func (protobufIsEncodeProgrammerNamespace) Decompose(props ProtobufIsEncodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
54
- f := nativecontext.EmitFactoryOf(protobufIsEncodeProgrammer_factory, props.Context.Emit)
52
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
55
53
  isContext := props.Context
56
54
  functional := false
57
55
  finite := true
@@ -125,7 +123,7 @@ func (protobufIsEncodeProgrammerNamespace) Write(props ProtobufIsEncodeProgramme
125
123
  Type: props.Type,
126
124
  Name: props.Name,
127
125
  })
128
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
126
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
129
127
  Modulo: props.Modulo,
130
128
  Functor: functor,
131
129
  Result: result,
@@ -36,10 +36,8 @@ type protobufMessageProgrammer_Hierarchy struct {
36
36
  Order []string
37
37
  }
38
38
 
39
- var protobufMessageProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
40
-
41
39
  func (protobufMessageProgrammerNamespace) Write(props ProtobufMessageProgrammer_IProps) *shimast.Node {
42
- f := nativecontext.EmitFactoryOf(protobufMessageProgrammer_factory, props.Context.Emit)
40
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
43
41
  collection := schemametadata.NewMetadataCollection()
44
42
  nativefactories.ProtobufFactory.Metadata(nativefactories.ProtobufFactory_IProps{
45
43
  Method: "typia.protobuf.message",
@@ -48,10 +48,8 @@ type ProtobufValidateDecodeProgrammer_DecomposeProps struct {
48
48
  Name *string
49
49
  }
50
50
 
51
- var protobufValidateDecodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
52
-
53
51
  func (protobufValidateDecodeProgrammerNamespace) Decompose(props ProtobufValidateDecodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
54
- f := nativecontext.EmitFactoryOf(protobufValidateDecodeProgrammer_factory, props.Context.Emit)
52
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
55
53
  validateContext := props.Context
56
54
  functional := false
57
55
  numeric := false
@@ -121,7 +119,7 @@ func (protobufValidateDecodeProgrammerNamespace) Write(props ProtobufValidateDec
121
119
  Type: props.Type,
122
120
  Name: props.Name,
123
121
  })
124
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
122
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
125
123
  Modulo: props.Modulo,
126
124
  Functor: functor,
127
125
  Result: result,
@@ -48,10 +48,8 @@ type ProtobufValidateEncodeProgrammer_DecomposeProps struct {
48
48
  Name *string
49
49
  }
50
50
 
51
- var protobufValidateEncodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
52
-
53
51
  func (protobufValidateEncodeProgrammerNamespace) Decompose(props ProtobufValidateEncodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
54
- f := nativecontext.EmitFactoryOf(protobufValidateEncodeProgrammer_factory, props.Context.Emit)
52
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
55
53
  validateContext := props.Context
56
54
  functional := false
57
55
  finite := true
@@ -144,7 +142,7 @@ func (protobufValidateEncodeProgrammerNamespace) Write(props ProtobufValidateEnc
144
142
  Type: props.Type,
145
143
  Name: props.Name,
146
144
  })
147
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
145
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
148
146
  Modulo: props.Modulo,
149
147
  Functor: functor,
150
148
  Result: result,
@@ -155,7 +153,7 @@ func protobufValidateEncodeProgrammer_import_type(context nativecontext.ITypiaCo
155
153
  if importer := context.Importer; importer != nil {
156
154
  return importer.Type(props)
157
155
  }
158
- f := nativecontext.EmitFactoryOf(protobufValidateEncodeProgrammer_factory, context.Emit)
156
+ f := nativecontext.NodeFactoryOf(context.Emit)
159
157
  if str, ok := props.Name.(string); ok {
160
158
  return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
161
159
  }
@@ -335,7 +335,7 @@ func TestProtobufProgrammerHelperCoverage(t *testing.T) {
335
335
  }
336
336
  if protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
337
337
  Context: nativecontext.ITypiaContext{},
338
- Condition: protobufDecodeProgrammer_factory.NewKeywordExpression(
338
+ Condition: nativecontext.NodeFactoryOf().NewKeywordExpression(
339
339
  shimast.KindTrueKeyword,
340
340
  ),
341
341
  Tag: "tag",
@@ -26,10 +26,8 @@ type ReflectLiteralsProgrammer_IProps struct {
26
26
  Type *shimchecker.Type
27
27
  }
28
28
 
29
- var reflectLiteralsProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
30
-
31
29
  func (reflectLiteralsProgrammerNamespace) Write(props ReflectLiteralsProgrammer_IProps) *shimast.Node {
32
- f := nativecontext.EmitFactoryOf(reflectLiteralsProgrammer_factory, props.Context.Emit)
30
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
33
31
  result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
34
32
  Checker: props.Context.Checker,
35
33
  Options: nativefactories.MetadataFactory_IOptions{
@@ -1158,10 +1158,10 @@ func metadataCollection_markVisiting(
1158
1158
  }
1159
1159
 
1160
1160
  func metadataCollection_getName(symbol *nativeast.Symbol) string {
1161
- if symbol == nil || len(symbol.Declarations) == 0 || symbol.Declarations[0].Parent == nil {
1161
+ if symbol == nil || len(nativeast.SymbolDeclarationsOf(symbol)) == 0 || nativeast.SymbolDeclarationsOf(symbol)[0].Parent == nil {
1162
1162
  return "__type"
1163
1163
  }
1164
- return metadataCollection_exploreName(symbol.Declarations[0].Parent, strings.ReplaceAll(symbol.Name, "\uFFFD", "__"))
1164
+ return metadataCollection_exploreName(nativeast.SymbolDeclarationsOf(symbol)[0].Parent, strings.ReplaceAll(nativeast.SymbolNameOf(symbol), "\uFFFD", "__"))
1165
1165
  }
1166
1166
 
1167
1167
  func metadataCollection_exploreName(node *nativeast.Node, name string) string {
@@ -80,7 +80,7 @@ func MetadataDefaultLibrary_is(checker *nativechecker.Checker, source *nativeast
80
80
  }
81
81
  }
82
82
  }
83
- return MetadataDefaultLibrary_isFileNamed(source.FileName())
83
+ return MetadataDefaultLibrary_isFileNamed(string(source.FileName()))
84
84
  }
85
85
 
86
86
  // MetadataDefaultLibrary_isFileNamed is the registry's file-name fallback,
@@ -358,15 +358,15 @@ func metadataDependency_touchDeclarations(
358
358
  // name selects, so all of it belongs to the identity channel -- the alias hops
359
359
  // as much as the terminus.
360
360
  report := listener.Callee
361
- if symbol.Flags&nativeast.SymbolFlagsAlias != 0 {
361
+ if nativeast.SymbolFlagsOf(symbol)&nativeast.SymbolFlagsAlias != 0 {
362
362
  metadataDependency_touchPath(checker, listener, symbol, report)
363
363
  if resolved := nativechecker.Checker_getAliasedSymbol(checker, symbol); resolved != nil {
364
364
  symbol = resolved
365
365
  }
366
366
  }
367
- for _, declaration := range symbol.Declarations {
367
+ for _, declaration := range nativeast.SymbolDeclarationsOf(symbol) {
368
368
  if src := nativeast.GetSourceFileOfNode(declaration); src != nil {
369
- report(src.FileName())
369
+ report(string(src.FileName()))
370
370
  }
371
371
  if nested && metadataDependency_calleeBounded(declaration) == false {
372
372
  listener.unbounded()
@@ -420,12 +420,12 @@ func metadataDependency_touchVisited(
420
420
  return
421
421
  }
422
422
  visited[symbol] = true
423
- for _, declaration := range symbol.Declarations {
423
+ for _, declaration := range nativeast.SymbolDeclarationsOf(symbol) {
424
424
  if declaration == nil {
425
425
  continue
426
426
  }
427
427
  if src := nativeast.GetSourceFileOfNode(declaration); src != nil {
428
- listener.File(src.FileName())
428
+ listener.File(string(src.FileName()))
429
429
  }
430
430
  if metadataDependency_bounded(declaration) == false {
431
431
  listener.unbounded()
@@ -890,7 +890,7 @@ func metadataDependency_resolve(
890
890
  if symbol == nil {
891
891
  return nil
892
892
  }
893
- if symbol.Flags&nativeast.SymbolFlagsAlias != 0 {
893
+ if nativeast.SymbolFlagsOf(symbol)&nativeast.SymbolFlagsAlias != 0 {
894
894
  // The type walk: a hop reached here was reached because a consulted type is
895
895
  // built from what it publishes, so it reports on the consultation channel.
896
896
  metadataDependency_touchPath(checker, listener, symbol, listener.File)
@@ -921,7 +921,7 @@ func metadataDependency_touchPath(
921
921
  report func(fileName string),
922
922
  ) {
923
923
  visited := map[*nativeast.Symbol]bool{}
924
- for symbol != nil && symbol.Flags&nativeast.SymbolFlagsAlias != 0 && visited[symbol] == false {
924
+ for symbol != nil && nativeast.SymbolFlagsOf(symbol)&nativeast.SymbolFlagsAlias != 0 && visited[symbol] == false {
925
925
  visited[symbol] = true
926
926
  declaration := nativechecker.Checker_getDeclarationOfAliasSymbol(checker, symbol)
927
927
  if declaration == nil {
@@ -929,7 +929,7 @@ func metadataDependency_touchPath(
929
929
  }
930
930
  // The file that WRITES this hop (the barrel's own `export ... from` line).
931
931
  if src := nativeast.GetSourceFileOfNode(declaration); src != nil {
932
- report(src.FileName())
932
+ report(string(src.FileName()))
933
933
  }
934
934
  specifier := metadataDependency_moduleSpecifier(declaration)
935
935
  if specifier == nil {
@@ -948,9 +948,9 @@ func metadataDependency_touchPath(
948
948
  if module == nil {
949
949
  return
950
950
  }
951
- for _, moduleDeclaration := range module.Declarations {
951
+ for _, moduleDeclaration := range nativeast.SymbolDeclarationsOf(module) {
952
952
  if src := nativeast.GetSourceFileOfNode(moduleDeclaration); src != nil {
953
- report(src.FileName())
953
+ report(string(src.FileName()))
954
954
  }
955
955
  }
956
956
  symbol = metadataDependency_exported(module, declaration)
@@ -969,13 +969,13 @@ func metadataDependency_touchPath(
969
969
  // stops the walk at the module already reported, which loses no edge: the
970
970
  // terminus is resolved separately by the checker.
971
971
  func metadataDependency_exported(module *nativeast.Symbol, declaration *nativeast.Node) *nativeast.Symbol {
972
- if module.Exports == nil {
972
+ if nativeast.SymbolExportsOf(module) == nil {
973
973
  return nil
974
974
  }
975
975
  switch declaration.Kind {
976
976
  case nativeast.KindImportClause:
977
977
  // ast.InternalSymbolNameDefault, which the shim does not re-export.
978
- return module.Exports["default"]
978
+ return nativeast.SymbolExportsOf(module)["default"]
979
979
  case nativeast.KindImportSpecifier, nativeast.KindExportSpecifier:
980
980
  name := declaration.PropertyNameOrName()
981
981
  if name == nil {
@@ -983,7 +983,7 @@ func metadataDependency_exported(module *nativeast.Symbol, declaration *nativeas
983
983
  }
984
984
  switch name.Kind {
985
985
  case nativeast.KindIdentifier, nativeast.KindStringLiteral:
986
- return module.Exports[name.Text()]
986
+ return nativeast.SymbolExportsOf(module)[name.Text()]
987
987
  }
988
988
  }
989
989
  return nil
@@ -55,13 +55,13 @@ func (promiseTypeFactoryNamespace) satisfiesGlobalContract(checker *shimchecker.
55
55
  return false
56
56
  }
57
57
  for _, property := range checker.GetPropertiesOfType(contract) {
58
- if property.Name == "then" || (len(property.Name) != 0 && property.Name[0] == 0xfe) {
58
+ if shimast.SymbolNameOf(property) == "then" || (len(shimast.SymbolNameOf(property)) != 0 && shimast.SymbolNameOf(property)[0] == 0xfe) {
59
59
  // GetPromisedTypeOfPromise verifies the thenable shape. Conditional
60
60
  // Promise inference ignores well-known-symbol augmentations.
61
61
  continue
62
62
  }
63
- required := checker.GetTypeOfPropertyOfType(contract, property.Name)
64
- candidate := checker.GetTypeOfPropertyOfType(t, property.Name)
63
+ required := checker.GetTypeOfPropertyOfType(contract, shimast.SymbolNameOf(property))
64
+ candidate := checker.GetTypeOfPropertyOfType(t, shimast.SymbolNameOf(property))
65
65
  if required == nil || candidate == nil || !checker.IsTypeAssignableTo(candidate, required) {
66
66
  return false
67
67
  }
package/native/go.mod CHANGED
@@ -2,9 +2,8 @@ module github.com/samchon/typia/packages/typia/native
2
2
 
3
3
  go 1.26
4
4
 
5
- // Build-time floor: the driver reference-graph SDK
6
- // (driver.NewTransformGraph / driver.TransformGraph / driver.TransformOutputKey)
7
- // this plugin consumes exists only in ttsc >= 0.19.2. That floor is enforced
5
+ // Build-time floor: the version-neutral Symbol and path APIs consumed by
6
+ // this plugin exist only in ttsc >= 0.34.0. That floor is enforced
8
7
  // through typia's package.json `ttsc` peerDependency, not here: ttsc builds
9
8
  // this plugin from source on the user's machine and its buildSourcePlugin
10
9
  // generates `replace github.com/samchon/ttsc/packages/ttsc v0.0.0 =>
@@ -18,6 +17,7 @@ require (
18
17
  github.com/microsoft/typescript-go/shim/parser v0.0.0
19
18
  github.com/microsoft/typescript-go/shim/printer v0.0.0
20
19
  github.com/microsoft/typescript-go/shim/scanner v0.0.0
20
+ github.com/microsoft/typescript-go/shim/tspath v0.0.0
21
21
  github.com/samchon/ttsc/packages/ttsc v0.0.0
22
22
  golang.org/x/text v0.36.0
23
23
  )
@@ -29,7 +29,6 @@ require (
29
29
  github.com/microsoft/typescript-go/shim/bundled v0.0.0 // indirect
30
30
  github.com/microsoft/typescript-go/shim/diagnosticwriter v0.0.0 // indirect
31
31
  github.com/microsoft/typescript-go/shim/tsoptions v0.0.0 // indirect
32
- github.com/microsoft/typescript-go/shim/tspath v0.0.0 // indirect
33
32
  github.com/microsoft/typescript-go/shim/vfs v0.0.0 // indirect
34
33
  github.com/microsoft/typescript-go/shim/vfs/cachedvfs v0.0.0 // indirect
35
34
  github.com/microsoft/typescript-go/shim/vfs/osvfs v0.0.0 // indirect
package/native/go.work CHANGED
@@ -1,4 +1,4 @@
1
- go 1.26
1
+ go 1.27
2
2
 
3
3
  use (
4
4
  .
@@ -92,7 +92,7 @@ func (callExpressionTransformerNamespace) Transform(props CallExpressionTransfor
92
92
  if sourceFile == nil {
93
93
  return props.Expression.AsNode()
94
94
  }
95
- location, _ := filepath.Abs(sourceFile.FileName())
95
+ location, _ := filepath.Abs(string(sourceFile.FileName()))
96
96
  module, ok := callExpressionTransformer_targetModule(location)
97
97
  if ok == false {
98
98
  callExpressionTransformer_rejectShadowedTypia(props, location)
@@ -102,7 +102,7 @@ func (callExpressionTransformerNamespace) Transform(props CallExpressionTransfor
102
102
  if typ == nil || typ.Symbol() == nil {
103
103
  return props.Expression.AsNode()
104
104
  }
105
- name := typ.Symbol().Name
105
+ name := shimast.SymbolNameOf(typ.Symbol())
106
106
  return CallExpressionTransformer.TransformKnown(CallExpressionTransformer_TransformKnownProps{
107
107
  Context: props.Context,
108
108
  Expression: props.Expression,
@@ -210,10 +210,10 @@ func callExpressionTransformer_rejectShadowedTypia(props CallExpressionTransform
210
210
  return
211
211
  }
212
212
  symbol := props.Context.Checker.GetSymbolAtLocation(root)
213
- if symbol == nil || symbol.Flags&shimast.SymbolFlagsAlias == 0 {
213
+ if symbol == nil || shimast.SymbolFlagsOf(symbol)&shimast.SymbolFlagsAlias == 0 {
214
214
  return
215
215
  }
216
- for _, declaration := range symbol.Declarations {
216
+ for _, declaration := range shimast.SymbolDeclarationsOf(symbol) {
217
217
  if callExpressionTransformer_importsTypia(declaration) == false {
218
218
  continue
219
219
  }
@@ -54,8 +54,6 @@ type FileTransformer_IEnvironments struct {
54
54
  // @evidence contracts/common.md#meaningful-documentation The doc states the mapping.
55
55
  type FileTransformer_Type func(file *shimast.SourceFile) *shimast.SourceFile
56
56
 
57
- var fileTransformer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
58
-
59
57
  // Transform builds the per-file transformer of a host. Every file gets its own importer, a TransformerError raised while a node is
60
58
  // transformed becomes a diagnostic and leaves the node unchanged, and the
61
59
  // importer's statements are inserted after the leading directive prologue.
@@ -114,7 +112,7 @@ func fileTransformer_iterate_file(context nativecontext.ITypiaContext, file *shi
114
112
  if context.Emit != nil {
115
113
  visitor = context.Emit.NewNodeVisitor(visit)
116
114
  } else {
117
- visitor = shimast.NewNodeVisitor(visit, fileTransformer_factory, shimast.NodeVisitorHooks{})
115
+ visitor = shimast.NewNodeVisitor(visit, nativecontext.NodeFactoryOf(context.Emit), shimast.NodeVisitorHooks{})
118
116
  }
119
117
  output := visitor.VisitNode(file.AsNode())
120
118
  if output == nil {
@@ -192,7 +190,7 @@ func fileTransformer_inject_imports(file *shimast.SourceFile, imports []*shimast
192
190
  if file == nil || len(imports) == 0 {
193
191
  return file
194
192
  }
195
- f := nativecontext.EmitFactoryOf(fileTransformer_factory, emit...)
193
+ f := nativecontext.NodeFactoryOf(emit...)
196
194
  index := fileTransformer_find_import_injection_index(file)
197
195
  nodes := make([]*shimast.Node, 0, len(file.Statements.Nodes)+len(imports))
198
196
  nodes = append(nodes, file.Statements.Nodes[:index]...)
@@ -15,10 +15,8 @@ type randomTransformerNamespace struct{}
15
15
 
16
16
  var RandomTransformer = randomTransformerNamespace{}
17
17
 
18
- var randomTransformer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
19
-
20
18
  func (randomTransformerNamespace) Transform(props nativetransform.ITransformProps) *shimast.Node {
21
- f := nativecontext.EmitFactoryOf(randomTransformer_factory, props.Context.Emit)
19
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
22
20
  if props.Expression == nil || props.Expression.TypeArguments == nil || len(props.Expression.TypeArguments.Nodes) == 0 {
23
21
  panic(nativetransform.NewTransformerError(nativetransform.TransformerError_IProps{
24
22
  Code: nativehelpers.ModuloMethodText(props.Modulo),
@@ -16,7 +16,7 @@ func (compareEqualTransformerNamespace) Transform(props nativeinternal.ITransfor
16
16
  }
17
17
 
18
18
  func compareEqualTransformer_scalar(props nativeinternal.ITransformProps, method string, cover bool) *shimast.Node {
19
- f := nativecontext.EmitFactoryOf(shimast.NewNodeFactory(shimast.NodeFactoryHooks{}), props.Context.Emit)
19
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
20
20
  if props.Expression == nil || props.Expression.Arguments == nil || len(props.Expression.Arguments.Nodes) < 2 {
21
21
  panic(nativeinternal.NewTransformerError(nativeinternal.TransformerError_IProps{
22
22
  Code: "typia." + method,
@@ -16,7 +16,7 @@ func (compareLessTransformerNamespace) Transform(props nativeinternal.ITransform
16
16
  }
17
17
 
18
18
  func compareLessTransformer_scalar(props nativeinternal.ITransformProps, method string) *shimast.Node {
19
- f := nativecontext.EmitFactoryOf(shimast.NewNodeFactory(shimast.NodeFactoryHooks{}), props.Context.Emit)
19
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
20
20
  if props.Expression == nil || props.Expression.Arguments == nil || len(props.Expression.Arguments.Nodes) < 2 {
21
21
  panic(nativeinternal.NewTransformerError(nativeinternal.TransformerError_IProps{
22
22
  Code: "typia." + method,
@@ -90,8 +90,8 @@ func (functionalGenericTransformerNamespace) Transform(spec FunctionalGenericTra
90
90
  }
91
91
 
92
92
  var declaration *shimast.Node
93
- if symbol := typ.Symbol(); symbol != nil && len(symbol.Declarations) != 0 {
94
- declaration = symbol.Declarations[0]
93
+ if symbol := typ.Symbol(); symbol != nil && len(shimast.SymbolDeclarationsOf(symbol)) != 0 {
94
+ declaration = shimast.SymbolDeclarationsOf(symbol)[0]
95
95
  }
96
96
  var init *shimast.Node
97
97
  if props.Expression.Arguments != nil && len(props.Expression.Arguments.Nodes) > 1 {
@@ -14,7 +14,7 @@ type llmCoerceTransformerNamespace struct{}
14
14
  var LlmCoerceTransformer = llmCoerceTransformerNamespace{}
15
15
 
16
16
  func (llmCoerceTransformerNamespace) Transform(props nativetransform.ITransformProps) *shimast.Node {
17
- f := nativecontext.EmitFactoryOf(llmTransformer_factory, props.Context.Emit)
17
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
18
18
  llmTransformer_require_argument(props, "typia.llm.coerce", 0, "no input value.")
19
19
  top, typ, ok := llmTransformer_type_argument(props, "typia.llm.coerce")
20
20
  if ok == false {
@@ -76,7 +76,7 @@ func llmEvaluation_declarationProbabilityErrors(files []*shimast.SourceFile) []n
76
76
  }
77
77
  errors = append(errors, nativellmprogrammers.LlmEvaluationProgrammer_IError{
78
78
  Accessor: "$input",
79
- Message: fmt.Sprintf("LLM evaluation @probability on %s %s in %s is unsupported; put it on a decision property or enum member.", kind, name, file.FileName()),
79
+ Message: fmt.Sprintf("LLM evaluation @probability on %s %s in %s is unsupported; put it on a decision property or enum member.", kind, name, string(file.FileName())),
80
80
  })
81
81
  break
82
82
  }
@@ -46,7 +46,7 @@ func (llmEvaluationTransformerNamespace) Transform(props nativetransform.ITransf
46
46
  if props.Context.Program != nil && schemametadata.MetadataDependency_active(props.Context.Checker) {
47
47
  for _, file := range props.Context.Program.SourceFiles() {
48
48
  if file != nil {
49
- schemametadata.MetadataDependency_touchFile(props.Context.Checker, file.FileName())
49
+ schemametadata.MetadataDependency_touchFile(props.Context.Checker, string(file.FileName()))
50
50
  }
51
51
  }
52
52
  }