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,528 +1,528 @@
|
|
|
1
|
-
//go:build typia_native_internal
|
|
2
|
-
// +build typia_native_internal
|
|
3
|
-
|
|
4
|
-
package main
|
|
5
|
-
|
|
6
|
-
import (
|
|
7
|
-
"bytes"
|
|
8
|
-
"os"
|
|
9
|
-
"path/filepath"
|
|
10
|
-
"runtime"
|
|
11
|
-
"strings"
|
|
12
|
-
"testing"
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
// TestTransformSyntheticEmitCoverage exercises typia transforms inside Go coverage.
|
|
16
|
-
//
|
|
17
|
-
// The TypeScript projects run the native backend as a separate process, so they
|
|
18
|
-
// validate behavior but do not contribute to Go coverage profiles. This test
|
|
19
|
-
// builds temporary TypeScript projects and calls the command entrypoints
|
|
20
|
-
// directly, which makes transformer, adapter, and programmer code visible to
|
|
21
|
-
// `-coverpkg`.
|
|
22
|
-
//
|
|
23
|
-
// 1. Create isolated temporary TypeScript projects under the native package.
|
|
24
|
-
// 2. Transform each project's `src/main.ts` to TypeScript output in memory.
|
|
25
|
-
// 3. Exercise JavaScript single-file output error handling for synthetic projects.
|
|
26
|
-
// 4. Cover reflect metadata, protobuf maps, and object-union emit paths.
|
|
27
|
-
// 5. Run build/check/project-transform command paths against the same project.
|
|
28
|
-
func TestTransformSyntheticEmitCoverage(t *testing.T) {
|
|
29
|
-
cases := []struct {
|
|
30
|
-
name string
|
|
31
|
-
source string
|
|
32
|
-
}{
|
|
33
|
-
{"core", transformCoverageCoreSource},
|
|
34
|
-
{"json", transformCoverageJSONSource},
|
|
35
|
-
{"http", transformCoverageHTTPSource},
|
|
36
|
-
{"plain", transformCoveragePlainSource},
|
|
37
|
-
{"functional", transformCoverageFunctionalSource},
|
|
38
|
-
{"complex", transformCoverageComplexSource},
|
|
39
|
-
{"protobuf", transformCoverageProtobufSource},
|
|
40
|
-
{"reflect-metadata", transformCoverageReflectMetadataSource},
|
|
41
|
-
}
|
|
42
|
-
projects := map[string]string{}
|
|
43
|
-
for _, tc := range cases {
|
|
44
|
-
tc := tc
|
|
45
|
-
projects[tc.name] = transformCoverageProject(t, tc.name, tc.source)
|
|
46
|
-
t.Run(tc.name+"_ts", func(t *testing.T) {
|
|
47
|
-
out, errText, code := transformCoverageCapture(func() int {
|
|
48
|
-
return runTransform([]string{
|
|
49
|
-
"--cwd", projects[tc.name],
|
|
50
|
-
"--tsconfig", "tsconfig.json",
|
|
51
|
-
"--file", "src/main.ts",
|
|
52
|
-
"--output", "ts",
|
|
53
|
-
})
|
|
54
|
-
})
|
|
55
|
-
if code != 0 {
|
|
56
|
-
t.Fatalf("transform ts failed for %s: code=%d stderr=\n%s", tc.name, code, errText)
|
|
57
|
-
}
|
|
58
|
-
if !strings.Contains(out, "export") && !strings.Contains(out, "const") {
|
|
59
|
-
t.Fatalf("transform ts output for %s looks empty:\n%s", tc.name, out)
|
|
60
|
-
}
|
|
61
|
-
})
|
|
62
|
-
}
|
|
63
|
-
for _, tc := range cases {
|
|
64
|
-
tc := tc
|
|
65
|
-
t.Run(tc.name+"_js", func(t *testing.T) {
|
|
66
|
-
_, errText, code := transformCoverageCapture(func() int {
|
|
67
|
-
return runTransform([]string{
|
|
68
|
-
"--cwd", projects[tc.name],
|
|
69
|
-
"--tsconfig", "tsconfig.json",
|
|
70
|
-
"--file", "src/main.ts",
|
|
71
|
-
"--output", "js",
|
|
72
|
-
})
|
|
73
|
-
})
|
|
74
|
-
if code != 3 || !strings.Contains(errText, "no output produced") {
|
|
75
|
-
t.Fatalf("transform js should report no output for %s: code=%d stderr=\n%s", tc.name, code, errText)
|
|
76
|
-
}
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
-
core := projects["core"]
|
|
80
|
-
if _, errText, code := transformCoverageCapture(func() int {
|
|
81
|
-
return runBuild([]string{
|
|
82
|
-
"--cwd", core,
|
|
83
|
-
"--tsconfig", "tsconfig.json",
|
|
84
|
-
"--noEmit",
|
|
85
|
-
"--verbose",
|
|
86
|
-
})
|
|
87
|
-
}); code != 0 {
|
|
88
|
-
t.Fatalf("build check failed: code=%d stderr=\n%s", code, errText)
|
|
89
|
-
}
|
|
90
|
-
if out, errText, code := transformCoverageCapture(func() int {
|
|
91
|
-
return runTransform([]string{
|
|
92
|
-
"--cwd", core,
|
|
93
|
-
"--tsconfig", "tsconfig.json",
|
|
94
|
-
})
|
|
95
|
-
}); code != 0 {
|
|
96
|
-
t.Fatalf("project transform failed: code=%d stderr=\n%s", code, errText)
|
|
97
|
-
} else if !strings.Contains(out, `"typescript"`) {
|
|
98
|
-
t.Fatalf("project transform output should include TypeScript map:\n%s", out)
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
func transformCoverageProject(t *testing.T, name string, source string) string {
|
|
103
|
-
t.Helper()
|
|
104
|
-
root := transformCoverageRepoRoot(t)
|
|
105
|
-
base := filepath.Join(root, "packages", "typia", "native", ".tmp-ttsc-typia-tests")
|
|
106
|
-
if err := os.MkdirAll(base, 0o755); err != nil {
|
|
107
|
-
t.Fatalf("mkdir temp base: %v", err)
|
|
108
|
-
}
|
|
109
|
-
dir, err := os.MkdirTemp(base, name+"-")
|
|
110
|
-
if err != nil {
|
|
111
|
-
t.Fatalf("create temp fixture: %v", err)
|
|
112
|
-
}
|
|
113
|
-
t.Cleanup(func() {
|
|
114
|
-
_ = os.RemoveAll(dir)
|
|
115
|
-
})
|
|
116
|
-
src := filepath.Join(dir, "src")
|
|
117
|
-
if err := os.MkdirAll(src, 0o755); err != nil {
|
|
118
|
-
t.Fatalf("mkdir fixture src: %v", err)
|
|
119
|
-
}
|
|
120
|
-
if err := os.WriteFile(filepath.Join(dir, "tsconfig.json"), []byte(transformCoverageTSConfig), 0o644); err != nil {
|
|
121
|
-
t.Fatalf("write tsconfig: %v", err)
|
|
122
|
-
}
|
|
123
|
-
if err := os.WriteFile(filepath.Join(src, "main.ts"), []byte(source), 0o644); err != nil {
|
|
124
|
-
t.Fatalf("write source: %v", err)
|
|
125
|
-
}
|
|
126
|
-
if name == "reflect-metadata" {
|
|
127
|
-
reflectDir := filepath.Join(src, "typia", "src")
|
|
128
|
-
if err := os.MkdirAll(reflectDir, 0o755); err != nil {
|
|
129
|
-
t.Fatalf("mkdir reflect stub: %v", err)
|
|
130
|
-
}
|
|
131
|
-
if err := os.WriteFile(filepath.Join(reflectDir, "reflect.ts"), []byte(transformCoverageReflectStubSource), 0o644); err != nil {
|
|
132
|
-
t.Fatalf("write reflect stub: %v", err)
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return dir
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
func transformCoverageRepoRoot(t *testing.T) string {
|
|
139
|
-
t.Helper()
|
|
140
|
-
_, file, _, ok := runtime.Caller(0)
|
|
141
|
-
if !ok {
|
|
142
|
-
t.Fatal("runtime.Caller failed")
|
|
143
|
-
}
|
|
144
|
-
return filepath.Clean(filepath.Join(filepath.Dir(file), "..", "..", "..", "..", ".."))
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
func transformCoverageCapture(run func() int) (string, string, int) {
|
|
148
|
-
var out bytes.Buffer
|
|
149
|
-
var err bytes.Buffer
|
|
150
|
-
oldStdout := stdout
|
|
151
|
-
oldStderr := stderr
|
|
152
|
-
stdout = &out
|
|
153
|
-
stderr = &err
|
|
154
|
-
defer func() {
|
|
155
|
-
stdout = oldStdout
|
|
156
|
-
stderr = oldStderr
|
|
157
|
-
}()
|
|
158
|
-
code := run()
|
|
159
|
-
return out.String(), err.String(), code
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
const transformCoverageTSConfig = `{
|
|
163
|
-
"compilerOptions": {
|
|
164
|
-
"target": "ES2022",
|
|
165
|
-
"module": "commonjs",
|
|
166
|
-
"moduleResolution": "bundler",
|
|
167
|
-
"ignoreDeprecations": "6.0",
|
|
168
|
-
"types": ["*"],
|
|
169
|
-
"esModuleInterop": true,
|
|
170
|
-
"strict": true,
|
|
171
|
-
"skipLibCheck": true,
|
|
172
|
-
"rootDir": "src",
|
|
173
|
-
"outDir": "dist"
|
|
174
|
-
},
|
|
175
|
-
"include": ["src"]
|
|
176
|
-
}
|
|
177
|
-
`
|
|
178
|
-
|
|
179
|
-
const transformCoverageCoreSource = `import typia, { tags } from "typia";
|
|
180
|
-
|
|
181
|
-
interface User {
|
|
182
|
-
id: string & tags.Format<"uuid">;
|
|
183
|
-
age: number & tags.Type<"uint32">;
|
|
184
|
-
name: string;
|
|
185
|
-
active?: boolean;
|
|
186
|
-
tags: string[];
|
|
187
|
-
tuple: [string, number, boolean?];
|
|
188
|
-
nested: { value: string | number | null };
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
export const check = (input: unknown): boolean => typia.is<User>(input);
|
|
192
|
-
export const assertUser = (input: unknown): User => typia.assert<User>(input);
|
|
193
|
-
export const assertGuardUser = (input: unknown): void => typia.assertGuard<User>(input);
|
|
194
|
-
export const validateUser = (input: unknown) => typia.validate<User>(input);
|
|
195
|
-
export const equalsUser = (input: unknown): boolean => typia.equals<User>(input);
|
|
196
|
-
export const assertEqualsUser = (input: unknown): User => typia.assertEquals<User>(input);
|
|
197
|
-
export const assertGuardEqualsUser = (input: unknown): void => typia.assertGuardEquals<User>(input);
|
|
198
|
-
export const validateEqualsUser = (input: unknown) => typia.validateEquals<User>(input);
|
|
199
|
-
export const randomUser = (): User => typia.random<User>();
|
|
200
|
-
export const reflectName = typia.reflect.name<User>();
|
|
201
|
-
export const reflectRegularName = typia.reflect.name<User, true>();
|
|
202
|
-
// @ts-ignore legacy native transformer entrypoint
|
|
203
|
-
export const metadata = typia.reflect.metadata<[User, string]>();
|
|
204
|
-
export const schema = typia.reflect.schema<User>();
|
|
205
|
-
export const schemas = typia.reflect.schemas<[User]>();
|
|
206
|
-
export const createIs = typia.createIs<User>();
|
|
207
|
-
export const createAssert = typia.createAssert<User>();
|
|
208
|
-
export const createAssertGuard = typia.createAssertGuard<User>();
|
|
209
|
-
export const createValidate = typia.createValidate<User>();
|
|
210
|
-
export const createEquals = typia.createEquals<User>();
|
|
211
|
-
export const createAssertEquals = typia.createAssertEquals<User>();
|
|
212
|
-
export const createAssertGuardEquals = typia.createAssertGuardEquals<User>();
|
|
213
|
-
export const createValidateEquals = typia.createValidateEquals<User>();
|
|
214
|
-
export const createRandom = typia.createRandom<User>();
|
|
215
|
-
`
|
|
216
|
-
|
|
217
|
-
const transformCoverageJSONSource = `import typia from "typia";
|
|
218
|
-
|
|
219
|
-
interface JsonUser {
|
|
220
|
-
id: string;
|
|
221
|
-
created_at: string;
|
|
222
|
-
nested: Array<{ value: number | string | null }>;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export const schema = typia.json.schema<JsonUser>();
|
|
226
|
-
export const schema30 = typia.json.schema<JsonUser, "3.0">();
|
|
227
|
-
export const schemas = typia.json.schemas<[JsonUser]>();
|
|
228
|
-
export const schemas30 = typia.json.schemas<[JsonUser], "3.0">();
|
|
229
|
-
export const assertParse = (input: string) => typia.json.assertParse<JsonUser>(input);
|
|
230
|
-
export const isParse = (input: string) => typia.json.isParse<JsonUser>(input);
|
|
231
|
-
export const validateParse = (input: string) => typia.json.validateParse<JsonUser>(input);
|
|
232
|
-
export const assertStringify = (input: unknown) => typia.json.assertStringify<JsonUser>(input);
|
|
233
|
-
export const isStringify = (input: unknown) => typia.json.isStringify<JsonUser>(input);
|
|
234
|
-
export const validateStringify = (input: unknown) => typia.json.validateStringify<JsonUser>(input);
|
|
235
|
-
export const createStringify = typia.json.createStringify<JsonUser>();
|
|
236
|
-
export const createAssertStringify = typia.json.createAssertStringify<JsonUser>();
|
|
237
|
-
export const createIsStringify = typia.json.createIsStringify<JsonUser>();
|
|
238
|
-
export const createValidateStringify = typia.json.createValidateStringify<JsonUser>();
|
|
239
|
-
export const createIsParse = typia.json.createIsParse<JsonUser>();
|
|
240
|
-
export const createAssertParse = typia.json.createAssertParse<JsonUser>();
|
|
241
|
-
export const createValidateParse = typia.json.createValidateParse<JsonUser>();
|
|
242
|
-
`
|
|
243
|
-
|
|
244
|
-
const transformCoverageHTTPSource = `import typia, { tags } from "typia";
|
|
245
|
-
|
|
246
|
-
interface QueryInput {
|
|
247
|
-
id: string;
|
|
248
|
-
limit?: number & tags.Type<"uint32">;
|
|
249
|
-
tags?: string[];
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
interface HeaderInput {
|
|
253
|
-
authorization: string;
|
|
254
|
-
"x-request-id"?: string;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
interface FormInput {
|
|
258
|
-
title: string;
|
|
259
|
-
count?: number;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
export const assertQuery = (input: URLSearchParams) => typia.http.assertQuery<QueryInput>(input);
|
|
263
|
-
export const isQuery = (input: URLSearchParams) => typia.http.isQuery<QueryInput>(input);
|
|
264
|
-
export const validateQuery = (input: URLSearchParams) => typia.http.validateQuery<QueryInput>(input);
|
|
265
|
-
export const assertHeaders = (input: Headers) => typia.http.assertHeaders<HeaderInput>(input);
|
|
266
|
-
export const isHeaders = (input: Headers) => typia.http.isHeaders<HeaderInput>(input);
|
|
267
|
-
export const validateHeaders = (input: Headers) => typia.http.validateHeaders<HeaderInput>(input);
|
|
268
|
-
export const assertFormData = (input: FormData) => typia.http.assertFormData<FormInput>(input);
|
|
269
|
-
export const isFormData = (input: FormData) => typia.http.isFormData<FormInput>(input);
|
|
270
|
-
export const validateFormData = (input: FormData) => typia.http.validateFormData<FormInput>(input);
|
|
271
|
-
export const createQuery = typia.http.createQuery<QueryInput>();
|
|
272
|
-
export const createAssertQuery = typia.http.createAssertQuery<QueryInput>();
|
|
273
|
-
export const createIsQuery = typia.http.createIsQuery<QueryInput>();
|
|
274
|
-
export const createValidateQuery = typia.http.createValidateQuery<QueryInput>();
|
|
275
|
-
export const createHeaders = typia.http.createHeaders<HeaderInput>();
|
|
276
|
-
export const createAssertHeaders = typia.http.createAssertHeaders<HeaderInput>();
|
|
277
|
-
export const createIsHeaders = typia.http.createIsHeaders<HeaderInput>();
|
|
278
|
-
export const createValidateHeaders = typia.http.createValidateHeaders<HeaderInput>();
|
|
279
|
-
export const createFormData = typia.http.createFormData<FormInput>();
|
|
280
|
-
export const createAssertFormData = typia.http.createAssertFormData<FormInput>();
|
|
281
|
-
export const createIsFormData = typia.http.createIsFormData<FormInput>();
|
|
282
|
-
export const createValidateFormData = typia.http.createValidateFormData<FormInput>();
|
|
283
|
-
export const createParameter = typia.http.createParameter<string | null>();
|
|
284
|
-
`
|
|
285
|
-
|
|
286
|
-
const transformCoveragePlainSource = `import typia from "typia";
|
|
287
|
-
|
|
288
|
-
interface PlainUser {
|
|
289
|
-
id: string;
|
|
290
|
-
snake_name: string;
|
|
291
|
-
children?: PlainUser[];
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
class PlainAccount {
|
|
295
|
-
id!: string;
|
|
296
|
-
snake_name!: string;
|
|
297
|
-
children?: PlainAccount[];
|
|
298
|
-
describe(): string {
|
|
299
|
-
return this.id;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
export const clone = (input: unknown) => typia.plain.assertClone<PlainUser>(input);
|
|
304
|
-
export const isClone = (input: unknown) => typia.plain.isClone<PlainUser>(input);
|
|
305
|
-
export const validateClone = (input: unknown) => typia.plain.validateClone<PlainUser>(input);
|
|
306
|
-
export const prune = (input: PlainUser) => typia.plain.assertPrune<PlainUser>(input);
|
|
307
|
-
export const isPrune = (input: unknown) => typia.plain.isPrune<PlainUser>(input);
|
|
308
|
-
export const validatePrune = (input: unknown) => typia.plain.validatePrune<PlainUser>(input);
|
|
309
|
-
export const createClone = typia.plain.createClone<PlainUser>();
|
|
310
|
-
export const createAssertClone = typia.plain.createAssertClone<PlainUser>();
|
|
311
|
-
export const createIsClone = typia.plain.createIsClone<PlainUser>();
|
|
312
|
-
export const createValidateClone = typia.plain.createValidateClone<PlainUser>();
|
|
313
|
-
export const createPrune = typia.plain.createPrune<PlainUser>();
|
|
314
|
-
export const createAssertPrune = typia.plain.createAssertPrune<PlainUser>();
|
|
315
|
-
export const createIsPrune = typia.plain.createIsPrune<PlainUser>();
|
|
316
|
-
export const createValidatePrune = typia.plain.createValidatePrune<PlainUser>();
|
|
317
|
-
export const classify = (input: PlainAccount) => typia.plain.classify<PlainAccount>(input);
|
|
318
|
-
export const assertClassify = (input: unknown) => typia.plain.assertClassify<PlainAccount>(input);
|
|
319
|
-
export const validateClassify = (input: unknown) => typia.plain.validateClassify<PlainAccount>(input);
|
|
320
|
-
export const createClassify = typia.plain.createClassify<PlainAccount>();
|
|
321
|
-
export const createAssertClassify = typia.plain.createAssertClassify<PlainAccount>();
|
|
322
|
-
export const createValidateClassify = typia.plain.createValidateClassify<PlainAccount>();
|
|
323
|
-
export const literals = typia.reflect.literals<false | 1 | "two">();
|
|
324
|
-
export const createCamel = typia.notations.createCamel<PlainUser>();
|
|
325
|
-
export const createAssertCamel = typia.notations.createAssertCamel<PlainUser>();
|
|
326
|
-
export const createIsCamel = typia.notations.createIsCamel<PlainUser>();
|
|
327
|
-
export const createValidateCamel = typia.notations.createValidateCamel<PlainUser>();
|
|
328
|
-
export const createPascal = typia.notations.createPascal<PlainUser>();
|
|
329
|
-
export const createAssertPascal = typia.notations.createAssertPascal<PlainUser>();
|
|
330
|
-
export const createIsPascal = typia.notations.createIsPascal<PlainUser>();
|
|
331
|
-
export const createValidatePascal = typia.notations.createValidatePascal<PlainUser>();
|
|
332
|
-
export const createSnake = typia.notations.createSnake<PlainUser>();
|
|
333
|
-
export const createAssertSnake = typia.notations.createAssertSnake<PlainUser>();
|
|
334
|
-
export const createIsSnake = typia.notations.createIsSnake<PlainUser>();
|
|
335
|
-
export const createValidateSnake = typia.notations.createValidateSnake<PlainUser>();
|
|
336
|
-
`
|
|
337
|
-
|
|
338
|
-
const transformCoverageFunctionalSource = `import typia from "typia";
|
|
339
|
-
|
|
340
|
-
interface Payload {
|
|
341
|
-
id: string;
|
|
342
|
-
count: number;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
type Handler = (payload: Payload, flag?: boolean) => Promise<Payload>;
|
|
346
|
-
|
|
347
|
-
const handler: Handler = async (payload) => payload;
|
|
348
|
-
const errorFactory = (props: typia.TypeGuardError.IProps): Error => new Error(props.path);
|
|
349
|
-
|
|
350
|
-
export const assertFunction = typia.functional.assertFunction<Handler>(handler, errorFactory);
|
|
351
|
-
export const assertParameters = typia.functional.assertParameters<Handler>(handler, errorFactory);
|
|
352
|
-
export const assertReturn = typia.functional.assertReturn<Handler>(handler, errorFactory);
|
|
353
|
-
export const assertEqualsFunction = typia.functional.assertEqualsFunction<Handler>(handler, errorFactory);
|
|
354
|
-
export const assertEqualsParameters = typia.functional.assertEqualsParameters<Handler>(handler, errorFactory);
|
|
355
|
-
export const assertEqualsReturn = typia.functional.assertEqualsReturn<Handler>(handler, errorFactory);
|
|
356
|
-
export const isFunction = typia.functional.isFunction<Handler>(handler);
|
|
357
|
-
export const isParameters = typia.functional.isParameters<Handler>(handler);
|
|
358
|
-
export const isReturn = typia.functional.isReturn<Handler>(handler);
|
|
359
|
-
export const equalsFunction = typia.functional.equalsFunction<Handler>(handler);
|
|
360
|
-
export const equalsParameters = typia.functional.equalsParameters<Handler>(handler);
|
|
361
|
-
export const equalsReturn = typia.functional.equalsReturn<Handler>(handler);
|
|
362
|
-
export const validateFunction = typia.functional.validateFunction<Handler>(handler);
|
|
363
|
-
export const validateParameters = typia.functional.validateParameters<Handler>(handler);
|
|
364
|
-
export const validateReturn = typia.functional.validateReturn<Handler>(handler);
|
|
365
|
-
export const validateEqualsFunction = typia.functional.validateEqualsFunction<Handler>(handler);
|
|
366
|
-
export const validateEqualsParameters = typia.functional.validateEqualsParameters<Handler>(handler);
|
|
367
|
-
export const validateEqualsReturn = typia.functional.validateEqualsReturn<Handler>(handler);
|
|
368
|
-
`
|
|
369
|
-
|
|
370
|
-
const transformCoverageComplexSource = `import typia, { tags } from "typia";
|
|
371
|
-
|
|
372
|
-
type Code = ` + "`code-${number}-${string}`" + `;
|
|
373
|
-
type ObjectIntersection = { left: string } & { right: number };
|
|
374
|
-
type OptionalIntersection = { optional?: string } & { required: number };
|
|
375
|
-
type TaggedString = string & tags.Format<"uuid">;
|
|
376
|
-
type TaggedNumber = number & tags.Minimum<1> & tags.Maximum<10>;
|
|
377
|
-
type TaggedArray = Array<string> & tags.MinItems<1> & tags.MaxItems<4>;
|
|
378
|
-
type TaggedLiteral = "alpha" & tags.JsonSchemaPlugin<{ "x-literal": "alpha" }>;
|
|
379
|
-
type TaggedTemplate = ` + "`item-${number}`" + ` & tags.Pattern<"^item-">;
|
|
380
|
-
type TaggedBytes = Uint8Array & tags.JsonSchemaPlugin<{ "x-bytes": true }>;
|
|
381
|
-
type TaggedSet = Set<string> & tags.JsonSchemaPlugin<{ "x-set": true }>;
|
|
382
|
-
type TaggedMap = Map<string, number> & tags.JsonSchemaPlugin<{ "x-map": true }>;
|
|
383
|
-
type TaggedObject = Nested & tags.JsonSchemaPlugin<{ "x-object": true }>;
|
|
384
|
-
|
|
385
|
-
interface Nested {
|
|
386
|
-
id: string & tags.Format<"uuid">;
|
|
387
|
-
count: number & tags.Minimum<1> & tags.Maximum<10>;
|
|
388
|
-
label: "alpha" | "beta" | "gamma";
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
interface Complex {
|
|
392
|
-
tuple: [string, number, boolean?, ...Array<"tail">];
|
|
393
|
-
readonlyArray: readonly Nested[];
|
|
394
|
-
set: Set<Nested>;
|
|
395
|
-
map: Map<string, Nested>;
|
|
396
|
-
date: Date;
|
|
397
|
-
bytes: Uint8Array;
|
|
398
|
-
int16: Int16Array;
|
|
399
|
-
float32: Float32Array;
|
|
400
|
-
buffer: ArrayBuffer;
|
|
401
|
-
view: DataView;
|
|
402
|
-
pattern: RegExp;
|
|
403
|
-
code: Code;
|
|
404
|
-
big: bigint;
|
|
405
|
-
dynamic: Record<string, Nested | null>;
|
|
406
|
-
intersected: ObjectIntersection;
|
|
407
|
-
optionalIntersected: OptionalIntersection;
|
|
408
|
-
taggedString: TaggedString;
|
|
409
|
-
taggedNumber: TaggedNumber;
|
|
410
|
-
taggedArray: TaggedArray;
|
|
411
|
-
taggedLiteral: TaggedLiteral;
|
|
412
|
-
taggedTemplate: TaggedTemplate;
|
|
413
|
-
taggedBytes: TaggedBytes;
|
|
414
|
-
taggedSet: TaggedSet;
|
|
415
|
-
taggedMap: TaggedMap;
|
|
416
|
-
taggedObject: TaggedObject;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
interface JsonComplex {
|
|
420
|
-
tuple: [string, number, boolean, "tail"];
|
|
421
|
-
readonlyArray: readonly Nested[];
|
|
422
|
-
code: Code;
|
|
423
|
-
dynamic: Record<string, Nested | null>;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
export const isComplex = (input: unknown) => typia.is<Complex>(input);
|
|
427
|
-
export const assertComplex = (input: unknown) => typia.assert<Complex>(input);
|
|
428
|
-
export const validateComplex = (input: unknown) => typia.validate<Complex>(input);
|
|
429
|
-
export const isObjectIntersection = (input: unknown) => typia.is<ObjectIntersection>(input);
|
|
430
|
-
export const isOptionalIntersection = (input: unknown) => typia.is<OptionalIntersection>(input);
|
|
431
|
-
export const isTaggedString = (input: unknown) => typia.is<TaggedString>(input);
|
|
432
|
-
export const isTaggedNumber = (input: unknown) => typia.is<TaggedNumber>(input);
|
|
433
|
-
export const isTaggedArray = (input: unknown) => typia.is<TaggedArray>(input);
|
|
434
|
-
export const isTaggedLiteral = (input: unknown) => typia.is<TaggedLiteral>(input);
|
|
435
|
-
export const isTaggedTemplate = (input: unknown) => typia.is<TaggedTemplate>(input);
|
|
436
|
-
export const isTaggedBytes = (input: unknown) => typia.is<TaggedBytes>(input);
|
|
437
|
-
export const isTaggedSet = (input: unknown) => typia.is<TaggedSet>(input);
|
|
438
|
-
export const isTaggedMap = (input: unknown) => typia.is<TaggedMap>(input);
|
|
439
|
-
export const isTaggedObject = (input: unknown) => typia.is<TaggedObject>(input);
|
|
440
|
-
export const randomComplex = () => typia.random<Complex>();
|
|
441
|
-
export const createRandomComplex = typia.createRandom<Complex>();
|
|
442
|
-
export const cloneComplex = typia.plain.createClone<Complex>();
|
|
443
|
-
export const assertCloneComplex = typia.plain.createAssertClone<Complex>();
|
|
444
|
-
export const isCloneComplex = typia.plain.createIsClone<Complex>();
|
|
445
|
-
export const validateCloneComplex = typia.plain.createValidateClone<Complex>();
|
|
446
|
-
export const stringifyComplex = typia.json.createStringify<JsonComplex>();
|
|
447
|
-
export const assertStringifyComplex = typia.json.createAssertStringify<JsonComplex>();
|
|
448
|
-
export const isStringifyComplex = typia.json.createIsStringify<JsonComplex>();
|
|
449
|
-
export const validateStringifyComplex = typia.json.createValidateStringify<JsonComplex>();
|
|
450
|
-
`
|
|
451
|
-
|
|
452
|
-
const transformCoverageProtobufSource = `import typia, { tags } from "typia";
|
|
453
|
-
|
|
454
|
-
interface ProtoChild {
|
|
455
|
-
id: string;
|
|
456
|
-
flag: boolean;
|
|
457
|
-
int32: number & tags.Type<"int32">;
|
|
458
|
-
uint32: number & tags.Type<"uint32">;
|
|
459
|
-
float: number & tags.Type<"float">;
|
|
460
|
-
double: number & tags.Type<"double">;
|
|
461
|
-
big: bigint & tags.Type<"int64">;
|
|
462
|
-
unsignedBig: bigint & tags.Type<"uint64">;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
interface ProtoAlpha {
|
|
466
|
-
kind: "alpha";
|
|
467
|
-
value: string;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
interface ProtoBeta {
|
|
471
|
-
kind: "beta";
|
|
472
|
-
count: number & tags.Type<"int32">;
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
interface ProtoFile {
|
|
476
|
-
name: string;
|
|
477
|
-
children: ProtoChild[];
|
|
478
|
-
flags: boolean[];
|
|
479
|
-
values: Array<number & tags.Type<"float">>;
|
|
480
|
-
lookup: Map<string, ProtoChild>;
|
|
481
|
-
dictionary: Record<string, ProtoChild>;
|
|
482
|
-
union: ProtoAlpha | ProtoBeta;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
export const message = typia.protobuf.message<ProtoFile>();
|
|
486
|
-
export const assertDecode = (input: Uint8Array) => typia.protobuf.assertDecode<ProtoFile>(input);
|
|
487
|
-
export const isDecode = (input: Uint8Array) => typia.protobuf.isDecode<ProtoFile>(input);
|
|
488
|
-
export const validateDecode = (input: Uint8Array) => typia.protobuf.validateDecode<ProtoFile>(input);
|
|
489
|
-
export const assertEncode = (input: unknown) => typia.protobuf.assertEncode<ProtoFile>(input);
|
|
490
|
-
export const isEncode = (input: unknown) => typia.protobuf.isEncode<ProtoFile>(input);
|
|
491
|
-
export const validateEncode = (input: unknown) => typia.protobuf.validateEncode<ProtoFile>(input);
|
|
492
|
-
export const createDecode = typia.protobuf.createDecode<ProtoFile>();
|
|
493
|
-
export const createIsDecode = typia.protobuf.createIsDecode<ProtoFile>();
|
|
494
|
-
export const createAssertDecode = typia.protobuf.createAssertDecode<ProtoFile>();
|
|
495
|
-
export const createValidateDecode = typia.protobuf.createValidateDecode<ProtoFile>();
|
|
496
|
-
export const createEncode = typia.protobuf.createEncode<ProtoFile>();
|
|
497
|
-
export const createIsEncode = typia.protobuf.createIsEncode<ProtoFile>();
|
|
498
|
-
export const createAssertEncode = typia.protobuf.createAssertEncode<ProtoFile>();
|
|
499
|
-
export const createValidateEncode = typia.protobuf.createValidateEncode<ProtoFile>();
|
|
500
|
-
`
|
|
501
|
-
|
|
502
|
-
const transformCoverageInvalidIntersectionSource = `import typia, { tags } from "typia";
|
|
503
|
-
|
|
504
|
-
type StandaloneTag = tags.Format<"uuid">;
|
|
505
|
-
type Nonsensible = string & number;
|
|
506
|
-
type TupleTag = [string] & tags.MinItems<1>;
|
|
507
|
-
type WrongTarget = { value: string } & tags.Format<"uuid">;
|
|
508
|
-
|
|
509
|
-
export const standaloneTag = typia.createIs<StandaloneTag>();
|
|
510
|
-
export const nonsensible = typia.createIs<Nonsensible>();
|
|
511
|
-
export const tupleTag = typia.createIs<TupleTag>();
|
|
512
|
-
export const wrongTarget = typia.createIs<WrongTarget>();
|
|
513
|
-
`
|
|
514
|
-
|
|
515
|
-
const transformCoverageReflectMetadataSource = `import { metadata } from "./typia/src/reflect";
|
|
516
|
-
|
|
517
|
-
interface Reflected {
|
|
518
|
-
id: string;
|
|
519
|
-
nested: { value: number | string };
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
export const reflected = metadata<[Reflected, string]>();
|
|
523
|
-
`
|
|
524
|
-
|
|
525
|
-
const transformCoverageReflectStubSource = `export function metadata<Types extends unknown[]>(): unknown {
|
|
526
|
-
throw new Error("transform-only stub");
|
|
527
|
-
}
|
|
528
|
-
`
|
|
1
|
+
//go:build typia_native_internal
|
|
2
|
+
// +build typia_native_internal
|
|
3
|
+
|
|
4
|
+
package main
|
|
5
|
+
|
|
6
|
+
import (
|
|
7
|
+
"bytes"
|
|
8
|
+
"os"
|
|
9
|
+
"path/filepath"
|
|
10
|
+
"runtime"
|
|
11
|
+
"strings"
|
|
12
|
+
"testing"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
// TestTransformSyntheticEmitCoverage exercises typia transforms inside Go coverage.
|
|
16
|
+
//
|
|
17
|
+
// The TypeScript projects run the native backend as a separate process, so they
|
|
18
|
+
// validate behavior but do not contribute to Go coverage profiles. This test
|
|
19
|
+
// builds temporary TypeScript projects and calls the command entrypoints
|
|
20
|
+
// directly, which makes transformer, adapter, and programmer code visible to
|
|
21
|
+
// `-coverpkg`.
|
|
22
|
+
//
|
|
23
|
+
// 1. Create isolated temporary TypeScript projects under the native package.
|
|
24
|
+
// 2. Transform each project's `src/main.ts` to TypeScript output in memory.
|
|
25
|
+
// 3. Exercise JavaScript single-file output error handling for synthetic projects.
|
|
26
|
+
// 4. Cover reflect metadata, protobuf maps, and object-union emit paths.
|
|
27
|
+
// 5. Run build/check/project-transform command paths against the same project.
|
|
28
|
+
func TestTransformSyntheticEmitCoverage(t *testing.T) {
|
|
29
|
+
cases := []struct {
|
|
30
|
+
name string
|
|
31
|
+
source string
|
|
32
|
+
}{
|
|
33
|
+
{"core", transformCoverageCoreSource},
|
|
34
|
+
{"json", transformCoverageJSONSource},
|
|
35
|
+
{"http", transformCoverageHTTPSource},
|
|
36
|
+
{"plain", transformCoveragePlainSource},
|
|
37
|
+
{"functional", transformCoverageFunctionalSource},
|
|
38
|
+
{"complex", transformCoverageComplexSource},
|
|
39
|
+
{"protobuf", transformCoverageProtobufSource},
|
|
40
|
+
{"reflect-metadata", transformCoverageReflectMetadataSource},
|
|
41
|
+
}
|
|
42
|
+
projects := map[string]string{}
|
|
43
|
+
for _, tc := range cases {
|
|
44
|
+
tc := tc
|
|
45
|
+
projects[tc.name] = transformCoverageProject(t, tc.name, tc.source)
|
|
46
|
+
t.Run(tc.name+"_ts", func(t *testing.T) {
|
|
47
|
+
out, errText, code := transformCoverageCapture(func() int {
|
|
48
|
+
return runTransform([]string{
|
|
49
|
+
"--cwd", projects[tc.name],
|
|
50
|
+
"--tsconfig", "tsconfig.json",
|
|
51
|
+
"--file", "src/main.ts",
|
|
52
|
+
"--output", "ts",
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
if code != 0 {
|
|
56
|
+
t.Fatalf("transform ts failed for %s: code=%d stderr=\n%s", tc.name, code, errText)
|
|
57
|
+
}
|
|
58
|
+
if !strings.Contains(out, "export") && !strings.Contains(out, "const") {
|
|
59
|
+
t.Fatalf("transform ts output for %s looks empty:\n%s", tc.name, out)
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
for _, tc := range cases {
|
|
64
|
+
tc := tc
|
|
65
|
+
t.Run(tc.name+"_js", func(t *testing.T) {
|
|
66
|
+
_, errText, code := transformCoverageCapture(func() int {
|
|
67
|
+
return runTransform([]string{
|
|
68
|
+
"--cwd", projects[tc.name],
|
|
69
|
+
"--tsconfig", "tsconfig.json",
|
|
70
|
+
"--file", "src/main.ts",
|
|
71
|
+
"--output", "js",
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
if code != 3 || !strings.Contains(errText, "no output produced") {
|
|
75
|
+
t.Fatalf("transform js should report no output for %s: code=%d stderr=\n%s", tc.name, code, errText)
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
}
|
|
79
|
+
core := projects["core"]
|
|
80
|
+
if _, errText, code := transformCoverageCapture(func() int {
|
|
81
|
+
return runBuild([]string{
|
|
82
|
+
"--cwd", core,
|
|
83
|
+
"--tsconfig", "tsconfig.json",
|
|
84
|
+
"--noEmit",
|
|
85
|
+
"--verbose",
|
|
86
|
+
})
|
|
87
|
+
}); code != 0 {
|
|
88
|
+
t.Fatalf("build check failed: code=%d stderr=\n%s", code, errText)
|
|
89
|
+
}
|
|
90
|
+
if out, errText, code := transformCoverageCapture(func() int {
|
|
91
|
+
return runTransform([]string{
|
|
92
|
+
"--cwd", core,
|
|
93
|
+
"--tsconfig", "tsconfig.json",
|
|
94
|
+
})
|
|
95
|
+
}); code != 0 {
|
|
96
|
+
t.Fatalf("project transform failed: code=%d stderr=\n%s", code, errText)
|
|
97
|
+
} else if !strings.Contains(out, `"typescript"`) {
|
|
98
|
+
t.Fatalf("project transform output should include TypeScript map:\n%s", out)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
func transformCoverageProject(t *testing.T, name string, source string) string {
|
|
103
|
+
t.Helper()
|
|
104
|
+
root := transformCoverageRepoRoot(t)
|
|
105
|
+
base := filepath.Join(root, "packages", "typia", "native", ".tmp-ttsc-typia-tests")
|
|
106
|
+
if err := os.MkdirAll(base, 0o755); err != nil {
|
|
107
|
+
t.Fatalf("mkdir temp base: %v", err)
|
|
108
|
+
}
|
|
109
|
+
dir, err := os.MkdirTemp(base, name+"-")
|
|
110
|
+
if err != nil {
|
|
111
|
+
t.Fatalf("create temp fixture: %v", err)
|
|
112
|
+
}
|
|
113
|
+
t.Cleanup(func() {
|
|
114
|
+
_ = os.RemoveAll(dir)
|
|
115
|
+
})
|
|
116
|
+
src := filepath.Join(dir, "src")
|
|
117
|
+
if err := os.MkdirAll(src, 0o755); err != nil {
|
|
118
|
+
t.Fatalf("mkdir fixture src: %v", err)
|
|
119
|
+
}
|
|
120
|
+
if err := os.WriteFile(filepath.Join(dir, "tsconfig.json"), []byte(transformCoverageTSConfig), 0o644); err != nil {
|
|
121
|
+
t.Fatalf("write tsconfig: %v", err)
|
|
122
|
+
}
|
|
123
|
+
if err := os.WriteFile(filepath.Join(src, "main.ts"), []byte(source), 0o644); err != nil {
|
|
124
|
+
t.Fatalf("write source: %v", err)
|
|
125
|
+
}
|
|
126
|
+
if name == "reflect-metadata" {
|
|
127
|
+
reflectDir := filepath.Join(src, "typia", "src")
|
|
128
|
+
if err := os.MkdirAll(reflectDir, 0o755); err != nil {
|
|
129
|
+
t.Fatalf("mkdir reflect stub: %v", err)
|
|
130
|
+
}
|
|
131
|
+
if err := os.WriteFile(filepath.Join(reflectDir, "reflect.ts"), []byte(transformCoverageReflectStubSource), 0o644); err != nil {
|
|
132
|
+
t.Fatalf("write reflect stub: %v", err)
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return dir
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
func transformCoverageRepoRoot(t *testing.T) string {
|
|
139
|
+
t.Helper()
|
|
140
|
+
_, file, _, ok := runtime.Caller(0)
|
|
141
|
+
if !ok {
|
|
142
|
+
t.Fatal("runtime.Caller failed")
|
|
143
|
+
}
|
|
144
|
+
return filepath.Clean(filepath.Join(filepath.Dir(file), "..", "..", "..", "..", ".."))
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
func transformCoverageCapture(run func() int) (string, string, int) {
|
|
148
|
+
var out bytes.Buffer
|
|
149
|
+
var err bytes.Buffer
|
|
150
|
+
oldStdout := stdout
|
|
151
|
+
oldStderr := stderr
|
|
152
|
+
stdout = &out
|
|
153
|
+
stderr = &err
|
|
154
|
+
defer func() {
|
|
155
|
+
stdout = oldStdout
|
|
156
|
+
stderr = oldStderr
|
|
157
|
+
}()
|
|
158
|
+
code := run()
|
|
159
|
+
return out.String(), err.String(), code
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const transformCoverageTSConfig = `{
|
|
163
|
+
"compilerOptions": {
|
|
164
|
+
"target": "ES2022",
|
|
165
|
+
"module": "commonjs",
|
|
166
|
+
"moduleResolution": "bundler",
|
|
167
|
+
"ignoreDeprecations": "6.0",
|
|
168
|
+
"types": ["*"],
|
|
169
|
+
"esModuleInterop": true,
|
|
170
|
+
"strict": true,
|
|
171
|
+
"skipLibCheck": true,
|
|
172
|
+
"rootDir": "src",
|
|
173
|
+
"outDir": "dist"
|
|
174
|
+
},
|
|
175
|
+
"include": ["src"]
|
|
176
|
+
}
|
|
177
|
+
`
|
|
178
|
+
|
|
179
|
+
const transformCoverageCoreSource = `import typia, { tags } from "typia";
|
|
180
|
+
|
|
181
|
+
interface User {
|
|
182
|
+
id: string & tags.Format<"uuid">;
|
|
183
|
+
age: number & tags.Type<"uint32">;
|
|
184
|
+
name: string;
|
|
185
|
+
active?: boolean;
|
|
186
|
+
tags: string[];
|
|
187
|
+
tuple: [string, number, boolean?];
|
|
188
|
+
nested: { value: string | number | null };
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export const check = (input: unknown): boolean => typia.is<User>(input);
|
|
192
|
+
export const assertUser = (input: unknown): User => typia.assert<User>(input);
|
|
193
|
+
export const assertGuardUser = (input: unknown): void => typia.assertGuard<User>(input);
|
|
194
|
+
export const validateUser = (input: unknown) => typia.validate<User>(input);
|
|
195
|
+
export const equalsUser = (input: unknown): boolean => typia.equals<User>(input);
|
|
196
|
+
export const assertEqualsUser = (input: unknown): User => typia.assertEquals<User>(input);
|
|
197
|
+
export const assertGuardEqualsUser = (input: unknown): void => typia.assertGuardEquals<User>(input);
|
|
198
|
+
export const validateEqualsUser = (input: unknown) => typia.validateEquals<User>(input);
|
|
199
|
+
export const randomUser = (): User => typia.random<User>();
|
|
200
|
+
export const reflectName = typia.reflect.name<User>();
|
|
201
|
+
export const reflectRegularName = typia.reflect.name<User, true>();
|
|
202
|
+
// @ts-ignore legacy native transformer entrypoint
|
|
203
|
+
export const metadata = typia.reflect.metadata<[User, string]>();
|
|
204
|
+
export const schema = typia.reflect.schema<User>();
|
|
205
|
+
export const schemas = typia.reflect.schemas<[User]>();
|
|
206
|
+
export const createIs = typia.createIs<User>();
|
|
207
|
+
export const createAssert = typia.createAssert<User>();
|
|
208
|
+
export const createAssertGuard = typia.createAssertGuard<User>();
|
|
209
|
+
export const createValidate = typia.createValidate<User>();
|
|
210
|
+
export const createEquals = typia.createEquals<User>();
|
|
211
|
+
export const createAssertEquals = typia.createAssertEquals<User>();
|
|
212
|
+
export const createAssertGuardEquals = typia.createAssertGuardEquals<User>();
|
|
213
|
+
export const createValidateEquals = typia.createValidateEquals<User>();
|
|
214
|
+
export const createRandom = typia.createRandom<User>();
|
|
215
|
+
`
|
|
216
|
+
|
|
217
|
+
const transformCoverageJSONSource = `import typia from "typia";
|
|
218
|
+
|
|
219
|
+
interface JsonUser {
|
|
220
|
+
id: string;
|
|
221
|
+
created_at: string;
|
|
222
|
+
nested: Array<{ value: number | string | null }>;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export const schema = typia.json.schema<JsonUser>();
|
|
226
|
+
export const schema30 = typia.json.schema<JsonUser, "3.0">();
|
|
227
|
+
export const schemas = typia.json.schemas<[JsonUser]>();
|
|
228
|
+
export const schemas30 = typia.json.schemas<[JsonUser], "3.0">();
|
|
229
|
+
export const assertParse = (input: string) => typia.json.assertParse<JsonUser>(input);
|
|
230
|
+
export const isParse = (input: string) => typia.json.isParse<JsonUser>(input);
|
|
231
|
+
export const validateParse = (input: string) => typia.json.validateParse<JsonUser>(input);
|
|
232
|
+
export const assertStringify = (input: unknown) => typia.json.assertStringify<JsonUser>(input);
|
|
233
|
+
export const isStringify = (input: unknown) => typia.json.isStringify<JsonUser>(input);
|
|
234
|
+
export const validateStringify = (input: unknown) => typia.json.validateStringify<JsonUser>(input);
|
|
235
|
+
export const createStringify = typia.json.createStringify<JsonUser>();
|
|
236
|
+
export const createAssertStringify = typia.json.createAssertStringify<JsonUser>();
|
|
237
|
+
export const createIsStringify = typia.json.createIsStringify<JsonUser>();
|
|
238
|
+
export const createValidateStringify = typia.json.createValidateStringify<JsonUser>();
|
|
239
|
+
export const createIsParse = typia.json.createIsParse<JsonUser>();
|
|
240
|
+
export const createAssertParse = typia.json.createAssertParse<JsonUser>();
|
|
241
|
+
export const createValidateParse = typia.json.createValidateParse<JsonUser>();
|
|
242
|
+
`
|
|
243
|
+
|
|
244
|
+
const transformCoverageHTTPSource = `import typia, { tags } from "typia";
|
|
245
|
+
|
|
246
|
+
interface QueryInput {
|
|
247
|
+
id: string;
|
|
248
|
+
limit?: number & tags.Type<"uint32">;
|
|
249
|
+
tags?: string[];
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
interface HeaderInput {
|
|
253
|
+
authorization: string;
|
|
254
|
+
"x-request-id"?: string;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
interface FormInput {
|
|
258
|
+
title: string;
|
|
259
|
+
count?: number;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export const assertQuery = (input: URLSearchParams) => typia.http.assertQuery<QueryInput>(input);
|
|
263
|
+
export const isQuery = (input: URLSearchParams) => typia.http.isQuery<QueryInput>(input);
|
|
264
|
+
export const validateQuery = (input: URLSearchParams) => typia.http.validateQuery<QueryInput>(input);
|
|
265
|
+
export const assertHeaders = (input: Headers) => typia.http.assertHeaders<HeaderInput>(input);
|
|
266
|
+
export const isHeaders = (input: Headers) => typia.http.isHeaders<HeaderInput>(input);
|
|
267
|
+
export const validateHeaders = (input: Headers) => typia.http.validateHeaders<HeaderInput>(input);
|
|
268
|
+
export const assertFormData = (input: FormData) => typia.http.assertFormData<FormInput>(input);
|
|
269
|
+
export const isFormData = (input: FormData) => typia.http.isFormData<FormInput>(input);
|
|
270
|
+
export const validateFormData = (input: FormData) => typia.http.validateFormData<FormInput>(input);
|
|
271
|
+
export const createQuery = typia.http.createQuery<QueryInput>();
|
|
272
|
+
export const createAssertQuery = typia.http.createAssertQuery<QueryInput>();
|
|
273
|
+
export const createIsQuery = typia.http.createIsQuery<QueryInput>();
|
|
274
|
+
export const createValidateQuery = typia.http.createValidateQuery<QueryInput>();
|
|
275
|
+
export const createHeaders = typia.http.createHeaders<HeaderInput>();
|
|
276
|
+
export const createAssertHeaders = typia.http.createAssertHeaders<HeaderInput>();
|
|
277
|
+
export const createIsHeaders = typia.http.createIsHeaders<HeaderInput>();
|
|
278
|
+
export const createValidateHeaders = typia.http.createValidateHeaders<HeaderInput>();
|
|
279
|
+
export const createFormData = typia.http.createFormData<FormInput>();
|
|
280
|
+
export const createAssertFormData = typia.http.createAssertFormData<FormInput>();
|
|
281
|
+
export const createIsFormData = typia.http.createIsFormData<FormInput>();
|
|
282
|
+
export const createValidateFormData = typia.http.createValidateFormData<FormInput>();
|
|
283
|
+
export const createParameter = typia.http.createParameter<string | null>();
|
|
284
|
+
`
|
|
285
|
+
|
|
286
|
+
const transformCoveragePlainSource = `import typia from "typia";
|
|
287
|
+
|
|
288
|
+
interface PlainUser {
|
|
289
|
+
id: string;
|
|
290
|
+
snake_name: string;
|
|
291
|
+
children?: PlainUser[];
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
class PlainAccount {
|
|
295
|
+
id!: string;
|
|
296
|
+
snake_name!: string;
|
|
297
|
+
children?: PlainAccount[];
|
|
298
|
+
describe(): string {
|
|
299
|
+
return this.id;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export const clone = (input: unknown) => typia.plain.assertClone<PlainUser>(input);
|
|
304
|
+
export const isClone = (input: unknown) => typia.plain.isClone<PlainUser>(input);
|
|
305
|
+
export const validateClone = (input: unknown) => typia.plain.validateClone<PlainUser>(input);
|
|
306
|
+
export const prune = (input: PlainUser) => typia.plain.assertPrune<PlainUser>(input);
|
|
307
|
+
export const isPrune = (input: unknown) => typia.plain.isPrune<PlainUser>(input);
|
|
308
|
+
export const validatePrune = (input: unknown) => typia.plain.validatePrune<PlainUser>(input);
|
|
309
|
+
export const createClone = typia.plain.createClone<PlainUser>();
|
|
310
|
+
export const createAssertClone = typia.plain.createAssertClone<PlainUser>();
|
|
311
|
+
export const createIsClone = typia.plain.createIsClone<PlainUser>();
|
|
312
|
+
export const createValidateClone = typia.plain.createValidateClone<PlainUser>();
|
|
313
|
+
export const createPrune = typia.plain.createPrune<PlainUser>();
|
|
314
|
+
export const createAssertPrune = typia.plain.createAssertPrune<PlainUser>();
|
|
315
|
+
export const createIsPrune = typia.plain.createIsPrune<PlainUser>();
|
|
316
|
+
export const createValidatePrune = typia.plain.createValidatePrune<PlainUser>();
|
|
317
|
+
export const classify = (input: PlainAccount) => typia.plain.classify<PlainAccount>(input);
|
|
318
|
+
export const assertClassify = (input: unknown) => typia.plain.assertClassify<PlainAccount>(input);
|
|
319
|
+
export const validateClassify = (input: unknown) => typia.plain.validateClassify<PlainAccount>(input);
|
|
320
|
+
export const createClassify = typia.plain.createClassify<PlainAccount>();
|
|
321
|
+
export const createAssertClassify = typia.plain.createAssertClassify<PlainAccount>();
|
|
322
|
+
export const createValidateClassify = typia.plain.createValidateClassify<PlainAccount>();
|
|
323
|
+
export const literals = typia.reflect.literals<false | 1 | "two">();
|
|
324
|
+
export const createCamel = typia.notations.createCamel<PlainUser>();
|
|
325
|
+
export const createAssertCamel = typia.notations.createAssertCamel<PlainUser>();
|
|
326
|
+
export const createIsCamel = typia.notations.createIsCamel<PlainUser>();
|
|
327
|
+
export const createValidateCamel = typia.notations.createValidateCamel<PlainUser>();
|
|
328
|
+
export const createPascal = typia.notations.createPascal<PlainUser>();
|
|
329
|
+
export const createAssertPascal = typia.notations.createAssertPascal<PlainUser>();
|
|
330
|
+
export const createIsPascal = typia.notations.createIsPascal<PlainUser>();
|
|
331
|
+
export const createValidatePascal = typia.notations.createValidatePascal<PlainUser>();
|
|
332
|
+
export const createSnake = typia.notations.createSnake<PlainUser>();
|
|
333
|
+
export const createAssertSnake = typia.notations.createAssertSnake<PlainUser>();
|
|
334
|
+
export const createIsSnake = typia.notations.createIsSnake<PlainUser>();
|
|
335
|
+
export const createValidateSnake = typia.notations.createValidateSnake<PlainUser>();
|
|
336
|
+
`
|
|
337
|
+
|
|
338
|
+
const transformCoverageFunctionalSource = `import typia from "typia";
|
|
339
|
+
|
|
340
|
+
interface Payload {
|
|
341
|
+
id: string;
|
|
342
|
+
count: number;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
type Handler = (payload: Payload, flag?: boolean) => Promise<Payload>;
|
|
346
|
+
|
|
347
|
+
const handler: Handler = async (payload) => payload;
|
|
348
|
+
const errorFactory = (props: typia.TypeGuardError.IProps): Error => new Error(props.path);
|
|
349
|
+
|
|
350
|
+
export const assertFunction = typia.functional.assertFunction<Handler>(handler, errorFactory);
|
|
351
|
+
export const assertParameters = typia.functional.assertParameters<Handler>(handler, errorFactory);
|
|
352
|
+
export const assertReturn = typia.functional.assertReturn<Handler>(handler, errorFactory);
|
|
353
|
+
export const assertEqualsFunction = typia.functional.assertEqualsFunction<Handler>(handler, errorFactory);
|
|
354
|
+
export const assertEqualsParameters = typia.functional.assertEqualsParameters<Handler>(handler, errorFactory);
|
|
355
|
+
export const assertEqualsReturn = typia.functional.assertEqualsReturn<Handler>(handler, errorFactory);
|
|
356
|
+
export const isFunction = typia.functional.isFunction<Handler>(handler);
|
|
357
|
+
export const isParameters = typia.functional.isParameters<Handler>(handler);
|
|
358
|
+
export const isReturn = typia.functional.isReturn<Handler>(handler);
|
|
359
|
+
export const equalsFunction = typia.functional.equalsFunction<Handler>(handler);
|
|
360
|
+
export const equalsParameters = typia.functional.equalsParameters<Handler>(handler);
|
|
361
|
+
export const equalsReturn = typia.functional.equalsReturn<Handler>(handler);
|
|
362
|
+
export const validateFunction = typia.functional.validateFunction<Handler>(handler);
|
|
363
|
+
export const validateParameters = typia.functional.validateParameters<Handler>(handler);
|
|
364
|
+
export const validateReturn = typia.functional.validateReturn<Handler>(handler);
|
|
365
|
+
export const validateEqualsFunction = typia.functional.validateEqualsFunction<Handler>(handler);
|
|
366
|
+
export const validateEqualsParameters = typia.functional.validateEqualsParameters<Handler>(handler);
|
|
367
|
+
export const validateEqualsReturn = typia.functional.validateEqualsReturn<Handler>(handler);
|
|
368
|
+
`
|
|
369
|
+
|
|
370
|
+
const transformCoverageComplexSource = `import typia, { tags } from "typia";
|
|
371
|
+
|
|
372
|
+
type Code = ` + "`code-${number}-${string}`" + `;
|
|
373
|
+
type ObjectIntersection = { left: string } & { right: number };
|
|
374
|
+
type OptionalIntersection = { optional?: string } & { required: number };
|
|
375
|
+
type TaggedString = string & tags.Format<"uuid">;
|
|
376
|
+
type TaggedNumber = number & tags.Minimum<1> & tags.Maximum<10>;
|
|
377
|
+
type TaggedArray = Array<string> & tags.MinItems<1> & tags.MaxItems<4>;
|
|
378
|
+
type TaggedLiteral = "alpha" & tags.JsonSchemaPlugin<{ "x-literal": "alpha" }>;
|
|
379
|
+
type TaggedTemplate = ` + "`item-${number}`" + ` & tags.Pattern<"^item-">;
|
|
380
|
+
type TaggedBytes = Uint8Array & tags.JsonSchemaPlugin<{ "x-bytes": true }>;
|
|
381
|
+
type TaggedSet = Set<string> & tags.JsonSchemaPlugin<{ "x-set": true }>;
|
|
382
|
+
type TaggedMap = Map<string, number> & tags.JsonSchemaPlugin<{ "x-map": true }>;
|
|
383
|
+
type TaggedObject = Nested & tags.JsonSchemaPlugin<{ "x-object": true }>;
|
|
384
|
+
|
|
385
|
+
interface Nested {
|
|
386
|
+
id: string & tags.Format<"uuid">;
|
|
387
|
+
count: number & tags.Minimum<1> & tags.Maximum<10>;
|
|
388
|
+
label: "alpha" | "beta" | "gamma";
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
interface Complex {
|
|
392
|
+
tuple: [string, number, boolean?, ...Array<"tail">];
|
|
393
|
+
readonlyArray: readonly Nested[];
|
|
394
|
+
set: Set<Nested>;
|
|
395
|
+
map: Map<string, Nested>;
|
|
396
|
+
date: Date;
|
|
397
|
+
bytes: Uint8Array;
|
|
398
|
+
int16: Int16Array;
|
|
399
|
+
float32: Float32Array;
|
|
400
|
+
buffer: ArrayBuffer;
|
|
401
|
+
view: DataView;
|
|
402
|
+
pattern: RegExp;
|
|
403
|
+
code: Code;
|
|
404
|
+
big: bigint;
|
|
405
|
+
dynamic: Record<string, Nested | null>;
|
|
406
|
+
intersected: ObjectIntersection;
|
|
407
|
+
optionalIntersected: OptionalIntersection;
|
|
408
|
+
taggedString: TaggedString;
|
|
409
|
+
taggedNumber: TaggedNumber;
|
|
410
|
+
taggedArray: TaggedArray;
|
|
411
|
+
taggedLiteral: TaggedLiteral;
|
|
412
|
+
taggedTemplate: TaggedTemplate;
|
|
413
|
+
taggedBytes: TaggedBytes;
|
|
414
|
+
taggedSet: TaggedSet;
|
|
415
|
+
taggedMap: TaggedMap;
|
|
416
|
+
taggedObject: TaggedObject;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
interface JsonComplex {
|
|
420
|
+
tuple: [string, number, boolean, "tail"];
|
|
421
|
+
readonlyArray: readonly Nested[];
|
|
422
|
+
code: Code;
|
|
423
|
+
dynamic: Record<string, Nested | null>;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export const isComplex = (input: unknown) => typia.is<Complex>(input);
|
|
427
|
+
export const assertComplex = (input: unknown) => typia.assert<Complex>(input);
|
|
428
|
+
export const validateComplex = (input: unknown) => typia.validate<Complex>(input);
|
|
429
|
+
export const isObjectIntersection = (input: unknown) => typia.is<ObjectIntersection>(input);
|
|
430
|
+
export const isOptionalIntersection = (input: unknown) => typia.is<OptionalIntersection>(input);
|
|
431
|
+
export const isTaggedString = (input: unknown) => typia.is<TaggedString>(input);
|
|
432
|
+
export const isTaggedNumber = (input: unknown) => typia.is<TaggedNumber>(input);
|
|
433
|
+
export const isTaggedArray = (input: unknown) => typia.is<TaggedArray>(input);
|
|
434
|
+
export const isTaggedLiteral = (input: unknown) => typia.is<TaggedLiteral>(input);
|
|
435
|
+
export const isTaggedTemplate = (input: unknown) => typia.is<TaggedTemplate>(input);
|
|
436
|
+
export const isTaggedBytes = (input: unknown) => typia.is<TaggedBytes>(input);
|
|
437
|
+
export const isTaggedSet = (input: unknown) => typia.is<TaggedSet>(input);
|
|
438
|
+
export const isTaggedMap = (input: unknown) => typia.is<TaggedMap>(input);
|
|
439
|
+
export const isTaggedObject = (input: unknown) => typia.is<TaggedObject>(input);
|
|
440
|
+
export const randomComplex = () => typia.random<Complex>();
|
|
441
|
+
export const createRandomComplex = typia.createRandom<Complex>();
|
|
442
|
+
export const cloneComplex = typia.plain.createClone<Complex>();
|
|
443
|
+
export const assertCloneComplex = typia.plain.createAssertClone<Complex>();
|
|
444
|
+
export const isCloneComplex = typia.plain.createIsClone<Complex>();
|
|
445
|
+
export const validateCloneComplex = typia.plain.createValidateClone<Complex>();
|
|
446
|
+
export const stringifyComplex = typia.json.createStringify<JsonComplex>();
|
|
447
|
+
export const assertStringifyComplex = typia.json.createAssertStringify<JsonComplex>();
|
|
448
|
+
export const isStringifyComplex = typia.json.createIsStringify<JsonComplex>();
|
|
449
|
+
export const validateStringifyComplex = typia.json.createValidateStringify<JsonComplex>();
|
|
450
|
+
`
|
|
451
|
+
|
|
452
|
+
const transformCoverageProtobufSource = `import typia, { tags } from "typia";
|
|
453
|
+
|
|
454
|
+
interface ProtoChild {
|
|
455
|
+
id: string;
|
|
456
|
+
flag: boolean;
|
|
457
|
+
int32: number & tags.Type<"int32">;
|
|
458
|
+
uint32: number & tags.Type<"uint32">;
|
|
459
|
+
float: number & tags.Type<"float">;
|
|
460
|
+
double: number & tags.Type<"double">;
|
|
461
|
+
big: bigint & tags.Type<"int64">;
|
|
462
|
+
unsignedBig: bigint & tags.Type<"uint64">;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
interface ProtoAlpha {
|
|
466
|
+
kind: "alpha";
|
|
467
|
+
value: string;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
interface ProtoBeta {
|
|
471
|
+
kind: "beta";
|
|
472
|
+
count: number & tags.Type<"int32">;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
interface ProtoFile {
|
|
476
|
+
name: string;
|
|
477
|
+
children: ProtoChild[];
|
|
478
|
+
flags: boolean[];
|
|
479
|
+
values: Array<number & tags.Type<"float">>;
|
|
480
|
+
lookup: Map<string, ProtoChild>;
|
|
481
|
+
dictionary: Record<string, ProtoChild>;
|
|
482
|
+
union: ProtoAlpha | ProtoBeta;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
export const message = typia.protobuf.message<ProtoFile>();
|
|
486
|
+
export const assertDecode = (input: Uint8Array) => typia.protobuf.assertDecode<ProtoFile>(input);
|
|
487
|
+
export const isDecode = (input: Uint8Array) => typia.protobuf.isDecode<ProtoFile>(input);
|
|
488
|
+
export const validateDecode = (input: Uint8Array) => typia.protobuf.validateDecode<ProtoFile>(input);
|
|
489
|
+
export const assertEncode = (input: unknown) => typia.protobuf.assertEncode<ProtoFile>(input);
|
|
490
|
+
export const isEncode = (input: unknown) => typia.protobuf.isEncode<ProtoFile>(input);
|
|
491
|
+
export const validateEncode = (input: unknown) => typia.protobuf.validateEncode<ProtoFile>(input);
|
|
492
|
+
export const createDecode = typia.protobuf.createDecode<ProtoFile>();
|
|
493
|
+
export const createIsDecode = typia.protobuf.createIsDecode<ProtoFile>();
|
|
494
|
+
export const createAssertDecode = typia.protobuf.createAssertDecode<ProtoFile>();
|
|
495
|
+
export const createValidateDecode = typia.protobuf.createValidateDecode<ProtoFile>();
|
|
496
|
+
export const createEncode = typia.protobuf.createEncode<ProtoFile>();
|
|
497
|
+
export const createIsEncode = typia.protobuf.createIsEncode<ProtoFile>();
|
|
498
|
+
export const createAssertEncode = typia.protobuf.createAssertEncode<ProtoFile>();
|
|
499
|
+
export const createValidateEncode = typia.protobuf.createValidateEncode<ProtoFile>();
|
|
500
|
+
`
|
|
501
|
+
|
|
502
|
+
const transformCoverageInvalidIntersectionSource = `import typia, { tags } from "typia";
|
|
503
|
+
|
|
504
|
+
type StandaloneTag = tags.Format<"uuid">;
|
|
505
|
+
type Nonsensible = string & number;
|
|
506
|
+
type TupleTag = [string] & tags.MinItems<1>;
|
|
507
|
+
type WrongTarget = { value: string } & tags.Format<"uuid">;
|
|
508
|
+
|
|
509
|
+
export const standaloneTag = typia.createIs<StandaloneTag>();
|
|
510
|
+
export const nonsensible = typia.createIs<Nonsensible>();
|
|
511
|
+
export const tupleTag = typia.createIs<TupleTag>();
|
|
512
|
+
export const wrongTarget = typia.createIs<WrongTarget>();
|
|
513
|
+
`
|
|
514
|
+
|
|
515
|
+
const transformCoverageReflectMetadataSource = `import { metadata } from "./typia/src/reflect";
|
|
516
|
+
|
|
517
|
+
interface Reflected {
|
|
518
|
+
id: string;
|
|
519
|
+
nested: { value: number | string };
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
export const reflected = metadata<[Reflected, string]>();
|
|
523
|
+
`
|
|
524
|
+
|
|
525
|
+
const transformCoverageReflectStubSource = `export function metadata<Types extends unknown[]>(): unknown {
|
|
526
|
+
throw new Error("transform-only stub");
|
|
527
|
+
}
|
|
528
|
+
`
|