@typia/transform 12.0.0-dev.20260225
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 -0
- package/README.md +19 -0
- package/lib/CallExpressionTransformer.d.ts +17 -0
- package/lib/CallExpressionTransformer.js +467 -0
- package/lib/CallExpressionTransformer.js.map +1 -0
- package/lib/CallExpressionTransformer.mjs +462 -0
- package/lib/CallExpressionTransformer.mjs.map +1 -0
- package/lib/FileTransformer.d.ts +14 -0
- package/lib/FileTransformer.js +106 -0
- package/lib/FileTransformer.js.map +1 -0
- package/lib/FileTransformer.mjs +103 -0
- package/lib/FileTransformer.mjs.map +1 -0
- package/lib/ITransformProps.d.ts +17 -0
- package/lib/ITransformProps.js +3 -0
- package/lib/ITransformProps.js.map +1 -0
- package/lib/ITransformProps.mjs +2 -0
- package/lib/ITransformProps.mjs.map +1 -0
- package/lib/ImportTransformer.d.ts +16 -0
- package/lib/ImportTransformer.js +176 -0
- package/lib/ImportTransformer.js.map +1 -0
- package/lib/ImportTransformer.mjs +173 -0
- package/lib/ImportTransformer.mjs.map +1 -0
- package/lib/NodeTransformer.d.ts +16 -0
- package/lib/NodeTransformer.js +26 -0
- package/lib/NodeTransformer.js.map +1 -0
- package/lib/NodeTransformer.mjs +23 -0
- package/lib/NodeTransformer.mjs.map +1 -0
- package/lib/TransformerError.d.ts +42 -0
- package/lib/TransformerError.js +74 -0
- package/lib/TransformerError.js.map +1 -0
- package/lib/TransformerError.mjs +75 -0
- package/lib/TransformerError.mjs.map +1 -0
- package/lib/TypiaGenerator.d.ts +8 -0
- package/lib/TypiaGenerator.js +141 -0
- package/lib/TypiaGenerator.js.map +1 -0
- package/lib/TypiaGenerator.mjs +128 -0
- package/lib/TypiaGenerator.mjs.map +1 -0
- package/lib/features/AssertTransformer.d.ts +5 -0
- package/lib/features/AssertTransformer.js +16 -0
- package/lib/features/AssertTransformer.js.map +1 -0
- package/lib/features/AssertTransformer.mjs +23 -0
- package/lib/features/AssertTransformer.mjs.map +1 -0
- package/lib/features/CreateAssertTransformer.d.ts +5 -0
- package/lib/features/CreateAssertTransformer.js +16 -0
- package/lib/features/CreateAssertTransformer.js.map +1 -0
- package/lib/features/CreateAssertTransformer.mjs +23 -0
- package/lib/features/CreateAssertTransformer.mjs.map +1 -0
- package/lib/features/CreateIsTransformer.d.ts +5 -0
- package/lib/features/CreateIsTransformer.js +10 -0
- package/lib/features/CreateIsTransformer.js.map +1 -0
- package/lib/features/CreateIsTransformer.mjs +17 -0
- package/lib/features/CreateIsTransformer.mjs.map +1 -0
- package/lib/features/CreateRandomTransformer.d.ts +5 -0
- package/lib/features/CreateRandomTransformer.js +34 -0
- package/lib/features/CreateRandomTransformer.js.map +1 -0
- package/lib/features/CreateRandomTransformer.mjs +40 -0
- package/lib/features/CreateRandomTransformer.mjs.map +1 -0
- package/lib/features/CreateValidateTransformer.d.ts +5 -0
- package/lib/features/CreateValidateTransformer.js +10 -0
- package/lib/features/CreateValidateTransformer.js.map +1 -0
- package/lib/features/CreateValidateTransformer.mjs +17 -0
- package/lib/features/CreateValidateTransformer.mjs.map +1 -0
- package/lib/features/IsTransformer.d.ts +5 -0
- package/lib/features/IsTransformer.js +10 -0
- package/lib/features/IsTransformer.js.map +1 -0
- package/lib/features/IsTransformer.mjs +17 -0
- package/lib/features/IsTransformer.mjs.map +1 -0
- package/lib/features/RandomTransformer.d.ts +5 -0
- package/lib/features/RandomTransformer.js +39 -0
- package/lib/features/RandomTransformer.js.map +1 -0
- package/lib/features/RandomTransformer.mjs +35 -0
- package/lib/features/RandomTransformer.mjs.map +1 -0
- package/lib/features/ValidateTransformer.d.ts +5 -0
- package/lib/features/ValidateTransformer.js +10 -0
- package/lib/features/ValidateTransformer.js.map +1 -0
- package/lib/features/ValidateTransformer.mjs +17 -0
- package/lib/features/ValidateTransformer.mjs.map +1 -0
- package/lib/features/functional/FunctionalGenericTransformer.d.ts +21 -0
- package/lib/features/functional/FunctionalGenericTransformer.js +27 -0
- package/lib/features/functional/FunctionalGenericTransformer.js.map +1 -0
- package/lib/features/functional/FunctionalGenericTransformer.mjs +33 -0
- package/lib/features/functional/FunctionalGenericTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpAssertFormDataTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpAssertFormDataTransformer.js +10 -0
- package/lib/features/http/CreateHttpAssertFormDataTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpAssertFormDataTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpAssertFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpAssertHeadersTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpAssertHeadersTransformer.js +10 -0
- package/lib/features/http/CreateHttpAssertHeadersTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpAssertHeadersTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpAssertHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpAssertQueryTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpAssertQueryTransformer.js +10 -0
- package/lib/features/http/CreateHttpAssertQueryTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpAssertQueryTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpAssertQueryTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpFormDataTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpFormDataTransformer.js +10 -0
- package/lib/features/http/CreateHttpFormDataTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpFormDataTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpHeadersTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpHeadersTransformer.js +10 -0
- package/lib/features/http/CreateHttpHeadersTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpHeadersTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpIsFormDataTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpIsFormDataTransformer.js +10 -0
- package/lib/features/http/CreateHttpIsFormDataTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpIsFormDataTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpIsFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpIsHeadersTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpIsHeadersTransformer.js +10 -0
- package/lib/features/http/CreateHttpIsHeadersTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpIsHeadersTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpIsHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpIsQueryTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpIsQueryTransformer.js +10 -0
- package/lib/features/http/CreateHttpIsQueryTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpIsQueryTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpIsQueryTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpParameterTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpParameterTransformer.js +10 -0
- package/lib/features/http/CreateHttpParameterTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpParameterTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpParameterTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpQueryTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpQueryTransformer.js +10 -0
- package/lib/features/http/CreateHttpQueryTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpQueryTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpQueryTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpValidateFormDataTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpValidateFormDataTransformer.js +10 -0
- package/lib/features/http/CreateHttpValidateFormDataTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpValidateFormDataTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpValidateFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpValidateHeadersTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpValidateHeadersTransformer.js +10 -0
- package/lib/features/http/CreateHttpValidateHeadersTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpValidateHeadersTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpValidateHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/CreateHttpValidateQueryTransformer.d.ts +4 -0
- package/lib/features/http/CreateHttpValidateQueryTransformer.js +10 -0
- package/lib/features/http/CreateHttpValidateQueryTransformer.js.map +1 -0
- package/lib/features/http/CreateHttpValidateQueryTransformer.mjs +14 -0
- package/lib/features/http/CreateHttpValidateQueryTransformer.mjs.map +1 -0
- package/lib/features/http/HttpAssertFormDataTransformer.d.ts +4 -0
- package/lib/features/http/HttpAssertFormDataTransformer.js +10 -0
- package/lib/features/http/HttpAssertFormDataTransformer.js.map +1 -0
- package/lib/features/http/HttpAssertFormDataTransformer.mjs +14 -0
- package/lib/features/http/HttpAssertFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/HttpAssertHeadersTransformer.d.ts +4 -0
- package/lib/features/http/HttpAssertHeadersTransformer.js +10 -0
- package/lib/features/http/HttpAssertHeadersTransformer.js.map +1 -0
- package/lib/features/http/HttpAssertHeadersTransformer.mjs +14 -0
- package/lib/features/http/HttpAssertHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/HttpAssertQueryTransformer.d.ts +4 -0
- package/lib/features/http/HttpAssertQueryTransformer.js +10 -0
- package/lib/features/http/HttpAssertQueryTransformer.js.map +1 -0
- package/lib/features/http/HttpAssertQueryTransformer.mjs +14 -0
- package/lib/features/http/HttpAssertQueryTransformer.mjs.map +1 -0
- package/lib/features/http/HttpFormDataTransformer.d.ts +4 -0
- package/lib/features/http/HttpFormDataTransformer.js +10 -0
- package/lib/features/http/HttpFormDataTransformer.js.map +1 -0
- package/lib/features/http/HttpFormDataTransformer.mjs +14 -0
- package/lib/features/http/HttpFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/HttpHeadersTransformer.d.ts +4 -0
- package/lib/features/http/HttpHeadersTransformer.js +10 -0
- package/lib/features/http/HttpHeadersTransformer.js.map +1 -0
- package/lib/features/http/HttpHeadersTransformer.mjs +14 -0
- package/lib/features/http/HttpHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/HttpIsFormDataTransformer.d.ts +4 -0
- package/lib/features/http/HttpIsFormDataTransformer.js +10 -0
- package/lib/features/http/HttpIsFormDataTransformer.js.map +1 -0
- package/lib/features/http/HttpIsFormDataTransformer.mjs +14 -0
- package/lib/features/http/HttpIsFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/HttpIsHeadersTransformer.d.ts +4 -0
- package/lib/features/http/HttpIsHeadersTransformer.js +10 -0
- package/lib/features/http/HttpIsHeadersTransformer.js.map +1 -0
- package/lib/features/http/HttpIsHeadersTransformer.mjs +14 -0
- package/lib/features/http/HttpIsHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/HttpIsQueryTransformer.d.ts +4 -0
- package/lib/features/http/HttpIsQueryTransformer.js +10 -0
- package/lib/features/http/HttpIsQueryTransformer.js.map +1 -0
- package/lib/features/http/HttpIsQueryTransformer.mjs +14 -0
- package/lib/features/http/HttpIsQueryTransformer.mjs.map +1 -0
- package/lib/features/http/HttpParameterTransformer.d.ts +4 -0
- package/lib/features/http/HttpParameterTransformer.js +10 -0
- package/lib/features/http/HttpParameterTransformer.js.map +1 -0
- package/lib/features/http/HttpParameterTransformer.mjs +14 -0
- package/lib/features/http/HttpParameterTransformer.mjs.map +1 -0
- package/lib/features/http/HttpQueryTransformer.d.ts +4 -0
- package/lib/features/http/HttpQueryTransformer.js +10 -0
- package/lib/features/http/HttpQueryTransformer.js.map +1 -0
- package/lib/features/http/HttpQueryTransformer.mjs +14 -0
- package/lib/features/http/HttpQueryTransformer.mjs.map +1 -0
- package/lib/features/http/HttpValidateFormDataTransformer.d.ts +4 -0
- package/lib/features/http/HttpValidateFormDataTransformer.js +10 -0
- package/lib/features/http/HttpValidateFormDataTransformer.js.map +1 -0
- package/lib/features/http/HttpValidateFormDataTransformer.mjs +14 -0
- package/lib/features/http/HttpValidateFormDataTransformer.mjs.map +1 -0
- package/lib/features/http/HttpValidateHeadersTransformer.d.ts +4 -0
- package/lib/features/http/HttpValidateHeadersTransformer.js +10 -0
- package/lib/features/http/HttpValidateHeadersTransformer.js.map +1 -0
- package/lib/features/http/HttpValidateHeadersTransformer.mjs +14 -0
- package/lib/features/http/HttpValidateHeadersTransformer.mjs.map +1 -0
- package/lib/features/http/HttpValidateQueryTransformer.d.ts +4 -0
- package/lib/features/http/HttpValidateQueryTransformer.js +10 -0
- package/lib/features/http/HttpValidateQueryTransformer.js.map +1 -0
- package/lib/features/http/HttpValidateQueryTransformer.mjs +14 -0
- package/lib/features/http/HttpValidateQueryTransformer.mjs.map +1 -0
- package/lib/features/json/JsonApplicationTransformer.d.ts +5 -0
- package/lib/features/json/JsonApplicationTransformer.js +84 -0
- package/lib/features/json/JsonApplicationTransformer.js.map +1 -0
- package/lib/features/json/JsonApplicationTransformer.mjs +80 -0
- package/lib/features/json/JsonApplicationTransformer.mjs.map +1 -0
- package/lib/features/json/JsonAssertParseTransformer.d.ts +4 -0
- package/lib/features/json/JsonAssertParseTransformer.js +10 -0
- package/lib/features/json/JsonAssertParseTransformer.js.map +1 -0
- package/lib/features/json/JsonAssertParseTransformer.mjs +14 -0
- package/lib/features/json/JsonAssertParseTransformer.mjs.map +1 -0
- package/lib/features/json/JsonAssertStringifyTransformer.d.ts +4 -0
- package/lib/features/json/JsonAssertStringifyTransformer.js +10 -0
- package/lib/features/json/JsonAssertStringifyTransformer.js.map +1 -0
- package/lib/features/json/JsonAssertStringifyTransformer.mjs +14 -0
- package/lib/features/json/JsonAssertStringifyTransformer.mjs.map +1 -0
- package/lib/features/json/JsonCreateAssertParseTransformer.d.ts +4 -0
- package/lib/features/json/JsonCreateAssertParseTransformer.js +10 -0
- package/lib/features/json/JsonCreateAssertParseTransformer.js.map +1 -0
- package/lib/features/json/JsonCreateAssertParseTransformer.mjs +14 -0
- package/lib/features/json/JsonCreateAssertParseTransformer.mjs.map +1 -0
- package/lib/features/json/JsonCreateAssertStringifyTransformer.d.ts +4 -0
- package/lib/features/json/JsonCreateAssertStringifyTransformer.js +10 -0
- package/lib/features/json/JsonCreateAssertStringifyTransformer.js.map +1 -0
- package/lib/features/json/JsonCreateAssertStringifyTransformer.mjs +14 -0
- package/lib/features/json/JsonCreateAssertStringifyTransformer.mjs.map +1 -0
- package/lib/features/json/JsonCreateIsParseTransformer.d.ts +4 -0
- package/lib/features/json/JsonCreateIsParseTransformer.js +10 -0
- package/lib/features/json/JsonCreateIsParseTransformer.js.map +1 -0
- package/lib/features/json/JsonCreateIsParseTransformer.mjs +14 -0
- package/lib/features/json/JsonCreateIsParseTransformer.mjs.map +1 -0
- package/lib/features/json/JsonCreateIsStringifyTransformer.d.ts +4 -0
- package/lib/features/json/JsonCreateIsStringifyTransformer.js +10 -0
- package/lib/features/json/JsonCreateIsStringifyTransformer.js.map +1 -0
- package/lib/features/json/JsonCreateIsStringifyTransformer.mjs +14 -0
- package/lib/features/json/JsonCreateIsStringifyTransformer.mjs.map +1 -0
- package/lib/features/json/JsonCreateStringifyTransformer.d.ts +4 -0
- package/lib/features/json/JsonCreateStringifyTransformer.js +10 -0
- package/lib/features/json/JsonCreateStringifyTransformer.js.map +1 -0
- package/lib/features/json/JsonCreateStringifyTransformer.mjs +14 -0
- package/lib/features/json/JsonCreateStringifyTransformer.mjs.map +1 -0
- package/lib/features/json/JsonCreateValidateParseTransformer.d.ts +4 -0
- package/lib/features/json/JsonCreateValidateParseTransformer.js +10 -0
- package/lib/features/json/JsonCreateValidateParseTransformer.js.map +1 -0
- package/lib/features/json/JsonCreateValidateParseTransformer.mjs +14 -0
- package/lib/features/json/JsonCreateValidateParseTransformer.mjs.map +1 -0
- package/lib/features/json/JsonCreateValidateStringifyProgrammer.d.ts +4 -0
- package/lib/features/json/JsonCreateValidateStringifyProgrammer.js +10 -0
- package/lib/features/json/JsonCreateValidateStringifyProgrammer.js.map +1 -0
- package/lib/features/json/JsonCreateValidateStringifyProgrammer.mjs +14 -0
- package/lib/features/json/JsonCreateValidateStringifyProgrammer.mjs.map +1 -0
- package/lib/features/json/JsonIsParseTransformer.d.ts +4 -0
- package/lib/features/json/JsonIsParseTransformer.js +10 -0
- package/lib/features/json/JsonIsParseTransformer.js.map +1 -0
- package/lib/features/json/JsonIsParseTransformer.mjs +14 -0
- package/lib/features/json/JsonIsParseTransformer.mjs.map +1 -0
- package/lib/features/json/JsonIsStringifyTransformer.d.ts +4 -0
- package/lib/features/json/JsonIsStringifyTransformer.js +10 -0
- package/lib/features/json/JsonIsStringifyTransformer.js.map +1 -0
- package/lib/features/json/JsonIsStringifyTransformer.mjs +14 -0
- package/lib/features/json/JsonIsStringifyTransformer.mjs.map +1 -0
- package/lib/features/json/JsonSchemaTransformer.d.ts +5 -0
- package/lib/features/json/JsonSchemaTransformer.js +104 -0
- package/lib/features/json/JsonSchemaTransformer.js.map +1 -0
- package/lib/features/json/JsonSchemaTransformer.mjs +100 -0
- package/lib/features/json/JsonSchemaTransformer.mjs.map +1 -0
- package/lib/features/json/JsonSchemasTransformer.d.ts +5 -0
- package/lib/features/json/JsonSchemasTransformer.js +114 -0
- package/lib/features/json/JsonSchemasTransformer.js.map +1 -0
- package/lib/features/json/JsonSchemasTransformer.mjs +110 -0
- package/lib/features/json/JsonSchemasTransformer.mjs.map +1 -0
- package/lib/features/json/JsonStringifyTransformer.d.ts +4 -0
- package/lib/features/json/JsonStringifyTransformer.js +10 -0
- package/lib/features/json/JsonStringifyTransformer.js.map +1 -0
- package/lib/features/json/JsonStringifyTransformer.mjs +14 -0
- package/lib/features/json/JsonStringifyTransformer.mjs.map +1 -0
- package/lib/features/json/JsonValidateParseTransformer.d.ts +4 -0
- package/lib/features/json/JsonValidateParseTransformer.js +10 -0
- package/lib/features/json/JsonValidateParseTransformer.js.map +1 -0
- package/lib/features/json/JsonValidateParseTransformer.mjs +14 -0
- package/lib/features/json/JsonValidateParseTransformer.mjs.map +1 -0
- package/lib/features/json/JsonValidateStringifyTransformer.d.ts +4 -0
- package/lib/features/json/JsonValidateStringifyTransformer.js +10 -0
- package/lib/features/json/JsonValidateStringifyTransformer.js.map +1 -0
- package/lib/features/json/JsonValidateStringifyTransformer.mjs +14 -0
- package/lib/features/json/JsonValidateStringifyTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmApplicationTransformer.d.ts +12 -0
- package/lib/features/llm/LlmApplicationTransformer.js +123 -0
- package/lib/features/llm/LlmApplicationTransformer.js.map +1 -0
- package/lib/features/llm/LlmApplicationTransformer.mjs +118 -0
- package/lib/features/llm/LlmApplicationTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmControllerTransformer.d.ts +5 -0
- package/lib/features/llm/LlmControllerTransformer.js +61 -0
- package/lib/features/llm/LlmControllerTransformer.js.map +1 -0
- package/lib/features/llm/LlmControllerTransformer.mjs +57 -0
- package/lib/features/llm/LlmControllerTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmParametersTransformer.d.ts +5 -0
- package/lib/features/llm/LlmParametersTransformer.js +71 -0
- package/lib/features/llm/LlmParametersTransformer.js.map +1 -0
- package/lib/features/llm/LlmParametersTransformer.mjs +67 -0
- package/lib/features/llm/LlmParametersTransformer.mjs.map +1 -0
- package/lib/features/llm/LlmSchemaTransformer.d.ts +5 -0
- package/lib/features/llm/LlmSchemaTransformer.js +90 -0
- package/lib/features/llm/LlmSchemaTransformer.js.map +1 -0
- package/lib/features/llm/LlmSchemaTransformer.mjs +86 -0
- package/lib/features/llm/LlmSchemaTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscAssertCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscAssertCloneTransformer.js +10 -0
- package/lib/features/misc/MiscAssertCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscAssertCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscAssertCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscAssertPruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscAssertPruneTransformer.js +10 -0
- package/lib/features/misc/MiscAssertPruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscAssertPruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscAssertPruneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCloneTransformer.js +10 -0
- package/lib/features/misc/MiscCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreateAssertCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreateAssertCloneTransformer.js +10 -0
- package/lib/features/misc/MiscCreateAssertCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreateAssertCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreateAssertCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreateAssertPruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreateAssertPruneTransformer.js +10 -0
- package/lib/features/misc/MiscCreateAssertPruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreateAssertPruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreateAssertPruneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreateCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreateCloneTransformer.js +10 -0
- package/lib/features/misc/MiscCreateCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreateCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreateCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreateIsCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreateIsCloneTransformer.js +10 -0
- package/lib/features/misc/MiscCreateIsCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreateIsCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreateIsCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreateIsPruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreateIsPruneTransformer.js +10 -0
- package/lib/features/misc/MiscCreateIsPruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreateIsPruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreateIsPruneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreatePruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreatePruneTransformer.js +10 -0
- package/lib/features/misc/MiscCreatePruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreatePruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreatePruneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreateValidateCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreateValidateCloneTransformer.js +10 -0
- package/lib/features/misc/MiscCreateValidateCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreateValidateCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreateValidateCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscCreateValidatePruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscCreateValidatePruneTransformer.js +10 -0
- package/lib/features/misc/MiscCreateValidatePruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscCreateValidatePruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscCreateValidatePruneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscIsCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscIsCloneTransformer.js +10 -0
- package/lib/features/misc/MiscIsCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscIsCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscIsCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscIsPruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscIsPruneTransformer.js +10 -0
- package/lib/features/misc/MiscIsPruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscIsPruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscIsPruneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscLiteralsTransformer.d.ts +5 -0
- package/lib/features/misc/MiscLiteralsTransformer.js +31 -0
- package/lib/features/misc/MiscLiteralsTransformer.js.map +1 -0
- package/lib/features/misc/MiscLiteralsTransformer.mjs +30 -0
- package/lib/features/misc/MiscLiteralsTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscPruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscPruneTransformer.js +10 -0
- package/lib/features/misc/MiscPruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscPruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscPruneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscValidateCloneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscValidateCloneTransformer.js +10 -0
- package/lib/features/misc/MiscValidateCloneTransformer.js.map +1 -0
- package/lib/features/misc/MiscValidateCloneTransformer.mjs +14 -0
- package/lib/features/misc/MiscValidateCloneTransformer.mjs.map +1 -0
- package/lib/features/misc/MiscValidatePruneTransformer.d.ts +4 -0
- package/lib/features/misc/MiscValidatePruneTransformer.js +10 -0
- package/lib/features/misc/MiscValidatePruneTransformer.js.map +1 -0
- package/lib/features/misc/MiscValidatePruneTransformer.mjs +14 -0
- package/lib/features/misc/MiscValidatePruneTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationAssertGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationAssertGeneralTransformer.js +11 -0
- package/lib/features/notations/NotationAssertGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationAssertGeneralTransformer.mjs +18 -0
- package/lib/features/notations/NotationAssertGeneralTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationCreateAssertGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationCreateAssertGeneralTransformer.js +11 -0
- package/lib/features/notations/NotationCreateAssertGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationCreateAssertGeneralTransformer.mjs +18 -0
- package/lib/features/notations/NotationCreateAssertGeneralTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationCreateGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationCreateGeneralTransformer.js +11 -0
- package/lib/features/notations/NotationCreateGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationCreateGeneralTransformer.mjs +18 -0
- package/lib/features/notations/NotationCreateGeneralTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationCreateIsGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationCreateIsGeneralTransformer.js +11 -0
- package/lib/features/notations/NotationCreateIsGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationCreateIsGeneralTransformer.mjs +18 -0
- package/lib/features/notations/NotationCreateIsGeneralTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationCreateValidateGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationCreateValidateGeneralTransformer.js +11 -0
- package/lib/features/notations/NotationCreateValidateGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationCreateValidateGeneralTransformer.mjs +18 -0
- package/lib/features/notations/NotationCreateValidateGeneralTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationGeneralTransformer.js +10 -0
- package/lib/features/notations/NotationGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationGeneralTransformer.mjs +17 -0
- package/lib/features/notations/NotationGeneralTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationIsGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationIsGeneralTransformer.js +11 -0
- package/lib/features/notations/NotationIsGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationIsGeneralTransformer.mjs +18 -0
- package/lib/features/notations/NotationIsGeneralTransformer.mjs.map +1 -0
- package/lib/features/notations/NotationValidateGeneralTransformer.d.ts +4 -0
- package/lib/features/notations/NotationValidateGeneralTransformer.js +11 -0
- package/lib/features/notations/NotationValidateGeneralTransformer.js.map +1 -0
- package/lib/features/notations/NotationValidateGeneralTransformer.mjs +18 -0
- package/lib/features/notations/NotationValidateGeneralTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufAssertDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufAssertDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufAssertDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufAssertDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufAssertDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufAssertEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufAssertEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufAssertEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufAssertEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufAssertEncodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateAssertDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateAssertDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateAssertDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateAssertDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateAssertDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateAssertEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateAssertEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateAssertEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateAssertEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateAssertEncodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateEncodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateIsDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateIsDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateIsDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateIsDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateIsDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateIsEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateIsEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateIsEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateIsEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateIsEncodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateValidateDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateValidateDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateValidateDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateValidateDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateValidateDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufCreateValidateEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufCreateValidateEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufCreateValidateEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufCreateValidateEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufCreateValidateEncodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufEncodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufIsDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufIsDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufIsDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufIsDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufIsDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufIsEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufIsEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufIsEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufIsEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufIsEncodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufMessageTransformer.d.ts +5 -0
- package/lib/features/protobuf/ProtobufMessageTransformer.js +29 -0
- package/lib/features/protobuf/ProtobufMessageTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufMessageTransformer.mjs +29 -0
- package/lib/features/protobuf/ProtobufMessageTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufValidateDecodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufValidateDecodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufValidateDecodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufValidateDecodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufValidateDecodeTransformer.mjs.map +1 -0
- package/lib/features/protobuf/ProtobufValidateEncodeTransformer.d.ts +4 -0
- package/lib/features/protobuf/ProtobufValidateEncodeTransformer.js +10 -0
- package/lib/features/protobuf/ProtobufValidateEncodeTransformer.js.map +1 -0
- package/lib/features/protobuf/ProtobufValidateEncodeTransformer.mjs +14 -0
- package/lib/features/protobuf/ProtobufValidateEncodeTransformer.mjs.map +1 -0
- package/lib/features/reflect/ReflectMetadataTransformer.d.ts +5 -0
- package/lib/features/reflect/ReflectMetadataTransformer.js +62 -0
- package/lib/features/reflect/ReflectMetadataTransformer.js.map +1 -0
- package/lib/features/reflect/ReflectMetadataTransformer.mjs +58 -0
- package/lib/features/reflect/ReflectMetadataTransformer.mjs.map +1 -0
- package/lib/features/reflect/ReflectNameTransformer.d.ts +5 -0
- package/lib/features/reflect/ReflectNameTransformer.js +69 -0
- package/lib/features/reflect/ReflectNameTransformer.js.map +1 -0
- package/lib/features/reflect/ReflectNameTransformer.mjs +65 -0
- package/lib/features/reflect/ReflectNameTransformer.mjs.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +22 -0
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +8 -0
- package/lib/index.mjs.map +1 -0
- package/lib/internal/GenericTransformer.d.ts +11 -0
- package/lib/internal/GenericTransformer.js +76 -0
- package/lib/internal/GenericTransformer.js.map +1 -0
- package/lib/internal/GenericTransformer.mjs +72 -0
- package/lib/internal/GenericTransformer.mjs.map +1 -0
- package/lib/transform.d.ts +38 -0
- package/lib/transform.js +68 -0
- package/lib/transform.js.map +1 -0
- package/lib/transform.mjs +64 -0
- package/lib/transform.mjs.map +1 -0
- package/package.json +95 -0
- package/src/CallExpressionTransformer.ts +567 -0
- package/src/FileTransformer.ts +143 -0
- package/src/ITransformProps.ts +20 -0
- package/src/ImportTransformer.ts +262 -0
- package/src/NodeTransformer.ts +25 -0
- package/src/TransformerError.ts +85 -0
- package/src/TypiaGenerator.ts +174 -0
- package/src/features/AssertTransformer.ts +24 -0
- package/src/features/CreateAssertTransformer.ts +24 -0
- package/src/features/CreateIsTransformer.ts +18 -0
- package/src/features/CreateRandomTransformer.ts +42 -0
- package/src/features/CreateValidateTransformer.ts +18 -0
- package/src/features/IsTransformer.ts +18 -0
- package/src/features/RandomTransformer.ts +40 -0
- package/src/features/ValidateTransformer.ts +18 -0
- package/src/features/functional/FunctionalGenericTransformer.ts +55 -0
- package/src/features/http/CreateHttpAssertFormDataTransformer.ts +13 -0
- package/src/features/http/CreateHttpAssertHeadersTransformer.ts +13 -0
- package/src/features/http/CreateHttpAssertQueryTransformer.ts +13 -0
- package/src/features/http/CreateHttpFormDataTransformer.ts +13 -0
- package/src/features/http/CreateHttpHeadersTransformer.ts +13 -0
- package/src/features/http/CreateHttpIsFormDataTransformer.ts +13 -0
- package/src/features/http/CreateHttpIsHeadersTransformer.ts +13 -0
- package/src/features/http/CreateHttpIsQueryTransformer.ts +13 -0
- package/src/features/http/CreateHttpParameterTransformer.ts +13 -0
- package/src/features/http/CreateHttpQueryTransformer.ts +13 -0
- package/src/features/http/CreateHttpValidateFormDataTransformer.ts +13 -0
- package/src/features/http/CreateHttpValidateHeadersTransformer.ts +13 -0
- package/src/features/http/CreateHttpValidateQueryTransformer.ts +13 -0
- package/src/features/http/HttpAssertFormDataTransformer.ts +13 -0
- package/src/features/http/HttpAssertHeadersTransformer.ts +13 -0
- package/src/features/http/HttpAssertQueryTransformer.ts +13 -0
- package/src/features/http/HttpFormDataTransformer.ts +13 -0
- package/src/features/http/HttpHeadersTransformer.ts +13 -0
- package/src/features/http/HttpIsFormDataTransformer.ts +13 -0
- package/src/features/http/HttpIsHeadersTransformer.ts +13 -0
- package/src/features/http/HttpIsQueryTransformer.ts +13 -0
- package/src/features/http/HttpParameterTransformer.ts +13 -0
- package/src/features/http/HttpQueryTransformer.ts +13 -0
- package/src/features/http/HttpValidateFormDataTransformer.ts +13 -0
- package/src/features/http/HttpValidateHeadersTransformer.ts +13 -0
- package/src/features/http/HttpValidateQueryTransformer.ts +13 -0
- package/src/features/json/JsonApplicationTransformer.ts +102 -0
- package/src/features/json/JsonAssertParseTransformer.ts +13 -0
- package/src/features/json/JsonAssertStringifyTransformer.ts +13 -0
- package/src/features/json/JsonCreateAssertParseTransformer.ts +13 -0
- package/src/features/json/JsonCreateAssertStringifyTransformer.ts +13 -0
- package/src/features/json/JsonCreateIsParseTransformer.ts +13 -0
- package/src/features/json/JsonCreateIsStringifyTransformer.ts +13 -0
- package/src/features/json/JsonCreateStringifyTransformer.ts +13 -0
- package/src/features/json/JsonCreateValidateParseTransformer.ts +13 -0
- package/src/features/json/JsonCreateValidateStringifyProgrammer.ts +13 -0
- package/src/features/json/JsonIsParseTransformer.ts +13 -0
- package/src/features/json/JsonIsStringifyTransformer.ts +13 -0
- package/src/features/json/JsonSchemaTransformer.ts +132 -0
- package/src/features/json/JsonSchemasTransformer.ts +142 -0
- package/src/features/json/JsonStringifyTransformer.ts +13 -0
- package/src/features/json/JsonValidateParseTransformer.ts +13 -0
- package/src/features/json/JsonValidateStringifyTransformer.ts +13 -0
- package/src/features/llm/LlmApplicationTransformer.ts +206 -0
- package/src/features/llm/LlmControllerTransformer.ts +82 -0
- package/src/features/llm/LlmParametersTransformer.ts +88 -0
- package/src/features/llm/LlmSchemaTransformer.ts +133 -0
- package/src/features/misc/MiscAssertCloneTransformer.ts +13 -0
- package/src/features/misc/MiscAssertPruneTransformer.ts +13 -0
- package/src/features/misc/MiscCloneTransformer.ts +13 -0
- package/src/features/misc/MiscCreateAssertCloneTransformer.ts +13 -0
- package/src/features/misc/MiscCreateAssertPruneTransformer.ts +13 -0
- package/src/features/misc/MiscCreateCloneTransformer.ts +13 -0
- package/src/features/misc/MiscCreateIsCloneTransformer.ts +13 -0
- package/src/features/misc/MiscCreateIsPruneTransformer.ts +13 -0
- package/src/features/misc/MiscCreatePruneTransformer.ts +13 -0
- package/src/features/misc/MiscCreateValidateCloneTransformer.ts +13 -0
- package/src/features/misc/MiscCreateValidatePruneTransformer.ts +13 -0
- package/src/features/misc/MiscIsCloneTransformer.ts +13 -0
- package/src/features/misc/MiscIsPruneTransformer.ts +13 -0
- package/src/features/misc/MiscLiteralsTransformer.ts +34 -0
- package/src/features/misc/MiscPruneTransformer.ts +13 -0
- package/src/features/misc/MiscValidateCloneTransformer.ts +13 -0
- package/src/features/misc/MiscValidatePruneTransformer.ts +13 -0
- package/src/features/notations/NotationAssertGeneralTransformer.ts +19 -0
- package/src/features/notations/NotationCreateAssertGeneralTransformer.ts +19 -0
- package/src/features/notations/NotationCreateGeneralTransformer.ts +19 -0
- package/src/features/notations/NotationCreateIsGeneralTransformer.ts +19 -0
- package/src/features/notations/NotationCreateValidateGeneralTransformer.ts +19 -0
- package/src/features/notations/NotationGeneralTransformer.ts +18 -0
- package/src/features/notations/NotationIsGeneralTransformer.ts +19 -0
- package/src/features/notations/NotationValidateGeneralTransformer.ts +19 -0
- package/src/features/protobuf/ProtobufAssertDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufAssertEncodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateAssertDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateAssertEncodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateEncodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateIsDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateIsEncodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateValidateDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufCreateValidateEncodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufEncodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufIsDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufIsEncodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufMessageTransformer.ts +34 -0
- package/src/features/protobuf/ProtobufValidateDecodeTransformer.ts +13 -0
- package/src/features/protobuf/ProtobufValidateEncodeTransformer.ts +13 -0
- package/src/features/reflect/ReflectMetadataTransformer.ts +69 -0
- package/src/features/reflect/ReflectNameTransformer.ts +81 -0
- package/src/index.ts +7 -0
- package/src/internal/GenericTransformer.ts +101 -0
- package/src/transform.ts +68 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { ImportProgrammer } from '@typia/core';
|
|
2
|
+
import { Singleton } from '@typia/utils';
|
|
3
|
+
import ts from 'typescript';
|
|
4
|
+
import { NodeTransformer } from './NodeTransformer.mjs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* TypeScript source file transformer for typia.
|
|
8
|
+
*
|
|
9
|
+
* Entry point for typia's compile-time transformation. Traverses AST nodes,
|
|
10
|
+
* transforms `typia.*` function calls into optimized runtime code, and injects
|
|
11
|
+
* required imports. Skips declaration files.
|
|
12
|
+
*
|
|
13
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
14
|
+
*/
|
|
15
|
+
var FileTransformer;
|
|
16
|
+
(function (FileTransformer) {
|
|
17
|
+
FileTransformer.transform = (environments) => (transformer) => (file) => {
|
|
18
|
+
if (file.isDeclarationFile)
|
|
19
|
+
return file;
|
|
20
|
+
const importer = new ImportProgrammer({
|
|
21
|
+
internalPrefix: "typia_transform_",
|
|
22
|
+
runtime: environments.options.runtime,
|
|
23
|
+
});
|
|
24
|
+
const context = {
|
|
25
|
+
...environments,
|
|
26
|
+
transformer,
|
|
27
|
+
importer,
|
|
28
|
+
};
|
|
29
|
+
checkJsDocParsingMode.get(context, file);
|
|
30
|
+
file = ts.visitEachChild(file, (node) => iterate_node({
|
|
31
|
+
context,
|
|
32
|
+
node,
|
|
33
|
+
}), transformer);
|
|
34
|
+
const index = find_import_injection_index(file);
|
|
35
|
+
return ts.factory.updateSourceFile(file, [
|
|
36
|
+
...file.statements.slice(0, index),
|
|
37
|
+
...importer.toStatements(),
|
|
38
|
+
...file.statements.slice(index),
|
|
39
|
+
], false, file.referencedFiles, file.typeReferenceDirectives, file.hasNoDefaultLib, file.libReferenceDirectives);
|
|
40
|
+
};
|
|
41
|
+
const iterate_node = (props) => ts.visitEachChild(try_transform_node(props) ?? props.node, (node) => iterate_node({
|
|
42
|
+
context: props.context,
|
|
43
|
+
node,
|
|
44
|
+
}), props.context.transformer);
|
|
45
|
+
const try_transform_node = (props) => {
|
|
46
|
+
try {
|
|
47
|
+
return NodeTransformer.transform(props);
|
|
48
|
+
}
|
|
49
|
+
catch (exp) {
|
|
50
|
+
// ONLY ACCEPT TRANSFORMER-ERROR
|
|
51
|
+
if (!isTransformerError(exp))
|
|
52
|
+
throw exp;
|
|
53
|
+
// REPORT DIAGNOSTIC
|
|
54
|
+
const diagnostic = ts.createDiagnosticForNode(props.node, {
|
|
55
|
+
key: exp.code,
|
|
56
|
+
category: ts.DiagnosticCategory.Error,
|
|
57
|
+
message: exp.message,
|
|
58
|
+
code: `(${exp.code})`,
|
|
59
|
+
});
|
|
60
|
+
props.context.extras.addDiagnostic(diagnostic);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const find_import_injection_index = (file) => {
|
|
65
|
+
let i = 0;
|
|
66
|
+
for (; i < file.statements.length; ++i) {
|
|
67
|
+
const stmt = file.statements[i];
|
|
68
|
+
if (ts.isExpressionStatement(stmt) &&
|
|
69
|
+
ts.isStringLiteralLike(stmt.expression) &&
|
|
70
|
+
stmt.expression.text.startsWith("use "))
|
|
71
|
+
continue;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
return i;
|
|
75
|
+
};
|
|
76
|
+
})(FileTransformer || (FileTransformer = {}));
|
|
77
|
+
const isTransformerError = (error) => typeof error === "object" &&
|
|
78
|
+
error !== null &&
|
|
79
|
+
error.constructor.name === "TransformerError" &&
|
|
80
|
+
typeof error.code === "string" &&
|
|
81
|
+
typeof error.message === "string";
|
|
82
|
+
const checkJsDocParsingMode = new Singleton((context, file) => {
|
|
83
|
+
if (typeof file.jsDocParsingMode === "number" &&
|
|
84
|
+
file.jsDocParsingMode !== 0) {
|
|
85
|
+
context.extras.addDiagnostic(ts.createDiagnosticForNode(file, {
|
|
86
|
+
code: `(typia setup)`,
|
|
87
|
+
key: "jsDocParsingMode",
|
|
88
|
+
category: ts.DiagnosticCategory.Warning,
|
|
89
|
+
message: [
|
|
90
|
+
`Run "npx typia setup" or "npx typia patch" command again.`,
|
|
91
|
+
``,
|
|
92
|
+
`Since TypeScript v5.3 update, "tsc" no more parses JSDoc comments. Therefore, "typia" also cannot utilize those JSDoc comments too, and it damages on some features of "typia" like "comment tags" or "JSON schema" generator.`,
|
|
93
|
+
``,
|
|
94
|
+
`To solve this problem, run "npx typia setup" or "npx typia patch" command to hack the TypeScript compiler to revive the JSDoc parsing feature.`,
|
|
95
|
+
``,
|
|
96
|
+
` - reference: https://github.com/microsoft/TypeScript/pull/55739`,
|
|
97
|
+
].join("\n"),
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
export { FileTransformer };
|
|
103
|
+
//# sourceMappingURL=FileTransformer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileTransformer.mjs","sources":["../src/FileTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ITypiaContext } from "@typia/core";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
/**
|
|
4
|
+
* Properties for individual typia function transformation.
|
|
5
|
+
*
|
|
6
|
+
* Passed to each transformer handler when processing a `typia.*()` call.
|
|
7
|
+
*
|
|
8
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
9
|
+
*/
|
|
10
|
+
export interface ITransformProps {
|
|
11
|
+
/** Typia transformation context with type checker and utilities. */
|
|
12
|
+
context: ITypiaContext;
|
|
13
|
+
/** Module expression (e.g., `typia` in `typia.is<T>()`). */
|
|
14
|
+
modulo: ts.LeftHandSideExpression;
|
|
15
|
+
/** The original `typia.*<T>()` call expression being transformed. */
|
|
16
|
+
expression: ts.CallExpression;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITransformProps.js","sourceRoot":"","sources":["../src/ITransformProps.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITransformProps.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
/**
|
|
3
|
+
* Transforms import paths for typia build output.
|
|
4
|
+
*
|
|
5
|
+
* Rewrites relative import paths when building typia packages. Also removes
|
|
6
|
+
* unused typia imports that only contained transformable function calls (since
|
|
7
|
+
* those are replaced at compile time).
|
|
8
|
+
*
|
|
9
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
10
|
+
*/
|
|
11
|
+
export declare namespace ImportTransformer {
|
|
12
|
+
const transform: (props: {
|
|
13
|
+
from: string;
|
|
14
|
+
to: string;
|
|
15
|
+
}) => (context: ts.TransformationContext) => (file: ts.SourceFile) => ts.SourceFile;
|
|
16
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ImportTransformer = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
/**
|
|
10
|
+
* Transforms import paths for typia build output.
|
|
11
|
+
*
|
|
12
|
+
* Rewrites relative import paths when building typia packages. Also removes
|
|
13
|
+
* unused typia imports that only contained transformable function calls (since
|
|
14
|
+
* those are replaced at compile time).
|
|
15
|
+
*
|
|
16
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
17
|
+
*/
|
|
18
|
+
var ImportTransformer;
|
|
19
|
+
(function (ImportTransformer) {
|
|
20
|
+
ImportTransformer.transform = (props) => (context) => (file) => transform_file({
|
|
21
|
+
top: props.from,
|
|
22
|
+
to: props.to,
|
|
23
|
+
context,
|
|
24
|
+
file,
|
|
25
|
+
});
|
|
26
|
+
const transform_file = (props) => {
|
|
27
|
+
if (props.file.isDeclarationFile)
|
|
28
|
+
return props.file;
|
|
29
|
+
const from = get_directory_path(path_1.default.resolve(props.file.getSourceFile().fileName));
|
|
30
|
+
const to = from.replace(props.top, props.to);
|
|
31
|
+
// First pass: transform relative imports
|
|
32
|
+
let transformedFile = typescript_1.default.visitEachChild(props.file, (node) => transform_node({
|
|
33
|
+
top: props.top,
|
|
34
|
+
from,
|
|
35
|
+
to,
|
|
36
|
+
node,
|
|
37
|
+
}), props.context);
|
|
38
|
+
// Second pass: remove unused typia imports
|
|
39
|
+
transformedFile = removeUnusedTypiaImports(transformedFile);
|
|
40
|
+
return transformedFile;
|
|
41
|
+
};
|
|
42
|
+
const transform_node = (props) => {
|
|
43
|
+
if (!typescript_1.default.isImportDeclaration(props.node) ||
|
|
44
|
+
!typescript_1.default.isStringLiteral(props.node.moduleSpecifier))
|
|
45
|
+
return props.node;
|
|
46
|
+
const text = props.node.moduleSpecifier.text;
|
|
47
|
+
if (text[0] !== ".")
|
|
48
|
+
return props.node;
|
|
49
|
+
const location = path_1.default.resolve(props.from, text);
|
|
50
|
+
if (location.indexOf(props.top) === 0)
|
|
51
|
+
return props.node;
|
|
52
|
+
const replaced = (() => {
|
|
53
|
+
const simple = path_1.default
|
|
54
|
+
.relative(props.to, location)
|
|
55
|
+
.split(path_1.default.sep)
|
|
56
|
+
.join("/");
|
|
57
|
+
return simple[0] === "." ? simple : `./${simple}`;
|
|
58
|
+
})();
|
|
59
|
+
return typescript_1.default.factory.createImportDeclaration(undefined, props.node.importClause, typescript_1.default.factory.createStringLiteral(replaced), props.node.assertClause);
|
|
60
|
+
};
|
|
61
|
+
})(ImportTransformer || (exports.ImportTransformer = ImportTransformer = {}));
|
|
62
|
+
const get_directory_path = (file) => {
|
|
63
|
+
const split = path_1.default.resolve(file).split(path_1.default.sep);
|
|
64
|
+
split.pop();
|
|
65
|
+
return path_1.default.resolve(split.join(path_1.default.sep));
|
|
66
|
+
};
|
|
67
|
+
/** Remove unused typia imports that are only used in transformable calls */
|
|
68
|
+
const removeUnusedTypiaImports = (file) => {
|
|
69
|
+
const imports = new Map();
|
|
70
|
+
for (const stmt of file.statements) {
|
|
71
|
+
if (typescript_1.default.isImportDeclaration(stmt) === false ||
|
|
72
|
+
typescript_1.default.isStringLiteral(stmt.moduleSpecifier) === false ||
|
|
73
|
+
stmt.moduleSpecifier.text !== "typia" ||
|
|
74
|
+
stmt.importClause === undefined)
|
|
75
|
+
continue;
|
|
76
|
+
// Track default import (import typia from 'typia')
|
|
77
|
+
if (stmt.importClause.name)
|
|
78
|
+
imports.set(stmt.importClause.name.text, {
|
|
79
|
+
declaration: stmt,
|
|
80
|
+
default: true,
|
|
81
|
+
});
|
|
82
|
+
// Track named imports (import { tags } from 'typia') - keep these
|
|
83
|
+
if (stmt.importClause.namedBindings &&
|
|
84
|
+
typescript_1.default.isNamedImports(stmt.importClause.namedBindings))
|
|
85
|
+
for (const element of stmt.importClause.namedBindings.elements)
|
|
86
|
+
imports.set(element.name.text, {
|
|
87
|
+
declaration: stmt,
|
|
88
|
+
default: false,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (imports.size === 0)
|
|
92
|
+
return file; // No typia imports to check
|
|
93
|
+
// Find usage of typia identifiers that are NOT transformable calls
|
|
94
|
+
const nonTransformableUsage = new Set();
|
|
95
|
+
const checkUsage = (node) => {
|
|
96
|
+
if (typescript_1.default.isIdentifier(node) && imports.has(node.text)) {
|
|
97
|
+
const identifier = node.text;
|
|
98
|
+
// Check if this identifier is being used as part of a property access
|
|
99
|
+
if (node.parent &&
|
|
100
|
+
typescript_1.default.isPropertyAccessExpression(node.parent) &&
|
|
101
|
+
node.parent.expression === node) {
|
|
102
|
+
// This is typia.something - check if it's a transformable call pattern
|
|
103
|
+
if (!isLikelyTransformableCall(node.parent))
|
|
104
|
+
nonTransformableUsage.add(identifier);
|
|
105
|
+
}
|
|
106
|
+
else
|
|
107
|
+
// Direct usage of the typia identifier (not as property access)
|
|
108
|
+
// This is definitely non-transformable usage
|
|
109
|
+
nonTransformableUsage.add(identifier);
|
|
110
|
+
}
|
|
111
|
+
typescript_1.default.forEachChild(node, checkUsage);
|
|
112
|
+
};
|
|
113
|
+
// Check all statements except import declarations
|
|
114
|
+
for (const stmt of file.statements)
|
|
115
|
+
if (!typescript_1.default.isImportDeclaration(stmt) ||
|
|
116
|
+
!typescript_1.default.isStringLiteral(stmt.moduleSpecifier) ||
|
|
117
|
+
stmt.moduleSpecifier.text !== "typia")
|
|
118
|
+
checkUsage(stmt);
|
|
119
|
+
// Update import statements
|
|
120
|
+
const newStatements = file.statements
|
|
121
|
+
.map((stmt) => {
|
|
122
|
+
if (typescript_1.default.isImportDeclaration(stmt) &&
|
|
123
|
+
typescript_1.default.isStringLiteral(stmt.moduleSpecifier) &&
|
|
124
|
+
stmt.moduleSpecifier.text === "typia" &&
|
|
125
|
+
stmt.importClause) {
|
|
126
|
+
const newImportClause = filterTypiaImportClause(stmt.importClause, nonTransformableUsage);
|
|
127
|
+
if (newImportClause)
|
|
128
|
+
return typescript_1.default.factory.createImportDeclaration(stmt.modifiers, newImportClause, stmt.moduleSpecifier, stmt.attributes);
|
|
129
|
+
return null; // Skip adding the import if all imports are unused
|
|
130
|
+
}
|
|
131
|
+
return stmt;
|
|
132
|
+
})
|
|
133
|
+
.filter((stmt) => stmt !== null);
|
|
134
|
+
return typescript_1.default.factory.updateSourceFile(file, newStatements, file.isDeclarationFile, file.referencedFiles, file.typeReferenceDirectives, file.hasNoDefaultLib, file.libReferenceDirectives);
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Check if a property access expression looks like a transformable typia call
|
|
138
|
+
* This uses heuristics to detect patterns like typia.xxx(),
|
|
139
|
+
* typia.namespace.xxx()
|
|
140
|
+
*/
|
|
141
|
+
const isLikelyTransformableCall = (node) => {
|
|
142
|
+
// Check if this is eventually part of a call expression
|
|
143
|
+
let current = node;
|
|
144
|
+
// Walk up the chain to find if this leads to a call expression
|
|
145
|
+
// Handle patterns like: typia.xxx(), typia.namespace.xxx()
|
|
146
|
+
while (typescript_1.default.isPropertyAccessExpression(current)) {
|
|
147
|
+
current = current.parent;
|
|
148
|
+
}
|
|
149
|
+
// If the final result is a call expression, this is likely transformable
|
|
150
|
+
if (typescript_1.default.isCallExpression(current) &&
|
|
151
|
+
(current.expression === node ||
|
|
152
|
+
(typescript_1.default.isPropertyAccessExpression(current.expression) &&
|
|
153
|
+
isTypiaPropertyChain(current.expression)))) {
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
};
|
|
158
|
+
/** Check if a property access expression is part of a typia.xxx.yyy chain */
|
|
159
|
+
const isTypiaPropertyChain = (node) => {
|
|
160
|
+
let current = node;
|
|
161
|
+
while (typescript_1.default.isPropertyAccessExpression(current)) {
|
|
162
|
+
current = current.expression;
|
|
163
|
+
}
|
|
164
|
+
return typescript_1.default.isIdentifier(current) && current.text === "typia";
|
|
165
|
+
};
|
|
166
|
+
/** Filter import clause to remove unused default imports */
|
|
167
|
+
const filterTypiaImportClause = (importClause, usedImports) => {
|
|
168
|
+
const hasDefaultImport = importClause.name && usedImports.has(importClause.name.text);
|
|
169
|
+
const namedBindings = importClause.namedBindings; // Always keep named bindings like { tags }
|
|
170
|
+
// Return undefined if no imports are used
|
|
171
|
+
if (!hasDefaultImport && !namedBindings) {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
return typescript_1.default.factory.createImportClause(importClause.isTypeOnly, hasDefaultImport ? importClause.name : undefined, namedBindings);
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=ImportTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImportTransformer.js","sourceRoot":"","sources":["../src/ImportTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Transforms import paths for typia build output.
|
|
6
|
+
*
|
|
7
|
+
* Rewrites relative import paths when building typia packages. Also removes
|
|
8
|
+
* unused typia imports that only contained transformable function calls (since
|
|
9
|
+
* those are replaced at compile time).
|
|
10
|
+
*
|
|
11
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
12
|
+
*/
|
|
13
|
+
var ImportTransformer;
|
|
14
|
+
(function (ImportTransformer) {
|
|
15
|
+
ImportTransformer.transform = (props) => (context) => (file) => transform_file({
|
|
16
|
+
top: props.from,
|
|
17
|
+
to: props.to,
|
|
18
|
+
context,
|
|
19
|
+
file,
|
|
20
|
+
});
|
|
21
|
+
const transform_file = (props) => {
|
|
22
|
+
if (props.file.isDeclarationFile)
|
|
23
|
+
return props.file;
|
|
24
|
+
const from = get_directory_path(path.resolve(props.file.getSourceFile().fileName));
|
|
25
|
+
const to = from.replace(props.top, props.to);
|
|
26
|
+
// First pass: transform relative imports
|
|
27
|
+
let transformedFile = ts.visitEachChild(props.file, (node) => transform_node({
|
|
28
|
+
top: props.top,
|
|
29
|
+
from,
|
|
30
|
+
to,
|
|
31
|
+
node,
|
|
32
|
+
}), props.context);
|
|
33
|
+
// Second pass: remove unused typia imports
|
|
34
|
+
transformedFile = removeUnusedTypiaImports(transformedFile);
|
|
35
|
+
return transformedFile;
|
|
36
|
+
};
|
|
37
|
+
const transform_node = (props) => {
|
|
38
|
+
if (!ts.isImportDeclaration(props.node) ||
|
|
39
|
+
!ts.isStringLiteral(props.node.moduleSpecifier))
|
|
40
|
+
return props.node;
|
|
41
|
+
const text = props.node.moduleSpecifier.text;
|
|
42
|
+
if (text[0] !== ".")
|
|
43
|
+
return props.node;
|
|
44
|
+
const location = path.resolve(props.from, text);
|
|
45
|
+
if (location.indexOf(props.top) === 0)
|
|
46
|
+
return props.node;
|
|
47
|
+
const replaced = (() => {
|
|
48
|
+
const simple = path
|
|
49
|
+
.relative(props.to, location)
|
|
50
|
+
.split(path.sep)
|
|
51
|
+
.join("/");
|
|
52
|
+
return simple[0] === "." ? simple : `./${simple}`;
|
|
53
|
+
})();
|
|
54
|
+
return ts.factory.createImportDeclaration(undefined, props.node.importClause, ts.factory.createStringLiteral(replaced), props.node.assertClause);
|
|
55
|
+
};
|
|
56
|
+
})(ImportTransformer || (ImportTransformer = {}));
|
|
57
|
+
const get_directory_path = (file) => {
|
|
58
|
+
const split = path.resolve(file).split(path.sep);
|
|
59
|
+
split.pop();
|
|
60
|
+
return path.resolve(split.join(path.sep));
|
|
61
|
+
};
|
|
62
|
+
/** Remove unused typia imports that are only used in transformable calls */
|
|
63
|
+
const removeUnusedTypiaImports = (file) => {
|
|
64
|
+
const imports = new Map();
|
|
65
|
+
for (const stmt of file.statements) {
|
|
66
|
+
if (ts.isImportDeclaration(stmt) === false ||
|
|
67
|
+
ts.isStringLiteral(stmt.moduleSpecifier) === false ||
|
|
68
|
+
stmt.moduleSpecifier.text !== "typia" ||
|
|
69
|
+
stmt.importClause === undefined)
|
|
70
|
+
continue;
|
|
71
|
+
// Track default import (import typia from 'typia')
|
|
72
|
+
if (stmt.importClause.name)
|
|
73
|
+
imports.set(stmt.importClause.name.text, {
|
|
74
|
+
declaration: stmt,
|
|
75
|
+
default: true,
|
|
76
|
+
});
|
|
77
|
+
// Track named imports (import { tags } from 'typia') - keep these
|
|
78
|
+
if (stmt.importClause.namedBindings &&
|
|
79
|
+
ts.isNamedImports(stmt.importClause.namedBindings))
|
|
80
|
+
for (const element of stmt.importClause.namedBindings.elements)
|
|
81
|
+
imports.set(element.name.text, {
|
|
82
|
+
declaration: stmt,
|
|
83
|
+
default: false,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (imports.size === 0)
|
|
87
|
+
return file; // No typia imports to check
|
|
88
|
+
// Find usage of typia identifiers that are NOT transformable calls
|
|
89
|
+
const nonTransformableUsage = new Set();
|
|
90
|
+
const checkUsage = (node) => {
|
|
91
|
+
if (ts.isIdentifier(node) && imports.has(node.text)) {
|
|
92
|
+
const identifier = node.text;
|
|
93
|
+
// Check if this identifier is being used as part of a property access
|
|
94
|
+
if (node.parent &&
|
|
95
|
+
ts.isPropertyAccessExpression(node.parent) &&
|
|
96
|
+
node.parent.expression === node) {
|
|
97
|
+
// This is typia.something - check if it's a transformable call pattern
|
|
98
|
+
if (!isLikelyTransformableCall(node.parent))
|
|
99
|
+
nonTransformableUsage.add(identifier);
|
|
100
|
+
}
|
|
101
|
+
else
|
|
102
|
+
// Direct usage of the typia identifier (not as property access)
|
|
103
|
+
// This is definitely non-transformable usage
|
|
104
|
+
nonTransformableUsage.add(identifier);
|
|
105
|
+
}
|
|
106
|
+
ts.forEachChild(node, checkUsage);
|
|
107
|
+
};
|
|
108
|
+
// Check all statements except import declarations
|
|
109
|
+
for (const stmt of file.statements)
|
|
110
|
+
if (!ts.isImportDeclaration(stmt) ||
|
|
111
|
+
!ts.isStringLiteral(stmt.moduleSpecifier) ||
|
|
112
|
+
stmt.moduleSpecifier.text !== "typia")
|
|
113
|
+
checkUsage(stmt);
|
|
114
|
+
// Update import statements
|
|
115
|
+
const newStatements = file.statements
|
|
116
|
+
.map((stmt) => {
|
|
117
|
+
if (ts.isImportDeclaration(stmt) &&
|
|
118
|
+
ts.isStringLiteral(stmt.moduleSpecifier) &&
|
|
119
|
+
stmt.moduleSpecifier.text === "typia" &&
|
|
120
|
+
stmt.importClause) {
|
|
121
|
+
const newImportClause = filterTypiaImportClause(stmt.importClause, nonTransformableUsage);
|
|
122
|
+
if (newImportClause)
|
|
123
|
+
return ts.factory.createImportDeclaration(stmt.modifiers, newImportClause, stmt.moduleSpecifier, stmt.attributes);
|
|
124
|
+
return null; // Skip adding the import if all imports are unused
|
|
125
|
+
}
|
|
126
|
+
return stmt;
|
|
127
|
+
})
|
|
128
|
+
.filter((stmt) => stmt !== null);
|
|
129
|
+
return ts.factory.updateSourceFile(file, newStatements, file.isDeclarationFile, file.referencedFiles, file.typeReferenceDirectives, file.hasNoDefaultLib, file.libReferenceDirectives);
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Check if a property access expression looks like a transformable typia call
|
|
133
|
+
* This uses heuristics to detect patterns like typia.xxx(),
|
|
134
|
+
* typia.namespace.xxx()
|
|
135
|
+
*/
|
|
136
|
+
const isLikelyTransformableCall = (node) => {
|
|
137
|
+
// Check if this is eventually part of a call expression
|
|
138
|
+
let current = node;
|
|
139
|
+
// Walk up the chain to find if this leads to a call expression
|
|
140
|
+
// Handle patterns like: typia.xxx(), typia.namespace.xxx()
|
|
141
|
+
while (ts.isPropertyAccessExpression(current)) {
|
|
142
|
+
current = current.parent;
|
|
143
|
+
}
|
|
144
|
+
// If the final result is a call expression, this is likely transformable
|
|
145
|
+
if (ts.isCallExpression(current) &&
|
|
146
|
+
(current.expression === node ||
|
|
147
|
+
(ts.isPropertyAccessExpression(current.expression) &&
|
|
148
|
+
isTypiaPropertyChain(current.expression)))) {
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
return false;
|
|
152
|
+
};
|
|
153
|
+
/** Check if a property access expression is part of a typia.xxx.yyy chain */
|
|
154
|
+
const isTypiaPropertyChain = (node) => {
|
|
155
|
+
let current = node;
|
|
156
|
+
while (ts.isPropertyAccessExpression(current)) {
|
|
157
|
+
current = current.expression;
|
|
158
|
+
}
|
|
159
|
+
return ts.isIdentifier(current) && current.text === "typia";
|
|
160
|
+
};
|
|
161
|
+
/** Filter import clause to remove unused default imports */
|
|
162
|
+
const filterTypiaImportClause = (importClause, usedImports) => {
|
|
163
|
+
const hasDefaultImport = importClause.name && usedImports.has(importClause.name.text);
|
|
164
|
+
const namedBindings = importClause.namedBindings; // Always keep named bindings like { tags }
|
|
165
|
+
// Return undefined if no imports are used
|
|
166
|
+
if (!hasDefaultImport && !namedBindings) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
return ts.factory.createImportClause(importClause.isTypeOnly, hasDefaultImport ? importClause.name : undefined, namedBindings);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export { ImportTransformer };
|
|
173
|
+
//# sourceMappingURL=ImportTransformer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImportTransformer.mjs","sources":["../src/ImportTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ITypiaContext } from "@typia/core";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
/**
|
|
4
|
+
* TypeScript AST node transformer.
|
|
5
|
+
*
|
|
6
|
+
* Delegates call expression nodes to {@link CallExpressionTransformer} for
|
|
7
|
+
* potential `typia.*` function transformation. Non-call nodes pass through.
|
|
8
|
+
*
|
|
9
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
10
|
+
*/
|
|
11
|
+
export declare namespace NodeTransformer {
|
|
12
|
+
const transform: (props: {
|
|
13
|
+
context: ITypiaContext;
|
|
14
|
+
node: ts.Node;
|
|
15
|
+
}) => ts.Node | null;
|
|
16
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NodeTransformer = void 0;
|
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
+
const CallExpressionTransformer_1 = require("./CallExpressionTransformer");
|
|
9
|
+
/**
|
|
10
|
+
* TypeScript AST node transformer.
|
|
11
|
+
*
|
|
12
|
+
* Delegates call expression nodes to {@link CallExpressionTransformer} for
|
|
13
|
+
* potential `typia.*` function transformation. Non-call nodes pass through.
|
|
14
|
+
*
|
|
15
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
16
|
+
*/
|
|
17
|
+
var NodeTransformer;
|
|
18
|
+
(function (NodeTransformer) {
|
|
19
|
+
NodeTransformer.transform = (props) => typescript_1.default.isCallExpression(props.node) && props.node.parent
|
|
20
|
+
? CallExpressionTransformer_1.CallExpressionTransformer.transform({
|
|
21
|
+
context: props.context,
|
|
22
|
+
expression: props.node,
|
|
23
|
+
})
|
|
24
|
+
: props.node;
|
|
25
|
+
})(NodeTransformer || (exports.NodeTransformer = NodeTransformer = {}));
|
|
26
|
+
//# sourceMappingURL=NodeTransformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeTransformer.js","sourceRoot":"","sources":["../src/NodeTransformer.ts"],"names":[],"mappings":";;;;;;AACA,4DAA4B;AAE5B,2EAAwE;AAExE;;;;;;;GAOG;AACH,IAAiB,eAAe,CAW/B;AAXD,WAAiB,eAAe;IACjB,yBAAS,GAAG,CAAC,KAGzB,EAAkB,EAAE,CACnB,oBAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;QAClD,CAAC,CAAC,qDAAyB,CAAC,SAAS,CAAC;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,IAAI;SACvB,CAAC;QACJ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACnB,CAAC,EAXgB,eAAe,+BAAf,eAAe,QAW/B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { CallExpressionTransformer } from './CallExpressionTransformer.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* TypeScript AST node transformer.
|
|
6
|
+
*
|
|
7
|
+
* Delegates call expression nodes to {@link CallExpressionTransformer} for
|
|
8
|
+
* potential `typia.*` function transformation. Non-call nodes pass through.
|
|
9
|
+
*
|
|
10
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
11
|
+
*/
|
|
12
|
+
var NodeTransformer;
|
|
13
|
+
(function (NodeTransformer) {
|
|
14
|
+
NodeTransformer.transform = (props) => ts.isCallExpression(props.node) && props.node.parent
|
|
15
|
+
? CallExpressionTransformer.transform({
|
|
16
|
+
context: props.context,
|
|
17
|
+
expression: props.node,
|
|
18
|
+
})
|
|
19
|
+
: props.node;
|
|
20
|
+
})(NodeTransformer || (NodeTransformer = {}));
|
|
21
|
+
|
|
22
|
+
export { NodeTransformer };
|
|
23
|
+
//# sourceMappingURL=NodeTransformer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeTransformer.mjs","sources":["../src/NodeTransformer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKA;;;;;;;AAOG;AACG,IAAW;AAAjB,CAAA,UAAiB,eAAe,EAAA;AACjB,IAAA,eAAA,CAAA,SAAS,GAAG,CAAC,KAGzB,KACC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAC5C,UAAE,yBAAyB,CAAC,SAAS,CAAC;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,IAAI;SACvB;AACH,UAAE,KAAK,CAAC,IAAI;AAClB,CAAC,EAXgB,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { MetadataFactory } from "@typia/core";
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown during typia transformation.
|
|
4
|
+
*
|
|
5
|
+
* `TransformerError` is thrown when `typia.*<T>()` receives unsupported types
|
|
6
|
+
* or invalid configurations at compile time. The error message details which
|
|
7
|
+
* types failed and why.
|
|
8
|
+
*
|
|
9
|
+
* Common causes:
|
|
10
|
+
*
|
|
11
|
+
* - Tuples in LLM schema (not supported by most LLMs)
|
|
12
|
+
* - Recursive types without `$ref` support
|
|
13
|
+
* - `any` types without explicit handling
|
|
14
|
+
* - Native classes not serializable to JSON
|
|
15
|
+
*
|
|
16
|
+
* Use {@link from} to create from {@link MetadataFactory.IError} instances.
|
|
17
|
+
*
|
|
18
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
19
|
+
*/
|
|
20
|
+
export declare class TransformerError extends Error {
|
|
21
|
+
/** Error code identifying the error type. */
|
|
22
|
+
readonly code: string;
|
|
23
|
+
constructor(props: TransformerError.IProps);
|
|
24
|
+
}
|
|
25
|
+
export declare namespace TransformerError {
|
|
26
|
+
/** Constructor properties for TransformerError. */
|
|
27
|
+
interface IProps {
|
|
28
|
+
/** Error code identifying the error type. */
|
|
29
|
+
code: string;
|
|
30
|
+
/** Human-readable error message. */
|
|
31
|
+
message: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create error from metadata factory errors.
|
|
35
|
+
*
|
|
36
|
+
* Formats multiple type errors into a single TransformerError.
|
|
37
|
+
*/
|
|
38
|
+
const from: (props: {
|
|
39
|
+
code: string;
|
|
40
|
+
errors: MetadataFactory.IError[];
|
|
41
|
+
}) => TransformerError;
|
|
42
|
+
}
|