typia 13.0.1-dev.20260703.1 → 13.0.2
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.
- package/LICENSE +21 -21
- package/README.md +169 -171
- package/lib/TypeGuardError.mjs +42 -3
- package/lib/TypeGuardError.mjs.map +1 -1
- package/lib/_virtual/_rolldown/runtime.mjs +17 -0
- package/lib/compare.mjs +39 -3
- package/lib/compare.mjs.map +1 -1
- package/lib/executable/TypiaGenerateWizard.js +7 -2
- package/lib/executable/TypiaGenerateWizard.js.map +1 -1
- package/lib/executable/TypiaGenerateWizard.mjs +474 -3
- package/lib/executable/TypiaGenerateWizard.mjs.map +1 -1
- package/lib/executable/generate/ttsc.js +11 -8
- package/lib/executable/generate/ttsc.js.map +1 -1
- package/lib/executable/generate/ttsc.mjs +37 -3
- package/lib/executable/generate/ttsc.mjs.map +1 -1
- package/lib/executable/typia.js +10 -4
- package/lib/executable/typia.js.map +1 -1
- package/lib/executable/typia.mjs +59 -3
- package/lib/executable/typia.mjs.map +1 -1
- package/lib/functional.mjs +99 -3
- package/lib/functional.mjs.map +1 -1
- package/lib/http.mjs +139 -3
- package/lib/http.mjs.map +1 -1
- package/lib/index.mjs +18 -2
- package/lib/index.mjs.map +1 -1
- package/lib/internal/_IProtobufWriter.mjs +0 -3
- package/lib/internal/_ProtobufReader.js +7 -6
- package/lib/internal/_ProtobufReader.js.map +1 -1
- package/lib/internal/_ProtobufReader.mjs +140 -3
- package/lib/internal/_ProtobufReader.mjs.map +1 -1
- package/lib/internal/_ProtobufSizer.mjs +84 -3
- package/lib/internal/_ProtobufSizer.mjs.map +1 -1
- package/lib/internal/_ProtobufWriter.mjs +94 -3
- package/lib/internal/_ProtobufWriter.mjs.map +1 -1
- package/lib/internal/_accessExpressionAsString.mjs +46 -3
- package/lib/internal/_accessExpressionAsString.mjs.map +1 -1
- package/lib/internal/_assertGuard.mjs +11 -3
- package/lib/internal/_assertGuard.mjs.map +1 -1
- package/lib/internal/_coerceLlmArguments.mjs +7 -3
- package/lib/internal/_coerceLlmArguments.mjs.map +1 -1
- package/lib/internal/_createStandardSchema.mjs +64 -3
- package/lib/internal/_createStandardSchema.mjs.map +1 -1
- package/lib/internal/_functionalTypeGuardErrorFactory.mjs +7 -3
- package/lib/internal/_functionalTypeGuardErrorFactory.mjs.map +1 -1
- package/lib/internal/_httpFormDataReadArray.mjs +6 -3
- package/lib/internal/_httpFormDataReadArray.mjs.map +1 -1
- package/lib/internal/_httpFormDataReadBigint.mjs +13 -3
- package/lib/internal/_httpFormDataReadBigint.mjs.map +1 -1
- package/lib/internal/_httpFormDataReadBlob.mjs +6 -3
- package/lib/internal/_httpFormDataReadBlob.mjs.map +1 -1
- package/lib/internal/_httpFormDataReadBoolean.mjs +6 -3
- package/lib/internal/_httpFormDataReadBoolean.mjs.map +1 -1
- package/lib/internal/_httpFormDataReadFile.mjs +6 -3
- package/lib/internal/_httpFormDataReadFile.mjs.map +1 -1
- package/lib/internal/_httpFormDataReadNumber.mjs +10 -3
- package/lib/internal/_httpFormDataReadNumber.mjs.map +1 -1
- package/lib/internal/_httpFormDataReadString.mjs +6 -3
- package/lib/internal/_httpFormDataReadString.mjs.map +1 -1
- package/lib/internal/_httpHeaderReadBigint.mjs +13 -3
- package/lib/internal/_httpHeaderReadBigint.mjs.map +1 -1
- package/lib/internal/_httpHeaderReadBoolean.mjs +6 -3
- package/lib/internal/_httpHeaderReadBoolean.mjs.map +1 -1
- package/lib/internal/_httpHeaderReadNumber.mjs +10 -3
- package/lib/internal/_httpHeaderReadNumber.mjs.map +1 -1
- package/lib/internal/_httpParameterReadBigint.mjs +13 -3
- package/lib/internal/_httpParameterReadBigint.mjs.map +1 -1
- package/lib/internal/_httpParameterReadBoolean.mjs +6 -3
- package/lib/internal/_httpParameterReadBoolean.mjs.map +1 -1
- package/lib/internal/_httpParameterReadNumber.mjs +10 -3
- package/lib/internal/_httpParameterReadNumber.mjs.map +1 -1
- package/lib/internal/_httpParameterReadString.mjs +6 -3
- package/lib/internal/_httpParameterReadString.mjs.map +1 -1
- package/lib/internal/_httpQueryParseURLSearchParams.mjs +13 -3
- package/lib/internal/_httpQueryParseURLSearchParams.mjs.map +1 -1
- package/lib/internal/_httpQueryReadArray.mjs +6 -3
- package/lib/internal/_httpQueryReadArray.mjs.map +1 -1
- package/lib/internal/_httpQueryReadBigint.mjs +13 -3
- package/lib/internal/_httpQueryReadBigint.mjs.map +1 -1
- package/lib/internal/_httpQueryReadBoolean.mjs +6 -3
- package/lib/internal/_httpQueryReadBoolean.mjs.map +1 -1
- package/lib/internal/_httpQueryReadNumber.mjs +10 -3
- package/lib/internal/_httpQueryReadNumber.mjs.map +1 -1
- package/lib/internal/_httpQueryReadString.mjs +6 -3
- package/lib/internal/_httpQueryReadString.mjs.map +1 -1
- package/lib/internal/_isBetween.mjs +6 -3
- package/lib/internal/_isBetween.mjs.map +1 -1
- package/lib/internal/_isBigintString.mjs +13 -3
- package/lib/internal/_isBigintString.mjs.map +1 -1
- package/lib/internal/_isFormatByte.mjs +10 -3
- package/lib/internal/_isFormatByte.mjs.map +1 -1
- package/lib/internal/_isFormatDate.mjs +7 -3
- package/lib/internal/_isFormatDate.mjs.map +1 -1
- package/lib/internal/_isFormatDateTime.mjs +7 -3
- package/lib/internal/_isFormatDateTime.mjs.map +1 -1
- package/lib/internal/_isFormatDuration.mjs +7 -3
- package/lib/internal/_isFormatDuration.mjs.map +1 -1
- package/lib/internal/_isFormatEmail.mjs +7 -3
- package/lib/internal/_isFormatEmail.mjs.map +1 -1
- package/lib/internal/_isFormatHostname.mjs +7 -3
- package/lib/internal/_isFormatHostname.mjs.map +1 -1
- package/lib/internal/_isFormatIdnEmail.mjs +7 -3
- package/lib/internal/_isFormatIdnEmail.mjs.map +1 -1
- package/lib/internal/_isFormatIdnHostname.mjs +7 -3
- package/lib/internal/_isFormatIdnHostname.mjs.map +1 -1
- package/lib/internal/_isFormatIpv4.mjs +7 -3
- package/lib/internal/_isFormatIpv4.mjs.map +1 -1
- package/lib/internal/_isFormatIpv6.mjs +7 -3
- package/lib/internal/_isFormatIpv6.mjs.map +1 -1
- package/lib/internal/_isFormatIri.mjs +7 -3
- package/lib/internal/_isFormatIri.mjs.map +1 -1
- package/lib/internal/_isFormatIriReference.mjs +7 -3
- package/lib/internal/_isFormatIriReference.mjs.map +1 -1
- package/lib/internal/_isFormatJsonPointer.mjs +7 -3
- package/lib/internal/_isFormatJsonPointer.mjs.map +1 -1
- package/lib/internal/_isFormatPassword.mjs +6 -3
- package/lib/internal/_isFormatPassword.mjs.map +1 -1
- package/lib/internal/_isFormatRegex.mjs +13 -3
- package/lib/internal/_isFormatRegex.mjs.map +1 -1
- package/lib/internal/_isFormatRelativeJsonPointer.mjs +7 -3
- package/lib/internal/_isFormatRelativeJsonPointer.mjs.map +1 -1
- package/lib/internal/_isFormatTime.mjs +7 -3
- package/lib/internal/_isFormatTime.mjs.map +1 -1
- package/lib/internal/_isFormatUri.mjs +8 -3
- package/lib/internal/_isFormatUri.mjs.map +1 -1
- package/lib/internal/_isFormatUriReference.mjs +7 -3
- package/lib/internal/_isFormatUriReference.mjs.map +1 -1
- package/lib/internal/_isFormatUriTemplate.mjs +7 -3
- package/lib/internal/_isFormatUriTemplate.mjs.map +1 -1
- package/lib/internal/_isFormatUrl.mjs +7 -3
- package/lib/internal/_isFormatUrl.mjs.map +1 -1
- package/lib/internal/_isFormatUuid.mjs +7 -3
- package/lib/internal/_isFormatUuid.mjs.map +1 -1
- package/lib/internal/_isTypeFloat.mjs +8 -3
- package/lib/internal/_isTypeFloat.mjs.map +1 -1
- package/lib/internal/_isTypeInt16.mjs +8 -3
- package/lib/internal/_isTypeInt16.mjs.map +1 -1
- package/lib/internal/_isTypeInt32.mjs +8 -3
- package/lib/internal/_isTypeInt32.mjs.map +1 -1
- package/lib/internal/_isTypeInt64.mjs +8 -3
- package/lib/internal/_isTypeInt64.mjs.map +1 -1
- package/lib/internal/_isTypeInt8.mjs +8 -3
- package/lib/internal/_isTypeInt8.mjs.map +1 -1
- package/lib/internal/_isTypeUint16.mjs +8 -3
- package/lib/internal/_isTypeUint16.mjs.map +1 -1
- package/lib/internal/_isTypeUint32.mjs +8 -3
- package/lib/internal/_isTypeUint32.mjs.map +1 -1
- package/lib/internal/_isTypeUint64.mjs +8 -3
- package/lib/internal/_isTypeUint64.mjs.map +1 -1
- package/lib/internal/_isTypeUint8.mjs +8 -3
- package/lib/internal/_isTypeUint8.mjs.map +1 -1
- package/lib/internal/_isUniqueItems.mjs +67 -3
- package/lib/internal/_isUniqueItems.mjs.map +1 -1
- package/lib/internal/_jsonStringifyNumber.mjs +6 -3
- package/lib/internal/_jsonStringifyNumber.mjs.map +1 -1
- package/lib/internal/_jsonStringifyRest.mjs +8 -3
- package/lib/internal/_jsonStringifyRest.mjs.map +1 -1
- package/lib/internal/_jsonStringifyString.mjs +34 -3
- package/lib/internal/_jsonStringifyString.mjs.map +1 -1
- package/lib/internal/_jsonStringifyTail.mjs +6 -3
- package/lib/internal/_jsonStringifyTail.mjs.map +1 -1
- package/lib/internal/_llmApplicationFinalize.mjs +19 -3
- package/lib/internal/_llmApplicationFinalize.mjs.map +1 -1
- package/lib/internal/_notationAny.mjs +18 -3
- package/lib/internal/_notationAny.mjs.map +1 -1
- package/lib/internal/_notationCamel.mjs +11 -3
- package/lib/internal/_notationCamel.mjs.map +1 -1
- package/lib/internal/_notationPascal.mjs +11 -3
- package/lib/internal/_notationPascal.mjs.map +1 -1
- package/lib/internal/_notationSnake.mjs +32 -3
- package/lib/internal/_notationSnake.mjs.map +1 -1
- package/lib/internal/_parseLlmArguments.mjs +7 -3
- package/lib/internal/_parseLlmArguments.mjs.map +1 -1
- package/lib/internal/_plainCloneAny.mjs +35 -3
- package/lib/internal/_plainCloneAny.mjs.map +1 -1
- package/lib/internal/_randomArray.mjs +22 -3
- package/lib/internal/_randomArray.mjs.map +1 -1
- package/lib/internal/_randomBigint.mjs +7 -3
- package/lib/internal/_randomBigint.mjs.map +1 -1
- package/lib/internal/_randomBoolean.mjs +6 -3
- package/lib/internal/_randomBoolean.mjs.map +1 -1
- package/lib/internal/_randomFormatByte.mjs +7 -3
- package/lib/internal/_randomFormatByte.mjs.map +1 -1
- package/lib/internal/_randomFormatDate.mjs +11 -3
- package/lib/internal/_randomFormatDate.mjs.map +1 -1
- package/lib/internal/_randomFormatDatetime.mjs +11 -3
- package/lib/internal/_randomFormatDatetime.mjs.map +1 -1
- package/lib/internal/_randomFormatDuration.mjs +26 -3
- package/lib/internal/_randomFormatDuration.mjs.map +1 -1
- package/lib/internal/_randomFormatEmail.mjs +12 -3
- package/lib/internal/_randomFormatEmail.mjs.map +1 -1
- package/lib/internal/_randomFormatHostname.mjs +12 -3
- package/lib/internal/_randomFormatHostname.mjs.map +1 -1
- package/lib/internal/_randomFormatIdnEmail.mjs +7 -3
- package/lib/internal/_randomFormatIdnEmail.mjs.map +1 -1
- package/lib/internal/_randomFormatIdnHostname.mjs +7 -3
- package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -1
- package/lib/internal/_randomFormatIpv4.mjs +12 -3
- package/lib/internal/_randomFormatIpv4.mjs.map +1 -1
- package/lib/internal/_randomFormatIpv6.mjs +12 -3
- package/lib/internal/_randomFormatIpv6.mjs.map +1 -1
- package/lib/internal/_randomFormatIri.mjs +7 -3
- package/lib/internal/_randomFormatIri.mjs.map +1 -1
- package/lib/internal/_randomFormatIriReference.mjs +7 -3
- package/lib/internal/_randomFormatIriReference.mjs.map +1 -1
- package/lib/internal/_randomFormatJsonPointer.mjs +12 -3
- package/lib/internal/_randomFormatJsonPointer.mjs.map +1 -1
- package/lib/internal/_randomFormatPassword.mjs +11 -3
- package/lib/internal/_randomFormatPassword.mjs.map +1 -1
- package/lib/internal/_randomFormatRegex.mjs +7 -3
- package/lib/internal/_randomFormatRegex.mjs.map +1 -1
- package/lib/internal/_randomFormatRelativeJsonPointer.mjs +11 -3
- package/lib/internal/_randomFormatRelativeJsonPointer.mjs.map +1 -1
- package/lib/internal/_randomFormatTime.mjs +12 -3
- package/lib/internal/_randomFormatTime.mjs.map +1 -1
- package/lib/internal/_randomFormatUri.mjs +7 -3
- package/lib/internal/_randomFormatUri.mjs.map +1 -1
- package/lib/internal/_randomFormatUriReference.mjs +7 -3
- package/lib/internal/_randomFormatUriReference.mjs.map +1 -1
- package/lib/internal/_randomFormatUriTemplate.mjs +7 -3
- package/lib/internal/_randomFormatUriTemplate.mjs.map +1 -1
- package/lib/internal/_randomFormatUrl.mjs +12 -3
- package/lib/internal/_randomFormatUrl.mjs.map +1 -1
- package/lib/internal/_randomFormatUuid.mjs +9 -3
- package/lib/internal/_randomFormatUuid.mjs.map +1 -1
- package/lib/internal/_randomInteger.mjs +31 -3
- package/lib/internal/_randomInteger.mjs.map +1 -1
- package/lib/internal/_randomNumber.mjs +45 -3
- package/lib/internal/_randomNumber.mjs.map +1 -1
- package/lib/internal/_randomPattern.mjs +14 -3
- package/lib/internal/_randomPattern.mjs.map +1 -1
- package/lib/internal/_randomPick.mjs +12 -3
- package/lib/internal/_randomPick.mjs.map +1 -1
- package/lib/internal/_randomString.mjs +23 -3
- package/lib/internal/_randomString.mjs.map +1 -1
- package/lib/internal/_throwTypeGuardError.mjs +9 -3
- package/lib/internal/_throwTypeGuardError.mjs.map +1 -1
- package/lib/internal/_validateReport.mjs +23 -3
- package/lib/internal/_validateReport.mjs.map +1 -1
- package/lib/internal/private/__notationCapitalize.mjs +6 -3
- package/lib/internal/private/__notationCapitalize.mjs.map +1 -1
- package/lib/internal/private/__notationUnsnake.mjs +15 -3
- package/lib/internal/private/__notationUnsnake.mjs.map +1 -1
- package/lib/json.mjs +94 -3
- package/lib/json.mjs.map +1 -1
- package/lib/llm.mjs +54 -3
- package/lib/llm.mjs.map +1 -1
- package/lib/module.mjs +131 -2
- package/lib/module.mjs.map +1 -1
- package/lib/notations.mjs +169 -3
- package/lib/notations.mjs.map +1 -1
- package/lib/plain.mjs +119 -3
- package/lib/plain.mjs.map +1 -1
- package/lib/protobuf.mjs +94 -3
- package/lib/protobuf.mjs.map +1 -1
- package/lib/re-exports.d.ts +2 -1
- package/lib/re-exports.js +5 -1
- package/lib/re-exports.js.map +1 -1
- package/lib/re-exports.mjs +2 -2
- package/lib/reflect.mjs +29 -3
- package/lib/reflect.mjs.map +1 -1
- package/lib/transform.mjs +15 -2
- package/lib/transform.mjs.map +1 -1
- package/lib/transformers/NoTransformConfigurationError.mjs +19 -3
- package/lib/transformers/NoTransformConfigurationError.mjs.map +1 -1
- package/native/adapter/adapter.go +29 -29
- package/native/adapter/adapter_options_branch_matrix_test.go +54 -54
- package/native/adapter/visit.go +173 -173
- package/native/adapter/visit_property_chain_edges_test.go +129 -129
- package/native/cmd/ttsc-typia/any_array_type_tags_transform_test.go +204 -204
- package/native/cmd/ttsc-typia/atomic_intersection_schema_transform_test.go +148 -148
- package/native/cmd/ttsc-typia/boolean_literal_discriminant_schema_transform_test.go +374 -374
- package/native/cmd/ttsc-typia/build.go +188 -188
- package/native/cmd/ttsc-typia/build_reports_semantic_diagnostics_test.go +34 -34
- package/native/cmd/ttsc-typia/build_reports_syntactic_diagnostics_test.go +34 -34
- package/native/cmd/ttsc-typia/command_routes_and_diagnostics_coverage_test.go +314 -314
- package/native/cmd/ttsc-typia/compare_equal_cover_transform_test.go +271 -271
- package/native/cmd/ttsc-typia/compare_less_transform_test.go +180 -180
- package/native/cmd/ttsc-typia/compare_method_delegation_transform_test.go +173 -173
- package/native/cmd/ttsc-typia/demo_rejects_bad_flag_test.go +25 -25
- package/native/cmd/ttsc-typia/diagnostics.go +51 -51
- package/native/cmd/ttsc-typia/dynamic_key_path_helper_alias_transform_test.go +159 -159
- package/native/cmd/ttsc-typia/exclude_type_tag_transform_test.go +176 -176
- package/native/cmd/ttsc-typia/inline_type_display_name_transform_test.go +290 -290
- package/native/cmd/ttsc-typia/instance_union_create_is_transform_test.go +248 -248
- package/native/cmd/ttsc-typia/intersection_all_never_union_transform_test.go +168 -168
- package/native/cmd/ttsc-typia/intersection_brand_transform_test.go +267 -267
- package/native/cmd/ttsc-typia/intersection_nonsensible_backstop_transform_test.go +157 -132
- package/native/cmd/ttsc-typia/intersection_union_validation_transform_test.go +590 -590
- package/native/cmd/ttsc-typia/json_is_stringify_scoped_checker_transform_test.go +206 -0
- package/native/cmd/ttsc-typia/json_stringify_constant_atomic_union_transform_test.go +171 -171
- package/native/cmd/ttsc-typia/main.go +97 -97
- package/native/cmd/ttsc-typia/main_wasm.go +226 -226
- package/native/cmd/ttsc-typia/non_trailing_rest_tuple_transform_test.go +156 -156
- package/native/cmd/ttsc-typia/notation_kebab_case_transform_test.go +186 -186
- package/native/cmd/ttsc-typia/nullable_primitive_property_is_transform_test.go +236 -236
- package/native/cmd/ttsc-typia/object_custom_tag_validation_transform_test.go +332 -332
- package/native/cmd/ttsc-typia/object_union_explicit_pointer_schema_transform_test.go +269 -269
- package/native/cmd/ttsc-typia/plain_classify_class_ref_transform_test.go +261 -261
- package/native/cmd/ttsc-typia/plain_classify_container_seed_transform_test.go +144 -144
- package/native/cmd/ttsc-typia/plain_classify_cross_module_extra_transform_test.go +211 -211
- package/native/cmd/ttsc-typia/plain_classify_deep_nested_transform_test.go +184 -184
- package/native/cmd/ttsc-typia/plain_classify_field_copy_transform_test.go +204 -204
- package/native/cmd/ttsc-typia/plain_classify_from_new_transform_test.go +465 -465
- package/native/cmd/ttsc-typia/plain_classify_strategy_edges_transform_test.go +519 -519
- package/native/cmd/ttsc-typia/plain_classify_union_transform_test.go +149 -149
- package/native/cmd/ttsc-typia/plain_classify_validated_union_transform_test.go +212 -212
- package/native/cmd/ttsc-typia/plain_clone_bigint_wrapper_transform_test.go +153 -153
- package/native/cmd/ttsc-typia/plugin_options_missing_config_test.go +26 -26
- package/native/cmd/ttsc-typia/plugin_options_undefined_false_test.go +36 -36
- package/native/cmd/ttsc-typia/project_catalog_transform_coverage_test.go +73 -73
- package/native/cmd/ttsc-typia/protobuf_object_generic_union_encode_transform_test.go +248 -248
- package/native/cmd/ttsc-typia/protobuf_sequence_field_numbers_transform_test.go +107 -107
- package/native/cmd/ttsc-typia/random_recursive_min_items_diagnostic_test.go +234 -234
- package/native/cmd/ttsc-typia/random_unsatisfiable_recursive_diagnostic_test.go +146 -146
- package/native/cmd/ttsc-typia/recursive_visit_tracking_transform_test.go +473 -473
- package/native/cmd/ttsc-typia/run_default_build_route_test.go +31 -31
- package/native/cmd/ttsc-typia/schema_dts_role_transform_test.go +404 -404
- package/native/cmd/ttsc-typia/shallow_depth_argument_error_transform_test.go +88 -88
- package/native/cmd/ttsc-typia/shallow_depth_limit_transform_test.go +278 -278
- package/native/cmd/ttsc-typia/shallow_depth_runtime_test.go +173 -173
- package/native/cmd/ttsc-typia/shallow_factory_depth_runtime_test.go +171 -171
- package/native/cmd/ttsc-typia/shallow_nested_depth_transform_test.go +148 -148
- package/native/cmd/ttsc-typia/template_interpolation_type_tags_transform_test.go +322 -322
- package/native/cmd/ttsc-typia/template_literal_type_tags_transform_test.go +162 -162
- package/native/cmd/ttsc-typia/transform.go +270 -270
- package/native/cmd/ttsc-typia/transform_declaration_source_produces_no_js_test.go +59 -59
- package/native/cmd/ttsc-typia/transform_diagnostics_preserve_details_test.go +203 -203
- package/native/cmd/ttsc-typia/transform_fixtures_emit_coverage_test.go +528 -528
- package/native/cmd/ttsc-typia/transform_helpers_test.go +155 -155
- package/native/core/context/EmitFactory.go +39 -39
- package/native/core/context/IProgrammerProps.go +14 -14
- package/native/core/context/ITransformOptions.go +9 -9
- package/native/core/context/ITypiaContext.go +36 -36
- package/native/core/context/ImportProgrammer.go +388 -354
- package/native/core/context/TransformerError.go +117 -117
- package/native/core/context/import_programmer_module_identifier_test.go +29 -0
- package/native/core/context/import_programmer_statement_coverage_test.go +71 -71
- package/native/core/context/index.go +1 -1
- package/native/core/context/transformer_error_formatting_test.go +100 -100
- package/native/core/factories/CommentFactory.go +27 -27
- package/native/core/factories/ExpressionFactory.go +357 -357
- package/native/core/factories/FormatCheatSheet.go +30 -30
- package/native/core/factories/IdentifierFactory.go +172 -172
- package/native/core/factories/JsonMetadataFactory.go +154 -154
- package/native/core/factories/LiteralFactory.go +319 -282
- package/native/core/factories/MetadataCommentTagFactory.go +446 -446
- package/native/core/factories/MetadataFactory.go +543 -543
- package/native/core/factories/MetadataTypeTagFactory.go +560 -560
- package/native/core/factories/MetadataTypeTagSchemaFactory.go +117 -117
- package/native/core/factories/NumericRangeFactory.go +132 -132
- package/native/core/factories/ProtobufFactory.go +1090 -1090
- package/native/core/factories/StatementFactory.go +114 -114
- package/native/core/factories/TemplateFactory.go +82 -82
- package/native/core/factories/TypeFactory.go +176 -176
- package/native/core/factories/ValueFactory.go +43 -43
- package/native/core/factories/factory_utility_coverage_test.go +1006 -1006
- package/native/core/factories/index.go +1 -1
- package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +70 -70
- package/native/core/factories/internal/metadata/MetadataHelper.go +425 -425
- package/native/core/factories/internal/metadata/comment_tags_coverage_test.go +184 -184
- package/native/core/factories/internal/metadata/emend_metadata_atomics.go +80 -80
- package/native/core/factories/internal/metadata/emplace_metadata_alias.go +41 -41
- package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +44 -44
- package/native/core/factories/internal/metadata/emplace_metadata_object.go +599 -599
- package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +69 -69
- package/native/core/factories/internal/metadata/explore_metadata.go +75 -75
- package/native/core/factories/internal/metadata/iterate_metadata.go +55 -55
- package/native/core/factories/internal/metadata/iterate_metadata_alias.go +36 -36
- package/native/core/factories/internal/metadata/iterate_metadata_array.go +77 -77
- package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +63 -63
- package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +30 -30
- package/native/core/factories/internal/metadata/iterate_metadata_collection.go +366 -366
- package/native/core/factories/internal/metadata/iterate_metadata_collection_branch_matrix_test.go +201 -201
- package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +34 -34
- package/native/core/factories/internal/metadata/iterate_metadata_constant.go +139 -139
- package/native/core/factories/internal/metadata/iterate_metadata_escape.go +56 -56
- package/native/core/factories/internal/metadata/iterate_metadata_function.go +93 -93
- package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +1054 -1054
- package/native/core/factories/internal/metadata/iterate_metadata_intersection_brand_coverage_test.go +114 -114
- package/native/core/factories/internal/metadata/iterate_metadata_intersection_coverage_test.go +106 -106
- package/native/core/factories/internal/metadata/iterate_metadata_intersection_shareable_name_test.go +22 -22
- package/native/core/factories/internal/metadata/iterate_metadata_map.go +55 -55
- package/native/core/factories/internal/metadata/iterate_metadata_native.go +122 -122
- package/native/core/factories/internal/metadata/iterate_metadata_object.go +35 -35
- package/native/core/factories/internal/metadata/iterate_metadata_set.go +41 -41
- package/native/core/factories/internal/metadata/iterate_metadata_sort.go +202 -202
- package/native/core/factories/internal/metadata/iterate_metadata_template.go +41 -41
- package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +24 -24
- package/native/core/factories/internal/metadata/iterate_metadata_union.go +40 -40
- package/native/core/factories/internal/metadata/js_doc_parameter_name_reads_qualified_name_test.go +55 -55
- package/native/core/factories/internal/metadata/optional_coalesce_coverage_test.go +38 -38
- package/native/core/factories/internal/metadata/sort_constants_coverage_test.go +63 -63
- package/native/core/factories/json_metadata_factory_dedupes_bigint_diagnostics_test.go +36 -36
- package/native/core/factories/json_metadata_factory_rejects_bigint_native_test.go +29 -29
- package/native/core/factories/literal_factory_ordered_object_marshals_json_test.go +40 -0
- package/native/core/factories/metadata_comment_tag_factory_coverage_test.go +239 -239
- package/native/core/factories/protobuf_factory_rejects_invalid_field_names_test.go +75 -75
- package/native/core/index.go +1 -1
- package/native/core/programmers/AssertProgrammer.go +511 -511
- package/native/core/programmers/IsProgrammer.go +418 -419
- package/native/core/programmers/RandomProgrammer.go +1448 -1448
- package/native/core/programmers/ValidateProgrammer.go +488 -488
- package/native/core/programmers/compare/CompareEqualProgrammer.go +668 -668
- package/native/core/programmers/compare/CompareLessProgrammer.go +489 -489
- package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +172 -172
- package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +135 -135
- package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +131 -131
- package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +106 -106
- package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +222 -222
- package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +129 -129
- package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +172 -172
- package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +252 -252
- package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +147 -147
- package/native/core/programmers/functional/functional_assert_helper_coverage_test.go +26 -26
- package/native/core/programmers/functional/index.go +1 -1
- package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +53 -53
- package/native/core/programmers/helpers/AtomicPredicator.go +75 -75
- package/native/core/programmers/helpers/ClassifyJoiner.go +174 -174
- package/native/core/programmers/helpers/CloneJoiner.go +307 -307
- package/native/core/programmers/helpers/FunctionProgrammer.go +218 -218
- package/native/core/programmers/helpers/HttpMetadataUtil.go +30 -30
- package/native/core/programmers/helpers/ICheckEntry.go +14 -14
- package/native/core/programmers/helpers/IExpressionEntry.go +15 -15
- package/native/core/programmers/helpers/ModuloText.go +26 -26
- package/native/core/programmers/helpers/NotationJoiner.go +204 -204
- package/native/core/programmers/helpers/OptionPredicator.go +39 -39
- package/native/core/programmers/helpers/ProtobufUtil.go +273 -273
- package/native/core/programmers/helpers/ProtobufWire.go +14 -14
- package/native/core/programmers/helpers/PruneJoiner.go +290 -290
- package/native/core/programmers/helpers/RandomJoiner.go +805 -805
- package/native/core/programmers/helpers/StringifyJoinder.go +409 -409
- package/native/core/programmers/helpers/StringifyPredicator.go +25 -25
- package/native/core/programmers/helpers/UnionExplorer.go +966 -966
- package/native/core/programmers/helpers/UnionPredicator.go +92 -92
- package/native/core/programmers/helpers/clone_joiner_optional_condition_test.go +70 -70
- package/native/core/programmers/helpers/disable_function_programmer_declare.go +10 -10
- package/native/core/programmers/helpers/function_programmer_unique_names_test.go +54 -54
- package/native/core/programmers/helpers/joiner_branch_coverage_test.go +147 -147
- package/native/core/programmers/helpers/random_joiner_recursive_array_guard_test.go +166 -166
- package/native/core/programmers/helpers/union_explorer_coverage_test.go +135 -135
- package/native/core/programmers/helpers/union_predicator_checks_neighbor_flag_test.go +34 -34
- package/native/core/programmers/helpers/union_predicator_skips_atomic_like_native_fields_test.go +65 -65
- package/native/core/programmers/helpers/union_predicator_skips_collection_bucket_fields_test.go +72 -72
- package/native/core/programmers/helpers/union_predicator_skips_shared_native_names_test.go +239 -239
- package/native/core/programmers/helpers/union_predicator_skips_shared_object_fields_test.go +43 -43
- package/native/core/programmers/helpers/union_predicator_skips_shared_template_fields_test.go +57 -57
- package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +116 -116
- package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +59 -59
- package/native/core/programmers/http/HttpAssertQueryProgrammer.go +71 -71
- package/native/core/programmers/http/HttpFormDataProgrammer.go +416 -416
- package/native/core/programmers/http/HttpHeadersProgrammer.go +428 -428
- package/native/core/programmers/http/HttpIsFormDataProgrammer.go +142 -142
- package/native/core/programmers/http/HttpIsHeadersProgrammer.go +53 -53
- package/native/core/programmers/http/HttpIsQueryProgrammer.go +65 -65
- package/native/core/programmers/http/HttpParameterProgrammer.go +190 -190
- package/native/core/programmers/http/HttpQueryProgrammer.go +484 -484
- package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +110 -110
- package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +56 -56
- package/native/core/programmers/http/HttpValidateQueryProgrammer.go +68 -68
- package/native/core/programmers/http/http_programmer_helper_coverage_test.go +120 -120
- package/native/core/programmers/http/index.go +1 -1
- package/native/core/programmers/index.go +1 -1
- package/native/core/programmers/internal/CheckerProgrammer.go +2064 -2064
- package/native/core/programmers/internal/FeatureProgrammer.go +1361 -1361
- package/native/core/programmers/internal/feature_programmer_visit_guard_test.go +70 -70
- package/native/core/programmers/internal/internal_utility_coverage_test.go +384 -384
- package/native/core/programmers/iterate/check_array_length.go +64 -64
- package/native/core/programmers/iterate/check_bigint.go +78 -78
- package/native/core/programmers/iterate/check_dynamic_key.go +271 -271
- package/native/core/programmers/iterate/check_dynamic_key_tag_rows_test.go +46 -46
- package/native/core/programmers/iterate/check_dynamic_properties.go +292 -292
- package/native/core/programmers/iterate/check_everything.go +33 -33
- package/native/core/programmers/iterate/check_exclude.go +88 -88
- package/native/core/programmers/iterate/check_native.go +38 -38
- package/native/core/programmers/iterate/check_number.go +180 -180
- package/native/core/programmers/iterate/check_object.go +113 -113
- package/native/core/programmers/iterate/check_object_strict_optional_undefined_test.go +74 -74
- package/native/core/programmers/iterate/check_object_type_tags.go +64 -64
- package/native/core/programmers/iterate/check_string.go +78 -78
- package/native/core/programmers/iterate/check_template.go +346 -346
- package/native/core/programmers/iterate/check_union_array_like.go +422 -422
- package/native/core/programmers/iterate/decode_union_object.go +157 -157
- package/native/core/programmers/iterate/feature_object_entries.go +188 -188
- package/native/core/programmers/iterate/iterate_check_coverage_test.go +178 -178
- package/native/core/programmers/iterate/iterate_utility_coverage_test.go +302 -302
- package/native/core/programmers/iterate/json_schema_alias.go +62 -62
- package/native/core/programmers/iterate/json_schema_array.go +66 -66
- package/native/core/programmers/iterate/json_schema_bigint.go +17 -17
- package/native/core/programmers/iterate/json_schema_boolean.go +17 -17
- package/native/core/programmers/iterate/json_schema_constant.go +53 -53
- package/native/core/programmers/iterate/json_schema_description.go +21 -21
- package/native/core/programmers/iterate/json_schema_discriminator.go +57 -57
- package/native/core/programmers/iterate/json_schema_escaped.go +68 -68
- package/native/core/programmers/iterate/json_schema_jsDocTags.go +48 -48
- package/native/core/programmers/iterate/json_schema_native.go +106 -106
- package/native/core/programmers/iterate/json_schema_number.go +17 -17
- package/native/core/programmers/iterate/json_schema_object.go +187 -184
- package/native/core/programmers/iterate/json_schema_plugin.go +47 -47
- package/native/core/programmers/iterate/json_schema_station.go +251 -251
- package/native/core/programmers/iterate/json_schema_string.go +17 -17
- package/native/core/programmers/iterate/json_schema_template.go +63 -63
- package/native/core/programmers/iterate/json_schema_title.go +25 -25
- package/native/core/programmers/iterate/json_schema_tuple.go +41 -41
- package/native/core/programmers/iterate/metadata_to_pattern.go +64 -64
- package/native/core/programmers/iterate/postfix_of_tuple.go +12 -12
- package/native/core/programmers/iterate/prune_object_properties.go +105 -105
- package/native/core/programmers/iterate/stringify_dynamic_properties.go +219 -219
- package/native/core/programmers/iterate/stringify_native.go +14 -14
- package/native/core/programmers/iterate/stringify_regular_properties.go +112 -112
- package/native/core/programmers/iterate/template_interpolation_tags_test.go +495 -495
- package/native/core/programmers/iterate/template_runtime_pattern.go +262 -262
- package/native/core/programmers/iterate/template_to_pattern.go +29 -29
- package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +23 -23
- package/native/core/programmers/json/JsonApplicationProgrammer.go +380 -380
- package/native/core/programmers/json/JsonAssertParseProgrammer.go +115 -115
- package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +108 -108
- package/native/core/programmers/json/JsonIsParseProgrammer.go +162 -162
- package/native/core/programmers/json/JsonIsStringifyProgrammer.go +113 -113
- package/native/core/programmers/json/JsonSchemaProgrammer.go +94 -94
- package/native/core/programmers/json/JsonSchemasProgrammer.go +142 -142
- package/native/core/programmers/json/JsonStringifyProgrammer.go +1528 -1508
- package/native/core/programmers/json/JsonValidateParseProgrammer.go +105 -105
- package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +126 -126
- package/native/core/programmers/json/index.go +1 -1
- package/native/core/programmers/json/json_schema_programmer_coverage_test.go +198 -198
- package/native/core/programmers/json/json_schemas_programmer_dedupes_bigint_diagnostics_test.go +37 -37
- package/native/core/programmers/json/json_schemas_programmer_rejects_bigint_native_test.go +29 -29
- package/native/core/programmers/json/json_stringify_programmer_coverage_test.go +422 -422
- package/native/core/programmers/llm/LlmApplicationProgrammer.go +526 -526
- package/native/core/programmers/llm/LlmCoerceProgrammer.go +109 -109
- package/native/core/programmers/llm/LlmControllerProgrammer.go +51 -51
- package/native/core/programmers/llm/LlmMetadataFactory.go +89 -89
- package/native/core/programmers/llm/LlmParametersProgrammer.go +141 -141
- package/native/core/programmers/llm/LlmParseProgrammer.go +121 -121
- package/native/core/programmers/llm/LlmSchemaProgrammer.go +902 -846
- package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +147 -147
- package/native/core/programmers/llm/index.go +1 -1
- package/native/core/programmers/llm/llm_application_programmer_coverage_test.go +166 -166
- package/native/core/programmers/llm/llm_schema_programmer_coverage_test.go +282 -282
- package/native/core/programmers/llm/llm_schema_programmer_dedupes_bigint_diagnostics_test.go +38 -38
- package/native/core/programmers/llm/llm_schema_programmer_rejects_bigint_native_test.go +30 -30
- package/native/core/programmers/llm/llm_schema_programmer_rejects_exclude_tag_in_strict_test.go +52 -52
- package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +107 -107
- package/native/core/programmers/notations/NotationGeneralProgrammer.go +1441 -1441
- package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +112 -112
- package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +131 -131
- package/native/core/programmers/notations/index.go +1 -1
- package/native/core/programmers/notations/notation_general_helpers_test.go +395 -395
- package/native/core/programmers/notations/notation_general_programmer_snake_prefix_test.go +44 -44
- package/native/core/programmers/plain/PlainAssertClassifyProgrammer.go +111 -111
- package/native/core/programmers/plain/PlainAssertCloneProgrammer.go +102 -102
- package/native/core/programmers/plain/PlainAssertPruneProgrammer.go +117 -117
- package/native/core/programmers/plain/PlainClassifyProgrammer.go +2205 -2205
- package/native/core/programmers/plain/PlainCloneProgrammer.go +1254 -1254
- package/native/core/programmers/plain/PlainIsCloneProgrammer.go +117 -117
- package/native/core/programmers/plain/PlainIsPruneProgrammer.go +106 -106
- package/native/core/programmers/plain/PlainPruneProgrammer.go +837 -837
- package/native/core/programmers/plain/PlainValidateClassifyProgrammer.go +127 -127
- package/native/core/programmers/plain/PlainValidateCloneProgrammer.go +123 -123
- package/native/core/programmers/plain/PlainValidatePruneProgrammer.go +114 -114
- package/native/core/programmers/plain/index.go +1 -1
- package/native/core/programmers/plain/plain_programmer_helper_coverage_test.go +284 -284
- package/native/core/programmers/plain/plain_prune_programmer_branch_matrix_test.go +145 -145
- package/native/core/programmers/programmer_direct_helper_coverage_test.go +70 -70
- package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +125 -125
- package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +143 -143
- package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +861 -861
- package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1269 -1269
- package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +122 -122
- package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +115 -115
- package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +269 -269
- package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +111 -111
- package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +145 -145
- package/native/core/programmers/protobuf/index.go +1 -1
- package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +454 -454
- package/native/core/programmers/random_programmer_helper_coverage_test.go +367 -367
- package/native/core/programmers/random_programmer_min_items_tag_test.go +44 -44
- package/native/core/programmers/reflect/ReflectLiteralsProgrammer.go +125 -125
- package/native/core/schemas/index.go +1 -1
- package/native/core/schemas/metadata/IMetadataDictionary.go +8 -8
- package/native/core/schemas/metadata/IMetadataTypeTagSequence.go +53 -53
- package/native/core/schemas/metadata/MetadataAlias.go +36 -36
- package/native/core/schemas/metadata/MetadataAliasType.go +64 -64
- package/native/core/schemas/metadata/MetadataApplication.go +41 -41
- package/native/core/schemas/metadata/MetadataArray.go +36 -36
- package/native/core/schemas/metadata/MetadataArrayType.go +59 -59
- package/native/core/schemas/metadata/MetadataAtomic.go +69 -69
- package/native/core/schemas/metadata/MetadataCollection.go +698 -698
- package/native/core/schemas/metadata/MetadataComponents.go +122 -122
- package/native/core/schemas/metadata/MetadataConstant.go +47 -47
- package/native/core/schemas/metadata/MetadataConstantValue.go +97 -97
- package/native/core/schemas/metadata/MetadataEscaped.go +40 -40
- package/native/core/schemas/metadata/MetadataFunction.go +46 -46
- package/native/core/schemas/metadata/MetadataMap.go +45 -45
- package/native/core/schemas/metadata/MetadataNative.go +72 -72
- package/native/core/schemas/metadata/MetadataObject.go +36 -36
- package/native/core/schemas/metadata/MetadataObjectType.go +223 -223
- package/native/core/schemas/metadata/MetadataParameter.go +46 -46
- package/native/core/schemas/metadata/MetadataProperty.go +50 -50
- package/native/core/schemas/metadata/MetadataSchema.go +1485 -1485
- package/native/core/schemas/metadata/MetadataSet.go +41 -41
- package/native/core/schemas/metadata/MetadataTemplate.go +70 -70
- package/native/core/schemas/metadata/MetadataTuple.go +20 -20
- package/native/core/schemas/metadata/MetadataTupleType.go +69 -69
- package/native/core/schemas/metadata/index.go +1 -1
- package/native/core/schemas/metadata/metadata_object_type_required_literal_property_test.go +51 -51
- package/native/core/schemas/metadata/metadata_schema_covers_tag_matrix_test.go +125 -125
- package/native/core/schemas/metadata/metadata_schema_sole_literal_caches_pointer_test.go +38 -38
- package/native/core/schemas/metadata/schema_sequence_and_json_coverage_test.go +427 -427
- package/native/core/schemas/protobuf/IProtobufProperty.go +6 -6
- package/native/core/schemas/protobuf/IProtobufPropertyType.go +55 -55
- package/native/core/schemas/protobuf/IProtobufSchema.go +54 -54
- package/native/core/schemas/protobuf/index.go +1 -1
- package/native/core/schemas/protobuf/protobuf_marker_coverage_test.go +58 -58
- package/native/core/typings/Writable.go +5 -5
- package/native/core/utils/PatternUtil.go +57 -57
- package/native/core/utils/ProtobufNameEncoder.go +47 -47
- package/native/go.mod +31 -31
- package/native/go.sum +22 -22
- package/native/go.work +22 -22
- package/native/transform/CallExpressionTransformer.go +719 -719
- package/native/transform/FileTransformer.go +221 -221
- package/native/transform/ITransformProps.go +5 -5
- package/native/transform/ImportTransformer.go +285 -285
- package/native/transform/NodeTransformer.go +25 -25
- package/native/transform/TransformerError.go +11 -11
- package/native/transform/TypiaGenerator.go +171 -171
- package/native/transform/call_expression_transformer_registry_coverage_test.go +53 -53
- package/native/transform/call_expression_transformer_target_test.go +46 -46
- package/native/transform/features/AssertTransformer.go +39 -39
- package/native/transform/features/CreateAssertTransformer.go +39 -39
- package/native/transform/features/CreateIsTransformer.go +35 -35
- package/native/transform/features/CreateRandomTransformer.go +47 -47
- package/native/transform/features/CreateShallowTransformer.go +33 -33
- package/native/transform/features/CreateValidateTransformer.go +35 -35
- package/native/transform/features/IsTransformer.go +35 -35
- package/native/transform/features/RandomTransformer.go +54 -54
- package/native/transform/features/ShallowTransformer.go +65 -65
- package/native/transform/features/ValidateTransformer.go +35 -35
- package/native/transform/features/compare/CompareCoverTransformer.go +14 -14
- package/native/transform/features/compare/CompareCreateCoverTransformer.go +14 -14
- package/native/transform/features/compare/CompareCreateEqualTransformer.go +14 -14
- package/native/transform/features/compare/CompareCreateLessTransformer.go +14 -14
- package/native/transform/features/compare/CompareEqualTransformer.go +73 -73
- package/native/transform/features/compare/CompareLessTransformer.go +71 -71
- package/native/transform/features/feature_transformer_entry_coverage_test.go +59 -59
- package/native/transform/features/functional/FunctionalGenericTransformer.go +70 -70
- package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +28 -28
- package/native/transform/features/http/CreateHttpFormDataTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpHeadersTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpIsQueryTransformer.go +28 -28
- package/native/transform/features/http/CreateHttpParameterTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpQueryTransformer.go +28 -28
- package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +22 -22
- package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +28 -28
- package/native/transform/features/http/HttpAssertFormDataTransformer.go +22 -22
- package/native/transform/features/http/HttpAssertHeadersTransformer.go +22 -22
- package/native/transform/features/http/HttpAssertQueryTransformer.go +28 -28
- package/native/transform/features/http/HttpFormDataTransformer.go +22 -22
- package/native/transform/features/http/HttpHeadersTransformer.go +22 -22
- package/native/transform/features/http/HttpIsFormDataTransformer.go +22 -22
- package/native/transform/features/http/HttpIsHeadersTransformer.go +22 -22
- package/native/transform/features/http/HttpIsQueryTransformer.go +28 -28
- package/native/transform/features/http/HttpParameterTransformer.go +22 -22
- package/native/transform/features/http/HttpQueryTransformer.go +28 -28
- package/native/transform/features/http/HttpValidateFormDataTransformer.go +22 -22
- package/native/transform/features/http/HttpValidateHeadersTransformer.go +22 -22
- package/native/transform/features/http/HttpValidateQueryTransformer.go +28 -28
- package/native/transform/features/http/http_transformer_entry_coverage_test.go +65 -65
- package/native/transform/features/json/JsonApplicationTransformer.go +75 -75
- package/native/transform/features/json/JsonAssertParseTransformer.go +22 -22
- package/native/transform/features/json/JsonAssertStringifyTransformer.go +22 -22
- package/native/transform/features/json/JsonCreateAssertParseTransformer.go +22 -22
- package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +22 -22
- package/native/transform/features/json/JsonCreateIsParseTransformer.go +22 -22
- package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +22 -22
- package/native/transform/features/json/JsonCreateStringifyTransformer.go +22 -22
- package/native/transform/features/json/JsonCreateValidateParseTransformer.go +22 -22
- package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +22 -22
- package/native/transform/features/json/JsonIsParseTransformer.go +22 -22
- package/native/transform/features/json/JsonIsStringifyTransformer.go +22 -22
- package/native/transform/features/json/JsonSchemaTransformer.go +175 -175
- package/native/transform/features/json/JsonSchemasTransformer.go +109 -109
- package/native/transform/features/json/JsonStringifyTransformer.go +22 -22
- package/native/transform/features/json/JsonValidateParseTransformer.go +22 -22
- package/native/transform/features/json/JsonValidateStringifyTransformer.go +22 -22
- package/native/transform/features/json/json_transformer_entry_coverage_test.go +56 -56
- package/native/transform/features/llm/LlmApplicationTransformer.go +54 -54
- package/native/transform/features/llm/LlmCoerceTransformer.go +63 -63
- package/native/transform/features/llm/LlmControllerTransformer.go +59 -59
- package/native/transform/features/llm/LlmCreateCoerceTransformer.go +54 -54
- package/native/transform/features/llm/LlmCreateParseTransformer.go +54 -54
- package/native/transform/features/llm/LlmParametersTransformer.go +49 -49
- package/native/transform/features/llm/LlmParseTransformer.go +63 -63
- package/native/transform/features/llm/LlmSchemaTransformer.go +167 -167
- package/native/transform/features/llm/LlmStructuredOutputTransformer.go +55 -55
- package/native/transform/features/llm/llm_transformer_entry_coverage_test.go +48 -48
- package/native/transform/features/notations/NotationAssertGeneralTransformer.go +27 -27
- package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +27 -27
- package/native/transform/features/notations/NotationCreateGeneralTransformer.go +27 -27
- package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +27 -27
- package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +27 -27
- package/native/transform/features/notations/NotationGeneralTransformer.go +36 -36
- package/native/transform/features/notations/NotationIsGeneralTransformer.go +27 -27
- package/native/transform/features/notations/NotationValidateGeneralTransformer.go +27 -27
- package/native/transform/features/notations/notation_transformer_entry_coverage_test.go +58 -58
- package/native/transform/features/plain/PlainAssertClassifyTransformer.go +22 -22
- package/native/transform/features/plain/PlainAssertCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainAssertPruneTransformer.go +22 -22
- package/native/transform/features/plain/PlainClassifyTransformer.go +22 -22
- package/native/transform/features/plain/PlainCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateAssertClassifyTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateAssertCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateAssertPruneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateClassifyTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateIsCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateIsPruneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreatePruneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateValidateClassifyTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateValidateCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainCreateValidatePruneTransformer.go +22 -22
- package/native/transform/features/plain/PlainIsCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainIsPruneTransformer.go +22 -22
- package/native/transform/features/plain/PlainPruneTransformer.go +22 -22
- package/native/transform/features/plain/PlainValidateClassifyTransformer.go +22 -22
- package/native/transform/features/plain/PlainValidateCloneTransformer.go +22 -22
- package/native/transform/features/plain/PlainValidatePruneTransformer.go +22 -22
- package/native/transform/features/plain/plain_transformer_entry_coverage_test.go +61 -61
- package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufMessageTransformer.go +31 -31
- package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +22 -22
- package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +22 -22
- package/native/transform/features/protobuf/protobuf_transformer_entry_coverage_test.go +56 -56
- package/native/transform/features/reflect/ReflectLiteralsTransformer.go +32 -32
- package/native/transform/features/reflect/ReflectMetadataTransformer.go +73 -73
- package/native/transform/features/reflect/ReflectNameTransformer.go +100 -100
- package/native/transform/features/reflect/ReflectSchemaTransformer.go +153 -153
- package/native/transform/features/reflect/ReflectSchemasTransformer.go +68 -68
- package/native/transform/features/reflect/reflect_metadata_transformer_edge_branches_test.go +55 -55
- package/native/transform/features/reflect/reflect_transformer_entry_coverage_test.go +47 -47
- package/native/transform/file_transformer_coverage_test.go +94 -94
- package/native/transform/import_transformer_coverage_test.go +153 -153
- package/native/transform/index.go +1 -1
- package/native/transform/internal/GenericTransformer.go +236 -236
- package/native/transform/transform.go +57 -57
- package/native/transform/typia_generator_helpers_coverage_test.go +166 -166
- package/package.json +8 -15
- package/src/executable/TypiaGenerateWizard.ts +5 -1
- package/src/executable/generate/ttsc.ts +3 -4
- package/src/executable/typia.ts +8 -4
- package/src/internal/_ProtobufReader.ts +187 -187
- package/src/internal/_randomArray.ts +34 -34
- package/src/internal/_randomString.ts +30 -30
- package/src/re-exports.ts +8 -3
- package/src/transform.ts +21 -21
- package/lib/TypeGuardError2.mjs +0 -55
- package/lib/TypeGuardError2.mjs.map +0 -1
- package/lib/_virtual/NoTransformConfigurationError.mjs +0 -4
- package/lib/_virtual/NoTransformConfigurationError.mjs.map +0 -1
- package/lib/_virtual/TypeGuardError.mjs +0 -4
- package/lib/_virtual/TypeGuardError.mjs.map +0 -1
- package/lib/_virtual/TypiaGenerateWizard.mjs +0 -4
- package/lib/_virtual/TypiaGenerateWizard.mjs.map +0 -1
- package/lib/_virtual/_IProtobufWriter.mjs +0 -4
- package/lib/_virtual/_IProtobufWriter.mjs.map +0 -1
- package/lib/_virtual/_ProtobufReader.mjs +0 -4
- package/lib/_virtual/_ProtobufReader.mjs.map +0 -1
- package/lib/_virtual/_ProtobufSizer.mjs +0 -4
- package/lib/_virtual/_ProtobufSizer.mjs.map +0 -1
- package/lib/_virtual/_ProtobufWriter.mjs +0 -4
- package/lib/_virtual/_ProtobufWriter.mjs.map +0 -1
- package/lib/_virtual/__notationCapitalize.mjs +0 -4
- package/lib/_virtual/__notationCapitalize.mjs.map +0 -1
- package/lib/_virtual/__notationUnsnake.mjs +0 -4
- package/lib/_virtual/__notationUnsnake.mjs.map +0 -1
- package/lib/_virtual/_accessExpressionAsString.mjs +0 -4
- package/lib/_virtual/_accessExpressionAsString.mjs.map +0 -1
- package/lib/_virtual/_assertGuard.mjs +0 -4
- package/lib/_virtual/_assertGuard.mjs.map +0 -1
- package/lib/_virtual/_coerceLlmArguments.mjs +0 -4
- package/lib/_virtual/_coerceLlmArguments.mjs.map +0 -1
- package/lib/_virtual/_commander.mjs +0 -7
- package/lib/_virtual/_commander.mjs.map +0 -1
- package/lib/_virtual/_commonjsHelpers.mjs +0 -35
- package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/lib/_virtual/_createStandardSchema.mjs +0 -4
- package/lib/_virtual/_createStandardSchema.mjs.map +0 -1
- package/lib/_virtual/_functionalTypeGuardErrorFactory.mjs +0 -4
- package/lib/_virtual/_functionalTypeGuardErrorFactory.mjs.map +0 -1
- package/lib/_virtual/_httpFormDataReadArray.mjs +0 -4
- package/lib/_virtual/_httpFormDataReadArray.mjs.map +0 -1
- package/lib/_virtual/_httpFormDataReadBigint.mjs +0 -4
- package/lib/_virtual/_httpFormDataReadBigint.mjs.map +0 -1
- package/lib/_virtual/_httpFormDataReadBlob.mjs +0 -4
- package/lib/_virtual/_httpFormDataReadBlob.mjs.map +0 -1
- package/lib/_virtual/_httpFormDataReadBoolean.mjs +0 -4
- package/lib/_virtual/_httpFormDataReadBoolean.mjs.map +0 -1
- package/lib/_virtual/_httpFormDataReadFile.mjs +0 -4
- package/lib/_virtual/_httpFormDataReadFile.mjs.map +0 -1
- package/lib/_virtual/_httpFormDataReadNumber.mjs +0 -4
- package/lib/_virtual/_httpFormDataReadNumber.mjs.map +0 -1
- package/lib/_virtual/_httpFormDataReadString.mjs +0 -4
- package/lib/_virtual/_httpFormDataReadString.mjs.map +0 -1
- package/lib/_virtual/_httpHeaderReadBigint.mjs +0 -4
- package/lib/_virtual/_httpHeaderReadBigint.mjs.map +0 -1
- package/lib/_virtual/_httpHeaderReadBoolean.mjs +0 -4
- package/lib/_virtual/_httpHeaderReadBoolean.mjs.map +0 -1
- package/lib/_virtual/_httpHeaderReadNumber.mjs +0 -4
- package/lib/_virtual/_httpHeaderReadNumber.mjs.map +0 -1
- package/lib/_virtual/_httpParameterReadBigint.mjs +0 -4
- package/lib/_virtual/_httpParameterReadBigint.mjs.map +0 -1
- package/lib/_virtual/_httpParameterReadBoolean.mjs +0 -4
- package/lib/_virtual/_httpParameterReadBoolean.mjs.map +0 -1
- package/lib/_virtual/_httpParameterReadNumber.mjs +0 -4
- package/lib/_virtual/_httpParameterReadNumber.mjs.map +0 -1
- package/lib/_virtual/_httpParameterReadString.mjs +0 -4
- package/lib/_virtual/_httpParameterReadString.mjs.map +0 -1
- package/lib/_virtual/_httpQueryParseURLSearchParams.mjs +0 -4
- package/lib/_virtual/_httpQueryParseURLSearchParams.mjs.map +0 -1
- package/lib/_virtual/_httpQueryReadArray.mjs +0 -4
- package/lib/_virtual/_httpQueryReadArray.mjs.map +0 -1
- package/lib/_virtual/_httpQueryReadBigint.mjs +0 -4
- package/lib/_virtual/_httpQueryReadBigint.mjs.map +0 -1
- package/lib/_virtual/_httpQueryReadBoolean.mjs +0 -4
- package/lib/_virtual/_httpQueryReadBoolean.mjs.map +0 -1
- package/lib/_virtual/_httpQueryReadNumber.mjs +0 -4
- package/lib/_virtual/_httpQueryReadNumber.mjs.map +0 -1
- package/lib/_virtual/_httpQueryReadString.mjs +0 -4
- package/lib/_virtual/_httpQueryReadString.mjs.map +0 -1
- package/lib/_virtual/_inquirer.mjs +0 -7
- package/lib/_virtual/_inquirer.mjs.map +0 -1
- package/lib/_virtual/_isBetween.mjs +0 -4
- package/lib/_virtual/_isBetween.mjs.map +0 -1
- package/lib/_virtual/_isBigintString.mjs +0 -4
- package/lib/_virtual/_isBigintString.mjs.map +0 -1
- package/lib/_virtual/_isFormatByte.mjs +0 -4
- package/lib/_virtual/_isFormatByte.mjs.map +0 -1
- package/lib/_virtual/_isFormatDate.mjs +0 -4
- package/lib/_virtual/_isFormatDate.mjs.map +0 -1
- package/lib/_virtual/_isFormatDateTime.mjs +0 -4
- package/lib/_virtual/_isFormatDateTime.mjs.map +0 -1
- package/lib/_virtual/_isFormatDuration.mjs +0 -4
- package/lib/_virtual/_isFormatDuration.mjs.map +0 -1
- package/lib/_virtual/_isFormatEmail.mjs +0 -4
- package/lib/_virtual/_isFormatEmail.mjs.map +0 -1
- package/lib/_virtual/_isFormatHostname.mjs +0 -4
- package/lib/_virtual/_isFormatHostname.mjs.map +0 -1
- package/lib/_virtual/_isFormatIdnEmail.mjs +0 -4
- package/lib/_virtual/_isFormatIdnEmail.mjs.map +0 -1
- package/lib/_virtual/_isFormatIdnHostname.mjs +0 -4
- package/lib/_virtual/_isFormatIdnHostname.mjs.map +0 -1
- package/lib/_virtual/_isFormatIpv4.mjs +0 -4
- package/lib/_virtual/_isFormatIpv4.mjs.map +0 -1
- package/lib/_virtual/_isFormatIpv6.mjs +0 -4
- package/lib/_virtual/_isFormatIpv6.mjs.map +0 -1
- package/lib/_virtual/_isFormatIri.mjs +0 -4
- package/lib/_virtual/_isFormatIri.mjs.map +0 -1
- package/lib/_virtual/_isFormatIriReference.mjs +0 -4
- package/lib/_virtual/_isFormatIriReference.mjs.map +0 -1
- package/lib/_virtual/_isFormatJsonPointer.mjs +0 -4
- package/lib/_virtual/_isFormatJsonPointer.mjs.map +0 -1
- package/lib/_virtual/_isFormatPassword.mjs +0 -4
- package/lib/_virtual/_isFormatPassword.mjs.map +0 -1
- package/lib/_virtual/_isFormatRegex.mjs +0 -4
- package/lib/_virtual/_isFormatRegex.mjs.map +0 -1
- package/lib/_virtual/_isFormatRelativeJsonPointer.mjs +0 -4
- package/lib/_virtual/_isFormatRelativeJsonPointer.mjs.map +0 -1
- package/lib/_virtual/_isFormatTime.mjs +0 -4
- package/lib/_virtual/_isFormatTime.mjs.map +0 -1
- package/lib/_virtual/_isFormatUri.mjs +0 -4
- package/lib/_virtual/_isFormatUri.mjs.map +0 -1
- package/lib/_virtual/_isFormatUriReference.mjs +0 -4
- package/lib/_virtual/_isFormatUriReference.mjs.map +0 -1
- package/lib/_virtual/_isFormatUriTemplate.mjs +0 -4
- package/lib/_virtual/_isFormatUriTemplate.mjs.map +0 -1
- package/lib/_virtual/_isFormatUrl.mjs +0 -4
- package/lib/_virtual/_isFormatUrl.mjs.map +0 -1
- package/lib/_virtual/_isFormatUuid.mjs +0 -4
- package/lib/_virtual/_isFormatUuid.mjs.map +0 -1
- package/lib/_virtual/_isTypeFloat.mjs +0 -4
- package/lib/_virtual/_isTypeFloat.mjs.map +0 -1
- package/lib/_virtual/_isTypeInt16.mjs +0 -4
- package/lib/_virtual/_isTypeInt16.mjs.map +0 -1
- package/lib/_virtual/_isTypeInt32.mjs +0 -4
- package/lib/_virtual/_isTypeInt32.mjs.map +0 -1
- package/lib/_virtual/_isTypeInt64.mjs +0 -4
- package/lib/_virtual/_isTypeInt64.mjs.map +0 -1
- package/lib/_virtual/_isTypeInt8.mjs +0 -4
- package/lib/_virtual/_isTypeInt8.mjs.map +0 -1
- package/lib/_virtual/_isTypeUint16.mjs +0 -4
- package/lib/_virtual/_isTypeUint16.mjs.map +0 -1
- package/lib/_virtual/_isTypeUint32.mjs +0 -4
- package/lib/_virtual/_isTypeUint32.mjs.map +0 -1
- package/lib/_virtual/_isTypeUint64.mjs +0 -4
- package/lib/_virtual/_isTypeUint64.mjs.map +0 -1
- package/lib/_virtual/_isTypeUint8.mjs +0 -4
- package/lib/_virtual/_isTypeUint8.mjs.map +0 -1
- package/lib/_virtual/_isUniqueItems.mjs +0 -4
- package/lib/_virtual/_isUniqueItems.mjs.map +0 -1
- package/lib/_virtual/_jsonStringifyNumber.mjs +0 -4
- package/lib/_virtual/_jsonStringifyNumber.mjs.map +0 -1
- package/lib/_virtual/_jsonStringifyRest.mjs +0 -4
- package/lib/_virtual/_jsonStringifyRest.mjs.map +0 -1
- package/lib/_virtual/_jsonStringifyString.mjs +0 -4
- package/lib/_virtual/_jsonStringifyString.mjs.map +0 -1
- package/lib/_virtual/_jsonStringifyTail.mjs +0 -4
- package/lib/_virtual/_jsonStringifyTail.mjs.map +0 -1
- package/lib/_virtual/_llmApplicationFinalize.mjs +0 -4
- package/lib/_virtual/_llmApplicationFinalize.mjs.map +0 -1
- package/lib/_virtual/_node_child_process.mjs +0 -7
- package/lib/_virtual/_node_child_process.mjs.map +0 -1
- package/lib/_virtual/_node_fs.mjs +0 -7
- package/lib/_virtual/_node_fs.mjs.map +0 -1
- package/lib/_virtual/_node_module.mjs +0 -7
- package/lib/_virtual/_node_module.mjs.map +0 -1
- package/lib/_virtual/_node_path.mjs +0 -7
- package/lib/_virtual/_node_path.mjs.map +0 -1
- package/lib/_virtual/_notationAny.mjs +0 -4
- package/lib/_virtual/_notationAny.mjs.map +0 -1
- package/lib/_virtual/_notationCamel.mjs +0 -4
- package/lib/_virtual/_notationCamel.mjs.map +0 -1
- package/lib/_virtual/_notationPascal.mjs +0 -4
- package/lib/_virtual/_notationPascal.mjs.map +0 -1
- package/lib/_virtual/_notationSnake.mjs +0 -4
- package/lib/_virtual/_notationSnake.mjs.map +0 -1
- package/lib/_virtual/_parseLlmArguments.mjs +0 -4
- package/lib/_virtual/_parseLlmArguments.mjs.map +0 -1
- package/lib/_virtual/_plainCloneAny.mjs +0 -4
- package/lib/_virtual/_plainCloneAny.mjs.map +0 -1
- package/lib/_virtual/_randexp.mjs +0 -7
- package/lib/_virtual/_randexp.mjs.map +0 -1
- package/lib/_virtual/_randomArray.mjs +0 -4
- package/lib/_virtual/_randomArray.mjs.map +0 -1
- package/lib/_virtual/_randomBigint.mjs +0 -4
- package/lib/_virtual/_randomBigint.mjs.map +0 -1
- package/lib/_virtual/_randomBoolean.mjs +0 -4
- package/lib/_virtual/_randomBoolean.mjs.map +0 -1
- package/lib/_virtual/_randomFormatByte.mjs +0 -4
- package/lib/_virtual/_randomFormatByte.mjs.map +0 -1
- package/lib/_virtual/_randomFormatDate.mjs +0 -4
- package/lib/_virtual/_randomFormatDate.mjs.map +0 -1
- package/lib/_virtual/_randomFormatDatetime.mjs +0 -4
- package/lib/_virtual/_randomFormatDatetime.mjs.map +0 -1
- package/lib/_virtual/_randomFormatDuration.mjs +0 -4
- package/lib/_virtual/_randomFormatDuration.mjs.map +0 -1
- package/lib/_virtual/_randomFormatEmail.mjs +0 -4
- package/lib/_virtual/_randomFormatEmail.mjs.map +0 -1
- package/lib/_virtual/_randomFormatHostname.mjs +0 -4
- package/lib/_virtual/_randomFormatHostname.mjs.map +0 -1
- package/lib/_virtual/_randomFormatIdnEmail.mjs +0 -4
- package/lib/_virtual/_randomFormatIdnEmail.mjs.map +0 -1
- package/lib/_virtual/_randomFormatIdnHostname.mjs +0 -4
- package/lib/_virtual/_randomFormatIdnHostname.mjs.map +0 -1
- package/lib/_virtual/_randomFormatIpv4.mjs +0 -4
- package/lib/_virtual/_randomFormatIpv4.mjs.map +0 -1
- package/lib/_virtual/_randomFormatIpv6.mjs +0 -4
- package/lib/_virtual/_randomFormatIpv6.mjs.map +0 -1
- package/lib/_virtual/_randomFormatIri.mjs +0 -4
- package/lib/_virtual/_randomFormatIri.mjs.map +0 -1
- package/lib/_virtual/_randomFormatIriReference.mjs +0 -4
- package/lib/_virtual/_randomFormatIriReference.mjs.map +0 -1
- package/lib/_virtual/_randomFormatJsonPointer.mjs +0 -4
- package/lib/_virtual/_randomFormatJsonPointer.mjs.map +0 -1
- package/lib/_virtual/_randomFormatPassword.mjs +0 -4
- package/lib/_virtual/_randomFormatPassword.mjs.map +0 -1
- package/lib/_virtual/_randomFormatRegex.mjs +0 -4
- package/lib/_virtual/_randomFormatRegex.mjs.map +0 -1
- package/lib/_virtual/_randomFormatRelativeJsonPointer.mjs +0 -4
- package/lib/_virtual/_randomFormatRelativeJsonPointer.mjs.map +0 -1
- package/lib/_virtual/_randomFormatTime.mjs +0 -4
- package/lib/_virtual/_randomFormatTime.mjs.map +0 -1
- package/lib/_virtual/_randomFormatUri.mjs +0 -4
- package/lib/_virtual/_randomFormatUri.mjs.map +0 -1
- package/lib/_virtual/_randomFormatUriReference.mjs +0 -4
- package/lib/_virtual/_randomFormatUriReference.mjs.map +0 -1
- package/lib/_virtual/_randomFormatUriTemplate.mjs +0 -4
- package/lib/_virtual/_randomFormatUriTemplate.mjs.map +0 -1
- package/lib/_virtual/_randomFormatUrl.mjs +0 -4
- package/lib/_virtual/_randomFormatUrl.mjs.map +0 -1
- package/lib/_virtual/_randomFormatUuid.mjs +0 -4
- package/lib/_virtual/_randomFormatUuid.mjs.map +0 -1
- package/lib/_virtual/_randomInteger.mjs +0 -4
- package/lib/_virtual/_randomInteger.mjs.map +0 -1
- package/lib/_virtual/_randomNumber.mjs +0 -4
- package/lib/_virtual/_randomNumber.mjs.map +0 -1
- package/lib/_virtual/_randomPattern.mjs +0 -4
- package/lib/_virtual/_randomPattern.mjs.map +0 -1
- package/lib/_virtual/_randomPick.mjs +0 -4
- package/lib/_virtual/_randomPick.mjs.map +0 -1
- package/lib/_virtual/_randomString.mjs +0 -4
- package/lib/_virtual/_randomString.mjs.map +0 -1
- package/lib/_virtual/_throwTypeGuardError.mjs +0 -4
- package/lib/_virtual/_throwTypeGuardError.mjs.map +0 -1
- package/lib/_virtual/_tinyglobby.mjs +0 -7
- package/lib/_virtual/_tinyglobby.mjs.map +0 -1
- package/lib/_virtual/_validateReport.mjs +0 -4
- package/lib/_virtual/_validateReport.mjs.map +0 -1
- package/lib/_virtual/compare.mjs +0 -4
- package/lib/_virtual/compare.mjs.map +0 -1
- package/lib/_virtual/functional.mjs +0 -4
- package/lib/_virtual/functional.mjs.map +0 -1
- package/lib/_virtual/http.mjs +0 -4
- package/lib/_virtual/http.mjs.map +0 -1
- package/lib/_virtual/index.mjs +0 -4
- package/lib/_virtual/index.mjs.map +0 -1
- package/lib/_virtual/json.mjs +0 -4
- package/lib/_virtual/json.mjs.map +0 -1
- package/lib/_virtual/llm.mjs +0 -4
- package/lib/_virtual/llm.mjs.map +0 -1
- package/lib/_virtual/module.mjs +0 -4
- package/lib/_virtual/module.mjs.map +0 -1
- package/lib/_virtual/notations.mjs +0 -4
- package/lib/_virtual/notations.mjs.map +0 -1
- package/lib/_virtual/plain.mjs +0 -4
- package/lib/_virtual/plain.mjs.map +0 -1
- package/lib/_virtual/protobuf.mjs +0 -4
- package/lib/_virtual/protobuf.mjs.map +0 -1
- package/lib/_virtual/re-exports.mjs +0 -4
- package/lib/_virtual/re-exports.mjs.map +0 -1
- package/lib/_virtual/reflect.mjs +0 -4
- package/lib/_virtual/reflect.mjs.map +0 -1
- package/lib/_virtual/transform.mjs +0 -4
- package/lib/_virtual/transform.mjs.map +0 -1
- package/lib/_virtual/ttsc.mjs +0 -4
- package/lib/_virtual/ttsc.mjs.map +0 -1
- package/lib/_virtual/typia.mjs +0 -4
- package/lib/_virtual/typia.mjs.map +0 -1
- package/lib/compare2.mjs +0 -39
- package/lib/compare2.mjs.map +0 -1
- package/lib/executable/TypiaGenerateWizard2.mjs +0 -719
- package/lib/executable/TypiaGenerateWizard2.mjs.map +0 -1
- package/lib/executable/generate/ttsc2.mjs +0 -56
- package/lib/executable/generate/ttsc2.mjs.map +0 -1
- package/lib/executable/typia2.mjs +0 -88
- package/lib/executable/typia2.mjs.map +0 -1
- package/lib/functional2.mjs +0 -99
- package/lib/functional2.mjs.map +0 -1
- package/lib/http2.mjs +0 -139
- package/lib/http2.mjs.map +0 -1
- package/lib/index2.mjs +0 -53
- package/lib/index2.mjs.map +0 -1
- package/lib/internal/_IProtobufWriter.mjs.map +0 -1
- package/lib/internal/_IProtobufWriter2.mjs +0 -6
- package/lib/internal/_IProtobufWriter2.mjs.map +0 -1
- package/lib/internal/_ProtobufReader2.mjs +0 -169
- package/lib/internal/_ProtobufReader2.mjs.map +0 -1
- package/lib/internal/_ProtobufSizer2.mjs +0 -119
- package/lib/internal/_ProtobufSizer2.mjs.map +0 -1
- package/lib/internal/_ProtobufWriter2.mjs +0 -107
- package/lib/internal/_ProtobufWriter2.mjs.map +0 -1
- package/lib/internal/_accessExpressionAsString2.mjs +0 -49
- package/lib/internal/_accessExpressionAsString2.mjs.map +0 -1
- package/lib/internal/_assertGuard2.mjs +0 -20
- package/lib/internal/_assertGuard2.mjs.map +0 -1
- package/lib/internal/_coerceLlmArguments2.mjs +0 -11
- package/lib/internal/_coerceLlmArguments2.mjs.map +0 -1
- package/lib/internal/_createStandardSchema2.mjs +0 -138
- package/lib/internal/_createStandardSchema2.mjs.map +0 -1
- package/lib/internal/_functionalTypeGuardErrorFactory2.mjs +0 -12
- package/lib/internal/_functionalTypeGuardErrorFactory2.mjs.map +0 -1
- package/lib/internal/_httpFormDataReadArray2.mjs +0 -9
- package/lib/internal/_httpFormDataReadArray2.mjs.map +0 -1
- package/lib/internal/_httpFormDataReadBigint2.mjs +0 -23
- package/lib/internal/_httpFormDataReadBigint2.mjs.map +0 -1
- package/lib/internal/_httpFormDataReadBlob2.mjs +0 -15
- package/lib/internal/_httpFormDataReadBlob2.mjs.map +0 -1
- package/lib/internal/_httpFormDataReadBoolean2.mjs +0 -21
- package/lib/internal/_httpFormDataReadBoolean2.mjs.map +0 -1
- package/lib/internal/_httpFormDataReadFile2.mjs +0 -15
- package/lib/internal/_httpFormDataReadFile2.mjs.map +0 -1
- package/lib/internal/_httpFormDataReadNumber2.mjs +0 -19
- package/lib/internal/_httpFormDataReadNumber2.mjs.map +0 -1
- package/lib/internal/_httpFormDataReadString2.mjs +0 -15
- package/lib/internal/_httpFormDataReadString2.mjs.map +0 -1
- package/lib/internal/_httpHeaderReadBigint2.mjs +0 -17
- package/lib/internal/_httpHeaderReadBigint2.mjs.map +0 -1
- package/lib/internal/_httpHeaderReadBoolean2.mjs +0 -15
- package/lib/internal/_httpHeaderReadBoolean2.mjs.map +0 -1
- package/lib/internal/_httpHeaderReadNumber2.mjs +0 -13
- package/lib/internal/_httpHeaderReadNumber2.mjs.map +0 -1
- package/lib/internal/_httpParameterReadBigint2.mjs +0 -17
- package/lib/internal/_httpParameterReadBigint2.mjs.map +0 -1
- package/lib/internal/_httpParameterReadBoolean2.mjs +0 -15
- package/lib/internal/_httpParameterReadBoolean2.mjs.map +0 -1
- package/lib/internal/_httpParameterReadNumber2.mjs +0 -13
- package/lib/internal/_httpParameterReadNumber2.mjs.map +0 -1
- package/lib/internal/_httpParameterReadString2.mjs +0 -9
- package/lib/internal/_httpParameterReadString2.mjs.map +0 -1
- package/lib/internal/_httpQueryParseURLSearchParams2.mjs +0 -16
- package/lib/internal/_httpQueryParseURLSearchParams2.mjs.map +0 -1
- package/lib/internal/_httpQueryReadArray2.mjs +0 -9
- package/lib/internal/_httpQueryReadArray2.mjs.map +0 -1
- package/lib/internal/_httpQueryReadBigint2.mjs +0 -17
- package/lib/internal/_httpQueryReadBigint2.mjs.map +0 -1
- package/lib/internal/_httpQueryReadBoolean2.mjs +0 -19
- package/lib/internal/_httpQueryReadBoolean2.mjs.map +0 -1
- package/lib/internal/_httpQueryReadNumber2.mjs +0 -13
- package/lib/internal/_httpQueryReadNumber2.mjs.map +0 -1
- package/lib/internal/_httpQueryReadString2.mjs +0 -9
- package/lib/internal/_httpQueryReadString2.mjs.map +0 -1
- package/lib/internal/_isBetween2.mjs +0 -9
- package/lib/internal/_isBetween2.mjs.map +0 -1
- package/lib/internal/_isBigintString2.mjs +0 -17
- package/lib/internal/_isBigintString2.mjs.map +0 -1
- package/lib/internal/_isFormatByte2.mjs +0 -13
- package/lib/internal/_isFormatByte2.mjs.map +0 -1
- package/lib/internal/_isFormatDate2.mjs +0 -10
- package/lib/internal/_isFormatDate2.mjs.map +0 -1
- package/lib/internal/_isFormatDateTime2.mjs +0 -10
- package/lib/internal/_isFormatDateTime2.mjs.map +0 -1
- package/lib/internal/_isFormatDuration2.mjs +0 -10
- package/lib/internal/_isFormatDuration2.mjs.map +0 -1
- package/lib/internal/_isFormatEmail2.mjs +0 -10
- package/lib/internal/_isFormatEmail2.mjs.map +0 -1
- package/lib/internal/_isFormatHostname2.mjs +0 -10
- package/lib/internal/_isFormatHostname2.mjs.map +0 -1
- package/lib/internal/_isFormatIdnEmail2.mjs +0 -10
- package/lib/internal/_isFormatIdnEmail2.mjs.map +0 -1
- package/lib/internal/_isFormatIdnHostname2.mjs +0 -10
- package/lib/internal/_isFormatIdnHostname2.mjs.map +0 -1
- package/lib/internal/_isFormatIpv42.mjs +0 -10
- package/lib/internal/_isFormatIpv42.mjs.map +0 -1
- package/lib/internal/_isFormatIpv62.mjs +0 -10
- package/lib/internal/_isFormatIpv62.mjs.map +0 -1
- package/lib/internal/_isFormatIri2.mjs +0 -10
- package/lib/internal/_isFormatIri2.mjs.map +0 -1
- package/lib/internal/_isFormatIriReference2.mjs +0 -10
- package/lib/internal/_isFormatIriReference2.mjs.map +0 -1
- package/lib/internal/_isFormatJsonPointer2.mjs +0 -10
- package/lib/internal/_isFormatJsonPointer2.mjs.map +0 -1
- package/lib/internal/_isFormatPassword2.mjs +0 -9
- package/lib/internal/_isFormatPassword2.mjs.map +0 -1
- package/lib/internal/_isFormatRegex2.mjs +0 -17
- package/lib/internal/_isFormatRegex2.mjs.map +0 -1
- package/lib/internal/_isFormatRelativeJsonPointer2.mjs +0 -10
- package/lib/internal/_isFormatRelativeJsonPointer2.mjs.map +0 -1
- package/lib/internal/_isFormatTime2.mjs +0 -10
- package/lib/internal/_isFormatTime2.mjs.map +0 -1
- package/lib/internal/_isFormatUri2.mjs +0 -11
- package/lib/internal/_isFormatUri2.mjs.map +0 -1
- package/lib/internal/_isFormatUriReference2.mjs +0 -10
- package/lib/internal/_isFormatUriReference2.mjs.map +0 -1
- package/lib/internal/_isFormatUriTemplate2.mjs +0 -10
- package/lib/internal/_isFormatUriTemplate2.mjs.map +0 -1
- package/lib/internal/_isFormatUrl2.mjs +0 -10
- package/lib/internal/_isFormatUrl2.mjs.map +0 -1
- package/lib/internal/_isFormatUuid2.mjs +0 -10
- package/lib/internal/_isFormatUuid2.mjs.map +0 -1
- package/lib/internal/_isTypeFloat2.mjs +0 -11
- package/lib/internal/_isTypeFloat2.mjs.map +0 -1
- package/lib/internal/_isTypeInt162.mjs +0 -11
- package/lib/internal/_isTypeInt162.mjs.map +0 -1
- package/lib/internal/_isTypeInt322.mjs +0 -11
- package/lib/internal/_isTypeInt322.mjs.map +0 -1
- package/lib/internal/_isTypeInt642.mjs +0 -11
- package/lib/internal/_isTypeInt642.mjs.map +0 -1
- package/lib/internal/_isTypeInt82.mjs +0 -11
- package/lib/internal/_isTypeInt82.mjs.map +0 -1
- package/lib/internal/_isTypeUint162.mjs +0 -11
- package/lib/internal/_isTypeUint162.mjs.map +0 -1
- package/lib/internal/_isTypeUint322.mjs +0 -11
- package/lib/internal/_isTypeUint322.mjs.map +0 -1
- package/lib/internal/_isTypeUint642.mjs +0 -11
- package/lib/internal/_isTypeUint642.mjs.map +0 -1
- package/lib/internal/_isTypeUint82.mjs +0 -11
- package/lib/internal/_isTypeUint82.mjs.map +0 -1
- package/lib/internal/_isUniqueItems2.mjs +0 -143
- package/lib/internal/_isUniqueItems2.mjs.map +0 -1
- package/lib/internal/_jsonStringifyNumber2.mjs +0 -9
- package/lib/internal/_jsonStringifyNumber2.mjs.map +0 -1
- package/lib/internal/_jsonStringifyRest2.mjs +0 -11
- package/lib/internal/_jsonStringifyRest2.mjs.map +0 -1
- package/lib/internal/_jsonStringifyString2.mjs +0 -45
- package/lib/internal/_jsonStringifyString2.mjs.map +0 -1
- package/lib/internal/_jsonStringifyTail2.mjs +0 -9
- package/lib/internal/_jsonStringifyTail2.mjs.map +0 -1
- package/lib/internal/_llmApplicationFinalize2.mjs +0 -11
- package/lib/internal/_llmApplicationFinalize2.mjs.map +0 -1
- package/lib/internal/_notationAny2.mjs +0 -42
- package/lib/internal/_notationAny2.mjs.map +0 -1
- package/lib/internal/_notationCamel2.mjs +0 -21
- package/lib/internal/_notationCamel2.mjs.map +0 -1
- package/lib/internal/_notationPascal2.mjs +0 -17
- package/lib/internal/_notationPascal2.mjs.map +0 -1
- package/lib/internal/_notationSnake2.mjs +0 -54
- package/lib/internal/_notationSnake2.mjs.map +0 -1
- package/lib/internal/_parseLlmArguments2.mjs +0 -11
- package/lib/internal/_parseLlmArguments2.mjs.map +0 -1
- package/lib/internal/_plainCloneAny2.mjs +0 -67
- package/lib/internal/_plainCloneAny2.mjs.map +0 -1
- package/lib/internal/_randomArray2.mjs +0 -31
- package/lib/internal/_randomArray2.mjs.map +0 -1
- package/lib/internal/_randomBigint2.mjs +0 -12
- package/lib/internal/_randomBigint2.mjs.map +0 -1
- package/lib/internal/_randomBoolean2.mjs +0 -9
- package/lib/internal/_randomBoolean2.mjs.map +0 -1
- package/lib/internal/_randomFormatByte2.mjs +0 -10
- package/lib/internal/_randomFormatByte2.mjs.map +0 -1
- package/lib/internal/_randomFormatDate2.mjs +0 -20
- package/lib/internal/_randomFormatDate2.mjs.map +0 -1
- package/lib/internal/_randomFormatDatetime2.mjs +0 -18
- package/lib/internal/_randomFormatDatetime2.mjs.map +0 -1
- package/lib/internal/_randomFormatDuration2.mjs +0 -35
- package/lib/internal/_randomFormatDuration2.mjs.map +0 -1
- package/lib/internal/_randomFormatEmail2.mjs +0 -17
- package/lib/internal/_randomFormatEmail2.mjs.map +0 -1
- package/lib/internal/_randomFormatHostname2.mjs +0 -13
- package/lib/internal/_randomFormatHostname2.mjs.map +0 -1
- package/lib/internal/_randomFormatIdnEmail2.mjs +0 -12
- package/lib/internal/_randomFormatIdnEmail2.mjs.map +0 -1
- package/lib/internal/_randomFormatIdnHostname2.mjs +0 -12
- package/lib/internal/_randomFormatIdnHostname2.mjs.map +0 -1
- package/lib/internal/_randomFormatIpv42.mjs +0 -17
- package/lib/internal/_randomFormatIpv42.mjs.map +0 -1
- package/lib/internal/_randomFormatIpv62.mjs +0 -17
- package/lib/internal/_randomFormatIpv62.mjs.map +0 -1
- package/lib/internal/_randomFormatIri2.mjs +0 -12
- package/lib/internal/_randomFormatIri2.mjs.map +0 -1
- package/lib/internal/_randomFormatIriReference2.mjs +0 -12
- package/lib/internal/_randomFormatIriReference2.mjs.map +0 -1
- package/lib/internal/_randomFormatJsonPointer2.mjs +0 -13
- package/lib/internal/_randomFormatJsonPointer2.mjs.map +0 -1
- package/lib/internal/_randomFormatPassword2.mjs +0 -16
- package/lib/internal/_randomFormatPassword2.mjs.map +0 -1
- package/lib/internal/_randomFormatRegex2.mjs +0 -10
- package/lib/internal/_randomFormatRegex2.mjs.map +0 -1
- package/lib/internal/_randomFormatRelativeJsonPointer2.mjs +0 -16
- package/lib/internal/_randomFormatRelativeJsonPointer2.mjs.map +0 -1
- package/lib/internal/_randomFormatTime2.mjs +0 -19
- package/lib/internal/_randomFormatTime2.mjs.map +0 -1
- package/lib/internal/_randomFormatUri2.mjs +0 -12
- package/lib/internal/_randomFormatUri2.mjs.map +0 -1
- package/lib/internal/_randomFormatUriReference2.mjs +0 -12
- package/lib/internal/_randomFormatUriReference2.mjs.map +0 -1
- package/lib/internal/_randomFormatUriTemplate2.mjs +0 -12
- package/lib/internal/_randomFormatUriTemplate2.mjs.map +0 -1
- package/lib/internal/_randomFormatUrl2.mjs +0 -17
- package/lib/internal/_randomFormatUrl2.mjs.map +0 -1
- package/lib/internal/_randomFormatUuid2.mjs +0 -13
- package/lib/internal/_randomFormatUuid2.mjs.map +0 -1
- package/lib/internal/_randomInteger2.mjs +0 -47
- package/lib/internal/_randomInteger2.mjs.map +0 -1
- package/lib/internal/_randomNumber2.mjs +0 -66
- package/lib/internal/_randomNumber2.mjs.map +0 -1
- package/lib/internal/_randomPattern2.mjs +0 -22
- package/lib/internal/_randomPattern2.mjs.map +0 -1
- package/lib/internal/_randomPick2.mjs +0 -17
- package/lib/internal/_randomPick2.mjs.map +0 -1
- package/lib/internal/_randomString2.mjs +0 -32
- package/lib/internal/_randomString2.mjs.map +0 -1
- package/lib/internal/_throwTypeGuardError2.mjs +0 -14
- package/lib/internal/_throwTypeGuardError2.mjs.map +0 -1
- package/lib/internal/_validateReport2.mjs +0 -29
- package/lib/internal/_validateReport2.mjs.map +0 -1
- package/lib/internal/private/__notationCapitalize2.mjs +0 -9
- package/lib/internal/private/__notationCapitalize2.mjs.map +0 -1
- package/lib/internal/private/__notationUnsnake2.mjs +0 -29
- package/lib/internal/private/__notationUnsnake2.mjs.map +0 -1
- package/lib/json2.mjs +0 -94
- package/lib/json2.mjs.map +0 -1
- package/lib/llm2.mjs +0 -54
- package/lib/llm2.mjs.map +0 -1
- package/lib/module2.mjs +0 -185
- package/lib/module2.mjs.map +0 -1
- package/lib/notations2.mjs +0 -169
- package/lib/notations2.mjs.map +0 -1
- package/lib/plain2.mjs +0 -119
- package/lib/plain2.mjs.map +0 -1
- package/lib/protobuf2.mjs +0 -94
- package/lib/protobuf2.mjs.map +0 -1
- package/lib/re-exports.mjs.map +0 -1
- package/lib/re-exports2.mjs +0 -17
- package/lib/re-exports2.mjs.map +0 -1
- package/lib/reflect2.mjs +0 -29
- package/lib/reflect2.mjs.map +0 -1
- package/lib/transform2.mjs +0 -26
- package/lib/transform2.mjs.map +0 -1
- package/lib/transformers/NoTransformConfigurationError2.mjs +0 -21
- package/lib/transformers/NoTransformConfigurationError2.mjs.map +0 -1
|
@@ -1,262 +1,262 @@
|
|
|
1
|
-
package iterate
|
|
2
|
-
|
|
3
|
-
import (
|
|
4
|
-
"fmt"
|
|
5
|
-
"strings"
|
|
6
|
-
|
|
7
|
-
nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
8
|
-
nativeutils "github.com/samchon/typia/packages/typia/native/core/utils"
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
// templateCapture records a template-literal interpolation whose placeholder
|
|
12
|
-
// carries a runtime-checkable type tag. The structural regex keeps a capturing
|
|
13
|
-
// group around that placeholder so the checker can re-extract the matched
|
|
14
|
-
// substring, parse it to the placeholder's base type, and run the placeholder's
|
|
15
|
-
// own tag predicates against it (#1968).
|
|
16
|
-
type templateCapture struct {
|
|
17
|
-
// Index is the 1-based position of the capturing group inside the structural
|
|
18
|
-
// regex, i.e. the `match[Index]` slot that holds the placeholder substring.
|
|
19
|
-
Index int
|
|
20
|
-
// Kind is the placeholder base type: "number", "bigint", or "string". It
|
|
21
|
-
// selects the coercion (`Number(...)` / `BigInt(...)` for the numeric kinds,
|
|
22
|
-
// the raw substring for string) and which transpiler owns the value checks.
|
|
23
|
-
Kind string
|
|
24
|
-
// Atomic is the constrained primitive whose tag matrix drives the conditions.
|
|
25
|
-
Atomic *nativemetadata.MetadataAtomic
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// template_runtime_pattern builds the structural regex of a template literal for
|
|
29
|
-
// the runtime checker and, alongside it, the capture map of every constrained
|
|
30
|
-
// interpolation placeholder.
|
|
31
|
-
//
|
|
32
|
-
// It mirrors template_to_pattern's structural output verbatim for every
|
|
33
|
-
// non-constrained element, so templates without a runtime-checkable
|
|
34
|
-
// interpolation tag emit exactly the same pattern as before (preserving the
|
|
35
|
-
// single-`test()` fast path and the #1635 whole-string behavior). The only
|
|
36
|
-
// structural change is around a constrained placeholder: a numeric one is
|
|
37
|
-
// wrapped in a capturing group, a bigint one is captured as an integer
|
|
38
|
-
// (`([+-]?\d+)`, keeping `BigInt(...)` safe), and a string one is captured with
|
|
39
|
-
// a newline-inclusive `([\s\S]*)` (instead of the bare `(.*)`) so the tag check
|
|
40
|
-
// sees the placeholder's whole value even across a line break.
|
|
41
|
-
//
|
|
42
|
-
// json.schema keeps calling metadata_to_pattern directly, so it stays on the
|
|
43
|
-
// historical lossy pattern (no capture, no sub-range enforcement) — see #1968's
|
|
44
|
-
// schema-lossiness decision.
|
|
45
|
-
func template_runtime_pattern(row []*nativemetadata.MetadataSchema) (string, []templateCapture) {
|
|
46
|
-
parts := make([]string, 0, len(row))
|
|
47
|
-
captures := []templateCapture{}
|
|
48
|
-
running := 0
|
|
49
|
-
for i, meta := range row {
|
|
50
|
-
sub := metadata_to_pattern(struct {
|
|
51
|
-
top bool
|
|
52
|
-
metadata *nativemetadata.MetadataSchema
|
|
53
|
-
}{
|
|
54
|
-
top: false,
|
|
55
|
-
metadata: meta,
|
|
56
|
-
})
|
|
57
|
-
if atomic, kind, ok := template_constrained_capture(meta); ok && template_clear_boundary(row, i) {
|
|
58
|
-
switch kind {
|
|
59
|
-
case "number":
|
|
60
|
-
// A bare numeric placeholder lowers to a non-capturing pattern, so wrap
|
|
61
|
-
// it; the wrapping paren is the next capturing group.
|
|
62
|
-
sub = "(" + sub + ")"
|
|
63
|
-
case "bigint":
|
|
64
|
-
// The shared number pattern admits decimals/exponents, but those make
|
|
65
|
-
// `BigInt(...)` throw and no bigint stringifies that way. Capture an
|
|
66
|
-
// integer only, so the extraction parses safely.
|
|
67
|
-
sub = "([+-]?\\d+)"
|
|
68
|
-
default:
|
|
69
|
-
// A string placeholder lowers to "(.*)", but `.` excludes newlines,
|
|
70
|
-
// so a value spanning a line break would hand the tag check only the
|
|
71
|
-
// first line (under-reporting length, mismatching Pattern). Capture
|
|
72
|
-
// every character instead, anchored by PatternUtil.Fix.
|
|
73
|
-
sub = "([\\s\\S]*)"
|
|
74
|
-
}
|
|
75
|
-
captures = append(captures, templateCapture{
|
|
76
|
-
Index: running + 1,
|
|
77
|
-
Kind: kind,
|
|
78
|
-
Atomic: atomic,
|
|
79
|
-
})
|
|
80
|
-
}
|
|
81
|
-
running += template_count_capturing_groups(sub)
|
|
82
|
-
parts = append(parts, sub)
|
|
83
|
-
}
|
|
84
|
-
return nativeutils.PatternUtil.Fix(strings.Join(parts, "")), captures
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// template_clear_boundary reports whether the placeholder at row[i] is delimited
|
|
88
|
-
// strongly enough that the greedy structural regex assigns it a unique — hence
|
|
89
|
-
// correct — substring. An ambiguous placeholder falls back to structural-only
|
|
90
|
-
// matching (tag unenforced, as before) rather than risking a false negative.
|
|
91
|
-
//
|
|
92
|
-
// Two adjacent variable-width placeholders slide their shared boundary iff the
|
|
93
|
-
// left one can extend over the first character of the literal between them: a
|
|
94
|
-
// smaller (non-greedy) split exists exactly when the left variable's match could
|
|
95
|
-
// grow rightward past it. So the placeholder is captured only when, on each side,
|
|
96
|
-
// the nearest variable neighbor cannot absorb the separating literal's first
|
|
97
|
-
// character — `template_boundary_safe` checks that with `template_right_extends`.
|
|
98
|
-
//
|
|
99
|
-
// Examples (all confirmed by regex semantics):
|
|
100
|
-
// - `${n}-${n}` (#1965): "-" is not in a number's right-extension set, so both
|
|
101
|
-
// numbers are pinned and enforced.
|
|
102
|
-
// - `${number}.${number}` / IP grids: "." extends a number (decimal), so the
|
|
103
|
-
// split slides ("5.9.1.1.1" splits as 5.9|… or 5|9.1|…) — fall back.
|
|
104
|
-
// - `${string}-${number}` / `${string}X${string}`: a string absorbs any
|
|
105
|
-
// character, so a string with any sibling falls back.
|
|
106
|
-
// - `a${string}b` / `prefix${string}suffix` / `${number}%` / `CODE-${string}`:
|
|
107
|
-
// sole placeholder, the `^`/`$` anchors pin both ends — enforced.
|
|
108
|
-
func template_clear_boundary(row []*nativemetadata.MetadataSchema, i int) bool {
|
|
109
|
-
return template_boundary_safe(row, i, -1) && template_boundary_safe(row, i, 1)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// template_boundary_safe reports whether row[i]'s boundary in direction dir
|
|
113
|
-
// (-1 left, +1 right) is pinned. The template edge or an immediate literal whose
|
|
114
|
-
// first character the relevant variable cannot absorb pins it; an immediate
|
|
115
|
-
// variable neighbor (no separating literal) never does.
|
|
116
|
-
func template_boundary_safe(row []*nativemetadata.MetadataSchema, i int, dir int) bool {
|
|
117
|
-
j := i + dir
|
|
118
|
-
if j < 0 || j >= len(row) {
|
|
119
|
-
return true // template start/end
|
|
120
|
-
}
|
|
121
|
-
if template_is_literal(row[j]) == false {
|
|
122
|
-
return false // a variable-width placeholder sits flush against row[i]
|
|
123
|
-
}
|
|
124
|
-
k := j + dir
|
|
125
|
-
if k < 0 || k >= len(row) {
|
|
126
|
-
return true // literal then the template edge
|
|
127
|
-
}
|
|
128
|
-
// row[k] is the nearest variable across the literal row[j]. The boundary slides
|
|
129
|
-
// iff the variable on the row[i] side can extend over the literal's first
|
|
130
|
-
// character: rightward that is row[i] itself, leftward it is the left variable.
|
|
131
|
-
absorber := row[i]
|
|
132
|
-
if dir < 0 {
|
|
133
|
-
absorber = row[k]
|
|
134
|
-
}
|
|
135
|
-
ch, ok := template_literal_first(row[j])
|
|
136
|
-
if ok == false {
|
|
137
|
-
return true
|
|
138
|
-
}
|
|
139
|
-
return template_right_extends(template_variable_kind(absorber), ch) == false
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// template_variable_kind returns the base type a variable placeholder matches:
|
|
143
|
-
// "number", "bigint", or "string". Anything else (boolean, unions, constants)
|
|
144
|
-
// is treated as "string" — conservatively absorbing, so its neighbor falls back.
|
|
145
|
-
func template_variable_kind(meta *nativemetadata.MetadataSchema) string {
|
|
146
|
-
if meta != nil && meta.Bucket() == 1 && len(meta.Atomics) == 1 {
|
|
147
|
-
switch meta.Atomics[0].Type {
|
|
148
|
-
case "number", "bigint":
|
|
149
|
-
return meta.Atomics[0].Type
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return "string"
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// template_right_extends reports whether a variable of the given kind, having
|
|
156
|
-
// matched up to a boundary, could extend its match over ch. number and bigint
|
|
157
|
-
// placeholders both lower to PatternUtil.NUMBER (metadata_to_pattern), which ends
|
|
158
|
-
// in a digit and can grow through another digit, a decimal point, or an exponent
|
|
159
|
-
// marker — the leading sign cannot follow a digit. (A constrained bigint is
|
|
160
|
-
// captured as integer-only, but an unconstrained or fallen-back bigint neighbor
|
|
161
|
-
// still matches the decimal/exponent NUMBER span, so it absorbs the same set.) A
|
|
162
|
-
// string matches every character.
|
|
163
|
-
func template_right_extends(kind string, ch rune) bool {
|
|
164
|
-
switch kind {
|
|
165
|
-
case "number", "bigint":
|
|
166
|
-
return (ch >= '0' && ch <= '9') || ch == '.' || ch == 'e' || ch == 'E'
|
|
167
|
-
default:
|
|
168
|
-
return true
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// template_literal_first returns the first character of a literal segment's text.
|
|
173
|
-
func template_literal_first(meta *nativemetadata.MetadataSchema) (rune, bool) {
|
|
174
|
-
if meta == nil || len(meta.Constants) == 0 || len(meta.Constants[0].Values) == 0 {
|
|
175
|
-
return 0, false
|
|
176
|
-
}
|
|
177
|
-
runes := []rune(fmt.Sprint(meta.Constants[0].Values[0].Value))
|
|
178
|
-
if len(runes) == 0 {
|
|
179
|
-
return 0, false
|
|
180
|
-
}
|
|
181
|
-
return runes[0], true
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// template_is_literal reports whether a row element is a single fixed literal
|
|
185
|
-
// segment (exactly one constant value), i.e. a fixed-width boundary between
|
|
186
|
-
// placeholders.
|
|
187
|
-
func template_is_literal(meta *nativemetadata.MetadataSchema) bool {
|
|
188
|
-
return meta != nil && meta.IsConstant() && meta.Size() == 1
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// template_constrained_capture reports whether a template placeholder is a
|
|
192
|
-
// simple primitive (`number`, `bigint`, or `string`) carrying a fully
|
|
193
|
-
// runtime-checkable tag matrix, returning its atomic and base-type kind. Only
|
|
194
|
-
// such placeholders earn a capture group plus extraction-based conditions.
|
|
195
|
-
//
|
|
196
|
-
// The matrix must be fully constrained — every OR row contributes at least one
|
|
197
|
-
// validate-able tag. A row with no validate-able tag accepts every value of the
|
|
198
|
-
// base type, which would unconstrain the whole matrix; honoring only the
|
|
199
|
-
// validate-able rows would then reject values the type accepts. Such
|
|
200
|
-
// placeholders (and `boolean`/union/constant placeholders, and tags with no
|
|
201
|
-
// `Validate`) fall back to the historical behavior: structural match only, with
|
|
202
|
-
// the tag left unenforced rather than emitting a broken check.
|
|
203
|
-
func template_constrained_capture(meta *nativemetadata.MetadataSchema) (*nativemetadata.MetadataAtomic, string, bool) {
|
|
204
|
-
if meta == nil || meta.Bucket() != 1 || len(meta.Atomics) != 1 {
|
|
205
|
-
return nil, "", false
|
|
206
|
-
}
|
|
207
|
-
if meta.IsRequired() == false || meta.Nullable {
|
|
208
|
-
return nil, "", false
|
|
209
|
-
}
|
|
210
|
-
atomic := meta.Atomics[0]
|
|
211
|
-
if atomic == nil || (atomic.Type != "number" && atomic.Type != "bigint" && atomic.Type != "string") {
|
|
212
|
-
return nil, "", false
|
|
213
|
-
}
|
|
214
|
-
if template_fully_constrained(atomic.Tags) == false {
|
|
215
|
-
return nil, "", false
|
|
216
|
-
}
|
|
217
|
-
return atomic, atomic.Type, true
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// template_fully_constrained reports whether every OR row of a tag matrix holds
|
|
221
|
-
// at least one validate-able tag, so no row admits the base type unconditionally.
|
|
222
|
-
func template_fully_constrained(tags [][]nativemetadata.IMetadataTypeTag) bool {
|
|
223
|
-
if len(tags) == 0 {
|
|
224
|
-
return false
|
|
225
|
-
}
|
|
226
|
-
for _, row := range tags {
|
|
227
|
-
validating := false
|
|
228
|
-
for _, tag := range row {
|
|
229
|
-
if tag.Validate != "" {
|
|
230
|
-
validating = true
|
|
231
|
-
break
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
if validating == false {
|
|
235
|
-
return false
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return true
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// template_count_capturing_groups counts the capturing groups in a regex
|
|
242
|
-
// fragment: an unescaped `(` that does not open an inline group `(?...)`. It
|
|
243
|
-
// drives the running capture index, so it must agree with how a JS regex engine
|
|
244
|
-
// numbers groups left to right.
|
|
245
|
-
func template_count_capturing_groups(pattern string) int {
|
|
246
|
-
runes := []rune(pattern)
|
|
247
|
-
count := 0
|
|
248
|
-
backslashes := 0
|
|
249
|
-
for i, ch := range runes {
|
|
250
|
-
if ch == '\\' {
|
|
251
|
-
backslashes++
|
|
252
|
-
continue
|
|
253
|
-
}
|
|
254
|
-
if ch == '(' && backslashes%2 == 0 {
|
|
255
|
-
if i+1 >= len(runes) || runes[i+1] != '?' {
|
|
256
|
-
count++
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
backslashes = 0
|
|
260
|
-
}
|
|
261
|
-
return count
|
|
262
|
-
}
|
|
1
|
+
package iterate
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"fmt"
|
|
5
|
+
"strings"
|
|
6
|
+
|
|
7
|
+
nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
8
|
+
nativeutils "github.com/samchon/typia/packages/typia/native/core/utils"
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
// templateCapture records a template-literal interpolation whose placeholder
|
|
12
|
+
// carries a runtime-checkable type tag. The structural regex keeps a capturing
|
|
13
|
+
// group around that placeholder so the checker can re-extract the matched
|
|
14
|
+
// substring, parse it to the placeholder's base type, and run the placeholder's
|
|
15
|
+
// own tag predicates against it (#1968).
|
|
16
|
+
type templateCapture struct {
|
|
17
|
+
// Index is the 1-based position of the capturing group inside the structural
|
|
18
|
+
// regex, i.e. the `match[Index]` slot that holds the placeholder substring.
|
|
19
|
+
Index int
|
|
20
|
+
// Kind is the placeholder base type: "number", "bigint", or "string". It
|
|
21
|
+
// selects the coercion (`Number(...)` / `BigInt(...)` for the numeric kinds,
|
|
22
|
+
// the raw substring for string) and which transpiler owns the value checks.
|
|
23
|
+
Kind string
|
|
24
|
+
// Atomic is the constrained primitive whose tag matrix drives the conditions.
|
|
25
|
+
Atomic *nativemetadata.MetadataAtomic
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// template_runtime_pattern builds the structural regex of a template literal for
|
|
29
|
+
// the runtime checker and, alongside it, the capture map of every constrained
|
|
30
|
+
// interpolation placeholder.
|
|
31
|
+
//
|
|
32
|
+
// It mirrors template_to_pattern's structural output verbatim for every
|
|
33
|
+
// non-constrained element, so templates without a runtime-checkable
|
|
34
|
+
// interpolation tag emit exactly the same pattern as before (preserving the
|
|
35
|
+
// single-`test()` fast path and the #1635 whole-string behavior). The only
|
|
36
|
+
// structural change is around a constrained placeholder: a numeric one is
|
|
37
|
+
// wrapped in a capturing group, a bigint one is captured as an integer
|
|
38
|
+
// (`([+-]?\d+)`, keeping `BigInt(...)` safe), and a string one is captured with
|
|
39
|
+
// a newline-inclusive `([\s\S]*)` (instead of the bare `(.*)`) so the tag check
|
|
40
|
+
// sees the placeholder's whole value even across a line break.
|
|
41
|
+
//
|
|
42
|
+
// json.schema keeps calling metadata_to_pattern directly, so it stays on the
|
|
43
|
+
// historical lossy pattern (no capture, no sub-range enforcement) — see #1968's
|
|
44
|
+
// schema-lossiness decision.
|
|
45
|
+
func template_runtime_pattern(row []*nativemetadata.MetadataSchema) (string, []templateCapture) {
|
|
46
|
+
parts := make([]string, 0, len(row))
|
|
47
|
+
captures := []templateCapture{}
|
|
48
|
+
running := 0
|
|
49
|
+
for i, meta := range row {
|
|
50
|
+
sub := metadata_to_pattern(struct {
|
|
51
|
+
top bool
|
|
52
|
+
metadata *nativemetadata.MetadataSchema
|
|
53
|
+
}{
|
|
54
|
+
top: false,
|
|
55
|
+
metadata: meta,
|
|
56
|
+
})
|
|
57
|
+
if atomic, kind, ok := template_constrained_capture(meta); ok && template_clear_boundary(row, i) {
|
|
58
|
+
switch kind {
|
|
59
|
+
case "number":
|
|
60
|
+
// A bare numeric placeholder lowers to a non-capturing pattern, so wrap
|
|
61
|
+
// it; the wrapping paren is the next capturing group.
|
|
62
|
+
sub = "(" + sub + ")"
|
|
63
|
+
case "bigint":
|
|
64
|
+
// The shared number pattern admits decimals/exponents, but those make
|
|
65
|
+
// `BigInt(...)` throw and no bigint stringifies that way. Capture an
|
|
66
|
+
// integer only, so the extraction parses safely.
|
|
67
|
+
sub = "([+-]?\\d+)"
|
|
68
|
+
default:
|
|
69
|
+
// A string placeholder lowers to "(.*)", but `.` excludes newlines,
|
|
70
|
+
// so a value spanning a line break would hand the tag check only the
|
|
71
|
+
// first line (under-reporting length, mismatching Pattern). Capture
|
|
72
|
+
// every character instead, anchored by PatternUtil.Fix.
|
|
73
|
+
sub = "([\\s\\S]*)"
|
|
74
|
+
}
|
|
75
|
+
captures = append(captures, templateCapture{
|
|
76
|
+
Index: running + 1,
|
|
77
|
+
Kind: kind,
|
|
78
|
+
Atomic: atomic,
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
running += template_count_capturing_groups(sub)
|
|
82
|
+
parts = append(parts, sub)
|
|
83
|
+
}
|
|
84
|
+
return nativeutils.PatternUtil.Fix(strings.Join(parts, "")), captures
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// template_clear_boundary reports whether the placeholder at row[i] is delimited
|
|
88
|
+
// strongly enough that the greedy structural regex assigns it a unique — hence
|
|
89
|
+
// correct — substring. An ambiguous placeholder falls back to structural-only
|
|
90
|
+
// matching (tag unenforced, as before) rather than risking a false negative.
|
|
91
|
+
//
|
|
92
|
+
// Two adjacent variable-width placeholders slide their shared boundary iff the
|
|
93
|
+
// left one can extend over the first character of the literal between them: a
|
|
94
|
+
// smaller (non-greedy) split exists exactly when the left variable's match could
|
|
95
|
+
// grow rightward past it. So the placeholder is captured only when, on each side,
|
|
96
|
+
// the nearest variable neighbor cannot absorb the separating literal's first
|
|
97
|
+
// character — `template_boundary_safe` checks that with `template_right_extends`.
|
|
98
|
+
//
|
|
99
|
+
// Examples (all confirmed by regex semantics):
|
|
100
|
+
// - `${n}-${n}` (#1965): "-" is not in a number's right-extension set, so both
|
|
101
|
+
// numbers are pinned and enforced.
|
|
102
|
+
// - `${number}.${number}` / IP grids: "." extends a number (decimal), so the
|
|
103
|
+
// split slides ("5.9.1.1.1" splits as 5.9|… or 5|9.1|…) — fall back.
|
|
104
|
+
// - `${string}-${number}` / `${string}X${string}`: a string absorbs any
|
|
105
|
+
// character, so a string with any sibling falls back.
|
|
106
|
+
// - `a${string}b` / `prefix${string}suffix` / `${number}%` / `CODE-${string}`:
|
|
107
|
+
// sole placeholder, the `^`/`$` anchors pin both ends — enforced.
|
|
108
|
+
func template_clear_boundary(row []*nativemetadata.MetadataSchema, i int) bool {
|
|
109
|
+
return template_boundary_safe(row, i, -1) && template_boundary_safe(row, i, 1)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// template_boundary_safe reports whether row[i]'s boundary in direction dir
|
|
113
|
+
// (-1 left, +1 right) is pinned. The template edge or an immediate literal whose
|
|
114
|
+
// first character the relevant variable cannot absorb pins it; an immediate
|
|
115
|
+
// variable neighbor (no separating literal) never does.
|
|
116
|
+
func template_boundary_safe(row []*nativemetadata.MetadataSchema, i int, dir int) bool {
|
|
117
|
+
j := i + dir
|
|
118
|
+
if j < 0 || j >= len(row) {
|
|
119
|
+
return true // template start/end
|
|
120
|
+
}
|
|
121
|
+
if template_is_literal(row[j]) == false {
|
|
122
|
+
return false // a variable-width placeholder sits flush against row[i]
|
|
123
|
+
}
|
|
124
|
+
k := j + dir
|
|
125
|
+
if k < 0 || k >= len(row) {
|
|
126
|
+
return true // literal then the template edge
|
|
127
|
+
}
|
|
128
|
+
// row[k] is the nearest variable across the literal row[j]. The boundary slides
|
|
129
|
+
// iff the variable on the row[i] side can extend over the literal's first
|
|
130
|
+
// character: rightward that is row[i] itself, leftward it is the left variable.
|
|
131
|
+
absorber := row[i]
|
|
132
|
+
if dir < 0 {
|
|
133
|
+
absorber = row[k]
|
|
134
|
+
}
|
|
135
|
+
ch, ok := template_literal_first(row[j])
|
|
136
|
+
if ok == false {
|
|
137
|
+
return true
|
|
138
|
+
}
|
|
139
|
+
return template_right_extends(template_variable_kind(absorber), ch) == false
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// template_variable_kind returns the base type a variable placeholder matches:
|
|
143
|
+
// "number", "bigint", or "string". Anything else (boolean, unions, constants)
|
|
144
|
+
// is treated as "string" — conservatively absorbing, so its neighbor falls back.
|
|
145
|
+
func template_variable_kind(meta *nativemetadata.MetadataSchema) string {
|
|
146
|
+
if meta != nil && meta.Bucket() == 1 && len(meta.Atomics) == 1 {
|
|
147
|
+
switch meta.Atomics[0].Type {
|
|
148
|
+
case "number", "bigint":
|
|
149
|
+
return meta.Atomics[0].Type
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return "string"
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// template_right_extends reports whether a variable of the given kind, having
|
|
156
|
+
// matched up to a boundary, could extend its match over ch. number and bigint
|
|
157
|
+
// placeholders both lower to PatternUtil.NUMBER (metadata_to_pattern), which ends
|
|
158
|
+
// in a digit and can grow through another digit, a decimal point, or an exponent
|
|
159
|
+
// marker — the leading sign cannot follow a digit. (A constrained bigint is
|
|
160
|
+
// captured as integer-only, but an unconstrained or fallen-back bigint neighbor
|
|
161
|
+
// still matches the decimal/exponent NUMBER span, so it absorbs the same set.) A
|
|
162
|
+
// string matches every character.
|
|
163
|
+
func template_right_extends(kind string, ch rune) bool {
|
|
164
|
+
switch kind {
|
|
165
|
+
case "number", "bigint":
|
|
166
|
+
return (ch >= '0' && ch <= '9') || ch == '.' || ch == 'e' || ch == 'E'
|
|
167
|
+
default:
|
|
168
|
+
return true
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// template_literal_first returns the first character of a literal segment's text.
|
|
173
|
+
func template_literal_first(meta *nativemetadata.MetadataSchema) (rune, bool) {
|
|
174
|
+
if meta == nil || len(meta.Constants) == 0 || len(meta.Constants[0].Values) == 0 {
|
|
175
|
+
return 0, false
|
|
176
|
+
}
|
|
177
|
+
runes := []rune(fmt.Sprint(meta.Constants[0].Values[0].Value))
|
|
178
|
+
if len(runes) == 0 {
|
|
179
|
+
return 0, false
|
|
180
|
+
}
|
|
181
|
+
return runes[0], true
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// template_is_literal reports whether a row element is a single fixed literal
|
|
185
|
+
// segment (exactly one constant value), i.e. a fixed-width boundary between
|
|
186
|
+
// placeholders.
|
|
187
|
+
func template_is_literal(meta *nativemetadata.MetadataSchema) bool {
|
|
188
|
+
return meta != nil && meta.IsConstant() && meta.Size() == 1
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// template_constrained_capture reports whether a template placeholder is a
|
|
192
|
+
// simple primitive (`number`, `bigint`, or `string`) carrying a fully
|
|
193
|
+
// runtime-checkable tag matrix, returning its atomic and base-type kind. Only
|
|
194
|
+
// such placeholders earn a capture group plus extraction-based conditions.
|
|
195
|
+
//
|
|
196
|
+
// The matrix must be fully constrained — every OR row contributes at least one
|
|
197
|
+
// validate-able tag. A row with no validate-able tag accepts every value of the
|
|
198
|
+
// base type, which would unconstrain the whole matrix; honoring only the
|
|
199
|
+
// validate-able rows would then reject values the type accepts. Such
|
|
200
|
+
// placeholders (and `boolean`/union/constant placeholders, and tags with no
|
|
201
|
+
// `Validate`) fall back to the historical behavior: structural match only, with
|
|
202
|
+
// the tag left unenforced rather than emitting a broken check.
|
|
203
|
+
func template_constrained_capture(meta *nativemetadata.MetadataSchema) (*nativemetadata.MetadataAtomic, string, bool) {
|
|
204
|
+
if meta == nil || meta.Bucket() != 1 || len(meta.Atomics) != 1 {
|
|
205
|
+
return nil, "", false
|
|
206
|
+
}
|
|
207
|
+
if meta.IsRequired() == false || meta.Nullable {
|
|
208
|
+
return nil, "", false
|
|
209
|
+
}
|
|
210
|
+
atomic := meta.Atomics[0]
|
|
211
|
+
if atomic == nil || (atomic.Type != "number" && atomic.Type != "bigint" && atomic.Type != "string") {
|
|
212
|
+
return nil, "", false
|
|
213
|
+
}
|
|
214
|
+
if template_fully_constrained(atomic.Tags) == false {
|
|
215
|
+
return nil, "", false
|
|
216
|
+
}
|
|
217
|
+
return atomic, atomic.Type, true
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// template_fully_constrained reports whether every OR row of a tag matrix holds
|
|
221
|
+
// at least one validate-able tag, so no row admits the base type unconditionally.
|
|
222
|
+
func template_fully_constrained(tags [][]nativemetadata.IMetadataTypeTag) bool {
|
|
223
|
+
if len(tags) == 0 {
|
|
224
|
+
return false
|
|
225
|
+
}
|
|
226
|
+
for _, row := range tags {
|
|
227
|
+
validating := false
|
|
228
|
+
for _, tag := range row {
|
|
229
|
+
if tag.Validate != "" {
|
|
230
|
+
validating = true
|
|
231
|
+
break
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
if validating == false {
|
|
235
|
+
return false
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return true
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// template_count_capturing_groups counts the capturing groups in a regex
|
|
242
|
+
// fragment: an unescaped `(` that does not open an inline group `(?...)`. It
|
|
243
|
+
// drives the running capture index, so it must agree with how a JS regex engine
|
|
244
|
+
// numbers groups left to right.
|
|
245
|
+
func template_count_capturing_groups(pattern string) int {
|
|
246
|
+
runes := []rune(pattern)
|
|
247
|
+
count := 0
|
|
248
|
+
backslashes := 0
|
|
249
|
+
for i, ch := range runes {
|
|
250
|
+
if ch == '\\' {
|
|
251
|
+
backslashes++
|
|
252
|
+
continue
|
|
253
|
+
}
|
|
254
|
+
if ch == '(' && backslashes%2 == 0 {
|
|
255
|
+
if i+1 >= len(runes) || runes[i+1] != '?' {
|
|
256
|
+
count++
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
backslashes = 0
|
|
260
|
+
}
|
|
261
|
+
return count
|
|
262
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
package iterate
|
|
2
|
-
|
|
3
|
-
import (
|
|
4
|
-
"strings"
|
|
5
|
-
|
|
6
|
-
nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
7
|
-
nativeutils "github.com/samchon/typia/packages/typia/native/core/utils"
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
func template_to_pattern(props struct {
|
|
11
|
-
top bool
|
|
12
|
-
template []*nativemetadata.MetadataSchema
|
|
13
|
-
}) string {
|
|
14
|
-
patterns := make([]string, 0, len(props.template))
|
|
15
|
-
for _, meta := range props.template {
|
|
16
|
-
patterns = append(patterns, metadata_to_pattern(struct {
|
|
17
|
-
top bool
|
|
18
|
-
metadata *nativemetadata.MetadataSchema
|
|
19
|
-
}{
|
|
20
|
-
top: false,
|
|
21
|
-
metadata: meta,
|
|
22
|
-
}))
|
|
23
|
-
}
|
|
24
|
-
pattern := strings.Join(patterns, "")
|
|
25
|
-
if props.top {
|
|
26
|
-
return nativeutils.PatternUtil.Fix(pattern)
|
|
27
|
-
}
|
|
28
|
-
return pattern
|
|
29
|
-
}
|
|
1
|
+
package iterate
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"strings"
|
|
5
|
+
|
|
6
|
+
nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
7
|
+
nativeutils "github.com/samchon/typia/packages/typia/native/core/utils"
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
func template_to_pattern(props struct {
|
|
11
|
+
top bool
|
|
12
|
+
template []*nativemetadata.MetadataSchema
|
|
13
|
+
}) string {
|
|
14
|
+
patterns := make([]string, 0, len(props.template))
|
|
15
|
+
for _, meta := range props.template {
|
|
16
|
+
patterns = append(patterns, metadata_to_pattern(struct {
|
|
17
|
+
top bool
|
|
18
|
+
metadata *nativemetadata.MetadataSchema
|
|
19
|
+
}{
|
|
20
|
+
top: false,
|
|
21
|
+
metadata: meta,
|
|
22
|
+
}))
|
|
23
|
+
}
|
|
24
|
+
pattern := strings.Join(patterns, "")
|
|
25
|
+
if props.top {
|
|
26
|
+
return nativeutils.PatternUtil.Fix(pattern)
|
|
27
|
+
}
|
|
28
|
+
return pattern
|
|
29
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
package iterate
|
|
2
|
-
|
|
3
|
-
import nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
4
|
-
|
|
5
|
-
func wrap_metadata_rest_tuple(rest *nativemetadata.MetadataSchema) *nativemetadata.MetadataSchema {
|
|
6
|
-
wrapper := nativemetadata.MetadataSchema_initialize()
|
|
7
|
-
wrapper.Arrays = append(wrapper.Arrays, nativemetadata.MetadataArray_create(nativemetadata.MetadataArray{
|
|
8
|
-
Type: nativemetadata.MetadataArrayType_create(nativemetadata.MetadataArrayType{
|
|
9
|
-
Name: "..." + rest.GetName(),
|
|
10
|
-
DisplayName: "..." + rest.GetDisplayName(),
|
|
11
|
-
Value: rest,
|
|
12
|
-
Nullables: []bool{},
|
|
13
|
-
Recursive: false,
|
|
14
|
-
Index: nil,
|
|
15
|
-
}),
|
|
16
|
-
Tags: [][]nativemetadata.IMetadataTypeTag{},
|
|
17
|
-
}))
|
|
18
|
-
return wrapper
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
func Wrap_metadata_rest_tuple_export(rest *nativemetadata.MetadataSchema) *nativemetadata.MetadataSchema {
|
|
22
|
-
return wrap_metadata_rest_tuple(rest)
|
|
23
|
-
}
|
|
1
|
+
package iterate
|
|
2
|
+
|
|
3
|
+
import nativemetadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
4
|
+
|
|
5
|
+
func wrap_metadata_rest_tuple(rest *nativemetadata.MetadataSchema) *nativemetadata.MetadataSchema {
|
|
6
|
+
wrapper := nativemetadata.MetadataSchema_initialize()
|
|
7
|
+
wrapper.Arrays = append(wrapper.Arrays, nativemetadata.MetadataArray_create(nativemetadata.MetadataArray{
|
|
8
|
+
Type: nativemetadata.MetadataArrayType_create(nativemetadata.MetadataArrayType{
|
|
9
|
+
Name: "..." + rest.GetName(),
|
|
10
|
+
DisplayName: "..." + rest.GetDisplayName(),
|
|
11
|
+
Value: rest,
|
|
12
|
+
Nullables: []bool{},
|
|
13
|
+
Recursive: false,
|
|
14
|
+
Index: nil,
|
|
15
|
+
}),
|
|
16
|
+
Tags: [][]nativemetadata.IMetadataTypeTag{},
|
|
17
|
+
}))
|
|
18
|
+
return wrapper
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
func Wrap_metadata_rest_tuple_export(rest *nativemetadata.MetadataSchema) *nativemetadata.MetadataSchema {
|
|
22
|
+
return wrap_metadata_rest_tuple(rest)
|
|
23
|
+
}
|