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
@@ -74,10 +74,8 @@ type assertProgrammerGuardianNamespace struct{}
74
74
 
75
75
  var Guardian = assertProgrammerGuardianNamespace{}
76
76
 
77
- var assertProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
78
-
79
77
  func (assertProgrammerNamespace) Decompose(props AssertProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
80
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
78
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
81
79
  is := IsProgrammer.Decompose(IsProgrammer_DecomposeProps{
82
80
  Config: IsProgrammer_IConfig{Equals: props.Config.Equals},
83
81
  Context: props.Context,
@@ -223,7 +221,7 @@ func (assertProgrammerNamespace) Write(props AssertProgrammer_IProps) *shimast.N
223
221
  Name: props.Name,
224
222
  Init: props.Init,
225
223
  })
226
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
224
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
227
225
  Modulo: props.Modulo,
228
226
  Functor: functor,
229
227
  Result: result,
@@ -231,7 +229,7 @@ func (assertProgrammerNamespace) Write(props AssertProgrammer_IProps) *shimast.N
231
229
  }
232
230
 
233
231
  func assertProgrammer_atomist(props AssertProgrammer_DecomposeProps) func(next nativeinternal.CheckerProgrammer_AtomistProps) *shimast.Node {
234
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
232
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
235
233
  return func(next nativeinternal.CheckerProgrammer_AtomistProps) *shimast.Node {
236
234
  expressions := []*shimast.Node{}
237
235
  if next.Entry.Expression != nil {
@@ -273,7 +271,7 @@ func assertProgrammer_combiner(props struct {
273
271
  Context nativecontext.ITypiaContext
274
272
  Functor *nativehelpers.FunctionProgrammer
275
273
  }) nativeinternal.CheckerProgrammer_IConfig_Combiner {
276
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
274
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
277
275
  return func(next nativeinternal.CheckerProgrammer_CombinerProps) *shimast.Node {
278
276
  if next.Explore.Tracable == false {
279
277
  options := &IsProgrammer_CONFIG_IOptions{
@@ -326,7 +324,7 @@ type assertProgrammer_assertObjectProps struct {
326
324
  }
327
325
 
328
326
  func assertProgrammer_assert_object(props assertProgrammer_assertObjectProps) *shimast.Node {
329
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
327
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
330
328
  return nativeiterate.Check_object(nativeiterate.Check_objectProps{
331
329
  Config: nativeiterate.Check_object_IConfig{
332
330
  Equals: props.Config.Equals,
@@ -379,7 +377,7 @@ func assertProgrammer_assert_object(props assertProgrammer_assertObjectProps) *s
379
377
  }
380
378
 
381
379
  func assertProgrammer_joiner(props AssertProgrammer_DecomposeProps) nativeinternal.CheckerProgrammer_IConfig_IJoiner {
382
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
380
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
383
381
  joiner := nativeinternal.CheckerProgrammer_IConfig_IJoiner{
384
382
  Object: func(next nativeinternal.CheckerProgrammer_JoinerObjectProps) *shimast.Node {
385
383
  return assertProgrammer_assert_object(assertProgrammer_assertObjectProps{Config: props.Config, Context: props.Context, Functor: props.Functor, Entries: next.Entries, Input: next.Input})
@@ -417,7 +415,7 @@ type assertProgrammer_createGuardCallProps struct {
417
415
  }
418
416
 
419
417
  func assertProgrammer_create_guard_call(props assertProgrammer_createGuardCallProps) *shimast.Node {
420
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
418
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
421
419
  exceptionable := props.Exceptionable
422
420
  if exceptionable == nil {
423
421
  exceptionable = f.NewIdentifier("_exceptionable")
@@ -441,7 +439,7 @@ func assertProgrammer_create_guard_call(props assertProgrammer_createGuardCallPr
441
439
  }
442
440
 
443
441
  func assertProgrammer_expected_expression(props assertProgrammer_createGuardCallProps) *shimast.Node {
444
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
442
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
445
443
  if props.Functor == nil || len(props.Expected) < 128 {
446
444
  return f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)
447
445
  }
@@ -451,7 +449,7 @@ func assertProgrammer_expected_expression(props assertProgrammer_createGuardCall
451
449
  }
452
450
 
453
451
  func (assertProgrammerGuardianNamespace) Identifier(emit ...*shimprinter.EmitContext) *shimast.Node {
454
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, emit...)
452
+ f := nativecontext.NodeFactoryOf(emit...)
455
453
  return f.NewIdentifier("errorFactory")
456
454
  }
457
455
 
@@ -459,7 +457,7 @@ func (assertProgrammerGuardianNamespace) Parameter(props struct {
459
457
  Context nativecontext.ITypiaContext
460
458
  Init *shimast.Node
461
459
  }) *shimast.Node {
462
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, props.Context.Emit)
460
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
463
461
  init := props.Init
464
462
  if init == nil {
465
463
  init = f.NewToken(shimast.KindQuestionToken)
@@ -468,7 +466,7 @@ func (assertProgrammerGuardianNamespace) Parameter(props struct {
468
466
  }
469
467
 
470
468
  func (assertProgrammerGuardianNamespace) Type(context nativecontext.ITypiaContext) *shimast.Node {
471
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, context.Emit)
469
+ f := nativecontext.NodeFactoryOf(context.Emit)
472
470
  return f.NewFunctionTypeNode(
473
471
  nil,
474
472
  f.NewNodeList([]*shimast.Node{
@@ -497,7 +495,7 @@ func assertProgrammer_reduce(expressions []*shimast.Node, operator shimast.Kind,
497
495
  }
498
496
 
499
497
  func assertProgrammer_binary(left *shimast.Expression, operator shimast.Kind, right *shimast.Expression, emit *shimprinter.EmitContext) *shimast.Node {
500
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, emit)
498
+ f := nativecontext.NodeFactoryOf(emit)
501
499
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(operator), right)
502
500
  }
503
501
 
@@ -510,7 +508,7 @@ func assertProgrammer_or(left *shimast.Expression, right *shimast.Expression, em
510
508
  }
511
509
 
512
510
  func assertProgrammer_exceptionable(explore nativeinternal.FeatureProgrammer_IExplore, emit *shimprinter.EmitContext) *shimast.Node {
513
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, emit)
511
+ f := nativecontext.NodeFactoryOf(emit)
514
512
  if explore.From == "top" || explore.Source == "top" {
515
513
  return f.NewKeywordExpression(shimast.KindTrueKeyword)
516
514
  }
@@ -518,7 +516,7 @@ func assertProgrammer_exceptionable(explore nativeinternal.FeatureProgrammer_IEx
518
516
  }
519
517
 
520
518
  func assertProgrammer_path(explore nativeinternal.FeatureProgrammer_IExplore, emit *shimprinter.EmitContext) *shimast.Node {
521
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, emit)
519
+ f := nativecontext.NodeFactoryOf(emit)
522
520
  if explore.Postfix != "" {
523
521
  return f.NewIdentifier("_path + " + explore.Postfix)
524
522
  }
@@ -536,14 +534,14 @@ func assertProgrammer_internal(context nativecontext.ITypiaContext, name string)
536
534
  if importer := context.Importer; importer != nil {
537
535
  return importer.Internal(name)
538
536
  }
539
- return nativecontext.EmitFactoryOf(assertProgrammer_factory, context.Emit).NewIdentifier(name)
537
+ return nativecontext.NodeFactoryOf(context.Emit).NewIdentifier(name)
540
538
  }
541
539
 
542
540
  func assertProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
543
541
  if importer := context.Importer; importer != nil {
544
542
  return importer.Type(props)
545
543
  }
546
- f := nativecontext.EmitFactoryOf(assertProgrammer_factory, context.Emit)
544
+ f := nativecontext.NodeFactoryOf(context.Emit)
547
545
  return f.NewTypeReferenceNode(f.NewIdentifier(props.Name.(string)), nil)
548
546
  }
549
547
 
@@ -154,14 +154,12 @@ type IsProgrammer_DecodeObjectProps struct {
154
154
  Prefix string
155
155
  }
156
156
 
157
- var isProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
158
-
159
157
  func (isProgrammerNamespace) Configure(props struct {
160
158
  Options *IsProgrammer_CONFIG_IOptions
161
159
  Context nativecontext.ITypiaContext
162
160
  Functor *nativehelpers.FunctionProgrammer
163
161
  }) nativeinternal.CheckerProgrammer_IConfig {
164
- f := nativecontext.EmitFactoryOf(isProgrammer_factory, props.Context.Emit)
162
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
165
163
  options := props.Options
166
164
  return nativeinternal.CheckerProgrammer_IConfig{
167
165
  Prefix: "_i",
@@ -246,7 +244,7 @@ func (isProgrammerNamespace) Configure(props struct {
246
244
  }
247
245
 
248
246
  func (isProgrammerNamespace) Decompose(props IsProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
249
- f := nativecontext.EmitFactoryOf(isProgrammer_factory, props.Context.Emit)
247
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
250
248
  options := &IsProgrammer_CONFIG_IOptions{
251
249
  Numeric: props.Context.Options.Numeric,
252
250
  Finite: props.Context.Options.Finite,
@@ -314,7 +312,7 @@ func (isProgrammerNamespace) Write(props IsProgrammer_IProps) *shimast.Node {
314
312
  Type: props.Type,
315
313
  Name: props.Name,
316
314
  })
317
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
315
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
318
316
  Modulo: props.Modulo,
319
317
  Functor: functor,
320
318
  Result: result,
@@ -393,7 +391,7 @@ func (isProgrammerNamespace) Decode_object(props IsProgrammer_DecodeObjectProps)
393
391
  if props.Prefix != "" {
394
392
  config.Prefix = props.Prefix
395
393
  }
396
- return nativeinternal.CheckerProgrammer.Decode_object(nativeinternal.CheckerProgrammer_DecodeObjectProps{
394
+ return nativeinternal.CheckerProgrammer.Decode_object(nativeinternal.CheckerProgrammer_DecodeObjectProps{Emit: props.Context.Emit,
397
395
  Config: config,
398
396
  Context: props.Context,
399
397
  Functor: props.Functor,
@@ -407,7 +405,7 @@ func (isProgrammerNamespace) Decode_to_json(props struct {
407
405
  Input *shimast.Expression
408
406
  CheckNull bool
409
407
  }, emit ...*shimprinter.EmitContext) *shimast.Node {
410
- f := nativecontext.EmitFactoryOf(isProgrammer_factory, emit...)
408
+ f := nativecontext.NodeFactoryOf(emit...)
411
409
  var ec *shimprinter.EmitContext
412
410
  if len(emit) != 0 {
413
411
  ec = emit[0]
@@ -417,12 +415,12 @@ func (isProgrammerNamespace) Decode_to_json(props struct {
417
415
  CheckArray: false,
418
416
  CheckNull: props.CheckNull,
419
417
  Input: props.Input,
420
- }),
418
+ }, emit...),
421
419
  shimast.KindAmpersandAmpersandToken,
422
420
  isProgrammer_binary(
423
421
  f.NewStringLiteral("function", shimast.TokenFlagsNone),
424
422
  shimast.KindEqualsEqualsEqualsToken,
425
- nativefactories.ValueFactory.TYPEOF(nativefactories.IdentifierFactory.Access(ec, props.Input, "toJSON")),
423
+ nativefactories.ValueFactory.TYPEOF(nativefactories.IdentifierFactory.Access(ec, props.Input, "toJSON"), emit...),
426
424
  ec,
427
425
  ),
428
426
  ec,
@@ -430,7 +428,7 @@ func (isProgrammerNamespace) Decode_to_json(props struct {
430
428
  }
431
429
 
432
430
  func (isProgrammerNamespace) Decode_functional(input *shimast.Expression, emit ...*shimprinter.EmitContext) *shimast.Node {
433
- f := nativecontext.EmitFactoryOf(isProgrammer_factory, emit...)
431
+ f := nativecontext.NodeFactoryOf(emit...)
434
432
  var ec *shimprinter.EmitContext
435
433
  if len(emit) != 0 {
436
434
  ec = emit[0]
@@ -438,7 +436,7 @@ func (isProgrammerNamespace) Decode_functional(input *shimast.Expression, emit .
438
436
  return isProgrammer_binary(
439
437
  f.NewStringLiteral("function", shimast.TokenFlagsNone),
440
438
  shimast.KindEqualsEqualsEqualsToken,
441
- nativefactories.ValueFactory.TYPEOF(input),
439
+ nativefactories.ValueFactory.TYPEOF(input, emit...),
442
440
  ec,
443
441
  )
444
442
  }
@@ -455,7 +453,7 @@ func isProgrammer_reduce(expressions []*shimast.Node, operator shimast.Kind, ini
455
453
  }
456
454
 
457
455
  func isProgrammer_binary(left *shimast.Expression, operator shimast.Kind, right *shimast.Expression, emit *shimprinter.EmitContext) *shimast.Node {
458
- f := nativecontext.EmitFactoryOf(isProgrammer_factory, emit)
456
+ f := nativecontext.NodeFactoryOf(emit)
459
457
  return f.NewBinaryExpression(
460
458
  nil,
461
459
  left,
@@ -104,10 +104,8 @@ const (
104
104
  randomProgrammer_PREFIX_TUPLE = "_rt"
105
105
  )
106
106
 
107
- var randomProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
108
-
109
107
  func (randomProgrammerNamespace) Decompose(props RandomProgrammer_IDecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
110
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
108
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
111
109
  collection := schemametadata.NewMetadataCollection()
112
110
  result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
113
111
  Checker: props.Context.Checker,
@@ -230,7 +228,7 @@ func (randomProgrammerNamespace) Write(props RandomProgrammer_IProps) *shimast.N
230
228
  Name: props.Name,
231
229
  Init: props.Init,
232
230
  })
233
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
231
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
234
232
  Modulo: props.Modulo,
235
233
  Functor: functor,
236
234
  Result: result,
@@ -303,7 +301,7 @@ func randomProgrammer_write_object_functions(props struct {
303
301
  Functor *nativehelpers.FunctionProgrammer
304
302
  Collection *schemametadata.MetadataCollection
305
303
  }) []*shimast.Node {
306
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
304
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
307
305
  output := []*shimast.Node{}
308
306
  unsatisfiableObjects, _ := nativehelpers.RandomJoiner.UnsatisfiableRecursives(props.Collection.Objects(), props.Collection.Tuples())
309
307
  for i, obj := range props.Collection.Objects() {
@@ -369,7 +367,7 @@ func randomProgrammer_write_array_functions(props struct {
369
367
  Functor *nativehelpers.FunctionProgrammer
370
368
  Collection *schemametadata.MetadataCollection
371
369
  }) []*shimast.Node {
372
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
370
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
373
371
  output := []*shimast.Node{}
374
372
  for _, array := range props.Collection.Arrays() {
375
373
  if array.Recursive == false {
@@ -422,7 +420,7 @@ func randomProgrammer_write_tuple_functions(props struct {
422
420
  Functor *nativehelpers.FunctionProgrammer
423
421
  Collection *schemametadata.MetadataCollection
424
422
  }) []*shimast.Node {
425
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
423
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
426
424
  output := []*shimast.Node{}
427
425
  _, unsatisfiableTuples := nativehelpers.RandomJoiner.UnsatisfiableRecursives(props.Collection.Objects(), props.Collection.Tuples())
428
426
  for _, tuple := range props.Collection.Tuples() {
@@ -477,7 +475,7 @@ func randomProgrammer_write_tuple_functions(props struct {
477
475
  }
478
476
 
479
477
  func randomProgrammer_decode(props randomProgrammer_decodeProps) *shimast.Node {
480
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
478
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
481
479
  expressions := []*shimast.Node{}
482
480
  if props.Metadata.Any {
483
481
  expressions = append(expressions, f.NewStringLiteral("any type used...", shimast.TokenFlagsNone))
@@ -598,7 +596,7 @@ func randomProgrammer_decode(props randomProgrammer_decodeProps) *shimast.Node {
598
596
  // randomProgrammer_decode_pick selects a lazy candidate through the optional pick hook or uniform built-in fallback.
599
597
  // The custom hook receives its generator object as the receiver; only the selected candidate executes.
600
598
  func randomProgrammer_decode_pick(props randomProgrammer_decodeProps, expressions []*shimast.Node) *shimast.Node {
601
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
599
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
602
600
  pickers := make([]*shimast.Node, 0, len(expressions))
603
601
  for _, expr := range expressions {
604
602
  value := expr
@@ -664,7 +662,7 @@ func randomProgrammer_recursion_escape(props randomProgrammer_decodeProps) *shim
664
662
  if recursive == false {
665
663
  return nil
666
664
  }
667
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
665
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
668
666
  if props.Metadata.Nullable {
669
667
  return f.NewKeywordExpression(shimast.KindNullKeyword)
670
668
  }
@@ -685,7 +683,7 @@ func randomProgrammer_decode_atomic(props randomProgrammer_decodeAtomicProps) []
685
683
  } else {
686
684
  schemaList = nativeiterate.Json_schema_number_export(props.Atomic)
687
685
  }
688
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
686
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
689
687
  output := make([]*shimast.Node, 0, len(schemaList))
690
688
  for _, schema := range schemaList {
691
689
  composed := randomProgrammer_compose_atomic(props.Atomic.Type, schema, props.Context.Emit)
@@ -711,7 +709,7 @@ type randomProgrammer_composedAtomic struct {
711
709
  }
712
710
 
713
711
  func randomProgrammer_compose_atomic(atomicType string, schema nativeiterate.JsonSchema, emit *shimprinter.EmitContext) randomProgrammer_composedAtomic {
714
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, emit)
712
+ f := nativecontext.NodeFactoryOf(emit)
715
713
  if atomicType == "string" {
716
714
  // A string leaf that also carries a length tag needs the bounds forwarded
717
715
  // to the format and pattern generators; only the plain-string fall-through
@@ -809,7 +807,7 @@ func randomProgrammer_decode_array(props randomProgrammer_decodeArrayProps) []*s
809
807
  Array: props.Array,
810
808
  })
811
809
  schemaList = randomProgrammer_array_schema_list(props.Array, components, schemaList)
812
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
810
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
813
811
  output := make([]*shimast.Node, 0, len(schemaList))
814
812
  if props.Array.Type.Recursive {
815
813
  if tag := randomProgrammer_find_positive_min_items(props.Array.Tags); tag != nil {
@@ -889,7 +887,7 @@ func randomProgrammer_decode_array(props randomProgrammer_decodeArrayProps) []*s
889
887
  }
890
888
 
891
889
  func randomProgrammer_decode_tuple(props randomProgrammer_decodeTupleProps) *shimast.Node {
892
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
890
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
893
891
  if props.Tuple.Type.Recursive {
894
892
  depth := nativefactories.ExpressionFactory.Number(0, props.Context.Emit)
895
893
  if props.Explore.Recursive {
@@ -929,7 +927,7 @@ func randomProgrammer_decode_tuple(props randomProgrammer_decodeTupleProps) *shi
929
927
  }
930
928
 
931
929
  func randomProgrammer_decode_object(props randomProgrammer_decodeObjectProps) *shimast.Node {
932
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Emit)
930
+ f := nativecontext.NodeFactoryOf(props.Emit)
933
931
  var args *shimast.NodeList
934
932
  if props.Explore.Function {
935
933
  recursive := f.NewIdentifier("_recursive")
@@ -967,7 +965,7 @@ func randomProgrammer_decode_set(props struct {
967
965
  Explore randomProgrammer_IExplore
968
966
  Set *schemametadata.MetadataSet
969
967
  }) *shimast.Node {
970
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
968
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
971
969
  array := schemametadata.MetadataArray_create(schemametadata.MetadataArray{
972
970
  Tags: [][]schemametadata.IMetadataTypeTag{},
973
971
  Type: schemametadata.MetadataArrayType_create(schemametadata.MetadataArrayType{
@@ -998,7 +996,7 @@ func randomProgrammer_decode_map(props struct {
998
996
  Explore randomProgrammer_IExplore
999
997
  Map *schemametadata.MetadataMap
1000
998
  }) *shimast.Node {
1001
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
999
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1002
1000
  ofMap := true
1003
1001
  tupleType := schemametadata.MetadataTupleType_create(schemametadata.MetadataTupleType{
1004
1002
  Name: fmt.Sprintf("[%s, %s]", props.Map.Key.GetName(), props.Map.Value.GetName()),
@@ -1085,12 +1083,12 @@ func randomProgrammer_decode_native(props struct {
1085
1083
  if props.Name == "RegExp" {
1086
1084
  return randomProgrammer_decode_regexp(props.Context)
1087
1085
  }
1088
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1086
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1089
1087
  return f.NewNewExpression(f.NewIdentifier(props.Name), nil, f.NewNodeList(nil))
1090
1088
  }
1091
1089
 
1092
1090
  func randomProgrammer_decode_native_date(context nativecontext.ITypiaContext) *shimast.Node {
1093
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1091
+ f := nativecontext.NodeFactoryOf(context.Emit)
1094
1092
  return f.NewNewExpression(
1095
1093
  f.NewIdentifier("Date"),
1096
1094
  nil,
@@ -1106,7 +1104,7 @@ func randomProgrammer_decode_native_byte_array(props struct {
1106
1104
  Explore randomProgrammer_IExplore
1107
1105
  Name string
1108
1106
  }) *shimast.Node {
1109
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1107
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1110
1108
  protobufType, minimum, maximum := randomProgrammer_typed_array_range(props.Name)
1111
1109
  atomic := "number"
1112
1110
  if props.Name == "BigInt64Array" || props.Name == "BigUint64Array" {
@@ -1163,7 +1161,7 @@ func randomProgrammer_decode_native_blob(props struct {
1163
1161
  Explore randomProgrammer_IExplore
1164
1162
  Name string
1165
1163
  }) *shimast.Node {
1166
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1164
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1167
1165
  return f.NewNewExpression(
1168
1166
  f.NewIdentifier("Blob"),
1169
1167
  nil,
@@ -1186,7 +1184,7 @@ func randomProgrammer_decode_native_file(props struct {
1186
1184
  Explore randomProgrammer_IExplore
1187
1185
  Name string
1188
1186
  }) *shimast.Node {
1189
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1187
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1190
1188
  return f.NewNewExpression(
1191
1189
  f.NewIdentifier("File"),
1192
1190
  nil,
@@ -1222,7 +1220,7 @@ func randomProgrammer_decode_native_array_buffer(props struct {
1222
1220
  Explore randomProgrammer_IExplore
1223
1221
  Name string
1224
1222
  }) *shimast.Node {
1225
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1223
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1226
1224
  if props.Name == "ArrayBuffer" {
1227
1225
  return nativefactories.IdentifierFactory.Access(
1228
1226
  props.Context.Emit,
@@ -1333,7 +1331,7 @@ func randomProgrammer_decode_native_data_view(props struct {
1333
1331
  Explore randomProgrammer_IExplore
1334
1332
  Name string
1335
1333
  }) *shimast.Node {
1336
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, props.Context.Emit)
1334
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
1337
1335
  return f.NewNewExpression(
1338
1336
  f.NewIdentifier("DataView"),
1339
1337
  nil,
@@ -1353,7 +1351,7 @@ func randomProgrammer_decode_native_data_view(props struct {
1353
1351
  }
1354
1352
 
1355
1353
  func randomProgrammer_decode_regexp(context nativecontext.ITypiaContext) *shimast.Node {
1356
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1354
+ f := nativecontext.NodeFactoryOf(context.Emit)
1357
1355
  return f.NewNewExpression(
1358
1356
  f.NewIdentifier("RegExp"),
1359
1357
  nil,
@@ -1385,7 +1383,7 @@ func randomProgrammer_write_ranged_string(context nativecontext.ITypiaContext, m
1385
1383
  }
1386
1384
 
1387
1385
  func randomProgrammer_coalesce(context nativecontext.ITypiaContext, method string, internal string) *shimast.Node {
1388
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1386
+ f := nativecontext.NodeFactoryOf(context.Emit)
1389
1387
  return nativefactories.ExpressionFactory.Coalesce(
1390
1388
  nativefactories.IdentifierFactory.Access(context.Emit, f.NewIdentifier("_generator"), method, true),
1391
1389
  randomProgrammer_internal(context, internal),
@@ -1394,7 +1392,7 @@ func randomProgrammer_coalesce(context nativecontext.ITypiaContext, method strin
1394
1392
  }
1395
1393
 
1396
1394
  func randomProgrammer_schema_without_items(schema nativeiterate.JsonSchema, emit *shimprinter.EmitContext) *shimast.Node {
1397
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, emit)
1395
+ f := nativecontext.NodeFactoryOf(emit)
1398
1396
  keys := make([]string, 0, len(schema))
1399
1397
  for key := range schema {
1400
1398
  if key != "items" {
@@ -1441,14 +1439,14 @@ func randomProgrammer_internal(context nativecontext.ITypiaContext, name string)
1441
1439
  if importer := context.Importer; importer != nil {
1442
1440
  return importer.Internal(name)
1443
1441
  }
1444
- return nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit).NewIdentifier(name)
1442
+ return nativecontext.NodeFactoryOf(context.Emit).NewIdentifier(name)
1445
1443
  }
1446
1444
 
1447
1445
  func randomProgrammer_import_type(context nativecontext.ITypiaContext, props nativecontext.ImportProgrammer_TypeProps) *shimast.Node {
1448
1446
  if importer := context.Importer; importer != nil {
1449
1447
  return importer.Type(props)
1450
1448
  }
1451
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1449
+ f := nativecontext.NodeFactoryOf(context.Emit)
1452
1450
  if str, ok := props.Name.(string); ok {
1453
1451
  return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
1454
1452
  }
@@ -1456,7 +1454,7 @@ func randomProgrammer_import_type(context nativecontext.ITypiaContext, props nat
1456
1454
  }
1457
1455
 
1458
1456
  func randomProgrammer_type_reference(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) *shimast.Node {
1459
- f := nativecontext.EmitFactoryOf(randomProgrammer_factory, context.Emit)
1457
+ f := nativecontext.NodeFactoryOf(context.Emit)
1460
1458
  if name != nil {
1461
1459
  return f.NewTypeReferenceNode(f.NewIdentifier(*name), nil)
1462
1460
  }
@@ -1577,7 +1575,7 @@ func randomProgrammer_tags(base []schemametadata.IMetadataTypeTag, rows ...[]sch
1577
1575
 
1578
1576
  func randomProgrammer_first(list []*shimast.Node, emit *shimprinter.EmitContext) *shimast.Node {
1579
1577
  if len(list) == 0 {
1580
- return nativecontext.EmitFactoryOf(randomProgrammer_factory, emit).NewIdentifier("undefined")
1578
+ return nativecontext.NodeFactoryOf(emit).NewIdentifier("undefined")
1581
1579
  }
1582
1580
  return list[0]
1583
1581
  }
@@ -65,10 +65,8 @@ type ValidateProgrammer_DecomposeProps struct {
65
65
  Name *string
66
66
  }
67
67
 
68
- var validateProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
69
-
70
68
  func (validateProgrammerNamespace) Decompose(props ValidateProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
71
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Context.Emit)
69
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
72
70
  is := IsProgrammer.Decompose(IsProgrammer_DecomposeProps{
73
71
  Context: props.Context,
74
72
  Functor: props.Functor,
@@ -209,12 +207,12 @@ func (validateProgrammerNamespace) Write(props ValidateProgrammer_IProps) *shima
209
207
  })
210
208
  var wrapper func(arrow *shimast.Node) *shimast.Node
211
209
  if props.Config.StandardSchema {
212
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Context.Emit)
210
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
213
211
  wrapper = func(arrow *shimast.Node) *shimast.Node {
214
212
  return f.NewCallExpression(validateProgrammer_internal(props.Context, "createStandardSchema"), nil, nil, f.NewNodeList([]*shimast.Node{arrow}), shimast.NodeFlagsNone)
215
213
  }
216
214
  }
217
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
215
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{Emit: props.Context.Emit,
218
216
  Modulo: props.Modulo,
219
217
  Functor: functor,
220
218
  Result: result,
@@ -223,7 +221,7 @@ func (validateProgrammerNamespace) Write(props ValidateProgrammer_IProps) *shima
223
221
  }
224
222
 
225
223
  func validateProgrammer_atomist(props ValidateProgrammer_DecomposeProps) func(next nativeinternal.CheckerProgrammer_AtomistProps) *shimast.Node {
226
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Context.Emit)
224
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
227
225
  return func(next nativeinternal.CheckerProgrammer_AtomistProps) *shimast.Node {
228
226
  expressions := []*shimast.Node{}
229
227
  if next.Entry.Expression != nil {
@@ -265,7 +263,7 @@ func validateProgrammer_combine(props struct {
265
263
  Context nativecontext.ITypiaContext
266
264
  Functor *nativehelpers.FunctionProgrammer
267
265
  }) nativeinternal.CheckerProgrammer_IConfig_Combiner {
268
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Context.Emit)
266
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
269
267
  return func(next nativeinternal.CheckerProgrammer_CombinerProps) *shimast.Node {
270
268
  if next.Explore.Tracable == false {
271
269
  options := &IsProgrammer_CONFIG_IOptions{
@@ -314,7 +312,7 @@ type validateProgrammer_validateObjectProps struct {
314
312
  }
315
313
 
316
314
  func validateProgrammer_validate_object(props validateProgrammer_validateObjectProps) *shimast.Node {
317
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Context.Emit)
315
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
318
316
  return nativeiterate.Check_object(nativeiterate.Check_objectProps{
319
317
  Config: nativeiterate.Check_object_IConfig{
320
318
  Equals: props.Config.Equals,
@@ -365,13 +363,13 @@ func validateProgrammer_validate_object(props validateProgrammer_validateObjectP
365
363
  }
366
364
 
367
365
  func validateProgrammer_joiner(props ValidateProgrammer_DecomposeProps) nativeinternal.CheckerProgrammer_IConfig_IJoiner {
368
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Context.Emit)
366
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
369
367
  return nativeinternal.CheckerProgrammer_IConfig_IJoiner{
370
368
  Object: func(v nativeinternal.CheckerProgrammer_JoinerObjectProps) *shimast.Node {
371
369
  return validateProgrammer_validate_object(validateProgrammer_validateObjectProps{Context: props.Context, Functor: props.Functor, Config: props.Config, Entries: v.Entries, Input: v.Input})
372
370
  },
373
371
  Array: func(v nativeinternal.CheckerProgrammer_JoinerArrayProps) *shimast.Node {
374
- return nativeiterate.Check_everything(f.NewCallExpression(nativefactories.IdentifierFactory.Access(props.Context.Emit, v.Input, "map"), nil, nil, f.NewNodeList([]*shimast.Node{v.Arrow}), shimast.NodeFlagsNone))
372
+ return nativeiterate.Check_everything(f.NewCallExpression(nativefactories.IdentifierFactory.Access(props.Context.Emit, v.Input, "map"), nil, nil, f.NewNodeList([]*shimast.Node{v.Arrow}), shimast.NodeFlagsNone), props.Context.Emit)
375
373
  },
376
374
  Failure: func(next nativeinternal.CheckerProgrammer_JoinerFailureProps) *shimast.Node {
377
375
  explore := nativeinternal.FeatureProgrammer_IExplore{}
@@ -381,13 +379,13 @@ func validateProgrammer_joiner(props ValidateProgrammer_DecomposeProps) nativein
381
379
  return validateProgrammer_create_report_call(validateProgrammer_createReportCallProps{Exceptionable: validateProgrammer_exceptionable(explore, props.Context.Emit), Path: validateProgrammer_path(explore, props.Context.Emit), Expected: next.Expected, Value: next.Input, Functor: props.Functor, Emit: props.Context.Emit})
382
380
  },
383
381
  Tuple: func(binaries []*shimast.Node) *shimast.Node {
384
- return nativeiterate.Check_everything(f.NewArrayLiteralExpression(f.NewNodeList(binaries), true))
382
+ return nativeiterate.Check_everything(f.NewArrayLiteralExpression(f.NewNodeList(binaries), true), props.Context.Emit)
385
383
  },
386
384
  }
387
385
  }
388
386
 
389
387
  func validateProgrammer_create_output(emit *shimprinter.EmitContext) *shimast.Node {
390
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, emit)
388
+ f := nativecontext.NodeFactoryOf(emit)
391
389
  return nativefactories.ExpressionFactory.Conditional(
392
390
  f.NewIdentifier("success"),
393
391
  f.NewObjectLiteralExpression(f.NewNodeList([]*shimast.Node{
@@ -414,7 +412,7 @@ type validateProgrammer_createReportCallProps struct {
414
412
  }
415
413
 
416
414
  func validateProgrammer_create_report_call(props validateProgrammer_createReportCallProps) *shimast.Node {
417
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Emit)
415
+ f := nativecontext.NodeFactoryOf(props.Emit)
418
416
  exceptionable := props.Exceptionable
419
417
  if exceptionable == nil {
420
418
  exceptionable = f.NewIdentifier("_exceptionable")
@@ -440,7 +438,7 @@ func validateProgrammer_create_report_call(props validateProgrammer_createReport
440
438
  }
441
439
 
442
440
  func validateProgrammer_expected_expression(props validateProgrammer_createReportCallProps) *shimast.Node {
443
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, props.Emit)
441
+ f := nativecontext.NodeFactoryOf(props.Emit)
444
442
  if props.Functor == nil || len(props.Expected) < 128 {
445
443
  return f.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)
446
444
  }
@@ -461,7 +459,7 @@ func validateProgrammer_reduce(expressions []*shimast.Node, operator shimast.Kin
461
459
  }
462
460
 
463
461
  func validateProgrammer_binary(left *shimast.Expression, operator shimast.Kind, right *shimast.Expression, emit *shimprinter.EmitContext) *shimast.Node {
464
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, emit)
462
+ f := nativecontext.NodeFactoryOf(emit)
465
463
  return f.NewBinaryExpression(nil, left, nil, f.NewToken(operator), right)
466
464
  }
467
465
 
@@ -474,17 +472,17 @@ func validateProgrammer_or(left *shimast.Expression, right *shimast.Expression,
474
472
  }
475
473
 
476
474
  func validateProgrammer_property(name string, value *shimast.Expression, emit *shimprinter.EmitContext) *shimast.Node {
477
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, emit)
475
+ f := nativecontext.NodeFactoryOf(emit)
478
476
  return f.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier(name, emit), nil, nil, value)
479
477
  }
480
478
 
481
479
  func validateProgrammer_shorthand(name string, emit *shimprinter.EmitContext) *shimast.Node {
482
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, emit)
480
+ f := nativecontext.NodeFactoryOf(emit)
483
481
  return f.NewShorthandPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier(name, emit), nil, nil, nil, nil)
484
482
  }
485
483
 
486
484
  func validateProgrammer_exceptionable(explore nativeinternal.FeatureProgrammer_IExplore, emit *shimprinter.EmitContext) *shimast.Node {
487
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, emit)
485
+ f := nativecontext.NodeFactoryOf(emit)
488
486
  if explore.From == "top" || explore.Source == "top" {
489
487
  return f.NewKeywordExpression(shimast.KindTrueKeyword)
490
488
  }
@@ -492,7 +490,7 @@ func validateProgrammer_exceptionable(explore nativeinternal.FeatureProgrammer_I
492
490
  }
493
491
 
494
492
  func validateProgrammer_path(explore nativeinternal.FeatureProgrammer_IExplore, emit *shimprinter.EmitContext) *shimast.Node {
495
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, emit)
493
+ f := nativecontext.NodeFactoryOf(emit)
496
494
  if explore.Postfix != "" {
497
495
  return f.NewIdentifier("_path + " + explore.Postfix)
498
496
  }
@@ -500,7 +498,7 @@ func validateProgrammer_path(explore nativeinternal.FeatureProgrammer_IExplore,
500
498
  }
501
499
 
502
500
  func validateProgrammer_type_reference(context nativecontext.ITypiaContext, typ *nativechecker.Type, name *string) *shimast.Node {
503
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, context.Emit)
501
+ f := nativecontext.NodeFactoryOf(context.Emit)
504
502
  if name != nil {
505
503
  return f.NewTypeReferenceNode(f.NewIdentifier(*name), nil)
506
504
  }
@@ -511,7 +509,7 @@ func validateProgrammer_import_type(context nativecontext.ITypiaContext, props n
511
509
  if importer := context.Importer; importer != nil {
512
510
  return importer.Type(props)
513
511
  }
514
- f := nativecontext.EmitFactoryOf(validateProgrammer_factory, context.Emit)
512
+ f := nativecontext.NodeFactoryOf(context.Emit)
515
513
  if str, ok := props.Name.(string); ok {
516
514
  return f.NewTypeReferenceNode(f.NewIdentifier(str), nil)
517
515
  }
@@ -522,7 +520,7 @@ func validateProgrammer_internal(context nativecontext.ITypiaContext, name strin
522
520
  if importer := context.Importer; importer != nil {
523
521
  return importer.Internal(name)
524
522
  }
525
- return nativecontext.EmitFactoryOf(validateProgrammer_factory, context.Emit).NewIdentifier(name)
523
+ return nativecontext.NodeFactoryOf(context.Emit).NewIdentifier(name)
526
524
  }
527
525
 
528
526
  func validateProgrammer_bool_ptr(value bool) *bool {
@@ -65,10 +65,8 @@ type compareEqualProgrammerGenerator struct {
65
65
  MatcherIndex map[int]bool
66
66
  }
67
67
 
68
- var compareEqualProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
69
-
70
68
  func (compareEqualProgrammerNamespace) Write(props CompareEqualProgrammer_IProps) *shimast.Node {
71
- f := nativecontext.EmitFactoryOf(compareEqualProgrammer_factory, props.Context.Emit)
69
+ f := nativecontext.NodeFactoryOf(props.Context.Emit)
72
70
  method := nativehelpers.ModuloMethodText(props.Modulo)
73
71
  collection := schemametadata.NewMetadataCollection()
74
72
  result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{