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
@@ -66,10 +66,8 @@ const plainClassifyProgrammer_PREFIX = "_y"
66
66
  const plainClassifyProgrammer_IS_PREFIX = "_i"
67
67
  const plainClassifyProgrammer_IS_PREFIX_VALIDATED = "_yi"
68
68
 
69
- var plainClassifyProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
70
-
71
69
  func (plainClassifyProgrammerNamespace) Decompose(props PlainClassifyProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
72
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
70
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
73
71
  // The union construction ladder discriminates members with IsProgrammer.Decode
74
72
  // (is-check helper calls), so those helpers must exist in the classify IIFE,
75
73
  // emitted via the Addition. UNVALIDATED uses the sole "_i" namespace (a non-union
@@ -140,7 +138,7 @@ func (plainClassifyProgrammerNamespace) Write(props nativecontext.IProgrammerPro
140
138
  Validated: false,
141
139
  Modulo: props.Modulo,
142
140
  })
143
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
141
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
144
142
  Modulo: props.Modulo,
145
143
  Functor: functor,
146
144
  Result: result,
@@ -153,7 +151,7 @@ func plainClassifyProgrammer_write_array_functions(props struct {
153
151
  Functor *nativehelpers.FunctionProgrammer
154
152
  Collection *schemametadata.MetadataCollection
155
153
  }) []*shimast.Node {
156
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
154
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
157
155
  output := []*shimast.Node{}
158
156
  for _, typ := range props.Collection.Arrays() {
159
157
  if typ.Recursive == false {
@@ -168,7 +166,7 @@ func plainClassifyProgrammer_write_array_functions(props struct {
168
166
  Value: f.NewArrowFunction(
169
167
  nil,
170
168
  nil,
171
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
169
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{Emit: props.Context.Emit,
172
170
  Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
173
171
  Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
174
172
  Input: f.NewIdentifier("input"),
@@ -209,7 +207,7 @@ func plainClassifyProgrammer_write_tuple_functions(props struct {
209
207
  Functor *nativehelpers.FunctionProgrammer
210
208
  Collection *schemametadata.MetadataCollection
211
209
  }) []*shimast.Node {
212
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
210
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
213
211
  output := []*shimast.Node{}
214
212
  for _, tuple := range props.Collection.Tuples() {
215
213
  if tuple.Recursive == false {
@@ -224,7 +222,7 @@ func plainClassifyProgrammer_write_tuple_functions(props struct {
224
222
  Value: f.NewArrowFunction(
225
223
  nil,
226
224
  nil,
227
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
225
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{Emit: props.Context.Emit,
228
226
  Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
229
227
  Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
230
228
  Input: f.NewIdentifier("input"),
@@ -264,7 +262,7 @@ func plainClassifyProgrammer_decode(props struct {
264
262
  Metadata *schemametadata.MetadataSchema
265
263
  Explore nativeinternal.FeatureProgrammer_IExplore
266
264
  }) *shimast.Node {
267
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
265
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
268
266
  if props.Metadata.Any ||
269
267
  plainClassifyProgrammer_some_arrays(props.Metadata.Arrays, func(a *schemametadata.MetadataArray) bool { return a.Type.Value.Any }) ||
270
268
  plainClassifyProgrammer_some_tuples(props.Metadata.Tuples, func(t *schemametadata.MetadataTuple) bool {
@@ -335,7 +333,7 @@ func plainClassifyProgrammer_decode(props struct {
335
333
  unions = append(unions, plainClassifyProgrammer_IUnion{
336
334
  Type: "array",
337
335
  Is: func() *shimast.Node {
338
- return nativefactories.ExpressionFactory.IsArray(props.Input)
336
+ return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
339
337
  },
340
338
  Value: func() *shimast.Node {
341
339
  explore := props.Explore
@@ -355,7 +353,7 @@ func plainClassifyProgrammer_decode(props struct {
355
353
  unions = append(unions, plainClassifyProgrammer_IUnion{
356
354
  Type: "set",
357
355
  Is: func() *shimast.Node {
358
- return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
356
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input, props.Context.Emit)
359
357
  },
360
358
  Value: func() *shimast.Node {
361
359
  explore := props.Explore
@@ -375,7 +373,7 @@ func plainClassifyProgrammer_decode(props struct {
375
373
  unions = append(unions, plainClassifyProgrammer_IUnion{
376
374
  Type: "map",
377
375
  Is: func() *shimast.Node {
378
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
376
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
379
377
  },
380
378
  Value: func() *shimast.Node {
381
379
  explore := props.Explore
@@ -396,7 +394,7 @@ func plainClassifyProgrammer_decode(props struct {
396
394
  unions = append(unions, plainClassifyProgrammer_IUnion{
397
395
  Type: "native",
398
396
  Is: func() *shimast.Node {
399
- return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input)
397
+ return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input, props.Context.Emit)
400
398
  },
401
399
  Value: func() *shimast.Node {
402
400
  if _, ok := schemametadata.MetadataSchema_atomicLikeNative(native.Name); ok {
@@ -424,7 +422,7 @@ func plainClassifyProgrammer_decode(props struct {
424
422
  CheckNull: true,
425
423
  CheckArray: false,
426
424
  Input: props.Input,
427
- })
425
+ }, props.Context.Emit)
428
426
  },
429
427
  Value: func() *shimast.Node {
430
428
  explore := props.Explore
@@ -500,13 +498,13 @@ type plainClassifyProgrammer_decodeArrayProps struct {
500
498
  }
501
499
 
502
500
  func plainClassifyProgrammer_decode_array(props plainClassifyProgrammer_decodeArrayProps) *shimast.Node {
503
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
501
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
504
502
  if props.Array.Type.Recursive {
505
503
  return f.NewCallExpression(
506
504
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, *props.Array.Type.Index))),
507
505
  nil,
508
506
  nil,
509
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
507
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
510
508
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
511
509
  Explore: plainClassifyProgrammer_explore_with(props.Explore, "function", "array"),
512
510
  Input: props.Input,
@@ -518,7 +516,7 @@ func plainClassifyProgrammer_decode_array(props plainClassifyProgrammer_decodeAr
518
516
  }
519
517
 
520
518
  func plainClassifyProgrammer_decode_array_inline(props plainClassifyProgrammer_decodeArrayProps) *shimast.Node {
521
- return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
519
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{Emit: props.Context.Emit,
522
520
  Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
523
521
  Trace: props.Config.Trace,
524
522
  Path: props.Config.Path,
@@ -552,13 +550,13 @@ type plainClassifyProgrammer_decodeTupleProps struct {
552
550
  }
553
551
 
554
552
  func plainClassifyProgrammer_decode_tuple(props plainClassifyProgrammer_decodeTupleProps) *shimast.Node {
555
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
553
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
556
554
  if props.Tuple.Type.Recursive {
557
555
  return f.NewCallExpression(
558
556
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, *props.Tuple.Type.Index))),
559
557
  nil,
560
558
  nil,
561
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
559
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
562
560
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
563
561
  Explore: plainClassifyProgrammer_explore_with(props.Explore, "function", props.Explore.From),
564
562
  Input: props.Input,
@@ -586,7 +584,7 @@ type plainClassifyProgrammer_decodeTupleInlineProps struct {
586
584
  }
587
585
 
588
586
  func plainClassifyProgrammer_decode_tuple_inline(props plainClassifyProgrammer_decodeTupleInlineProps) *shimast.Node {
589
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
587
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
590
588
  elements := []*shimast.Node{}
591
589
  for index, elem := range props.Tuple.Elements {
592
590
  if elem.Rest != nil {
@@ -668,7 +666,7 @@ func plainClassifyProgrammer_decode_native(props struct {
668
666
  Type string
669
667
  Input *shimast.Node
670
668
  }) *shimast.Node {
671
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
669
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
672
670
  switch props.Type {
673
671
  case "Date", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array", "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array":
674
672
  return f.NewNewExpression(
@@ -698,7 +696,7 @@ func plainClassifyProgrammer_decode_native(props struct {
698
696
  }
699
697
 
700
698
  func plainClassifyProgrammer_decode_native_buffer(typ string, input *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
701
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, emit)
699
+ f := nativecontext.NodeFactoryOf(emit)
702
700
  return nativefactories.ExpressionFactory.SelfCall(
703
701
  emit,
704
702
  f.NewBlock(f.NewNodeList([]*shimast.Node{
@@ -746,7 +744,7 @@ type plainClassifyProgrammer_exploreArraysProps struct {
746
744
  }
747
745
 
748
746
  func plainClassifyProgrammer_explore_arrays(props plainClassifyProgrammer_exploreArraysProps) *shimast.Node {
749
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
747
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
750
748
  return f.NewCallExpression(
751
749
  nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
752
750
  Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
@@ -804,7 +802,7 @@ type plainClassifyProgrammer_exploreSetsProps struct {
804
802
  }
805
803
 
806
804
  func plainClassifyProgrammer_explore_sets(props plainClassifyProgrammer_exploreSetsProps) *shimast.Node {
807
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
805
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
808
806
  return f.NewCallExpression(
809
807
  nativehelpers.UnionExplorer.Set(nativehelpers.UnionExplorer_SetProps{
810
808
  Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
@@ -872,7 +870,7 @@ type plainClassifyProgrammer_exploreMapsProps struct {
872
870
  }
873
871
 
874
872
  func plainClassifyProgrammer_explore_maps(props plainClassifyProgrammer_exploreMapsProps) *shimast.Node {
875
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
873
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
876
874
  return f.NewCallExpression(
877
875
  nativehelpers.UnionExplorer.Map(nativehelpers.UnionExplorer_MapProps{
878
876
  Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
@@ -956,7 +954,7 @@ type plainClassifyProgrammer_exploreObjectsProps struct {
956
954
  }
957
955
 
958
956
  func plainClassifyProgrammer_explore_objects(props plainClassifyProgrammer_exploreObjectsProps) *shimast.Node {
959
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
957
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
960
958
  if len(props.Metadata.Objects) == 1 {
961
959
  return plainClassifyProgrammer_decode_object(struct {
962
960
  Functor *nativehelpers.FunctionProgrammer
@@ -978,7 +976,7 @@ func plainClassifyProgrammer_explore_objects(props plainClassifyProgrammer_explo
978
976
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", plainClassifyProgrammer_PREFIX, index))),
979
977
  nil,
980
978
  nil,
981
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
979
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
982
980
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
983
981
  Input: props.Input,
984
982
  Explore: props.Explore,
@@ -993,7 +991,7 @@ func plainClassifyProgrammer_configure(props struct {
993
991
  Modulo *shimast.Node
994
992
  IsPrefix string
995
993
  }) nativeinternal.FeatureProgrammer_IConfig {
996
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
994
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
997
995
  config := nativeinternal.FeatureProgrammer_IConfig{}
998
996
 
999
997
  // from/new construction strategies (classify-scoped, never on the shared
@@ -1193,7 +1191,7 @@ func plainClassifyProgrammer_configure(props struct {
1193
1191
  })
1194
1192
  },
1195
1193
  Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1196
- return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1194
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{Emit: props.Context.Emit,
1197
1195
  Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1198
1196
  return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1199
1197
  Context: props.Context,
@@ -1499,8 +1497,8 @@ func plainClassifyProgrammer_choose_seed(
1499
1497
  return seedT == nil ||
1500
1498
  seedT.Flags()&(shimchecker.TypeFlagsAny|shimchecker.TypeFlagsUnknown) != 0
1501
1499
  }
1502
- if fromSym != nil && fromSym.ValueDeclaration != nil {
1503
- fnT := checker.GetTypeOfSymbolAtLocation(fromSym, fromSym.ValueDeclaration)
1500
+ if fromSym != nil && shimast.SymbolValueDeclarationOf(fromSym) != nil {
1501
+ fnT := checker.GetTypeOfSymbolAtLocation(fromSym, shimast.SymbolValueDeclarationOf(fromSym))
1504
1502
  if sigs := checker.GetSignaturesOfType(fnT, shimchecker.SignatureKindCall); len(sigs) != 0 {
1505
1503
  sig := sigs[len(sigs)-1]
1506
1504
  if plainClassifyProgrammer_arity_ok(checker, sig) {
@@ -1537,10 +1535,10 @@ func plainClassifyProgrammer_is_abstract(static *shimchecker.Type) bool {
1537
1535
  return false
1538
1536
  }
1539
1537
  sym := static.Symbol()
1540
- if sym == nil || len(sym.Declarations) == 0 {
1538
+ if sym == nil || len(shimast.SymbolDeclarationsOf(sym)) == 0 {
1541
1539
  return false
1542
1540
  }
1543
- return sym.Declarations[0].ModifierFlags()&shimast.ModifierFlagsAbstract != 0
1541
+ return shimast.SymbolDeclarationsOf(sym)[0].ModifierFlags()&shimast.ModifierFlagsAbstract != 0
1544
1542
  }
1545
1543
 
1546
1544
  // plainClassifyProgrammer_ctor_public reports whether a construct signature is
@@ -1621,7 +1619,7 @@ func plainClassifyProgrammer_call_file(modulo *shimast.Node) string {
1621
1619
  return ""
1622
1620
  }
1623
1621
  if src := shimast.GetSourceFileOfNode(modulo); src != nil {
1624
- if abs, err := filepath.Abs(src.FileName()); err == nil {
1622
+ if abs, err := filepath.Abs(string(src.FileName())); err == nil {
1625
1623
  return abs
1626
1624
  }
1627
1625
  }
@@ -1721,7 +1719,7 @@ func plainClassifyProgrammer_constructor_nature(checker *shimchecker.Checker, st
1721
1719
  // a class TYPE (typeof C): its symbol is a class declaration. This holds even
1722
1720
  // for a PRIVATE-constructor class (whose construct signature may be filtered
1723
1721
  // by accessibility), so the static-factory arm still applies — Point.from.
1724
- if sym := static.Symbol(); sym != nil && sym.Flags&shimast.SymbolFlagsClass != 0 {
1722
+ if sym := static.Symbol(); sym != nil && shimast.SymbolFlagsOf(sym)&shimast.SymbolFlagsClass != 0 {
1725
1723
  return true
1726
1724
  }
1727
1725
  // a constructor type without a class symbol (anonymous class, `new () => X`)
@@ -1739,12 +1737,12 @@ func plainClassifyProgrammer_constructor_nature(checker *shimchecker.Checker, st
1739
1737
  // (same file), or a value import (default/named) when it is declared in another
1740
1738
  // module. Returns nil when the class symbol cannot be located.
1741
1739
  func plainClassifyProgrammer_class_ref(ctx nativecontext.ITypiaContext, static *shimchecker.Type, callFile string) *shimast.Node {
1742
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, ctx.Emit)
1740
+ f := nativecontext.NodeFactoryOf(ctx.Emit)
1743
1741
  sym := static.Symbol()
1744
- if sym == nil || len(sym.Declarations) == 0 {
1742
+ if sym == nil || len(shimast.SymbolDeclarationsOf(sym)) == 0 {
1745
1743
  return nil
1746
1744
  }
1747
- decl := sym.Declarations[0]
1745
+ decl := shimast.SymbolDeclarationsOf(sym)[0]
1748
1746
  // The runtime value name to construct against. The class symbol name is not
1749
1747
  // always a usable binding: a class declared inside a `namespace` binds as
1750
1748
  // `NS.Inner.C` (mirror the qualified name the field-copy path derives), and a
@@ -1758,7 +1756,7 @@ func plainClassifyProgrammer_class_ref(ctx nativecontext.ITypiaContext, static *
1758
1756
  return nil
1759
1757
  }
1760
1758
  } else {
1761
- valueName = plainClassifyProgrammer_qualified_name(decl.Parent, sym.Name)
1759
+ valueName = plainClassifyProgrammer_qualified_name(decl.Parent, shimast.SymbolNameOf(sym))
1762
1760
  }
1763
1761
  src := shimast.GetSourceFileOfNode(decl)
1764
1762
  // `default` (an anonymous `export default class {}`) and an empty name are not
@@ -1773,7 +1771,7 @@ func plainClassifyProgrammer_class_ref(ctx nativecontext.ITypiaContext, static *
1773
1771
  if src == nil {
1774
1772
  return bare
1775
1773
  }
1776
- classFileAbs, err := filepath.Abs(src.FileName())
1774
+ classFileAbs, err := filepath.Abs(string(src.FileName()))
1777
1775
  if err != nil || callFile == "" || classFileAbs == callFile {
1778
1776
  return bare
1779
1777
  }
@@ -1863,7 +1861,7 @@ func plainClassifyProgrammer_is_default_export(
1863
1861
  if target == nil {
1864
1862
  continue
1865
1863
  }
1866
- if target == sym || (len(target.Declarations) != 0 && target.Declarations[0] == decl) {
1864
+ if target == sym || (len(shimast.SymbolDeclarationsOf(target)) != 0 && shimast.SymbolDeclarationsOf(target)[0] == decl) {
1867
1865
  return true
1868
1866
  }
1869
1867
  }
@@ -1882,7 +1880,7 @@ func plainClassifyProgrammer_construct(
1882
1880
  input *shimast.Node,
1883
1881
  st *plainClassifyProgrammer_strategy,
1884
1882
  ) *shimast.Node {
1885
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, ctx.Emit)
1883
+ f := nativecontext.NodeFactoryOf(ctx.Emit)
1886
1884
  decoded := plainClassifyProgrammer_decode(struct {
1887
1885
  Context nativecontext.ITypiaContext
1888
1886
  Config nativeinternal.FeatureProgrammer_IConfig
@@ -2004,7 +2002,7 @@ func plainClassifyProgrammer_construct_union(
2004
2002
  tail *shimast.Node,
2005
2003
  isPrefix string,
2006
2004
  ) *shimast.Node {
2007
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, ctx.Emit)
2005
+ f := nativecontext.NodeFactoryOf(ctx.Emit)
2008
2006
  statements := []*shimast.Node{}
2009
2007
  for _, member := range members {
2010
2008
  // isPrefix is "_i" (unvalidated) or "_yi" (validated). The validated ladder
@@ -2064,7 +2062,7 @@ type plainClassifyProgrammer_throwProps struct {
2064
2062
  }
2065
2063
 
2066
2064
  func plainClassifyProgrammer_create_throw_error(props plainClassifyProgrammer_throwProps) *shimast.Node {
2067
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, props.Context.Emit)
2065
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
2068
2066
  return f.NewExpressionStatement(
2069
2067
  f.NewCallExpression(
2070
2068
  plainClassifyProgrammer_internal(props.Context, "throwTypeGuardError"),
@@ -2101,7 +2099,7 @@ func plainClassifyProgrammer_internal(context nativecontext.ITypiaContext, name
2101
2099
  if importer := context.Importer; importer != nil {
2102
2100
  return importer.Internal(name)
2103
2101
  }
2104
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, context.Emit)
2102
+ f := nativecontext.NodeFactoryOf(context.Emit)
2105
2103
  return f.NewIdentifier(name)
2106
2104
  }
2107
2105
 
@@ -2110,7 +2108,7 @@ func plainClassifyProgrammer_import_type(context nativecontext.ITypiaContext, pr
2110
2108
  return importer.Type(props)
2111
2109
  }
2112
2110
  if str, ok := props.Name.(string); ok {
2113
- f := nativecontext.EmitFactoryOf(plainClassifyProgrammer_factory, context.Emit)
2111
+ f := nativecontext.NodeFactoryOf(context.Emit)
2114
2112
  return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
2115
2113
  }
2116
2114
  return props.Name.(*shimast.Node)
@@ -49,10 +49,8 @@ type PlainCloneProgrammer_DecomposeProps struct {
49
49
 
50
50
  const plainCloneProgrammer_PREFIX = "_c"
51
51
 
52
- var plainCloneProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
53
-
54
52
  func (plainCloneProgrammerNamespace) Decompose(props PlainCloneProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
55
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
53
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
56
54
  config := plainCloneProgrammer_configure(struct {
57
55
  Context nativecontext.ITypiaContext
58
56
  Functor *nativehelpers.FunctionProgrammer
@@ -100,7 +98,7 @@ func (plainCloneProgrammerNamespace) Write(props nativecontext.IProgrammerProps)
100
98
  Name: props.Name,
101
99
  Validated: false,
102
100
  })
103
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
101
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
104
102
  Modulo: props.Modulo,
105
103
  Functor: functor,
106
104
  Result: result,
@@ -113,7 +111,7 @@ func plainCloneProgrammer_write_array_functions(props struct {
113
111
  Functor *nativehelpers.FunctionProgrammer
114
112
  Collection *schemametadata.MetadataCollection
115
113
  }) []*shimast.Node {
116
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
114
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
117
115
  output := []*shimast.Node{}
118
116
  for _, typ := range props.Collection.Arrays() {
119
117
  if typ.Recursive == false {
@@ -128,7 +126,7 @@ func plainCloneProgrammer_write_array_functions(props struct {
128
126
  Value: f.NewArrowFunction(
129
127
  nil,
130
128
  nil,
131
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
129
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{Emit: props.Context.Emit,
132
130
  Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
133
131
  Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
134
132
  Input: f.NewIdentifier("input"),
@@ -169,7 +167,7 @@ func plainCloneProgrammer_write_tuple_functions(props struct {
169
167
  Functor *nativehelpers.FunctionProgrammer
170
168
  Collection *schemametadata.MetadataCollection
171
169
  }) []*shimast.Node {
172
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
170
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
173
171
  output := []*shimast.Node{}
174
172
  for _, tuple := range props.Collection.Tuples() {
175
173
  if tuple.Recursive == false {
@@ -184,7 +182,7 @@ func plainCloneProgrammer_write_tuple_functions(props struct {
184
182
  Value: f.NewArrowFunction(
185
183
  nil,
186
184
  nil,
187
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
185
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{Emit: props.Context.Emit,
188
186
  Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
189
187
  Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
190
188
  Input: f.NewIdentifier("input"),
@@ -224,7 +222,7 @@ func plainCloneProgrammer_decode(props struct {
224
222
  Metadata *schemametadata.MetadataSchema
225
223
  Explore nativeinternal.FeatureProgrammer_IExplore
226
224
  }) *shimast.Node {
227
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
225
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
228
226
  if props.Metadata.Any ||
229
227
  plainCloneProgrammer_some_arrays(props.Metadata.Arrays, func(a *schemametadata.MetadataArray) bool { return a.Type.Value.Any }) ||
230
228
  plainCloneProgrammer_some_tuples(props.Metadata.Tuples, func(t *schemametadata.MetadataTuple) bool {
@@ -294,7 +292,7 @@ func plainCloneProgrammer_decode(props struct {
294
292
  unions = append(unions, plainCloneProgrammer_IUnion{
295
293
  Type: "array",
296
294
  Is: func() *shimast.Node {
297
- return nativefactories.ExpressionFactory.IsArray(props.Input)
295
+ return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
298
296
  },
299
297
  Value: func() *shimast.Node {
300
298
  explore := props.Explore
@@ -314,7 +312,7 @@ func plainCloneProgrammer_decode(props struct {
314
312
  unions = append(unions, plainCloneProgrammer_IUnion{
315
313
  Type: "set",
316
314
  Is: func() *shimast.Node {
317
- return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
315
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input, props.Context.Emit)
318
316
  },
319
317
  Value: func() *shimast.Node {
320
318
  explore := props.Explore
@@ -334,7 +332,7 @@ func plainCloneProgrammer_decode(props struct {
334
332
  unions = append(unions, plainCloneProgrammer_IUnion{
335
333
  Type: "map",
336
334
  Is: func() *shimast.Node {
337
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
335
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
338
336
  },
339
337
  Value: func() *shimast.Node {
340
338
  explore := props.Explore
@@ -355,7 +353,7 @@ func plainCloneProgrammer_decode(props struct {
355
353
  unions = append(unions, plainCloneProgrammer_IUnion{
356
354
  Type: "native",
357
355
  Is: func() *shimast.Node {
358
- return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input)
356
+ return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input, props.Context.Emit)
359
357
  },
360
358
  Value: func() *shimast.Node {
361
359
  if _, ok := schemametadata.MetadataSchema_atomicLikeNative(native.Name); ok {
@@ -383,7 +381,7 @@ func plainCloneProgrammer_decode(props struct {
383
381
  CheckNull: true,
384
382
  CheckArray: false,
385
383
  Input: props.Input,
386
- })
384
+ }, props.Context.Emit)
387
385
  },
388
386
  Value: func() *shimast.Node {
389
387
  explore := props.Explore
@@ -459,13 +457,13 @@ type plainCloneProgrammer_decodeArrayProps struct {
459
457
  }
460
458
 
461
459
  func plainCloneProgrammer_decode_array(props plainCloneProgrammer_decodeArrayProps) *shimast.Node {
462
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
460
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
463
461
  if props.Array.Type.Recursive {
464
462
  return f.NewCallExpression(
465
463
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, *props.Array.Type.Index))),
466
464
  nil,
467
465
  nil,
468
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
466
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
469
467
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
470
468
  Explore: plainCloneProgrammer_explore_with(props.Explore, "function", "array"),
471
469
  Input: props.Input,
@@ -477,7 +475,7 @@ func plainCloneProgrammer_decode_array(props plainCloneProgrammer_decodeArrayPro
477
475
  }
478
476
 
479
477
  func plainCloneProgrammer_decode_array_inline(props plainCloneProgrammer_decodeArrayProps) *shimast.Node {
480
- return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
478
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{Emit: props.Context.Emit,
481
479
  Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
482
480
  Trace: props.Config.Trace,
483
481
  Path: props.Config.Path,
@@ -511,13 +509,13 @@ type plainCloneProgrammer_decodeTupleProps struct {
511
509
  }
512
510
 
513
511
  func plainCloneProgrammer_decode_tuple(props plainCloneProgrammer_decodeTupleProps) *shimast.Node {
514
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
512
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
515
513
  if props.Tuple.Type.Recursive {
516
514
  return f.NewCallExpression(
517
515
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, *props.Tuple.Type.Index))),
518
516
  nil,
519
517
  nil,
520
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
518
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
521
519
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
522
520
  Explore: plainCloneProgrammer_explore_with(props.Explore, "function", props.Explore.From),
523
521
  Input: props.Input,
@@ -545,7 +543,7 @@ type plainCloneProgrammer_decodeTupleInlineProps struct {
545
543
  }
546
544
 
547
545
  func plainCloneProgrammer_decode_tuple_inline(props plainCloneProgrammer_decodeTupleInlineProps) *shimast.Node {
548
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
546
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
549
547
  elements := []*shimast.Node{}
550
548
  for index, elem := range props.Tuple.Elements {
551
549
  if elem.Rest != nil {
@@ -627,7 +625,7 @@ func plainCloneProgrammer_decode_native(props struct {
627
625
  Type string
628
626
  Input *shimast.Node
629
627
  }) *shimast.Node {
630
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
628
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
631
629
  switch props.Type {
632
630
  case "Date", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array", "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array":
633
631
  return f.NewNewExpression(
@@ -657,7 +655,7 @@ func plainCloneProgrammer_decode_native(props struct {
657
655
  }
658
656
 
659
657
  func plainCloneProgrammer_decode_native_buffer(typ string, input *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
660
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, emit)
658
+ f := nativecontext.NodeFactoryOf(emit)
661
659
  return nativefactories.ExpressionFactory.SelfCall(
662
660
  emit,
663
661
  f.NewBlock(f.NewNodeList([]*shimast.Node{
@@ -705,7 +703,7 @@ type plainCloneProgrammer_exploreArraysProps struct {
705
703
  }
706
704
 
707
705
  func plainCloneProgrammer_explore_arrays(props plainCloneProgrammer_exploreArraysProps) *shimast.Node {
708
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
706
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
709
707
  return f.NewCallExpression(
710
708
  nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
711
709
  Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
@@ -762,7 +760,7 @@ type plainCloneProgrammer_exploreSetsProps struct {
762
760
  }
763
761
 
764
762
  func plainCloneProgrammer_explore_sets(props plainCloneProgrammer_exploreSetsProps) *shimast.Node {
765
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
763
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
766
764
  return f.NewCallExpression(
767
765
  nativehelpers.UnionExplorer.Set(nativehelpers.UnionExplorer_SetProps{
768
766
  Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
@@ -829,7 +827,7 @@ type plainCloneProgrammer_exploreMapsProps struct {
829
827
  }
830
828
 
831
829
  func plainCloneProgrammer_explore_maps(props plainCloneProgrammer_exploreMapsProps) *shimast.Node {
832
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
830
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
833
831
  return f.NewCallExpression(
834
832
  nativehelpers.UnionExplorer.Map(nativehelpers.UnionExplorer_MapProps{
835
833
  Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
@@ -911,7 +909,7 @@ type plainCloneProgrammer_exploreObjectsProps struct {
911
909
  }
912
910
 
913
911
  func plainCloneProgrammer_explore_objects(props plainCloneProgrammer_exploreObjectsProps) *shimast.Node {
914
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
912
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
915
913
  if len(props.Metadata.Objects) == 1 {
916
914
  return plainCloneProgrammer_decode_object(struct {
917
915
  Functor *nativehelpers.FunctionProgrammer
@@ -933,7 +931,7 @@ func plainCloneProgrammer_explore_objects(props plainCloneProgrammer_exploreObje
933
931
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", plainCloneProgrammer_PREFIX, index))),
934
932
  nil,
935
933
  nil,
936
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
934
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
937
935
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
938
936
  Input: props.Input,
939
937
  Explore: props.Explore,
@@ -946,7 +944,7 @@ func plainCloneProgrammer_configure(props struct {
946
944
  Context nativecontext.ITypiaContext
947
945
  Functor *nativehelpers.FunctionProgrammer
948
946
  }) nativeinternal.FeatureProgrammer_IConfig {
949
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
947
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
950
948
  config := nativeinternal.FeatureProgrammer_IConfig{}
951
949
  config.Types = nativeinternal.FeatureProgrammer_IConfig_ITypes{
952
950
  Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
@@ -1018,7 +1016,7 @@ func plainCloneProgrammer_configure(props struct {
1018
1016
  })
1019
1017
  },
1020
1018
  Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1021
- return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1019
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{Emit: props.Context.Emit,
1022
1020
  Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1023
1021
  return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1024
1022
  Context: props.Context,
@@ -1138,7 +1136,7 @@ type plainCloneProgrammer_throwProps struct {
1138
1136
  }
1139
1137
 
1140
1138
  func plainCloneProgrammer_create_throw_error(props plainCloneProgrammer_throwProps) *shimast.Node {
1141
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, props.Context.Emit)
1139
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1142
1140
  return f.NewExpressionStatement(
1143
1141
  f.NewCallExpression(
1144
1142
  plainCloneProgrammer_internal(props.Context, "throwTypeGuardError"),
@@ -1175,7 +1173,7 @@ func plainCloneProgrammer_internal(context nativecontext.ITypiaContext, name str
1175
1173
  if importer := context.Importer; importer != nil {
1176
1174
  return importer.Internal(name)
1177
1175
  }
1178
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, context.Emit)
1176
+ f := nativecontext.NodeFactoryOf(context.Emit)
1179
1177
  return f.NewIdentifier(name)
1180
1178
  }
1181
1179
 
@@ -1184,7 +1182,7 @@ func plainCloneProgrammer_import_type(context nativecontext.ITypiaContext, props
1184
1182
  return importer.Type(props)
1185
1183
  }
1186
1184
  if str, ok := props.Name.(string); ok {
1187
- f := nativecontext.EmitFactoryOf(plainCloneProgrammer_factory, context.Emit)
1185
+ f := nativecontext.NodeFactoryOf(context.Emit)
1188
1186
  return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1189
1187
  }
1190
1188
  return props.Name.(*shimast.Node)
@@ -37,10 +37,8 @@ type PlainIsCloneProgrammer_DecomposeProps struct {
37
37
  Name *string
38
38
  }
39
39
 
40
- var plainIsCloneProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
41
-
42
40
  func (plainIsCloneProgrammerNamespace) Decompose(props PlainIsCloneProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
43
- f := nativecontext.EmitFactoryOf(plainIsCloneProgrammer_factory, props.Context.Emit)
41
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
44
42
  is := nativeprogrammers.IsProgrammer.Decompose(nativeprogrammers.IsProgrammer_DecomposeProps{
45
43
  Context: props.Context,
46
44
  Functor: props.Functor,
@@ -115,7 +113,7 @@ func (plainIsCloneProgrammerNamespace) Write(props nativecontext.IProgrammerProp
115
113
  Type: props.Type,
116
114
  Name: props.Name,
117
115
  })
118
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
116
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
119
117
  Modulo: props.Modulo,
120
118
  Functor: functor,
121
119
  Result: result,