typia 13.1.1 → 13.1.19
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/README.md +3 -0
- package/lib/_virtual/_rolldown/runtime.mjs +1 -5
- package/lib/executable/FileSystemIdentity.d.ts +21 -0
- package/lib/executable/FileSystemIdentity.js +183 -0
- package/lib/executable/FileSystemIdentity.js.map +1 -0
- package/lib/executable/FileSystemIdentity.mjs +129 -0
- package/lib/executable/FileSystemIdentity.mjs.map +1 -0
- package/lib/executable/TypiaGenerateWizard.js +264 -104
- package/lib/executable/TypiaGenerateWizard.js.map +1 -1
- package/lib/executable/TypiaGenerateWizard.mjs +233 -93
- package/lib/executable/TypiaGenerateWizard.mjs.map +1 -1
- package/lib/functional.d.ts +15 -12
- package/lib/functional.js.map +1 -1
- package/lib/functional.mjs.map +1 -1
- package/lib/internal/_ProtobufReader.d.ts +17 -0
- package/lib/internal/_ProtobufReader.js +117 -45
- package/lib/internal/_ProtobufReader.js.map +1 -1
- package/lib/internal/_ProtobufReader.mjs +108 -39
- package/lib/internal/_ProtobufReader.mjs.map +1 -1
- package/lib/internal/_createStandardSchema.js +18 -1
- package/lib/internal/_createStandardSchema.js.map +1 -1
- package/lib/internal/_createStandardSchema.mjs +12 -1
- package/lib/internal/_createStandardSchema.mjs.map +1 -1
- package/lib/internal/_decimal.d.ts +14 -0
- package/lib/internal/_decimal.js +61 -0
- package/lib/internal/_decimal.js.map +1 -0
- package/lib/internal/_decimal.mjs +49 -0
- package/lib/internal/_decimal.mjs.map +1 -0
- package/lib/internal/_httpQueryParseURLSearchParams.js +23 -2
- package/lib/internal/_httpQueryParseURLSearchParams.js.map +1 -1
- package/lib/internal/_httpQueryParseURLSearchParams.mjs +20 -2
- package/lib/internal/_httpQueryParseURLSearchParams.mjs.map +1 -1
- package/lib/internal/_isFormatByte.js +2 -5
- package/lib/internal/_isFormatByte.js.map +1 -1
- package/lib/internal/_isFormatByte.mjs +2 -5
- package/lib/internal/_isFormatByte.mjs.map +1 -1
- package/lib/internal/_isFormatDate.js +15 -2
- package/lib/internal/_isFormatDate.js.map +1 -1
- package/lib/internal/_isFormatDate.mjs +22 -2
- package/lib/internal/_isFormatDate.mjs.map +1 -1
- package/lib/internal/_isFormatDateTime.js +21 -2
- package/lib/internal/_isFormatDateTime.js.map +1 -1
- package/lib/internal/_isFormatDateTime.mjs +13 -2
- package/lib/internal/_isFormatDateTime.mjs.map +1 -1
- package/lib/internal/_isFormatIri.js +3 -2
- package/lib/internal/_isFormatIri.js.map +1 -1
- package/lib/internal/_isFormatIri.mjs +3 -2
- package/lib/internal/_isFormatIri.mjs.map +1 -1
- package/lib/internal/_isFormatIriReference.js +10 -2
- package/lib/internal/_isFormatIriReference.js.map +1 -1
- package/lib/internal/_isFormatIriReference.mjs +9 -2
- package/lib/internal/_isFormatIriReference.mjs.map +1 -1
- package/lib/internal/_isFormatUriReference.js +1 -1
- package/lib/internal/_isFormatUriReference.js.map +1 -1
- package/lib/internal/_isFormatUriReference.mjs +1 -1
- package/lib/internal/_isFormatUriReference.mjs.map +1 -1
- package/lib/internal/_isMultipleOf.d.ts +1 -0
- package/lib/internal/_isMultipleOf.js +13 -0
- package/lib/internal/_isMultipleOf.js.map +1 -0
- package/lib/internal/_isMultipleOf.mjs +12 -0
- package/lib/internal/_isMultipleOf.mjs.map +1 -0
- package/lib/internal/_isTypeFloat.js +1 -1
- package/lib/internal/_isTypeFloat.js.map +1 -1
- package/lib/internal/_isTypeFloat.mjs +1 -1
- package/lib/internal/_isTypeFloat.mjs.map +1 -1
- package/lib/internal/_isTypeInt64.js +1 -0
- package/lib/internal/_isTypeInt64.js.map +1 -1
- package/lib/internal/_isTypeInt64.mjs.map +1 -1
- package/lib/internal/_isTypeInt64Bigint.d.ts +1 -0
- package/lib/internal/_isTypeInt64Bigint.js +15 -0
- package/lib/internal/_isTypeInt64Bigint.js.map +1 -0
- package/lib/internal/_isTypeInt64Bigint.mjs +8 -0
- package/lib/internal/_isTypeInt64Bigint.mjs.map +1 -0
- package/lib/internal/_isTypeUint64.js +1 -0
- package/lib/internal/_isTypeUint64.js.map +1 -1
- package/lib/internal/_isTypeUint64.mjs.map +1 -1
- package/lib/internal/_isTypeUint64Bigint.d.ts +1 -0
- package/lib/internal/_isTypeUint64Bigint.js +10 -0
- package/lib/internal/_isTypeUint64Bigint.js.map +1 -0
- package/lib/internal/_isTypeUint64Bigint.mjs +8 -0
- package/lib/internal/_isTypeUint64Bigint.mjs.map +1 -0
- package/lib/internal/_isUniqueItems.js +96 -109
- package/lib/internal/_isUniqueItems.js.map +1 -1
- package/lib/internal/_isUniqueItems.mjs +62 -50
- package/lib/internal/_isUniqueItems.mjs.map +1 -1
- package/lib/internal/_notationAny.js +8 -1
- package/lib/internal/_notationAny.js.map +1 -1
- package/lib/internal/_notationAny.mjs +7 -1
- package/lib/internal/_notationAny.mjs.map +1 -1
- package/lib/internal/_notationAssign.d.ts +1 -0
- package/lib/internal/_notationAssign.js +18 -0
- package/lib/internal/_notationAssign.js.map +1 -0
- package/lib/internal/_notationAssign.mjs +17 -0
- package/lib/internal/_notationAssign.mjs.map +1 -0
- package/lib/internal/_notationCamel.js +30 -9
- package/lib/internal/_notationCamel.js.map +1 -1
- package/lib/internal/_notationCamel.mjs +13 -5
- package/lib/internal/_notationCamel.mjs.map +1 -1
- package/lib/internal/_notationKebab.d.ts +1 -0
- package/lib/internal/_notationKebab.js +15 -0
- package/lib/internal/_notationKebab.js.map +1 -0
- package/lib/internal/_notationKebab.mjs +15 -0
- package/lib/internal/_notationKebab.mjs.map +1 -0
- package/lib/internal/_notationKeyCollision.d.ts +1 -0
- package/lib/internal/_notationKeyCollision.js +8 -0
- package/lib/internal/_notationKeyCollision.js.map +1 -0
- package/lib/internal/_notationKeyCollision.mjs +8 -0
- package/lib/internal/_notationKeyCollision.mjs.map +1 -0
- package/lib/internal/_notationPascal.js +20 -5
- package/lib/internal/_notationPascal.js.map +1 -1
- package/lib/internal/_notationPascal.mjs +10 -5
- package/lib/internal/_notationPascal.mjs.map +1 -1
- package/lib/internal/_notationSnake.js +25 -22
- package/lib/internal/_notationSnake.js.map +1 -1
- package/lib/internal/_notationSnake.mjs +11 -11
- package/lib/internal/_notationSnake.mjs.map +1 -1
- package/lib/internal/_plainCloneAny.js +174 -38
- package/lib/internal/_plainCloneAny.js.map +1 -1
- package/lib/internal/_plainCloneAny.mjs +126 -22
- package/lib/internal/_plainCloneAny.mjs.map +1 -1
- package/lib/internal/_randomArray.d.ts +1 -1
- package/lib/internal/_randomArray.js +11 -4
- package/lib/internal/_randomArray.js.map +1 -1
- package/lib/internal/_randomArray.mjs +9 -3
- package/lib/internal/_randomArray.mjs.map +1 -1
- package/lib/internal/_randomFormatByte.d.ts +2 -1
- package/lib/internal/_randomFormatByte.js +2 -1
- package/lib/internal/_randomFormatByte.js.map +1 -1
- package/lib/internal/_randomFormatByte.mjs +2 -1
- package/lib/internal/_randomFormatByte.mjs.map +1 -1
- package/lib/internal/_randomFormatDate.d.ts +2 -0
- package/lib/internal/_randomFormatDate.js +3 -2
- package/lib/internal/_randomFormatDate.js.map +1 -1
- package/lib/internal/_randomFormatDate.mjs +3 -2
- package/lib/internal/_randomFormatDate.mjs.map +1 -1
- package/lib/internal/_randomFormatDatetime.d.ts +2 -0
- package/lib/internal/_randomFormatDatetime.js +3 -2
- package/lib/internal/_randomFormatDatetime.js.map +1 -1
- package/lib/internal/_randomFormatDatetime.mjs +3 -2
- package/lib/internal/_randomFormatDatetime.mjs.map +1 -1
- package/lib/internal/_randomFormatDuration.d.ts +2 -1
- package/lib/internal/_randomFormatDuration.js +3 -2
- package/lib/internal/_randomFormatDuration.js.map +1 -1
- package/lib/internal/_randomFormatDuration.mjs +3 -2
- package/lib/internal/_randomFormatDuration.mjs.map +1 -1
- package/lib/internal/_randomFormatEmail.d.ts +2 -1
- package/lib/internal/_randomFormatEmail.js +8 -1
- package/lib/internal/_randomFormatEmail.js.map +1 -1
- package/lib/internal/_randomFormatEmail.mjs +5 -1
- package/lib/internal/_randomFormatEmail.mjs.map +1 -1
- package/lib/internal/_randomFormatHostname.d.ts +8 -1
- package/lib/internal/_randomFormatHostname.js +45 -2
- package/lib/internal/_randomFormatHostname.js.map +1 -1
- package/lib/internal/_randomFormatHostname.mjs +38 -2
- package/lib/internal/_randomFormatHostname.mjs.map +1 -1
- package/lib/internal/_randomFormatIdnEmail.d.ts +2 -1
- package/lib/internal/_randomFormatIdnEmail.js +16 -2
- package/lib/internal/_randomFormatIdnEmail.js.map +1 -1
- package/lib/internal/_randomFormatIdnEmail.mjs +11 -2
- package/lib/internal/_randomFormatIdnEmail.mjs.map +1 -1
- package/lib/internal/_randomFormatIdnHostname.d.ts +2 -1
- package/lib/internal/_randomFormatIdnHostname.js +26 -1
- package/lib/internal/_randomFormatIdnHostname.js.map +1 -1
- package/lib/internal/_randomFormatIdnHostname.mjs +25 -2
- package/lib/internal/_randomFormatIdnHostname.mjs.map +1 -1
- package/lib/internal/_randomFormatIpv4.d.ts +2 -1
- package/lib/internal/_randomFormatIpv4.js +2 -1
- package/lib/internal/_randomFormatIpv4.js.map +1 -1
- package/lib/internal/_randomFormatIpv4.mjs +2 -1
- package/lib/internal/_randomFormatIpv4.mjs.map +1 -1
- package/lib/internal/_randomFormatIpv6.d.ts +2 -1
- package/lib/internal/_randomFormatIpv6.js +2 -1
- package/lib/internal/_randomFormatIpv6.js.map +1 -1
- package/lib/internal/_randomFormatIpv6.mjs +2 -1
- package/lib/internal/_randomFormatIpv6.mjs.map +1 -1
- package/lib/internal/_randomFormatIri.d.ts +2 -1
- package/lib/internal/_randomFormatIri.js +1 -1
- package/lib/internal/_randomFormatIri.js.map +1 -1
- package/lib/internal/_randomFormatIri.mjs +1 -1
- package/lib/internal/_randomFormatIri.mjs.map +1 -1
- package/lib/internal/_randomFormatIriReference.d.ts +2 -1
- package/lib/internal/_randomFormatIriReference.js +1 -1
- package/lib/internal/_randomFormatIriReference.js.map +1 -1
- package/lib/internal/_randomFormatIriReference.mjs +1 -1
- package/lib/internal/_randomFormatIriReference.mjs.map +1 -1
- package/lib/internal/_randomFormatJsonPointer.d.ts +2 -1
- package/lib/internal/_randomFormatJsonPointer.js +8 -1
- package/lib/internal/_randomFormatJsonPointer.js.map +1 -1
- package/lib/internal/_randomFormatJsonPointer.mjs +5 -1
- package/lib/internal/_randomFormatJsonPointer.mjs.map +1 -1
- package/lib/internal/_randomFormatPassword.d.ts +2 -1
- package/lib/internal/_randomFormatPassword.js +7 -5
- package/lib/internal/_randomFormatPassword.js.map +1 -1
- package/lib/internal/_randomFormatPassword.mjs +5 -1
- package/lib/internal/_randomFormatPassword.mjs.map +1 -1
- package/lib/internal/_randomFormatRegex.d.ts +2 -1
- package/lib/internal/_randomFormatRegex.js +2 -1
- package/lib/internal/_randomFormatRegex.js.map +1 -1
- package/lib/internal/_randomFormatRegex.mjs +2 -1
- package/lib/internal/_randomFormatRegex.mjs.map +1 -1
- package/lib/internal/_randomFormatRelativeJsonPointer.d.ts +2 -1
- package/lib/internal/_randomFormatRelativeJsonPointer.js +3 -2
- package/lib/internal/_randomFormatRelativeJsonPointer.js.map +1 -1
- package/lib/internal/_randomFormatRelativeJsonPointer.mjs +3 -2
- package/lib/internal/_randomFormatRelativeJsonPointer.mjs.map +1 -1
- package/lib/internal/_randomFormatTime.d.ts +2 -1
- package/lib/internal/_randomFormatTime.js +3 -2
- package/lib/internal/_randomFormatTime.js.map +1 -1
- package/lib/internal/_randomFormatTime.mjs +3 -2
- package/lib/internal/_randomFormatTime.mjs.map +1 -1
- package/lib/internal/_randomFormatUri.d.ts +2 -1
- package/lib/internal/_randomFormatUri.js +1 -1
- package/lib/internal/_randomFormatUri.js.map +1 -1
- package/lib/internal/_randomFormatUri.mjs +1 -1
- package/lib/internal/_randomFormatUri.mjs.map +1 -1
- package/lib/internal/_randomFormatUriReference.d.ts +2 -1
- package/lib/internal/_randomFormatUriReference.js +1 -1
- package/lib/internal/_randomFormatUriReference.js.map +1 -1
- package/lib/internal/_randomFormatUriReference.mjs +1 -1
- package/lib/internal/_randomFormatUriReference.mjs.map +1 -1
- package/lib/internal/_randomFormatUriTemplate.d.ts +2 -1
- package/lib/internal/_randomFormatUriTemplate.js +1 -1
- package/lib/internal/_randomFormatUriTemplate.js.map +1 -1
- package/lib/internal/_randomFormatUriTemplate.mjs +1 -1
- package/lib/internal/_randomFormatUriTemplate.mjs.map +1 -1
- package/lib/internal/_randomFormatUrl.d.ts +2 -1
- package/lib/internal/_randomFormatUrl.js +21 -1
- package/lib/internal/_randomFormatUrl.js.map +1 -1
- package/lib/internal/_randomFormatUrl.mjs +18 -1
- package/lib/internal/_randomFormatUrl.mjs.map +1 -1
- package/lib/internal/_randomFormatUuid.d.ts +2 -1
- package/lib/internal/_randomFormatUuid.js +3 -2
- package/lib/internal/_randomFormatUuid.js.map +1 -1
- package/lib/internal/_randomFormatUuid.mjs +3 -2
- package/lib/internal/_randomFormatUuid.mjs.map +1 -1
- package/lib/internal/_randomInteger.js +59 -28
- package/lib/internal/_randomInteger.js.map +1 -1
- package/lib/internal/_randomInteger.mjs +56 -16
- package/lib/internal/_randomInteger.mjs.map +1 -1
- package/lib/internal/_randomMultiple.d.ts +8 -0
- package/lib/internal/_randomMultiple.js +168 -0
- package/lib/internal/_randomMultiple.js.map +1 -0
- package/lib/internal/_randomMultiple.mjs +158 -0
- package/lib/internal/_randomMultiple.mjs.map +1 -0
- package/lib/internal/_randomNumber.js +42 -42
- package/lib/internal/_randomNumber.js.map +1 -1
- package/lib/internal/_randomNumber.mjs +41 -27
- package/lib/internal/_randomNumber.mjs.map +1 -1
- package/lib/internal/_randomPattern.d.ts +2 -1
- package/lib/internal/_randomPattern.js +19 -4
- package/lib/internal/_randomPattern.js.map +1 -1
- package/lib/internal/_randomPattern.mjs +10 -4
- package/lib/internal/_randomPattern.mjs.map +1 -1
- package/lib/internal/_randomStringLength.d.ts +33 -0
- package/lib/internal/_randomStringLength.js +48 -0
- package/lib/internal/_randomStringLength.js.map +1 -0
- package/lib/internal/_randomStringLength.mjs +44 -0
- package/lib/internal/_randomStringLength.mjs.map +1 -0
- package/lib/internal/_stringLength.d.ts +1 -0
- package/lib/internal/_stringLength.js +11 -0
- package/lib/internal/_stringLength.js.map +1 -0
- package/lib/internal/_stringLength.mjs +10 -0
- package/lib/internal/_stringLength.mjs.map +1 -0
- package/lib/internal/_validateReport.js +4 -1
- package/lib/internal/_validateReport.js.map +1 -1
- package/lib/internal/_validateReport.mjs +2 -1
- package/lib/internal/_validateReport.mjs.map +1 -1
- package/lib/internal/private/__notationRename.d.ts +14 -0
- package/lib/internal/private/__notationRename.js +25 -0
- package/lib/internal/private/__notationRename.js.map +1 -0
- package/lib/internal/private/__notationRename.mjs +24 -0
- package/lib/internal/private/__notationRename.mjs.map +1 -0
- package/lib/json.d.ts +2 -2
- package/lib/json.mjs.map +1 -1
- package/lib/module.d.ts +2 -2
- package/lib/module.js.map +1 -1
- package/lib/module.mjs.map +1 -1
- package/lib/notations.d.ts +20 -4
- package/lib/notations.js.map +1 -1
- package/lib/notations.mjs.map +1 -1
- package/native/adapter/plugin_options.go +117 -0
- package/native/adapter/plugin_options_payload_matrix_test.go +181 -0
- package/native/cmd/ttsc-typia/any_array_type_tags_transform_test.go +63 -9
- package/native/cmd/ttsc-typia/assert_guard_factory_contract_test.go +152 -0
- package/native/cmd/ttsc-typia/build.go +81 -64
- package/native/cmd/ttsc-typia/build_no_emit_preserves_analysis_options_test.go +67 -0
- package/native/cmd/ttsc-typia/build_no_emit_transform_diagnostics_test.go +138 -0
- package/native/cmd/ttsc-typia/build_plugin_options_come_from_payload_test.go +48 -0
- package/native/cmd/ttsc-typia/build_transactional_emit_success_test.go +81 -0
- package/native/cmd/ttsc-typia/build_transform_failure_atomicity_test.go +138 -0
- package/native/cmd/ttsc-typia/command_routes_and_diagnostics_coverage_test.go +3 -1
- package/native/cmd/ttsc-typia/compare_less_nan_transform_test.go +98 -0
- package/native/cmd/ttsc-typia/compare_native_object_overmatch_transform_test.go +161 -0
- package/native/cmd/ttsc-typia/compare_nondiscriminable_union_transform_test.go +343 -0
- package/native/cmd/ttsc-typia/compare_union_discrimination_transform_test.go +289 -0
- package/native/cmd/ttsc-typia/escaped_property_key_path_transform_test.go +193 -0
- package/native/cmd/ttsc-typia/finite_option_number_leaf_transform_test.go +240 -0
- package/native/cmd/ttsc-typia/functional_promised_type_transform_test.go +220 -0
- package/native/cmd/ttsc-typia/functional_receiver_transform_test.go +232 -0
- package/native/cmd/ttsc-typia/is_object_function_member_transform_test.go +205 -0
- package/native/cmd/ttsc-typia/json_application_alias_function_validation_transform_test.go +151 -0
- package/native/cmd/ttsc-typia/json_is_stringify_finite_number_transform_test.go +198 -0
- package/native/cmd/ttsc-typia/json_stringify_special_key_transform_test.go +238 -0
- package/native/cmd/ttsc-typia/main_wasm.go +21 -2
- package/native/cmd/ttsc-typia/native_collection_identity_is_transform_test.go +234 -0
- package/native/cmd/ttsc-typia/native_generic_name_guard_is_transform_test.go +194 -0
- package/native/cmd/ttsc-typia/native_name_collision_is_transform_test.go +204 -0
- package/native/cmd/ttsc-typia/non_trailing_rest_tuple_transform_test.go +23 -11
- package/native/cmd/ttsc-typia/notation_dynamic_keys_transform_test.go +286 -0
- package/native/cmd/ttsc-typia/notation_kebab_case_transform_test.go +1 -1
- package/native/cmd/ttsc-typia/notation_literal_collision_transform_test.go +164 -0
- package/native/cmd/ttsc-typia/notation_pascal_case_transform_test.go +230 -0
- package/native/cmd/ttsc-typia/notation_unicode_key_transform_test.go +309 -0
- package/native/cmd/ttsc-typia/pattern_line_terminator_escape_transform_test.go +224 -0
- package/native/cmd/ttsc-typia/plain_prune_union_object_overmatch_transform_test.go +219 -0
- package/native/cmd/ttsc-typia/plugin_options_payload_helpers_test.go +181 -0
- package/native/cmd/ttsc-typia/private_field_filter_is_transform_test.go +278 -0
- package/native/cmd/ttsc-typia/project_catalog_transform_coverage_test.go +73 -27
- package/native/cmd/ttsc-typia/project_dependencies_barrel_reexport_transform_test.go +120 -0
- package/native/cmd/ttsc-typia/project_dependencies_collapsed_alias_transform_test.go +134 -0
- package/native/cmd/ttsc-typia/project_dependencies_custom_lib_name_transform_test.go +135 -0
- package/native/cmd/ttsc-typia/project_dependencies_default_barrel_transform_test.go +114 -0
- package/native/cmd/ttsc-typia/project_dependencies_empty_heritage_transform_test.go +100 -0
- package/native/cmd/ttsc-typia/project_dependencies_envelope_transform_test.go +148 -0
- package/native/cmd/ttsc-typia/project_dependencies_index_signature_alias_transform_test.go +139 -0
- package/native/cmd/ttsc-typia/project_dependencies_local_reexport_transform_test.go +122 -0
- package/native/cmd/ttsc-typia/project_dependencies_signature_alias_transform_test.go +125 -0
- package/native/cmd/ttsc-typia/project_dependencies_star_barrel_transform_test.go +112 -0
- package/native/cmd/ttsc-typia/project_reference_graph_envelope_transform_test.go +190 -0
- package/native/cmd/ttsc-typia/protobuf_is_encode_finite_number_transform_test.go +98 -0
- package/native/cmd/ttsc-typia/protobuf_sequence_field_numbers_transform_test.go +52 -22
- package/native/cmd/ttsc-typia/symbol_key_member_filter_transform_test.go +279 -0
- package/native/cmd/ttsc-typia/template_interpolation_type_tags_transform_test.go +86 -23
- package/native/cmd/ttsc-typia/template_literal_type_tags_transform_test.go +3 -1
- package/native/cmd/ttsc-typia/transform.go +228 -39
- package/native/cmd/ttsc-typia/{transform_declaration_source_produces_no_js_test.go → transform_declaration_source_produces_no_javascript_test.go} +10 -2
- package/native/cmd/ttsc-typia/transform_fixtures_emit_coverage_test.go +21 -4
- package/native/cmd/ttsc-typia/transform_helpers_test.go +159 -1
- package/native/cmd/ttsc-typia/transform_plugin_options_come_from_payload_test.go +43 -0
- package/native/cmd/ttsc-typia/transform_single_file_failure_atomicity_test.go +114 -0
- package/native/cmd/ttsc-typia/transform_single_file_failure_writes_no_stdout_test.go +43 -0
- package/native/cmd/ttsc-typia/transform_single_file_js_distinguishes_same_basename_sources_test.go +81 -0
- package/native/cmd/ttsc-typia/transform_single_file_js_empty_emit_reports_no_output_test.go +100 -0
- package/native/cmd/ttsc-typia/transform_single_file_js_locates_output_across_layouts_test.go +160 -0
- package/native/cmd/ttsc-typia/transform_single_file_success_publishes_artifact_test.go +54 -0
- package/native/cmd/ttsc-typia/transform_wasm_host_argv_reports_diagnostics_test.go +39 -0
- package/native/cmd/ttsc-typia/tuple_optional_compare_clone_transform_test.go +227 -0
- package/native/core/factories/FormatCheatSheet.go +40 -7
- package/native/core/factories/IdentifierFactory.go +131 -4
- package/native/core/factories/MetadataCommentTagFactory.go +83 -40
- package/native/core/factories/MetadataTypeTagFactory.go +13 -1
- package/native/core/factories/NumericRangeFactory.go +60 -17
- package/native/core/factories/ProtobufFactory.go +7 -4
- package/native/core/factories/factory_utility_coverage_test.go +8 -2
- package/native/core/factories/format_alias_resolves_to_cheat_sheet_test.go +57 -0
- package/native/core/factories/format_alias_table_targets_the_cheat_sheet_test.go +44 -0
- package/native/core/factories/identifier_factory_postfix_escapes_every_key_test.go +147 -0
- package/native/core/factories/identifier_factory_postfix_survives_every_code_point_test.go +86 -0
- package/native/core/factories/internal/metadata/MetadataHelper.go +60 -6
- package/native/core/factories/internal/metadata/emplace_metadata_object.go +116 -8
- package/native/core/factories/internal/metadata/iterate_metadata.go +6 -0
- package/native/core/factories/internal/metadata/iterate_metadata_function.go +4 -11
- package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +8 -6
- package/native/core/factories/internal/metadata/iterate_metadata_map.go +9 -0
- package/native/core/factories/internal/metadata/iterate_metadata_native.go +27 -2
- package/native/core/factories/internal/metadata/iterate_metadata_set.go +9 -0
- package/native/core/factories/internal/metadata/type_arguments_precondition_test.go +70 -0
- package/native/core/factories/metadata_comment_tag_factory_coverage_test.go +39 -0
- package/native/core/factories/metadata_comment_tag_factory_exclusivity_matches_interface_test.go +84 -0
- package/native/core/factories/metadata_type_tag_factory_accepts_legal_tag_combinations_test.go +60 -0
- package/native/core/factories/metadata_type_tag_factory_declarations_test.go +86 -0
- package/native/core/factories/metadata_type_tag_factory_keeps_bool_form_exclusivity_test.go +38 -0
- package/native/core/factories/metadata_type_tag_factory_rejects_cross_kind_exclusive_tags_test.go +65 -0
- package/native/core/factories/metadata_type_tag_factory_rejects_duplicated_array_form_tags_test.go +41 -0
- package/native/core/factories/numeric_range_factory_enforces_64bit_bounds_test.go +69 -0
- package/native/core/factories/protobuf_recovery_ownership_test.go +64 -0
- package/native/core/programmers/IsProgrammer.go +15 -1
- package/native/core/programmers/RandomProgrammer.go +51 -14
- package/native/core/programmers/compare/CompareEqualProgrammer.go +393 -5
- package/native/core/programmers/compare/CompareLessProgrammer.go +4 -2
- package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +4 -6
- package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +5 -13
- package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +6 -14
- package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +4 -6
- package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +49 -14
- package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +5 -13
- package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +4 -6
- package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +5 -13
- package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +5 -13
- package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +4 -17
- package/native/core/programmers/helpers/CloneJoiner.go +32 -0
- package/native/core/programmers/helpers/NotationJoiner.go +86 -28
- package/native/core/programmers/helpers/StringifyJoinder.go +32 -1
- package/native/core/programmers/helpers/UnionExplorer.go +203 -61
- package/native/core/programmers/helpers/joiner_branch_coverage_test.go +5 -3
- package/native/core/programmers/helpers/union_explorer_coverage_test.go +1 -1
- package/native/core/programmers/internal/CheckerProgrammer.go +100 -48
- package/native/core/programmers/iterate/check_template.go +344 -32
- package/native/core/programmers/iterate/json_schema_discriminator.go +36 -10
- package/native/core/programmers/iterate/json_schema_discriminator_declaration_syntax_test.go +205 -0
- package/native/core/programmers/iterate/openapi_v3_downgrader.go +641 -0
- package/native/core/programmers/iterate/openapi_v3_downgrader_boolean_default_test.go +95 -0
- package/native/core/programmers/iterate/openapi_v3_downgrader_test.go +123 -0
- package/native/core/programmers/iterate/template_interpolation_tags_test.go +40 -8
- package/native/core/programmers/iterate/template_runtime_pattern.go +52 -7
- package/native/core/programmers/json/JsonApplicationProgrammer.go +45 -11
- package/native/core/programmers/json/JsonSchemasProgrammer.go +12 -2
- package/native/core/programmers/llm/LlmApplicationProgrammer.go +12 -10
- package/native/core/programmers/llm/LlmSchemaProgrammer.go +23 -6
- package/native/core/programmers/llm/llm_reference_codec_test.go +24 -0
- package/native/core/programmers/notations/NotationGeneralProgrammer.go +183 -67
- package/native/core/programmers/notations/notation_general_helpers_test.go +1 -3
- package/native/core/programmers/notations/notation_general_programmer_pascal_multiword_test.go +72 -0
- package/native/core/programmers/notations/notation_general_programmer_underscore_boundary_test.go +68 -0
- package/native/core/programmers/plain/PlainClassifyProgrammer.go +23 -15
- package/native/core/programmers/plain/PlainCloneProgrammer.go +20 -7
- package/native/core/programmers/plain/PlainPruneProgrammer.go +19 -5
- package/native/core/programmers/plain/plain_tuple_seed_recovery_ownership_test.go +25 -0
- package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +37 -28
- package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +40 -21
- package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +26 -0
- package/native/core/programmers/random_programmer_length_argument_test.go +53 -0
- package/native/core/schemas/metadata/MetadataCollection.go +270 -20
- package/native/core/schemas/metadata/MetadataDependency.go +388 -0
- package/native/core/schemas/metadata/MetadataObjectType.go +17 -4
- package/native/core/schemas/metadata/metadata_collection_generic_argument_dot_test.go +122 -0
- package/native/core/schemas/metadata/metadata_collection_name_allocation_test.go +147 -0
- package/native/core/schemas/metadata/metadata_collection_openapi_name_cascade_test.go +55 -0
- package/native/core/schemas/metadata/metadata_collection_openapi_name_test.go +68 -0
- package/native/core/utils/PatternUtil.go +13 -0
- package/native/core/utils/PromiseTypeFactory.go +59 -0
- package/native/core/utils/ProtobufNameEncoder.go +8 -0
- package/native/core/utils/promise_type_factory_semantics_test.go +118 -0
- package/native/go.mod +9 -1
- package/native/transform/CallExpressionTransformer.go +12 -0
- package/native/transform/features/json/JsonApplicationTransformer.go +1 -1
- package/native/transform/features/json/JsonSchemaTransformer.go +1 -1
- package/native/transform/features/json/JsonSchemasTransformer.go +5 -4
- package/package.json +16 -4
- package/src/executable/FileSystemIdentity.ts +189 -0
- package/src/executable/TypiaGenerateWizard.ts +377 -110
- package/src/functional.ts +30 -60
- package/src/internal/_ProtobufReader.ts +129 -43
- package/src/internal/_createStandardSchema.ts +15 -1
- package/src/internal/_decimal.ts +69 -0
- package/src/internal/_httpQueryParseURLSearchParams.ts +24 -2
- package/src/internal/_isFormatByte.ts +2 -5
- package/src/internal/_isFormatDate.ts +15 -2
- package/src/internal/_isFormatDateTime.ts +28 -2
- package/src/internal/_isFormatIri.ts +5 -2
- package/src/internal/_isFormatIriReference.ts +11 -3
- package/src/internal/_isFormatUriReference.ts +1 -1
- package/src/internal/_isMultipleOf.ts +8 -0
- package/src/internal/_isTypeFloat.ts +1 -1
- package/src/internal/_isTypeInt64.ts +1 -0
- package/src/internal/_isTypeInt64Bigint.ts +12 -0
- package/src/internal/_isTypeUint64.ts +1 -0
- package/src/internal/_isTypeUint64Bigint.ts +7 -0
- package/src/internal/_isUniqueItems.ts +134 -132
- package/src/internal/_notationAny.ts +9 -4
- package/src/internal/_notationAssign.ts +20 -0
- package/src/internal/_notationCamel.ts +31 -10
- package/src/internal/_notationKebab.ts +11 -0
- package/src/internal/_notationKeyCollision.ts +9 -0
- package/src/internal/_notationPascal.ts +19 -6
- package/src/internal/_notationSnake.ts +24 -21
- package/src/internal/_plainCloneAny.ts +208 -33
- package/src/internal/_randomArray.ts +13 -4
- package/src/internal/_randomFormatByte.ts +4 -1
- package/src/internal/_randomFormatDate.ts +17 -12
- package/src/internal/_randomFormatDatetime.ts +15 -10
- package/src/internal/_randomFormatDuration.ts +16 -14
- package/src/internal/_randomFormatEmail.ts +8 -2
- package/src/internal/_randomFormatHostname.ts +48 -1
- package/src/internal/_randomFormatIdnEmail.ts +18 -2
- package/src/internal/_randomFormatIdnHostname.ts +34 -2
- package/src/internal/_randomFormatIpv4.ts +3 -2
- package/src/internal/_randomFormatIpv6.ts +3 -2
- package/src/internal/_randomFormatIri.ts +3 -1
- package/src/internal/_randomFormatIriReference.ts +3 -1
- package/src/internal/_randomFormatJsonPointer.ts +8 -2
- package/src/internal/_randomFormatPassword.ts +11 -6
- package/src/internal/_randomFormatRegex.ts +4 -1
- package/src/internal/_randomFormatRelativeJsonPointer.ts +13 -6
- package/src/internal/_randomFormatTime.ts +13 -10
- package/src/internal/_randomFormatUri.ts +3 -1
- package/src/internal/_randomFormatUriReference.ts +3 -1
- package/src/internal/_randomFormatUriTemplate.ts +3 -1
- package/src/internal/_randomFormatUrl.ts +25 -2
- package/src/internal/_randomFormatUuid.ts +10 -6
- package/src/internal/_randomInteger.ts +87 -40
- package/src/internal/_randomMultiple.ts +245 -0
- package/src/internal/_randomNumber.ts +72 -55
- package/src/internal/_randomPattern.ts +26 -4
- package/src/internal/_randomStringLength.ts +72 -0
- package/src/internal/_stringLength.ts +5 -0
- package/src/internal/_validateReport.ts +5 -1
- package/src/internal/private/__notationRename.ts +24 -0
- package/src/json.ts +2 -2
- package/src/module.ts +4 -6
- package/src/notations.ts +20 -4
- package/lib/internal/private/__notationCapitalize.d.ts +0 -1
- package/lib/internal/private/__notationCapitalize.js +0 -6
- package/lib/internal/private/__notationCapitalize.js.map +0 -1
- package/lib/internal/private/__notationCapitalize.mjs +0 -6
- package/lib/internal/private/__notationCapitalize.mjs.map +0 -1
- package/lib/internal/private/__notationUnsnake.d.ts +0 -4
- package/lib/internal/private/__notationUnsnake.js +0 -26
- package/lib/internal/private/__notationUnsnake.js.map +0 -1
- package/lib/internal/private/__notationUnsnake.mjs +0 -15
- package/lib/internal/private/__notationUnsnake.mjs.map +0 -1
- package/native/cmd/ttsc-typia/plugin_options_missing_config_test.go +0 -26
- package/native/cmd/ttsc-typia/plugin_options_undefined_false_test.go +0 -36
- package/src/internal/private/__notationCapitalize.ts +0 -2
- package/src/internal/private/__notationUnsnake.ts +0 -24
|
@@ -3,6 +3,71 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports._plainCloneAny = void 0;
|
|
4
4
|
const _plainCloneAny = (value) => cloneMain(value);
|
|
5
5
|
exports._plainCloneAny = _plainCloneAny;
|
|
6
|
+
const NOT_NATIVE = Symbol("not-native");
|
|
7
|
+
const objectToString = Object.prototype.toString;
|
|
8
|
+
const getter = (prototype, key) => Object.getOwnPropertyDescriptor(prototype, key).get;
|
|
9
|
+
const read = (accessor, value) => Reflect.apply(accessor, value, []);
|
|
10
|
+
const tryRead = (accessor, value) => {
|
|
11
|
+
if (accessor === undefined)
|
|
12
|
+
return { success: false };
|
|
13
|
+
try {
|
|
14
|
+
return { success: true, value: read(accessor, value) };
|
|
15
|
+
}
|
|
16
|
+
catch (_a) {
|
|
17
|
+
return { success: false };
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const arrayBufferByteLength = getter(ArrayBuffer.prototype, "byteLength");
|
|
21
|
+
const sharedArrayBufferByteLength = typeof SharedArrayBuffer === "undefined"
|
|
22
|
+
? undefined
|
|
23
|
+
: getter(SharedArrayBuffer.prototype, "byteLength");
|
|
24
|
+
const dataViewBuffer = getter(DataView.prototype, "buffer");
|
|
25
|
+
const dataViewByteLength = getter(DataView.prototype, "byteLength");
|
|
26
|
+
const dataViewByteOffset = getter(DataView.prototype, "byteOffset");
|
|
27
|
+
const typedArrayName = getter(Object.getPrototypeOf(Uint8Array.prototype), Symbol.toStringTag);
|
|
28
|
+
const blobSize = typeof Blob === "undefined" ? undefined : getter(Blob.prototype, "size");
|
|
29
|
+
const blobType = typeof Blob === "undefined" ? undefined : getter(Blob.prototype, "type");
|
|
30
|
+
const fileName = typeof File === "undefined" ? undefined : getter(File.prototype, "name");
|
|
31
|
+
const fileLastModified = typeof File === "undefined"
|
|
32
|
+
? undefined
|
|
33
|
+
: getter(File.prototype, "lastModified");
|
|
34
|
+
const regexpSource = getter(RegExp.prototype, "source");
|
|
35
|
+
const regexpFlags = getter(RegExp.prototype, "flags");
|
|
36
|
+
const nativeTag = (value) => {
|
|
37
|
+
let tagged;
|
|
38
|
+
try {
|
|
39
|
+
tagged = Symbol.toStringTag in value;
|
|
40
|
+
}
|
|
41
|
+
catch (_a) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
if (!tagged)
|
|
45
|
+
try {
|
|
46
|
+
return objectToString.call(value);
|
|
47
|
+
}
|
|
48
|
+
catch (_b) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const date = tryRead(Date.prototype.getTime, value);
|
|
52
|
+
if (date.success)
|
|
53
|
+
return "[object Date]";
|
|
54
|
+
const typed = tryRead(typedArrayName, value);
|
|
55
|
+
if (typed.success && typed.value !== undefined)
|
|
56
|
+
return `[object ${typed.value}]`;
|
|
57
|
+
if (tryRead(arrayBufferByteLength, value).success)
|
|
58
|
+
return "[object ArrayBuffer]";
|
|
59
|
+
if (tryRead(sharedArrayBufferByteLength, value).success)
|
|
60
|
+
return "[object SharedArrayBuffer]";
|
|
61
|
+
if (tryRead(dataViewBuffer, value).success)
|
|
62
|
+
return "[object DataView]";
|
|
63
|
+
if (tryRead(fileName, value).success)
|
|
64
|
+
return "[object File]";
|
|
65
|
+
if (tryRead(blobSize, value).success)
|
|
66
|
+
return "[object Blob]";
|
|
67
|
+
if (tryRead(regexpSource, value).success)
|
|
68
|
+
return "[object RegExp]";
|
|
69
|
+
return undefined;
|
|
70
|
+
};
|
|
6
71
|
const cloneMain = (value) => {
|
|
7
72
|
if (value === undefined)
|
|
8
73
|
return undefined;
|
|
@@ -11,54 +76,125 @@ const cloneMain = (value) => {
|
|
|
11
76
|
return null;
|
|
12
77
|
else if (Array.isArray(value))
|
|
13
78
|
return value.map(cloneMain);
|
|
14
|
-
else
|
|
15
|
-
|
|
16
|
-
|
|
79
|
+
else {
|
|
80
|
+
const native = cloneNative(value);
|
|
81
|
+
if (native !== NOT_NATIVE)
|
|
82
|
+
return native;
|
|
83
|
+
else if (value instanceof Set)
|
|
84
|
+
return new Set([...value].map(cloneMain));
|
|
85
|
+
else if (value instanceof Map)
|
|
86
|
+
return new Map([...value].map(([k, v]) => [cloneMain(k), cloneMain(v)]));
|
|
87
|
+
else if (value instanceof WeakSet || value instanceof WeakMap)
|
|
88
|
+
throw new Error("WeakSet and WeakMap are not supported");
|
|
89
|
+
else {
|
|
90
|
+
const primitive = value.valueOf();
|
|
91
|
+
if (primitive !== value)
|
|
92
|
+
return cloneMain(primitive);
|
|
93
|
+
return Object.fromEntries(Object.entries(value)
|
|
94
|
+
.map(([k, v]) => [k, cloneMain(v)])
|
|
95
|
+
.filter(([, v]) => v !== undefined));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (typeof value === "function")
|
|
99
|
+
return undefined;
|
|
100
|
+
return value;
|
|
101
|
+
};
|
|
102
|
+
const cloneNative = (value) => {
|
|
103
|
+
const tag = nativeTag(value);
|
|
104
|
+
switch (tag) {
|
|
105
|
+
case "[object Date]": {
|
|
106
|
+
const time = tryRead(Date.prototype.getTime, value);
|
|
107
|
+
return time.success ? new Date(time.value) : NOT_NATIVE;
|
|
108
|
+
}
|
|
109
|
+
case "[object Uint8Array]":
|
|
17
110
|
return new Uint8Array(value);
|
|
18
|
-
|
|
111
|
+
case "[object Uint8ClampedArray]":
|
|
19
112
|
return new Uint8ClampedArray(value);
|
|
20
|
-
|
|
113
|
+
case "[object Uint16Array]":
|
|
21
114
|
return new Uint16Array(value);
|
|
22
|
-
|
|
115
|
+
case "[object Uint32Array]":
|
|
23
116
|
return new Uint32Array(value);
|
|
24
|
-
|
|
117
|
+
case "[object BigUint64Array]":
|
|
25
118
|
return new BigUint64Array(value);
|
|
26
|
-
|
|
119
|
+
case "[object Int8Array]":
|
|
27
120
|
return new Int8Array(value);
|
|
28
|
-
|
|
121
|
+
case "[object Int16Array]":
|
|
29
122
|
return new Int16Array(value);
|
|
30
|
-
|
|
123
|
+
case "[object Int32Array]":
|
|
31
124
|
return new Int32Array(value);
|
|
32
|
-
|
|
125
|
+
case "[object BigInt64Array]":
|
|
33
126
|
return new BigInt64Array(value);
|
|
34
|
-
|
|
127
|
+
case "[object Float32Array]":
|
|
35
128
|
return new Float32Array(value);
|
|
36
|
-
|
|
129
|
+
case "[object Float64Array]":
|
|
37
130
|
return new Float64Array(value);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
131
|
+
case "[object ArrayBuffer]": {
|
|
132
|
+
const byteLength = tryRead(arrayBufferByteLength, value);
|
|
133
|
+
return byteLength.success
|
|
134
|
+
? cloneBufferRange(value, 0, byteLength.value, false)
|
|
135
|
+
: NOT_NATIVE;
|
|
136
|
+
}
|
|
137
|
+
case "[object SharedArrayBuffer]": {
|
|
138
|
+
const byteLength = tryRead(sharedArrayBufferByteLength, value);
|
|
139
|
+
return byteLength.success
|
|
140
|
+
? cloneBufferRange(value, 0, byteLength.value, true)
|
|
141
|
+
: NOT_NATIVE;
|
|
142
|
+
}
|
|
143
|
+
case "[object DataView]": {
|
|
144
|
+
const buffer = tryRead(dataViewBuffer, value);
|
|
145
|
+
if (!buffer.success)
|
|
146
|
+
return NOT_NATIVE;
|
|
147
|
+
const byteOffset = read(dataViewByteOffset, value);
|
|
148
|
+
const byteLength = read(dataViewByteLength, value);
|
|
149
|
+
return new DataView(cloneBufferRange(buffer.value, byteOffset, byteLength));
|
|
150
|
+
}
|
|
151
|
+
case "[object File]": {
|
|
152
|
+
const size = tryRead(blobSize, value);
|
|
153
|
+
if (typeof File === "undefined" ||
|
|
154
|
+
!size.success ||
|
|
155
|
+
blobType === undefined ||
|
|
156
|
+
fileName === undefined ||
|
|
157
|
+
fileLastModified === undefined)
|
|
158
|
+
return NOT_NATIVE;
|
|
159
|
+
return new File([value], read(fileName, value), {
|
|
160
|
+
type: read(blobType, value),
|
|
161
|
+
lastModified: read(fileLastModified, value),
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
case "[object Blob]": {
|
|
165
|
+
const size = tryRead(blobSize, value);
|
|
166
|
+
if (typeof Blob === "undefined" ||
|
|
167
|
+
!size.success ||
|
|
168
|
+
blobType === undefined)
|
|
169
|
+
return NOT_NATIVE;
|
|
170
|
+
return new Blob([value], {
|
|
171
|
+
type: read(blobType, value),
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
case "[object RegExp]": {
|
|
175
|
+
const source = tryRead(regexpSource, value);
|
|
176
|
+
return source.success
|
|
177
|
+
? new RegExp(source.value, read(regexpFlags, value))
|
|
178
|
+
: NOT_NATIVE;
|
|
179
|
+
}
|
|
180
|
+
default:
|
|
181
|
+
return NOT_NATIVE;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
const cloneBufferRange = (input, byteOffset, byteLength, shared) => {
|
|
185
|
+
if (shared === undefined)
|
|
186
|
+
shared = tryRead(sharedArrayBufferByteLength, input).success;
|
|
187
|
+
let output;
|
|
188
|
+
if (shared) {
|
|
189
|
+
if (typeof SharedArrayBuffer === "undefined")
|
|
190
|
+
throw new TypeError("SharedArrayBuffer is not available");
|
|
191
|
+
output = new SharedArrayBuffer(byteLength);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
read(arrayBufferByteLength, input);
|
|
195
|
+
output = new ArrayBuffer(byteLength);
|
|
196
|
+
}
|
|
197
|
+
new Uint8Array(output).set(new Uint8Array(input, byteOffset, byteLength));
|
|
198
|
+
return output;
|
|
63
199
|
};
|
|
64
200
|
//# sourceMappingURL=_plainCloneAny.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_plainCloneAny.js","sourceRoot":"","sources":["../../src/internal/_plainCloneAny.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAAG,CAAI,KAAQ,EAAe,EAAE,CACzD,SAAS,CAAC,KAAK,CAAgB,CAAC;AADrB,QAAA,cAAc,GAAd,cAAc,CACO;AAElC,MAAM,
|
|
1
|
+
{"version":3,"file":"_plainCloneAny.js","sourceRoot":"","sources":["../../src/internal/_plainCloneAny.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,138 @@
|
|
|
1
1
|
//#region src/internal/_plainCloneAny.ts
|
|
2
2
|
const _plainCloneAny = (value) => cloneMain(value);
|
|
3
|
+
const NOT_NATIVE = Symbol("not-native");
|
|
4
|
+
const objectToString = Object.prototype.toString;
|
|
5
|
+
const getter = (prototype, key) => Object.getOwnPropertyDescriptor(prototype, key).get;
|
|
6
|
+
const read = (accessor, value) => Reflect.apply(accessor, value, []);
|
|
7
|
+
const tryRead = (accessor, value) => {
|
|
8
|
+
if (accessor === void 0) return { success: false };
|
|
9
|
+
try {
|
|
10
|
+
return {
|
|
11
|
+
success: true,
|
|
12
|
+
value: read(accessor, value)
|
|
13
|
+
};
|
|
14
|
+
} catch {
|
|
15
|
+
return { success: false };
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const arrayBufferByteLength = getter(ArrayBuffer.prototype, "byteLength");
|
|
19
|
+
const sharedArrayBufferByteLength = typeof SharedArrayBuffer === "undefined" ? void 0 : getter(SharedArrayBuffer.prototype, "byteLength");
|
|
20
|
+
const dataViewBuffer = getter(DataView.prototype, "buffer");
|
|
21
|
+
const dataViewByteLength = getter(DataView.prototype, "byteLength");
|
|
22
|
+
const dataViewByteOffset = getter(DataView.prototype, "byteOffset");
|
|
23
|
+
const typedArrayName = getter(Object.getPrototypeOf(Uint8Array.prototype), Symbol.toStringTag);
|
|
24
|
+
const blobSize = typeof Blob === "undefined" ? void 0 : getter(Blob.prototype, "size");
|
|
25
|
+
const blobType = typeof Blob === "undefined" ? void 0 : getter(Blob.prototype, "type");
|
|
26
|
+
const fileName = typeof File === "undefined" ? void 0 : getter(File.prototype, "name");
|
|
27
|
+
const fileLastModified = typeof File === "undefined" ? void 0 : getter(File.prototype, "lastModified");
|
|
28
|
+
const regexpSource = getter(RegExp.prototype, "source");
|
|
29
|
+
const regexpFlags = getter(RegExp.prototype, "flags");
|
|
30
|
+
const nativeTag = (value) => {
|
|
31
|
+
let tagged;
|
|
32
|
+
try {
|
|
33
|
+
tagged = Symbol.toStringTag in value;
|
|
34
|
+
} catch {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (!tagged) try {
|
|
38
|
+
return objectToString.call(value);
|
|
39
|
+
} catch {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (tryRead(Date.prototype.getTime, value).success) return "[object Date]";
|
|
43
|
+
const typed = tryRead(typedArrayName, value);
|
|
44
|
+
if (typed.success && typed.value !== void 0) return `[object ${typed.value}]`;
|
|
45
|
+
if (tryRead(arrayBufferByteLength, value).success) return "[object ArrayBuffer]";
|
|
46
|
+
if (tryRead(sharedArrayBufferByteLength, value).success) return "[object SharedArrayBuffer]";
|
|
47
|
+
if (tryRead(dataViewBuffer, value).success) return "[object DataView]";
|
|
48
|
+
if (tryRead(fileName, value).success) return "[object File]";
|
|
49
|
+
if (tryRead(blobSize, value).success) return "[object Blob]";
|
|
50
|
+
if (tryRead(regexpSource, value).success) return "[object RegExp]";
|
|
51
|
+
};
|
|
3
52
|
const cloneMain = (value) => {
|
|
4
53
|
if (value === void 0) return void 0;
|
|
5
54
|
else if (typeof value === "object") if (value === null) return null;
|
|
6
55
|
else if (Array.isArray(value)) return value.map(cloneMain);
|
|
7
|
-
else
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
else if (value instanceof ArrayBuffer) return value.slice(0);
|
|
20
|
-
else if (value instanceof SharedArrayBuffer) return value.slice(0);
|
|
21
|
-
else if (value instanceof DataView) return new DataView(value.buffer.slice(0));
|
|
22
|
-
else if (typeof File !== "undefined" && value instanceof File) return new File([value], value.name, { type: value.type });
|
|
23
|
-
else if (typeof Blob !== "undefined" && value instanceof Blob) return new Blob([value], { type: value.type });
|
|
24
|
-
else if (value instanceof Set) return new Set([...value].map(cloneMain));
|
|
25
|
-
else if (value instanceof Map) return new Map([...value].map(([k, v]) => [cloneMain(k), cloneMain(v)]));
|
|
26
|
-
else if (value instanceof WeakSet || value instanceof WeakMap) throw new Error("WeakSet and WeakMap are not supported");
|
|
27
|
-
else if (value.valueOf() !== value) return cloneMain(value.valueOf());
|
|
28
|
-
else return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, cloneMain(v)]).filter(([, v]) => v !== void 0));
|
|
56
|
+
else {
|
|
57
|
+
const native = cloneNative(value);
|
|
58
|
+
if (native !== NOT_NATIVE) return native;
|
|
59
|
+
else if (value instanceof Set) return new Set([...value].map(cloneMain));
|
|
60
|
+
else if (value instanceof Map) return new Map([...value].map(([k, v]) => [cloneMain(k), cloneMain(v)]));
|
|
61
|
+
else if (value instanceof WeakSet || value instanceof WeakMap) throw new Error("WeakSet and WeakMap are not supported");
|
|
62
|
+
else {
|
|
63
|
+
const primitive = value.valueOf();
|
|
64
|
+
if (primitive !== value) return cloneMain(primitive);
|
|
65
|
+
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, cloneMain(v)]).filter(([, v]) => v !== void 0));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
29
68
|
else if (typeof value === "function") return void 0;
|
|
30
69
|
return value;
|
|
31
70
|
};
|
|
71
|
+
const cloneNative = (value) => {
|
|
72
|
+
switch (nativeTag(value)) {
|
|
73
|
+
case "[object Date]": {
|
|
74
|
+
const time = tryRead(Date.prototype.getTime, value);
|
|
75
|
+
return time.success ? new Date(time.value) : NOT_NATIVE;
|
|
76
|
+
}
|
|
77
|
+
case "[object Uint8Array]": return new Uint8Array(value);
|
|
78
|
+
case "[object Uint8ClampedArray]": return new Uint8ClampedArray(value);
|
|
79
|
+
case "[object Uint16Array]": return new Uint16Array(value);
|
|
80
|
+
case "[object Uint32Array]": return new Uint32Array(value);
|
|
81
|
+
case "[object BigUint64Array]": return new BigUint64Array(value);
|
|
82
|
+
case "[object Int8Array]": return new Int8Array(value);
|
|
83
|
+
case "[object Int16Array]": return new Int16Array(value);
|
|
84
|
+
case "[object Int32Array]": return new Int32Array(value);
|
|
85
|
+
case "[object BigInt64Array]": return new BigInt64Array(value);
|
|
86
|
+
case "[object Float32Array]": return new Float32Array(value);
|
|
87
|
+
case "[object Float64Array]": return new Float64Array(value);
|
|
88
|
+
case "[object ArrayBuffer]": {
|
|
89
|
+
const byteLength = tryRead(arrayBufferByteLength, value);
|
|
90
|
+
return byteLength.success ? cloneBufferRange(value, 0, byteLength.value, false) : NOT_NATIVE;
|
|
91
|
+
}
|
|
92
|
+
case "[object SharedArrayBuffer]": {
|
|
93
|
+
const byteLength = tryRead(sharedArrayBufferByteLength, value);
|
|
94
|
+
return byteLength.success ? cloneBufferRange(value, 0, byteLength.value, true) : NOT_NATIVE;
|
|
95
|
+
}
|
|
96
|
+
case "[object DataView]": {
|
|
97
|
+
const buffer = tryRead(dataViewBuffer, value);
|
|
98
|
+
if (!buffer.success) return NOT_NATIVE;
|
|
99
|
+
const byteOffset = read(dataViewByteOffset, value);
|
|
100
|
+
const byteLength = read(dataViewByteLength, value);
|
|
101
|
+
return new DataView(cloneBufferRange(buffer.value, byteOffset, byteLength));
|
|
102
|
+
}
|
|
103
|
+
case "[object File]": {
|
|
104
|
+
const size = tryRead(blobSize, value);
|
|
105
|
+
if (typeof File === "undefined" || !size.success || blobType === void 0 || fileName === void 0 || fileLastModified === void 0) return NOT_NATIVE;
|
|
106
|
+
return new File([value], read(fileName, value), {
|
|
107
|
+
type: read(blobType, value),
|
|
108
|
+
lastModified: read(fileLastModified, value)
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
case "[object Blob]": {
|
|
112
|
+
const size = tryRead(blobSize, value);
|
|
113
|
+
if (typeof Blob === "undefined" || !size.success || blobType === void 0) return NOT_NATIVE;
|
|
114
|
+
return new Blob([value], { type: read(blobType, value) });
|
|
115
|
+
}
|
|
116
|
+
case "[object RegExp]": {
|
|
117
|
+
const source = tryRead(regexpSource, value);
|
|
118
|
+
return source.success ? new RegExp(source.value, read(regexpFlags, value)) : NOT_NATIVE;
|
|
119
|
+
}
|
|
120
|
+
default: return NOT_NATIVE;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const cloneBufferRange = (input, byteOffset, byteLength, shared) => {
|
|
124
|
+
if (shared === void 0) shared = tryRead(sharedArrayBufferByteLength, input).success;
|
|
125
|
+
let output;
|
|
126
|
+
if (shared) {
|
|
127
|
+
if (typeof SharedArrayBuffer === "undefined") throw new TypeError("SharedArrayBuffer is not available");
|
|
128
|
+
output = new SharedArrayBuffer(byteLength);
|
|
129
|
+
} else {
|
|
130
|
+
read(arrayBufferByteLength, input);
|
|
131
|
+
output = new ArrayBuffer(byteLength);
|
|
132
|
+
}
|
|
133
|
+
new Uint8Array(output).set(new Uint8Array(input, byteOffset, byteLength));
|
|
134
|
+
return output;
|
|
135
|
+
};
|
|
32
136
|
//#endregion
|
|
33
137
|
export { _plainCloneAny };
|
|
34
138
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_plainCloneAny.mjs","names":[],"sources":["../../src/internal/_plainCloneAny.ts"],"sourcesContent":["import { Resolved } from \"@typia/interface\";\n\nexport const _plainCloneAny = <T>(value: T): Resolved<T> =>\n cloneMain(value) as Resolved<T>;\n\nconst cloneMain = (value: any): any => {\n if (value === undefined) return undefined;\n else if (typeof value === \"object\")\n if (value === null) return null;\n else if (Array.isArray(value)) return value.map(cloneMain);\n else if (value instanceof Date) return new Date(value);\n else if (value instanceof Uint8Array) return new Uint8Array(value);\n else if (value instanceof Uint8ClampedArray)\n return new Uint8ClampedArray(value);\n else if (value instanceof Uint16Array) return new Uint16Array(value);\n else if (value instanceof Uint32Array) return new Uint32Array(value);\n else if (value instanceof BigUint64Array) return new BigUint64Array(value);\n else if (value instanceof Int8Array) return new Int8Array(value);\n else if (value instanceof Int16Array) return new Int16Array(value);\n else if (value instanceof Int32Array) return new Int32Array(value);\n else if (value instanceof BigInt64Array) return new BigInt64Array(value);\n else if (value instanceof Float32Array) return new Float32Array(value);\n else if (value instanceof Float64Array) return new Float64Array(value);\n else if (value instanceof ArrayBuffer) return value.slice(0);\n else if (value instanceof SharedArrayBuffer) return value.slice(0);\n else if (value instanceof DataView)\n return new DataView(value.buffer.slice(0));\n else if (typeof File !== \"undefined\" && value instanceof File)\n return new File([value], value.name, { type: value.type });\n else if (typeof Blob !== \"undefined\" && value instanceof Blob)\n return new Blob([value], { type: value.type });\n else if (value instanceof Set) return new Set([...value].map(cloneMain));\n else if (value instanceof Map)\n return new Map([...value].map(([k, v]) => [cloneMain(k), cloneMain(v)]));\n else if (value instanceof WeakSet || value instanceof WeakMap)\n throw new Error(\"WeakSet and WeakMap are not supported\");\n else if (value.valueOf() !== value) return cloneMain(value.valueOf());\n else\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [k, cloneMain(v)])\n .filter(([, v]) => v !== undefined),\n );\n else if (typeof value === \"function\") return undefined;\n return value;\n};\n"],"mappings":";AAEA,MAAa,kBAAqB,UAChC,UAAU,KAAK;AAEjB,MAAM,aAAa,UAAoB;CACrC,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;MAC3B,IAAI,OAAO,UAAU,UACxB,IAAI,UAAU,MAAM,OAAO;MACtB,IAAI,MAAM,QAAQ,KAAK,GAAG,OAAO,MAAM,IAAI,SAAS;MACpD,IAAI,iBAAiB,MAAM,OAAO,IAAI,KAAK,KAAK;MAChD,IAAI,iBAAiB,YAAY,OAAO,IAAI,WAAW,KAAK;MAC5D,IAAI,iBAAiB,mBACxB,OAAO,IAAI,kBAAkB,KAAK;MAC/B,IAAI,iBAAiB,aAAa,OAAO,IAAI,YAAY,KAAK;MAC9D,IAAI,iBAAiB,aAAa,OAAO,IAAI,YAAY,KAAK;MAC9D,IAAI,iBAAiB,gBAAgB,OAAO,IAAI,eAAe,KAAK;MACpE,IAAI,iBAAiB,WAAW,OAAO,IAAI,UAAU,KAAK;MAC1D,IAAI,iBAAiB,YAAY,OAAO,IAAI,WAAW,KAAK;MAC5D,IAAI,iBAAiB,YAAY,OAAO,IAAI,WAAW,KAAK;MAC5D,IAAI,iBAAiB,eAAe,OAAO,IAAI,cAAc,KAAK;MAClE,IAAI,iBAAiB,cAAc,OAAO,IAAI,aAAa,KAAK;MAChE,IAAI,iBAAiB,cAAc,OAAO,IAAI,aAAa,KAAK;MAChE,IAAI,iBAAiB,aAAa,OAAO,MAAM,MAAM,CAAC;MACtD,IAAI,iBAAiB,mBAAmB,OAAO,MAAM,MAAM,CAAC;MAC5D,IAAI,iBAAiB,UACxB,OAAO,IAAI,SAAS,MAAM,OAAO,MAAM,CAAC,CAAC;MACtC,IAAI,OAAO,SAAS,eAAe,iBAAiB,MACvD,OAAO,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,MAAM,EAAE,MAAM,MAAM,KAAK,CAAC;MACtD,IAAI,OAAO,SAAS,eAAe,iBAAiB,MACvD,OAAO,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE,MAAM,MAAM,KAAK,CAAC;MAC1C,IAAI,iBAAiB,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;MAClE,IAAI,iBAAiB,KACxB,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;MACpE,IAAI,iBAAiB,WAAW,iBAAiB,SACpD,MAAM,IAAI,MAAM,uCAAuC;MACpD,IAAI,MAAM,QAAQ,MAAM,OAAO,OAAO,UAAU,MAAM,QAAQ,CAAC;MAElE,OAAO,OAAO,YACZ,OAAO,QAAQ,KAAK,CAAC,CAClB,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAClC,QAAQ,GAAG,OAAO,MAAM,KAAA,CAAS,CACtC;MACC,IAAI,OAAO,UAAU,YAAY,OAAO,KAAA;CAC7C,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"_plainCloneAny.mjs","names":[],"sources":["../../src/internal/_plainCloneAny.ts"],"sourcesContent":["import { Resolved } from \"@typia/interface\";\n\nexport const _plainCloneAny = <T>(value: T): Resolved<T> =>\n cloneMain(value) as Resolved<T>;\n\nconst NOT_NATIVE = Symbol(\"not-native\");\nconst objectToString = Object.prototype.toString;\nconst getter = (prototype: object, key: PropertyKey): (() => unknown) =>\n Object.getOwnPropertyDescriptor(prototype, key)!.get!;\nconst read = <T>(accessor: () => unknown, value: object): T =>\n Reflect.apply(accessor, value, []) as T;\nconst tryRead = <T>(\n accessor: (() => unknown) | undefined,\n value: object,\n): { success: true; value: T } | { success: false } => {\n if (accessor === undefined) return { success: false };\n try {\n return { success: true, value: read<T>(accessor, value) };\n } catch {\n return { success: false };\n }\n};\n\nconst arrayBufferByteLength = getter(ArrayBuffer.prototype, \"byteLength\");\nconst sharedArrayBufferByteLength =\n typeof SharedArrayBuffer === \"undefined\"\n ? undefined\n : getter(SharedArrayBuffer.prototype, \"byteLength\");\nconst dataViewBuffer = getter(DataView.prototype, \"buffer\");\nconst dataViewByteLength = getter(DataView.prototype, \"byteLength\");\nconst dataViewByteOffset = getter(DataView.prototype, \"byteOffset\");\nconst typedArrayName = getter(\n Object.getPrototypeOf(Uint8Array.prototype),\n Symbol.toStringTag,\n);\nconst blobSize =\n typeof Blob === \"undefined\" ? undefined : getter(Blob.prototype, \"size\");\nconst blobType =\n typeof Blob === \"undefined\" ? undefined : getter(Blob.prototype, \"type\");\nconst fileName =\n typeof File === \"undefined\" ? undefined : getter(File.prototype, \"name\");\nconst fileLastModified =\n typeof File === \"undefined\"\n ? undefined\n : getter(File.prototype, \"lastModified\");\nconst regexpSource = getter(RegExp.prototype, \"source\");\nconst regexpFlags = getter(RegExp.prototype, \"flags\");\n\nconst nativeTag = (value: object): string | undefined => {\n let tagged: boolean;\n try {\n tagged = Symbol.toStringTag in value;\n } catch {\n return undefined;\n }\n if (!tagged)\n try {\n return objectToString.call(value);\n } catch {\n return undefined;\n }\n\n const date = tryRead<number>(Date.prototype.getTime, value);\n if (date.success) return \"[object Date]\";\n const typed = tryRead<string>(typedArrayName, value);\n if (typed.success && typed.value !== undefined)\n return `[object ${typed.value}]`;\n if (tryRead<number>(arrayBufferByteLength, value).success)\n return \"[object ArrayBuffer]\";\n if (tryRead<number>(sharedArrayBufferByteLength, value).success)\n return \"[object SharedArrayBuffer]\";\n if (tryRead<ArrayBufferLike>(dataViewBuffer, value).success)\n return \"[object DataView]\";\n if (tryRead<string>(fileName, value).success) return \"[object File]\";\n if (tryRead<number>(blobSize, value).success) return \"[object Blob]\";\n if (tryRead<string>(regexpSource, value).success) return \"[object RegExp]\";\n return undefined;\n};\n\nconst cloneMain = (value: any): any => {\n if (value === undefined) return undefined;\n else if (typeof value === \"object\")\n if (value === null) return null;\n else if (Array.isArray(value)) return value.map(cloneMain);\n else {\n const native: any | typeof NOT_NATIVE = cloneNative(value);\n if (native !== NOT_NATIVE) return native;\n else if (value instanceof Set) return new Set([...value].map(cloneMain));\n else if (value instanceof Map)\n return new Map(\n [...value].map(([k, v]) => [cloneMain(k), cloneMain(v)]),\n );\n else if (value instanceof WeakSet || value instanceof WeakMap)\n throw new Error(\"WeakSet and WeakMap are not supported\");\n else {\n const primitive: unknown = value.valueOf();\n if (primitive !== value) return cloneMain(primitive);\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [k, cloneMain(v)])\n .filter(([, v]) => v !== undefined),\n );\n }\n }\n else if (typeof value === \"function\") return undefined;\n return value;\n};\n\nconst cloneNative = (value: object): any | typeof NOT_NATIVE => {\n const tag: string | undefined = nativeTag(value);\n switch (tag) {\n case \"[object Date]\": {\n const time = tryRead<number>(Date.prototype.getTime, value);\n return time.success ? new Date(time.value) : NOT_NATIVE;\n }\n case \"[object Uint8Array]\":\n return new Uint8Array(value as ArrayLike<number>);\n case \"[object Uint8ClampedArray]\":\n return new Uint8ClampedArray(value as ArrayLike<number>);\n case \"[object Uint16Array]\":\n return new Uint16Array(value as ArrayLike<number>);\n case \"[object Uint32Array]\":\n return new Uint32Array(value as ArrayLike<number>);\n case \"[object BigUint64Array]\":\n return new BigUint64Array(value as ArrayLike<bigint>);\n case \"[object Int8Array]\":\n return new Int8Array(value as ArrayLike<number>);\n case \"[object Int16Array]\":\n return new Int16Array(value as ArrayLike<number>);\n case \"[object Int32Array]\":\n return new Int32Array(value as ArrayLike<number>);\n case \"[object BigInt64Array]\":\n return new BigInt64Array(value as ArrayLike<bigint>);\n case \"[object Float32Array]\":\n return new Float32Array(value as ArrayLike<number>);\n case \"[object Float64Array]\":\n return new Float64Array(value as ArrayLike<number>);\n case \"[object ArrayBuffer]\": {\n const byteLength = tryRead<number>(arrayBufferByteLength, value);\n return byteLength.success\n ? cloneBufferRange(value as ArrayBuffer, 0, byteLength.value, false)\n : NOT_NATIVE;\n }\n case \"[object SharedArrayBuffer]\": {\n const byteLength = tryRead<number>(sharedArrayBufferByteLength, value);\n return byteLength.success\n ? cloneBufferRange(\n value as SharedArrayBuffer,\n 0,\n byteLength.value,\n true,\n )\n : NOT_NATIVE;\n }\n case \"[object DataView]\": {\n const buffer = tryRead<ArrayBufferLike>(dataViewBuffer, value);\n if (!buffer.success) return NOT_NATIVE;\n const byteOffset: number = read(dataViewByteOffset, value);\n const byteLength: number = read(dataViewByteLength, value);\n return new DataView(\n cloneBufferRange(buffer.value, byteOffset, byteLength),\n );\n }\n case \"[object File]\": {\n const size = tryRead<number>(blobSize, value);\n if (\n typeof File === \"undefined\" ||\n !size.success ||\n blobType === undefined ||\n fileName === undefined ||\n fileLastModified === undefined\n )\n return NOT_NATIVE;\n return new File([value as Blob], read<string>(fileName, value), {\n type: read<string>(blobType, value),\n lastModified: read<number>(fileLastModified, value),\n });\n }\n case \"[object Blob]\": {\n const size = tryRead<number>(blobSize, value);\n if (\n typeof Blob === \"undefined\" ||\n !size.success ||\n blobType === undefined\n )\n return NOT_NATIVE;\n return new Blob([value as Blob], {\n type: read<string>(blobType, value),\n });\n }\n case \"[object RegExp]\": {\n const source = tryRead<string>(regexpSource, value);\n return source.success\n ? new RegExp(source.value, read<string>(regexpFlags, value))\n : NOT_NATIVE;\n }\n default:\n return NOT_NATIVE;\n }\n};\n\nconst cloneBufferRange = (\n input: ArrayBufferLike,\n byteOffset: number,\n byteLength: number,\n shared?: boolean,\n): ArrayBuffer | SharedArrayBuffer => {\n if (shared === undefined)\n shared = tryRead<number>(sharedArrayBufferByteLength, input).success;\n let output: ArrayBuffer | SharedArrayBuffer;\n if (shared) {\n if (typeof SharedArrayBuffer === \"undefined\")\n throw new TypeError(\"SharedArrayBuffer is not available\");\n output = new SharedArrayBuffer(byteLength);\n } else {\n read<number>(arrayBufferByteLength, input);\n output = new ArrayBuffer(byteLength);\n }\n new Uint8Array(output).set(new Uint8Array(input, byteOffset, byteLength));\n return output;\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._randomArray = void 0;
|
|
4
|
+
const _isUniqueItems_1 = require("./_isUniqueItems");
|
|
4
5
|
const _randomInteger_1 = require("./_randomInteger");
|
|
5
6
|
const DEFAULT_MIN_ITEMS = 1;
|
|
6
7
|
const DEFAULT_RANGE = 5;
|
|
@@ -17,10 +18,16 @@ const _randomArray = (props) => {
|
|
|
17
18
|
});
|
|
18
19
|
if (props.uniqueItems !== true)
|
|
19
20
|
return new Array(count).fill(null).map((_, i) => props.element(i, count));
|
|
20
|
-
const elements =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const elements = [];
|
|
22
|
+
const maximumAttempts = count * 100 + 1000;
|
|
23
|
+
for (let attempts = 0; elements.length !== count; attempts++) {
|
|
24
|
+
if (attempts === maximumAttempts)
|
|
25
|
+
throw new Error("Unable to generate enough unique items; the element domain may be too small.");
|
|
26
|
+
const candidate = props.element(elements.length, count);
|
|
27
|
+
if (elements.every((element) => (0, _isUniqueItems_1._isUniqueItems)([element, candidate])))
|
|
28
|
+
elements.push(candidate);
|
|
29
|
+
}
|
|
30
|
+
return elements;
|
|
24
31
|
};
|
|
25
32
|
exports._randomArray = _randomArray;
|
|
26
33
|
//# sourceMappingURL=_randomArray.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_randomArray.js","sourceRoot":"","sources":["../../src/internal/_randomArray.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAElD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAE3B,MAAM,YAAY,GAAG,CAC1B,KAGC,EACD,EAAE;;IACF,MAAM,cAAc,GAClB,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACnD,MAAM,OAAO,SACX,KAAK,CAAC,QAAQ,mCACd,IAAI,CAAC,GAAG,OAAC,KAAK,CAAC,QAAQ,mCAAI,cAAc,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAW,IAAA,+BAAc,EAAC;QACnC,IAAI,EAAE,SAAS;QACf,OAAO;QACP,OAAO,QACL,KAAK,CAAC,QAAQ,mCACd,OAAO;YACL,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC;KACzE,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;QAC5B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"_randomArray.js","sourceRoot":"","sources":["../../src/internal/_randomArray.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAClD,qDAAkD;AAElD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAE3B,MAAM,YAAY,GAAG,CAC1B,KAGC,EACD,EAAE;;IACF,MAAM,cAAc,GAClB,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACnD,MAAM,OAAO,SACX,KAAK,CAAC,QAAQ,mCACd,IAAI,CAAC,GAAG,OAAC,KAAK,CAAC,QAAQ,mCAAI,cAAc,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAW,IAAA,+BAAc,EAAC;QACnC,IAAI,EAAE,SAAS;QACf,OAAO;QACP,OAAO,QACL,KAAK,CAAC,QAAQ,mCACd,OAAO;YACL,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC;KACzE,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;QAC5B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,MAAM,eAAe,GAAW,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;IACnD,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC7D,IAAI,QAAQ,KAAK,eAAe;YAC9B,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;QACJ,MAAM,SAAS,GAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,+BAAc,EAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YACnE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAjCW,QAAA,YAAY,GAAZ,YAAY,CAiCvB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { _isUniqueItems } from "./_isUniqueItems.mjs";
|
|
1
2
|
import { _randomInteger } from "./_randomInteger.mjs";
|
|
2
3
|
//#region src/internal/_randomArray.ts
|
|
3
4
|
const DEFAULT_MIN_ITEMS = 1;
|
|
@@ -12,9 +13,14 @@ const _randomArray = (props) => {
|
|
|
12
13
|
maximum: props.maxItems ?? minimum + (props.recursive === true ? DEFAULT_RECURSIVE_RANGE : DEFAULT_RANGE)
|
|
13
14
|
});
|
|
14
15
|
if (props.uniqueItems !== true) return new Array(count).fill(null).map((_, i) => props.element(i, count));
|
|
15
|
-
const elements =
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const elements = [];
|
|
17
|
+
const maximumAttempts = count * 100 + 1e3;
|
|
18
|
+
for (let attempts = 0; elements.length !== count; attempts++) {
|
|
19
|
+
if (attempts === maximumAttempts) throw new Error("Unable to generate enough unique items; the element domain may be too small.");
|
|
20
|
+
const candidate = props.element(elements.length, count);
|
|
21
|
+
if (elements.every((element) => _isUniqueItems([element, candidate]))) elements.push(candidate);
|
|
22
|
+
}
|
|
23
|
+
return elements;
|
|
18
24
|
};
|
|
19
25
|
//#endregion
|
|
20
26
|
export { _randomArray };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_randomArray.mjs","names":[],"sources":["../../src/internal/_randomArray.ts"],"sourcesContent":["import type { OpenApi } from \"@typia/interface\";\n\nimport { _randomInteger } from \"./_randomInteger\";\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_RANGE = 5;\nconst DEFAULT_RECURSIVE_RANGE = 2;\n\nexport const _randomArray = <T>(\n props: Omit<OpenApi.IJsonSchema.IArray, \"items\"> & {\n element: (index: number, count: number) => T;\n recursive?: boolean;\n },\n) => {\n const defaultMinimum: number =\n props.recursive === true ? 0 : DEFAULT_MIN_ITEMS;\n const minimum: number =\n props.minItems ??\n Math.min(props.maxItems ?? defaultMinimum, defaultMinimum);\n const count: number = _randomInteger({\n type: \"integer\",\n minimum,\n maximum:\n props.maxItems ??\n minimum +\n (props.recursive === true ? DEFAULT_RECURSIVE_RANGE : DEFAULT_RANGE),\n });\n if (props.uniqueItems !== true)\n return new Array(count).fill(null).map((_, i) => props.element(i, count));\n const elements:
|
|
1
|
+
{"version":3,"file":"_randomArray.mjs","names":[],"sources":["../../src/internal/_randomArray.ts"],"sourcesContent":["import type { OpenApi } from \"@typia/interface\";\n\nimport { _isUniqueItems } from \"./_isUniqueItems\";\nimport { _randomInteger } from \"./_randomInteger\";\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_RANGE = 5;\nconst DEFAULT_RECURSIVE_RANGE = 2;\n\nexport const _randomArray = <T>(\n props: Omit<OpenApi.IJsonSchema.IArray, \"items\"> & {\n element: (index: number, count: number) => T;\n recursive?: boolean;\n },\n) => {\n const defaultMinimum: number =\n props.recursive === true ? 0 : DEFAULT_MIN_ITEMS;\n const minimum: number =\n props.minItems ??\n Math.min(props.maxItems ?? defaultMinimum, defaultMinimum);\n const count: number = _randomInteger({\n type: \"integer\",\n minimum,\n maximum:\n props.maxItems ??\n minimum +\n (props.recursive === true ? DEFAULT_RECURSIVE_RANGE : DEFAULT_RANGE),\n });\n if (props.uniqueItems !== true)\n return new Array(count).fill(null).map((_, i) => props.element(i, count));\n const elements: T[] = [];\n const maximumAttempts: number = count * 100 + 1000;\n for (let attempts = 0; elements.length !== count; attempts++) {\n if (attempts === maximumAttempts)\n throw new Error(\n \"Unable to generate enough unique items; the element domain may be too small.\",\n );\n const candidate: T = props.element(elements.length, count);\n if (elements.every((element) => _isUniqueItems([element, candidate])))\n elements.push(candidate);\n }\n return elements;\n};\n"],"mappings":";;;AAKA,MAAM,oBAAoB;AAC1B,MAAM,gBAAgB;AACtB,MAAM,0BAA0B;AAEhC,MAAa,gBACX,UAIG;CACH,MAAM,iBACJ,MAAM,cAAc,OAAO,IAAI;CACjC,MAAM,UACJ,MAAM,YACN,KAAK,IAAI,MAAM,YAAY,gBAAgB,cAAc;CAC3D,MAAM,QAAgB,eAAe;EACnC,MAAM;EACN;EACA,SACE,MAAM,YACN,WACG,MAAM,cAAc,OAAO,0BAA0B;CAC5D,CAAC;CACD,IAAI,MAAM,gBAAgB,MACxB,OAAO,IAAI,MAAM,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC;CAC1E,MAAM,WAAgB,CAAC;CACvB,MAAM,kBAA0B,QAAQ,MAAM;CAC9C,KAAK,IAAI,WAAW,GAAG,SAAS,WAAW,OAAO,YAAY;EAC5D,IAAI,aAAa,iBACf,MAAM,IAAI,MACR,8EACF;EACF,MAAM,YAAe,MAAM,QAAQ,SAAS,QAAQ,KAAK;EACzD,IAAI,SAAS,OAAO,YAAY,eAAe,CAAC,SAAS,SAAS,CAAC,CAAC,GAClE,SAAS,KAAK,SAAS;CAC3B;CACA,OAAO;AACT"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { _ILengthProps } from "./_randomStringLength";
|
|
2
|
+
export declare const _randomFormatByte: (props?: _ILengthProps) => string;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._randomFormatByte = void 0;
|
|
4
|
-
const
|
|
4
|
+
const _randomStringLength_1 = require("./_randomStringLength");
|
|
5
|
+
const _randomFormatByte = (props) => (0, _randomStringLength_1._randomFormatLength)(props, () => FIXED);
|
|
5
6
|
exports._randomFormatByte = _randomFormatByte;
|
|
6
7
|
const FIXED = "vt7ekz4lIoNTTS9sDQYdWKharxIFAR54+z/umIxSgUM=";
|
|
7
8
|
//# sourceMappingURL=_randomFormatByte.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_randomFormatByte.js","sourceRoot":"","sources":["../../src/internal/_randomFormatByte.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"_randomFormatByte.js","sourceRoot":"","sources":["../../src/internal/_randomFormatByte.ts"],"names":[],"mappings":";;;AAAA,+DAA2E;AAEpE,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAU,EAAE,CACjE,IAAA,yCAAmB,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAD7B,QAAA,iBAAiB,GAAjB,iBAAiB,CACY;AAE1C,MAAM,KAAK,GAAG,8CAA8C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { _randomFormatLength } from "./_randomStringLength.mjs";
|
|
1
2
|
//#region src/internal/_randomFormatByte.ts
|
|
2
|
-
const _randomFormatByte = () => FIXED;
|
|
3
|
+
const _randomFormatByte = (props) => _randomFormatLength(props, () => FIXED);
|
|
3
4
|
const FIXED = "vt7ekz4lIoNTTS9sDQYdWKharxIFAR54+z/umIxSgUM=";
|
|
4
5
|
//#endregion
|
|
5
6
|
export { _randomFormatByte };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_randomFormatByte.mjs","names":[],"sources":["../../src/internal/_randomFormatByte.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"_randomFormatByte.mjs","names":[],"sources":["../../src/internal/_randomFormatByte.ts"],"sourcesContent":["import { _ILengthProps, _randomFormatLength } from \"./_randomStringLength\";\n\nexport const _randomFormatByte = (props?: _ILengthProps): string =>\n _randomFormatLength(props, () => FIXED);\n\nconst FIXED = \"vt7ekz4lIoNTTS9sDQYdWKharxIFAR54+z/umIxSgUM=\";\n"],"mappings":";;AAEA,MAAa,qBAAqB,UAChC,oBAAoB,aAAa,KAAK;AAExC,MAAM,QAAQ"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._randomFormatDate = void 0;
|
|
4
4
|
const _randomInteger_1 = require("./_randomInteger");
|
|
5
|
-
const
|
|
5
|
+
const _randomStringLength_1 = require("./_randomStringLength");
|
|
6
|
+
const _randomFormatDate = (props) => (0, _randomStringLength_1._randomFormatLength)(props, () => { var _a, _b; return new Date((0, _randomInteger_1._randomInteger)({
|
|
6
7
|
type: "integer",
|
|
7
8
|
minimum: (_a = props === null || props === void 0 ? void 0 : props.minimum) !== null && _a !== void 0 ? _a : 0,
|
|
8
9
|
maximum: ((_b = props === null || props === void 0 ? void 0 : props.maximum) !== null && _b !== void 0 ? _b : (props === null || props === void 0 ? void 0 : props.minimum) === undefined)
|
|
@@ -10,6 +11,6 @@ const _randomFormatDate = (props) => { var _a, _b; return new Date((0, _randomIn
|
|
|
10
11
|
: props.minimum + 365 * 24 * 60 * 60 * 1000,
|
|
11
12
|
}))
|
|
12
13
|
.toISOString()
|
|
13
|
-
.substring(0, 10); };
|
|
14
|
+
.substring(0, 10); });
|
|
14
15
|
exports._randomFormatDate = _randomFormatDate;
|
|
15
16
|
//# sourceMappingURL=_randomFormatDate.js.map
|