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
@@ -37,10 +37,8 @@ type PlainIsPruneProgrammer_DecomposeProps struct {
37
37
  Name *string
38
38
  }
39
39
 
40
- var plainIsPruneProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
41
-
42
40
  func (plainIsPruneProgrammerNamespace) Decompose(props PlainIsPruneProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
43
- f := nativecontext.EmitFactoryOf(plainIsPruneProgrammer_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,
@@ -114,7 +112,7 @@ func (plainIsPruneProgrammerNamespace) Write(props nativecontext.IProgrammerProp
114
112
  Type: props.Type,
115
113
  Name: props.Name,
116
114
  })
117
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
115
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
118
116
  Modulo: props.Modulo,
119
117
  Functor: functor,
120
118
  Result: result,
@@ -49,10 +49,8 @@ type PlainPruneProgrammer_DecomposeProps struct {
49
49
 
50
50
  const plainPruneProgrammer_PREFIX = "_p"
51
51
 
52
- var plainPruneProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
53
-
54
52
  func (plainPruneProgrammerNamespace) Decompose(props PlainPruneProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
55
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
53
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
56
54
  config := plainPruneProgrammer_configure(struct {
57
55
  Context nativecontext.ITypiaContext
58
56
  Functor *nativehelpers.FunctionProgrammer
@@ -97,7 +95,7 @@ func (plainPruneProgrammerNamespace) Write(props nativecontext.IProgrammerProps)
97
95
  Name: props.Name,
98
96
  Validated: false,
99
97
  })
100
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
98
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
101
99
  Modulo: props.Modulo,
102
100
  Functor: functor,
103
101
  Result: result,
@@ -110,7 +108,7 @@ func plainPruneProgrammer_write_array_functions(props struct {
110
108
  Functor *nativehelpers.FunctionProgrammer
111
109
  Collection *schemametadata.MetadataCollection
112
110
  }) []*shimast.Node {
113
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
111
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
114
112
  output := []*shimast.Node{}
115
113
  for _, typ := range props.Collection.Arrays() {
116
114
  if typ.Recursive == false {
@@ -125,7 +123,7 @@ func plainPruneProgrammer_write_array_functions(props struct {
125
123
  Value: f.NewArrowFunction(
126
124
  nil,
127
125
  nil,
128
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
126
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{Emit: props.Context.Emit,
129
127
  Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
130
128
  Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
131
129
  Input: f.NewIdentifier("input"),
@@ -165,7 +163,7 @@ func plainPruneProgrammer_write_tuple_functions(props struct {
165
163
  Functor *nativehelpers.FunctionProgrammer
166
164
  Collection *schemametadata.MetadataCollection
167
165
  }) []*shimast.Node {
168
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
166
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
169
167
  output := []*shimast.Node{}
170
168
  for _, tuple := range props.Collection.Tuples() {
171
169
  if tuple.Recursive == false {
@@ -180,7 +178,7 @@ func plainPruneProgrammer_write_tuple_functions(props struct {
180
178
  Value: f.NewArrowFunction(
181
179
  nil,
182
180
  nil,
183
- f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
181
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{Emit: props.Context.Emit,
184
182
  Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
185
183
  Type: nativefactories.TypeFactory.Keyword("any", props.Context.Emit),
186
184
  Input: f.NewIdentifier("input"),
@@ -219,7 +217,7 @@ func plainPruneProgrammer_decode(props struct {
219
217
  Metadata *schemametadata.MetadataSchema
220
218
  Explore nativeinternal.FeatureProgrammer_IExplore
221
219
  }) *shimast.Node {
222
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
220
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
223
221
  if plainPruneProgrammer_filter(props.Metadata) == false {
224
222
  return f.NewBlock(f.NewNodeList(nil), false)
225
223
  }
@@ -265,7 +263,7 @@ func plainPruneProgrammer_decode(props struct {
265
263
  unions = append(unions, plainPruneProgrammer_IUnion{
266
264
  Type: "array",
267
265
  Is: func() *shimast.Node {
268
- return nativefactories.ExpressionFactory.IsArray(props.Input)
266
+ return nativefactories.ExpressionFactory.IsArray(props.Input, props.Context.Emit)
269
267
  },
270
268
  Value: func() *shimast.Node {
271
269
  explore := props.Explore
@@ -286,7 +284,7 @@ func plainPruneProgrammer_decode(props struct {
286
284
  unions = append(unions, plainPruneProgrammer_IUnion{
287
285
  Type: "native",
288
286
  Is: func() *shimast.Node {
289
- return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input)
287
+ return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input, props.Context.Emit)
290
288
  },
291
289
  Value: func() *shimast.Node {
292
290
  return f.NewBlock(f.NewNodeList(nil), true)
@@ -297,7 +295,7 @@ func plainPruneProgrammer_decode(props struct {
297
295
  unions = append(unions, plainPruneProgrammer_IUnion{
298
296
  Type: "set",
299
297
  Is: func() *shimast.Node {
300
- return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
298
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input, props.Context.Emit)
301
299
  },
302
300
  Value: func() *shimast.Node {
303
301
  return f.NewBlock(f.NewNodeList(nil), true)
@@ -308,7 +306,7 @@ func plainPruneProgrammer_decode(props struct {
308
306
  unions = append(unions, plainPruneProgrammer_IUnion{
309
307
  Type: "map",
310
308
  Is: func() *shimast.Node {
311
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
309
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input, props.Context.Emit)
312
310
  },
313
311
  Value: func() *shimast.Node {
314
312
  return f.NewBlock(f.NewNodeList(nil), true)
@@ -323,7 +321,7 @@ func plainPruneProgrammer_decode(props struct {
323
321
  CheckNull: true,
324
322
  CheckArray: false,
325
323
  Input: props.Input,
326
- })
324
+ }, props.Context.Emit)
327
325
  },
328
326
  Value: func() *shimast.Node {
329
327
  explore := props.Explore
@@ -375,12 +373,12 @@ func plainPruneProgrammer_to_statement(node *shimast.Node, emit *shimprinter.Emi
375
373
  if node == nil || node.Kind == shimast.KindBlock || node.Kind == shimast.KindReturnStatement {
376
374
  return node
377
375
  }
378
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, emit)
376
+ f := nativecontext.NodeFactoryOf(emit)
379
377
  return f.NewExpressionStatement(node)
380
378
  }
381
379
 
382
380
  func plainPruneProgrammer_top_level_body(body *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
383
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, emit)
381
+ f := nativecontext.NodeFactoryOf(emit)
384
382
  statements := []*shimast.Node{}
385
383
  if body != nil && body.Kind == shimast.KindBlock {
386
384
  statements = append(statements, body.Statements()...)
@@ -423,13 +421,13 @@ type plainPruneProgrammer_decodeArrayProps struct {
423
421
  }
424
422
 
425
423
  func plainPruneProgrammer_decode_array(props plainPruneProgrammer_decodeArrayProps) *shimast.Node {
426
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
424
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
427
425
  if props.Array.Type.Recursive {
428
426
  return f.NewCallExpression(
429
427
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, *props.Array.Type.Index))),
430
428
  nil,
431
429
  nil,
432
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
430
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
433
431
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
434
432
  Explore: plainCloneProgrammer_explore_with(props.Explore, "function", "array"),
435
433
  Input: props.Input,
@@ -441,7 +439,7 @@ func plainPruneProgrammer_decode_array(props plainPruneProgrammer_decodeArrayPro
441
439
  }
442
440
 
443
441
  func plainPruneProgrammer_decode_array_inline(props plainPruneProgrammer_decodeArrayProps) *shimast.Node {
444
- return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
442
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{Emit: props.Context.Emit,
445
443
  Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
446
444
  Trace: props.Config.Trace,
447
445
  Path: props.Config.Path,
@@ -475,13 +473,13 @@ type plainPruneProgrammer_decodeTupleProps struct {
475
473
  }
476
474
 
477
475
  func plainPruneProgrammer_decode_tuple(props plainPruneProgrammer_decodeTupleProps) *shimast.Node {
478
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
476
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
479
477
  if props.Tuple.Type.Recursive {
480
478
  return f.NewCallExpression(
481
479
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, *props.Tuple.Type.Index))),
482
480
  nil,
483
481
  nil,
484
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
482
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
485
483
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
486
484
  Explore: plainCloneProgrammer_explore_with(props.Explore, "function", props.Explore.From),
487
485
  Input: props.Input,
@@ -509,7 +507,7 @@ type plainPruneProgrammer_decodeTupleInlineProps struct {
509
507
  }
510
508
 
511
509
  func plainPruneProgrammer_decode_tuple_inline(props plainPruneProgrammer_decodeTupleInlineProps) *shimast.Node {
512
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
510
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
513
511
  elements := []*shimast.Node{}
514
512
  for index, elem := range props.Tuple.Elements {
515
513
  if elem.Rest != nil || plainPruneProgrammer_filter(elem) == false {
@@ -585,7 +583,7 @@ type plainPruneProgrammer_exploreArraysProps struct {
585
583
  }
586
584
 
587
585
  func plainPruneProgrammer_explore_arrays(props plainPruneProgrammer_exploreArraysProps) *shimast.Node {
588
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
586
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
589
587
  return f.NewCallExpression(
590
588
  nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
591
589
  Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
@@ -642,7 +640,7 @@ type plainPruneProgrammer_exploreObjectsProps struct {
642
640
  }
643
641
 
644
642
  func plainPruneProgrammer_explore_objects(props plainPruneProgrammer_exploreObjectsProps) *shimast.Node {
645
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
643
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
646
644
  if len(props.Metadata.Objects) == 1 {
647
645
  return plainPruneProgrammer_decode_object(struct {
648
646
  Functor *nativehelpers.FunctionProgrammer
@@ -664,7 +662,7 @@ func plainPruneProgrammer_explore_objects(props plainPruneProgrammer_exploreObje
664
662
  f.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", plainPruneProgrammer_PREFIX, index))),
665
663
  nil,
666
664
  nil,
667
- f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
665
+ f.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{Emit: props.Context.Emit,
668
666
  Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace, Visited: props.Functor.Visited()},
669
667
  Input: props.Input,
670
668
  Explore: props.Explore,
@@ -677,14 +675,14 @@ func plainPruneProgrammer_configure(props struct {
677
675
  Context nativecontext.ITypiaContext
678
676
  Functor *nativehelpers.FunctionProgrammer
679
677
  }) nativeinternal.FeatureProgrammer_IConfig {
680
- f := nativecontext.EmitFactoryOf(plainPruneProgrammer_factory, props.Context.Emit)
678
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
681
679
  config := nativeinternal.FeatureProgrammer_IConfig{}
682
680
  config.Types = nativeinternal.FeatureProgrammer_IConfig_ITypes{
683
681
  Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
684
682
  return f.NewTypeReferenceNode(f.NewIdentifier(plainCloneProgrammer_type_name(props.Context, t, name)), nil)
685
683
  },
686
684
  Output: func(_ *shimchecker.Type, _ *string) *shimast.TypeNode {
687
- return nativefactories.TypeFactory.Keyword("void")
685
+ return nativefactories.TypeFactory.Keyword("void", props.Context.Emit)
688
686
  },
689
687
  }
690
688
  config.Prefix = plainPruneProgrammer_PREFIX
@@ -739,7 +737,7 @@ func plainPruneProgrammer_configure(props struct {
739
737
  })
740
738
  },
741
739
  Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
742
- return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
740
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{Emit: props.Context.Emit,
743
741
  Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
744
742
  return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
745
743
  Context: props.Context,
@@ -41,10 +41,8 @@ type PlainValidateClassifyProgrammer_DecomposeProps struct {
41
41
  Name *string
42
42
  }
43
43
 
44
- var plainValidateClassifyProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
45
-
46
44
  func (plainValidateClassifyProgrammerNamespace) Decompose(props PlainValidateClassifyProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
47
- f := nativecontext.EmitFactoryOf(plainValidateClassifyProgrammer_factory, props.Context.Emit)
45
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
48
46
  // Validate the INPUT against the redirected type (from/new seed or field-copy
49
47
  // instance shape for a class-TYPE target; the type itself otherwise) — never
50
48
  // typeof C's static members.
@@ -138,7 +136,7 @@ func (plainValidateClassifyProgrammerNamespace) Write(props nativecontext.IProgr
138
136
  Type: props.Type,
139
137
  Name: props.Name,
140
138
  })
141
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
139
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
142
140
  Modulo: props.Modulo,
143
141
  Functor: functor,
144
142
  Result: result,
@@ -41,10 +41,8 @@ type PlainValidateCloneProgrammer_DecomposeProps struct {
41
41
  Name *string
42
42
  }
43
43
 
44
- var plainValidateCloneProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
45
-
46
44
  func (plainValidateCloneProgrammerNamespace) Decompose(props PlainValidateCloneProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
47
- f := nativecontext.EmitFactoryOf(plainValidateCloneProgrammer_factory, props.Context.Emit)
45
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
48
46
  validate := nativeprogrammers.ValidateProgrammer.Decompose(nativeprogrammers.ValidateProgrammer_DecomposeProps{
49
47
  Context: props.Context,
50
48
  Modulo: props.Modulo,
@@ -134,7 +132,7 @@ func (plainValidateCloneProgrammerNamespace) Write(props nativecontext.IProgramm
134
132
  Type: props.Type,
135
133
  Name: props.Name,
136
134
  })
137
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
135
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
138
136
  Modulo: props.Modulo,
139
137
  Functor: functor,
140
138
  Result: result,
@@ -41,10 +41,8 @@ type PlainValidatePruneProgrammer_DecomposeProps struct {
41
41
  Name *string
42
42
  }
43
43
 
44
- var plainValidatePruneProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
45
-
46
44
  func (plainValidatePruneProgrammerNamespace) Decompose(props PlainValidatePruneProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
47
- f := nativecontext.EmitFactoryOf(plainValidatePruneProgrammer_factory, props.Context.Emit)
45
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
48
46
  validate := nativeprogrammers.ValidateProgrammer.Decompose(nativeprogrammers.ValidateProgrammer_DecomposeProps{
49
47
  Context: props.Context,
50
48
  Modulo: props.Modulo,
@@ -125,7 +123,7 @@ func (plainValidatePruneProgrammerNamespace) Write(props nativecontext.IProgramm
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,
@@ -50,10 +50,8 @@ type ProtobufAssertDecodeProgrammer_DecomposeProps struct {
50
50
  Init *shimast.Node
51
51
  }
52
52
 
53
- var protobufAssertDecodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
54
-
55
53
  func (protobufAssertDecodeProgrammerNamespace) Decompose(props ProtobufAssertDecodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
56
- f := nativecontext.EmitFactoryOf(protobufAssertDecodeProgrammer_factory, props.Context.Emit)
54
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
57
55
  assertContext := props.Context
58
56
  functional := false
59
57
  numeric := false
@@ -129,7 +127,7 @@ func (protobufAssertDecodeProgrammerNamespace) Write(props ProtobufAssertDecodeP
129
127
  Name: props.Name,
130
128
  Init: props.Init,
131
129
  })
132
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
130
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
133
131
  Modulo: props.Modulo,
134
132
  Functor: functor,
135
133
  Result: result,
@@ -50,10 +50,8 @@ type ProtobufAssertEncodeProgrammer_DecomposeProps struct {
50
50
  Init *shimast.Node
51
51
  }
52
52
 
53
- var protobufAssertEncodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
54
-
55
53
  func (protobufAssertEncodeProgrammerNamespace) Decompose(props ProtobufAssertEncodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
56
- f := nativecontext.EmitFactoryOf(protobufAssertEncodeProgrammer_factory, props.Context.Emit)
54
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
57
55
  assertContext := props.Context
58
56
  functional := false
59
57
  finite := true
@@ -133,7 +131,7 @@ func (protobufAssertEncodeProgrammerNamespace) Write(props ProtobufAssertEncodeP
133
131
  Name: props.Name,
134
132
  Init: props.Init,
135
133
  })
136
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
134
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
137
135
  Modulo: props.Modulo,
138
136
  Functor: functor,
139
137
  Result: result,
@@ -93,11 +93,8 @@ type protobufDecodeProgrammer_decodeMapProps struct {
93
93
 
94
94
  const protobufDecodeProgrammer_PREFIX = "_pd"
95
95
 
96
- var protobufDecodeProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
97
- var protobufDecodeProgrammer_objectSequence = 0
98
-
99
96
  func (protobufDecodeProgrammerNamespace) Decompose(props ProtobufDecodeProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
100
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, props.Context.Emit)
97
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
101
98
  collection := schemametadata.NewMetadataCollection()
102
99
  meta := nativefactories.ProtobufFactory.Metadata(nativefactories.ProtobufFactory_IProps{
103
100
  Method: protobufDecodeProgrammer_method_text(props.Modulo),
@@ -179,7 +176,7 @@ func (protobufDecodeProgrammerNamespace) Write(props ProtobufDecodeProgrammer_IP
179
176
  Type: props.Type,
180
177
  Name: props.Name,
181
178
  })
182
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
179
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
183
180
  Modulo: props.Modulo,
184
181
  Functor: functor,
185
182
  Result: result,
@@ -191,7 +188,7 @@ func protobufDecodeProgrammer_write_object_function(props struct {
191
188
  Functor *nativehelpers.FunctionProgrammer
192
189
  Object *schemametadata.MetadataObjectType
193
190
  }) *shimast.Node {
194
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, props.Context.Emit)
191
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
195
192
  body := protobufDecodeProgrammer_write_object_function_body(protobufDecodeProgrammer_objectBodyProps{
196
193
  Context: props.Context,
197
194
  Condition: protobufDecodeProgrammer_lessThan(protobufDecodeProgrammer_callReader("index", nil, props.Context.Emit), protobufDecodeProgrammer_callReader("size", nil, props.Context.Emit), props.Context.Emit),
@@ -220,7 +217,7 @@ func protobufDecodeProgrammer_write_object_function(props struct {
220
217
  }
221
218
 
222
219
  func protobufDecodeProgrammer_write_object_function_body(props protobufDecodeProgrammer_objectBodyProps) []*shimast.Node {
223
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, props.Context.Emit)
220
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
224
221
  if protobufDecodeProgrammer_objectNeedsProtobuf(props.Object) {
225
222
  nativefactories.ProtobufFactory.EmplaceObject(props.Object)
226
223
  }
@@ -290,7 +287,7 @@ func protobufDecodeProgrammer_write_object_function_body(props protobufDecodePro
290
287
  }
291
288
 
292
289
  func protobufDecodeProgrammer_write_property_default_value(value *schemametadata.MetadataSchema, emit *shimprinter.EmitContext) *shimast.Node {
293
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
290
+ f := nativecontext.NodeFactoryOf(emit)
294
291
  var expression *shimast.Node
295
292
  if value.Nullable {
296
293
  expression = f.NewKeywordExpression(shimast.KindNullKeyword)
@@ -341,7 +338,7 @@ func protobufDecodeProgrammer_decode_property(props protobufDecodeProgrammer_dec
341
338
  }
342
339
 
343
340
  func protobufDecodeProgrammer_decode_property_type(props protobufDecodeProgrammer_decodePropertyTypeProps) *shimast.Node {
344
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, props.Context.Emit)
341
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
345
342
  outExpr := func(title string, value *shimast.Node) *shimast.Node {
346
343
  return protobufDecodeProgrammer_caseClause(protobufDecodeProgrammer_indexValue(protobufDecodeProgrammer_propertyIndex(props.Schema)), title, []*shimast.Node{
347
344
  f.NewExpressionStatement(protobufDecodeProgrammer_assignment(props.Accessor, shimast.KindEqualsToken, value, props.Context.Emit)),
@@ -432,7 +429,7 @@ func protobufDecodeProgrammer_decode_property_type(props protobufDecodeProgramme
432
429
  }
433
430
 
434
431
  func protobufDecodeProgrammer_decode_number(schema schemaprotobuf.IProtobufSchema, emit *shimprinter.EmitContext) *shimast.Node {
435
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
432
+ f := nativecontext.NodeFactoryOf(emit)
436
433
  name := protobufDecodeProgrammer_numberName(schema)
437
434
  value := protobufDecodeProgrammer_callReader(name, nil, emit)
438
435
  if name == "int64" || name == "uint64" {
@@ -448,7 +445,7 @@ func protobufDecodeProgrammer_decode_number(schema schemaprotobuf.IProtobufSchem
448
445
  }
449
446
 
450
447
  func protobufDecodeProgrammer_decode_array(props protobufDecodeProgrammer_decodeArrayProps, emit *shimprinter.EmitContext) []*shimast.Node {
451
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
448
+ f := nativecontext.NodeFactoryOf(emit)
452
449
  statements := []*shimast.Node{}
453
450
  if props.Required == false {
454
451
  statements = append(statements, f.NewExpressionStatement(
@@ -495,7 +492,7 @@ func protobufDecodeProgrammer_decode_regular_object(props struct {
495
492
  Top bool
496
493
  Object *schemametadata.MetadataObjectType
497
494
  }, emit *shimprinter.EmitContext) *shimast.Node {
498
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
495
+ f := nativecontext.NodeFactoryOf(emit)
499
496
  index := 0
500
497
  if props.Object != nil {
501
498
  index = props.Object.Index
@@ -514,7 +511,7 @@ func protobufDecodeProgrammer_decode_regular_object(props struct {
514
511
  }
515
512
 
516
513
  func protobufDecodeProgrammer_decode_map(props protobufDecodeProgrammer_decodeMapProps) []*shimast.Node {
517
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, props.Context.Emit)
514
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
518
515
  statements := []*shimast.Node{}
519
516
  if props.Required {
520
517
  statements = append(statements, f.NewExpressionStatement(
@@ -576,7 +573,7 @@ func protobufDecodeProgrammer_decode_array_value(schema schemaprotobuf.IProtobuf
576
573
  }
577
574
 
578
575
  func protobufDecodeProgrammer_callReader(method string, args []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
579
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
576
+ f := nativecontext.NodeFactoryOf(emit)
580
577
  return f.NewCallExpression(
581
578
  nativefactories.IdentifierFactory.Access(emit, f.NewIdentifier("reader"), method),
582
579
  nil,
@@ -587,7 +584,7 @@ func protobufDecodeProgrammer_callReader(method string, args []*shimast.Node, em
587
584
  }
588
585
 
589
586
  func protobufDecodeProgrammer_caseClause(index int, title string, statements []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
590
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
587
+ f := nativecontext.NodeFactoryOf(emit)
591
588
  body := []*shimast.Node{
592
589
  f.NewExpressionStatement(f.NewIdentifier("// " + title)),
593
590
  }
@@ -600,6 +597,10 @@ func protobufDecodeProgrammer_caseClause(index int, title string, statements []*
600
597
  )
601
598
  }
602
599
 
600
+ // protobufDecodeProgrammer_createObjectType supplies the temporary key/value
601
+ // properties of a wire map entry. Only its properties reach the body writer and
602
+ // ProtobufFactory.EmplaceObject; it never enters a metadata collection or a
603
+ // name-indexed cache, so it needs no synthetic type identity or shared counter.
603
604
  func protobufDecodeProgrammer_createObjectType(definitions []struct {
604
605
  Key string
605
606
  Value *schemametadata.MetadataSchema
@@ -612,9 +613,7 @@ func protobufDecodeProgrammer_createObjectType(definitions []struct {
612
613
  JsDocTags: []schemametadata.IJsDocTagInfo{},
613
614
  }))
614
615
  }
615
- protobufDecodeProgrammer_objectSequence++
616
616
  obj := schemametadata.MetadataObjectType_create(schemametadata.MetadataObjectType{
617
- Name: fmt.Sprintf("object.o%d", protobufDecodeProgrammer_objectSequence),
618
617
  Properties: properties,
619
618
  JsDocTags: []schemametadata.IJsDocTagInfo{},
620
619
  Index: -1,
@@ -690,7 +689,7 @@ func protobufDecodeProgrammer_objectNeedsProtobuf(object *schemametadata.Metadat
690
689
  }
691
690
 
692
691
  func protobufDecodeProgrammer_arrayPush(accessor *shimast.Node, value *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
693
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
692
+ f := nativecontext.NodeFactoryOf(emit)
694
693
  return f.NewCallExpression(
695
694
  nativefactories.IdentifierFactory.Access(emit, accessor, "push"),
696
695
  nil,
@@ -701,27 +700,27 @@ func protobufDecodeProgrammer_arrayPush(accessor *shimast.Node, value *shimast.N
701
700
  }
702
701
 
703
702
  func protobufDecodeProgrammer_assignment(left *shimast.Node, operator shimast.Kind, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
704
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
703
+ f := nativecontext.NodeFactoryOf(emit)
705
704
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(operator), right)
706
705
  }
707
706
 
708
707
  func protobufDecodeProgrammer_lessThan(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
709
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
708
+ f := nativecontext.NodeFactoryOf(emit)
710
709
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindLessThanToken), right)
711
710
  }
712
711
 
713
712
  func protobufDecodeProgrammer_unsigned_right_shift(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
714
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
713
+ f := nativecontext.NodeFactoryOf(emit)
715
714
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindGreaterThanGreaterThanGreaterThanToken), right)
716
715
  }
717
716
 
718
717
  func protobufDecodeProgrammer_bitwise_and(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
719
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
718
+ f := nativecontext.NodeFactoryOf(emit)
720
719
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindAmpersandToken), right)
721
720
  }
722
721
 
723
722
  func protobufDecodeProgrammer_strict_equal(left *shimast.Node, right *shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
724
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, emit)
723
+ f := nativecontext.NodeFactoryOf(emit)
725
724
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(shimast.KindEqualsEqualsEqualsToken), right)
726
725
  }
727
726
 
@@ -868,7 +867,7 @@ func protobufDecodeProgrammer_import_type(context nativecontext.ITypiaContext, p
868
867
  if importer := context.Importer; importer != nil {
869
868
  return importer.Type(props)
870
869
  }
871
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, context.Emit)
870
+ f := nativecontext.NodeFactoryOf(context.Emit)
872
871
  if str, ok := props.Name.(string); ok {
873
872
  return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
874
873
  }
@@ -879,7 +878,7 @@ func protobufDecodeProgrammer_internal(context nativecontext.ITypiaContext, name
879
878
  if importer := context.Importer; importer != nil {
880
879
  return importer.Internal(name)
881
880
  }
882
- f := nativecontext.EmitFactoryOf(protobufDecodeProgrammer_factory, context.Emit)
881
+ f := nativecontext.NodeFactoryOf(context.Emit)
883
882
  return f.NewIdentifier(name)
884
883
  }
885
884