blendsdk 5.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -0
- package/dist/cmdline/cmdline.d.ts +144 -0
- package/dist/cmdline/cmdline.d.ts.map +1 -0
- package/dist/cmdline/cmdline.js +683 -0
- package/dist/cmdline/cmdline.js.map +1 -0
- package/dist/cmdline/errors.d.ts +105 -0
- package/dist/cmdline/errors.d.ts.map +1 -0
- package/dist/cmdline/errors.js +153 -0
- package/dist/cmdline/errors.js.map +1 -0
- package/dist/cmdline/index.d.ts +5 -0
- package/dist/cmdline/index.d.ts.map +1 -0
- package/dist/cmdline/index.js +5 -0
- package/dist/cmdline/index.js.map +1 -0
- package/dist/cmdline/types.d.ts +260 -0
- package/dist/cmdline/types.d.ts.map +1 -0
- package/dist/cmdline/types.js +9 -0
- package/dist/cmdline/types.js.map +1 -0
- package/dist/cmdline/validators.d.ts +28 -0
- package/dist/cmdline/validators.d.ts.map +1 -0
- package/dist/cmdline/validators.js +211 -0
- package/dist/cmdline/validators.js.map +1 -0
- package/dist/codegen/database/index.d.ts +3 -0
- package/dist/codegen/database/index.d.ts.map +1 -0
- package/dist/codegen/database/index.js +3 -0
- package/dist/codegen/database/index.js.map +1 -0
- package/dist/codegen/database/introspect/index.d.ts +3 -0
- package/dist/codegen/database/introspect/index.d.ts.map +1 -0
- package/dist/codegen/database/introspect/index.js +3 -0
- package/dist/codegen/database/introspect/index.js.map +1 -0
- package/dist/codegen/database/introspect/introspect-query.d.ts +2 -0
- package/dist/codegen/database/introspect/introspect-query.d.ts.map +1 -0
- package/dist/codegen/database/introspect/introspect-query.js +416 -0
- package/dist/codegen/database/introspect/introspect-query.js.map +1 -0
- package/dist/codegen/database/introspect/introspect-types.d.ts +45 -0
- package/dist/codegen/database/introspect/introspect-types.d.ts.map +1 -0
- package/dist/codegen/database/introspect/introspect-types.js +2 -0
- package/dist/codegen/database/introspect/introspect-types.js.map +1 -0
- package/dist/codegen/database/introspect/introspect.d.ts +21 -0
- package/dist/codegen/database/introspect/introspect.d.ts.map +1 -0
- package/dist/codegen/database/introspect/introspect.js +223 -0
- package/dist/codegen/database/introspect/introspect.js.map +1 -0
- package/dist/codegen/database/schema/check-constraint.d.ts +8 -0
- package/dist/codegen/database/schema/check-constraint.d.ts.map +1 -0
- package/dist/codegen/database/schema/check-constraint.js +12 -0
- package/dist/codegen/database/schema/check-constraint.js.map +1 -0
- package/dist/codegen/database/schema/column-schema.d.ts +7 -0
- package/dist/codegen/database/schema/column-schema.d.ts.map +1 -0
- package/dist/codegen/database/schema/column-schema.js +9 -0
- package/dist/codegen/database/schema/column-schema.js.map +1 -0
- package/dist/codegen/database/schema/constraint-base.d.ts +13 -0
- package/dist/codegen/database/schema/constraint-base.d.ts.map +1 -0
- package/dist/codegen/database/schema/constraint-base.js +32 -0
- package/dist/codegen/database/schema/constraint-base.js.map +1 -0
- package/dist/codegen/database/schema/database-schema.d.ts +19 -0
- package/dist/codegen/database/schema/database-schema.d.ts.map +1 -0
- package/dist/codegen/database/schema/database-schema.js +48 -0
- package/dist/codegen/database/schema/database-schema.js.map +1 -0
- package/dist/codegen/database/schema/dataobject-schema.d.ts +9 -0
- package/dist/codegen/database/schema/dataobject-schema.d.ts.map +1 -0
- package/dist/codegen/database/schema/dataobject-schema.js +18 -0
- package/dist/codegen/database/schema/dataobject-schema.js.map +1 -0
- package/dist/codegen/database/schema/fkey-constraints.d.ts +21 -0
- package/dist/codegen/database/schema/fkey-constraints.d.ts.map +1 -0
- package/dist/codegen/database/schema/fkey-constraints.js +58 -0
- package/dist/codegen/database/schema/fkey-constraints.js.map +1 -0
- package/dist/codegen/database/schema/index-constraint.d.ts +34 -0
- package/dist/codegen/database/schema/index-constraint.d.ts.map +1 -0
- package/dist/codegen/database/schema/index-constraint.js +79 -0
- package/dist/codegen/database/schema/index-constraint.js.map +1 -0
- package/dist/codegen/database/schema/index.d.ts +5 -0
- package/dist/codegen/database/schema/index.d.ts.map +1 -0
- package/dist/codegen/database/schema/index.js +5 -0
- package/dist/codegen/database/schema/index.js.map +1 -0
- package/dist/codegen/database/schema/primarykey-constraint.d.ts +4 -0
- package/dist/codegen/database/schema/primarykey-constraint.d.ts.map +1 -0
- package/dist/codegen/database/schema/primarykey-constraint.js +4 -0
- package/dist/codegen/database/schema/primarykey-constraint.js.map +1 -0
- package/dist/codegen/database/schema/relation-schema.d.ts +16 -0
- package/dist/codegen/database/schema/relation-schema.d.ts.map +1 -0
- package/dist/codegen/database/schema/relation-schema.js +32 -0
- package/dist/codegen/database/schema/relation-schema.js.map +1 -0
- package/dist/codegen/database/schema/table-column-schema.d.ts +59 -0
- package/dist/codegen/database/schema/table-column-schema.d.ts.map +1 -0
- package/dist/codegen/database/schema/table-column-schema.js +137 -0
- package/dist/codegen/database/schema/table-column-schema.js.map +1 -0
- package/dist/codegen/database/schema/table-schema.d.ts +48 -0
- package/dist/codegen/database/schema/table-schema.d.ts.map +1 -0
- package/dist/codegen/database/schema/table-schema.js +219 -0
- package/dist/codegen/database/schema/table-schema.js.map +1 -0
- package/dist/codegen/database/schema/types.d.ts +13 -0
- package/dist/codegen/database/schema/types.d.ts.map +1 -0
- package/dist/codegen/database/schema/types.js +175 -0
- package/dist/codegen/database/schema/types.js.map +1 -0
- package/dist/codegen/database/schema/unique-constraint.d.ts +4 -0
- package/dist/codegen/database/schema/unique-constraint.d.ts.map +1 -0
- package/dist/codegen/database/schema/unique-constraint.js +4 -0
- package/dist/codegen/database/schema/unique-constraint.js.map +1 -0
- package/dist/codegen/database/schema/view-schema.d.ts +14 -0
- package/dist/codegen/database/schema/view-schema.d.ts.map +1 -0
- package/dist/codegen/database/schema/view-schema.js +32 -0
- package/dist/codegen/database/schema/view-schema.js.map +1 -0
- package/dist/codegen/generator/ctype-generator.d.ts +5 -0
- package/dist/codegen/generator/ctype-generator.d.ts.map +1 -0
- package/dist/codegen/generator/ctype-generator.js +26 -0
- package/dist/codegen/generator/ctype-generator.js.map +1 -0
- package/dist/codegen/generator/generator.d.ts +17 -0
- package/dist/codegen/generator/generator.d.ts.map +1 -0
- package/dist/codegen/generator/generator.js +57 -0
- package/dist/codegen/generator/generator.js.map +1 -0
- package/dist/codegen/generator/index.d.ts +8 -0
- package/dist/codegen/generator/index.d.ts.map +1 -0
- package/dist/codegen/generator/index.js +8 -0
- package/dist/codegen/generator/index.js.map +1 -0
- package/dist/codegen/generator/openapi-generator.d.ts +239 -0
- package/dist/codegen/generator/openapi-generator.d.ts.map +1 -0
- package/dist/codegen/generator/openapi-generator.js +434 -0
- package/dist/codegen/generator/openapi-generator.js.map +1 -0
- package/dist/codegen/generator/openapi-types.d.ts +263 -0
- package/dist/codegen/generator/openapi-types.d.ts.map +1 -0
- package/dist/codegen/generator/openapi-types.js +11 -0
- package/dist/codegen/generator/openapi-types.js.map +1 -0
- package/dist/codegen/generator/postgres-schema-generator.d.ts +48 -0
- package/dist/codegen/generator/postgres-schema-generator.d.ts.map +1 -0
- package/dist/codegen/generator/postgres-schema-generator.js +339 -0
- package/dist/codegen/generator/postgres-schema-generator.js.map +1 -0
- package/dist/codegen/generator/type-generator.d.ts +113 -0
- package/dist/codegen/generator/type-generator.d.ts.map +1 -0
- package/dist/codegen/generator/type-generator.js +249 -0
- package/dist/codegen/generator/type-generator.js.map +1 -0
- package/dist/codegen/generator/zod-generator.d.ts +15 -0
- package/dist/codegen/generator/zod-generator.d.ts.map +1 -0
- package/dist/codegen/generator/zod-generator.js +86 -0
- package/dist/codegen/generator/zod-generator.js.map +1 -0
- package/dist/codegen/generator/zod-to-openapi.d.ts +69 -0
- package/dist/codegen/generator/zod-to-openapi.d.ts.map +1 -0
- package/dist/codegen/generator/zod-to-openapi.js +480 -0
- package/dist/codegen/generator/zod-to-openapi.js.map +1 -0
- package/dist/codegen/index.d.ts +4 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +4 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/schema/any-schema.d.ts +6 -0
- package/dist/codegen/schema/any-schema.d.ts.map +1 -0
- package/dist/codegen/schema/any-schema.js +12 -0
- package/dist/codegen/schema/any-schema.js.map +1 -0
- package/dist/codegen/schema/boolean-schema.d.ts +6 -0
- package/dist/codegen/schema/boolean-schema.d.ts.map +1 -0
- package/dist/codegen/schema/boolean-schema.js +12 -0
- package/dist/codegen/schema/boolean-schema.js.map +1 -0
- package/dist/codegen/schema/date-schema.d.ts +6 -0
- package/dist/codegen/schema/date-schema.d.ts.map +1 -0
- package/dist/codegen/schema/date-schema.js +12 -0
- package/dist/codegen/schema/date-schema.js.map +1 -0
- package/dist/codegen/schema/index.d.ts +10 -0
- package/dist/codegen/schema/index.d.ts.map +1 -0
- package/dist/codegen/schema/index.js +10 -0
- package/dist/codegen/schema/index.js.map +1 -0
- package/dist/codegen/schema/object-schema.d.ts +10 -0
- package/dist/codegen/schema/object-schema.d.ts.map +1 -0
- package/dist/codegen/schema/object-schema.js +21 -0
- package/dist/codegen/schema/object-schema.js.map +1 -0
- package/dist/codegen/schema/primitive-schema.d.ts +20 -0
- package/dist/codegen/schema/primitive-schema.d.ts.map +1 -0
- package/dist/codegen/schema/primitive-schema.js +48 -0
- package/dist/codegen/schema/primitive-schema.js.map +1 -0
- package/dist/codegen/schema/ref-schema.d.ts +6 -0
- package/dist/codegen/schema/ref-schema.d.ts.map +1 -0
- package/dist/codegen/schema/ref-schema.js +11 -0
- package/dist/codegen/schema/ref-schema.js.map +1 -0
- package/dist/codegen/schema/schema-container.d.ts +14 -0
- package/dist/codegen/schema/schema-container.d.ts.map +1 -0
- package/dist/codegen/schema/schema-container.js +38 -0
- package/dist/codegen/schema/schema-container.js.map +1 -0
- package/dist/codegen/schema/schema-object.d.ts +42 -0
- package/dist/codegen/schema/schema-object.d.ts.map +1 -0
- package/dist/codegen/schema/schema-object.js +90 -0
- package/dist/codegen/schema/schema-object.js.map +1 -0
- package/dist/codegen/schema/schema-scope.d.ts +23 -0
- package/dist/codegen/schema/schema-scope.d.ts.map +1 -0
- package/dist/codegen/schema/schema-scope.js +67 -0
- package/dist/codegen/schema/schema-scope.js.map +1 -0
- package/dist/codegen/schema/utils.d.ts +17 -0
- package/dist/codegen/schema/utils.d.ts.map +1 -0
- package/dist/codegen/schema/utils.js +47 -0
- package/dist/codegen/schema/utils.js.map +1 -0
- package/dist/dbcore/crud-statement.d.ts +67 -0
- package/dist/dbcore/crud-statement.d.ts.map +1 -0
- package/dist/dbcore/crud-statement.js +75 -0
- package/dist/dbcore/crud-statement.js.map +1 -0
- package/dist/dbcore/database.d.ts +272 -0
- package/dist/dbcore/database.d.ts.map +1 -0
- package/dist/dbcore/database.js +53 -0
- package/dist/dbcore/database.js.map +1 -0
- package/dist/dbcore/dataservice-base.d.ts +18 -0
- package/dist/dbcore/dataservice-base.d.ts.map +1 -0
- package/dist/dbcore/dataservice-base.js +19 -0
- package/dist/dbcore/dataservice-base.js.map +1 -0
- package/dist/dbcore/delete-statement.d.ts +29 -0
- package/dist/dbcore/delete-statement.d.ts.map +1 -0
- package/dist/dbcore/delete-statement.js +30 -0
- package/dist/dbcore/delete-statement.js.map +1 -0
- package/dist/dbcore/filterable-statement.d.ts +126 -0
- package/dist/dbcore/filterable-statement.d.ts.map +1 -0
- package/dist/dbcore/filterable-statement.js +178 -0
- package/dist/dbcore/filterable-statement.js.map +1 -0
- package/dist/dbcore/from-statement.d.ts +120 -0
- package/dist/dbcore/from-statement.d.ts.map +1 -0
- package/dist/dbcore/from-statement.js +150 -0
- package/dist/dbcore/from-statement.js.map +1 -0
- package/dist/dbcore/index.d.ts +21 -0
- package/dist/dbcore/index.d.ts.map +1 -0
- package/dist/dbcore/index.js +21 -0
- package/dist/dbcore/index.js.map +1 -0
- package/dist/dbcore/insert-statement.d.ts +48 -0
- package/dist/dbcore/insert-statement.d.ts.map +1 -0
- package/dist/dbcore/insert-statement.js +52 -0
- package/dist/dbcore/insert-statement.js.map +1 -0
- package/dist/dbcore/query-dataservice.d.ts +144 -0
- package/dist/dbcore/query-dataservice.d.ts.map +1 -0
- package/dist/dbcore/query-dataservice.js +144 -0
- package/dist/dbcore/query-dataservice.js.map +1 -0
- package/dist/dbcore/statement.d.ts +133 -0
- package/dist/dbcore/statement.d.ts.map +1 -0
- package/dist/dbcore/statement.js +138 -0
- package/dist/dbcore/statement.js.map +1 -0
- package/dist/dbcore/update-statement.d.ts +48 -0
- package/dist/dbcore/update-statement.d.ts.map +1 -0
- package/dist/dbcore/update-statement.js +52 -0
- package/dist/dbcore/update-statement.js.map +1 -0
- package/dist/expression/builders/comparison-builder.d.ts +47 -0
- package/dist/expression/builders/comparison-builder.d.ts.map +1 -0
- package/dist/expression/builders/comparison-builder.js +197 -0
- package/dist/expression/builders/comparison-builder.js.map +1 -0
- package/dist/expression/builders/query-builder.d.ts +80 -0
- package/dist/expression/builders/query-builder.d.ts.map +1 -0
- package/dist/expression/builders/query-builder.js +229 -0
- package/dist/expression/builders/query-builder.js.map +1 -0
- package/dist/expression/compiler/postgresql-compiler.d.ts +56 -0
- package/dist/expression/compiler/postgresql-compiler.d.ts.map +1 -0
- package/dist/expression/compiler/postgresql-compiler.js +217 -0
- package/dist/expression/compiler/postgresql-compiler.js.map +1 -0
- package/dist/expression/core/ast-node.d.ts +47 -0
- package/dist/expression/core/ast-node.d.ts.map +1 -0
- package/dist/expression/core/ast-node.js +154 -0
- package/dist/expression/core/ast-node.js.map +1 -0
- package/dist/expression/core/parameter-manager.d.ts +84 -0
- package/dist/expression/core/parameter-manager.d.ts.map +1 -0
- package/dist/expression/core/parameter-manager.js +164 -0
- package/dist/expression/core/parameter-manager.js.map +1 -0
- package/dist/expression/core/query-builder-interfaces.d.ts +188 -0
- package/dist/expression/core/query-builder-interfaces.d.ts.map +1 -0
- package/dist/expression/core/query-builder-interfaces.js +6 -0
- package/dist/expression/core/query-builder-interfaces.js.map +1 -0
- package/dist/expression/core/types.d.ts +239 -0
- package/dist/expression/core/types.d.ts.map +1 -0
- package/dist/expression/core/types.js +121 -0
- package/dist/expression/core/types.js.map +1 -0
- package/dist/expression/index.d.ts +11 -0
- package/dist/expression/index.d.ts.map +1 -0
- package/dist/expression/index.js +11 -0
- package/dist/expression/index.js.map +1 -0
- package/dist/i18n/content-file-source.d.ts +109 -0
- package/dist/i18n/content-file-source.d.ts.map +1 -0
- package/dist/i18n/content-file-source.js +218 -0
- package/dist/i18n/content-file-source.js.map +1 -0
- package/dist/i18n/index.d.ts +19 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +21 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/json-file-source.d.ts +96 -0
- package/dist/i18n/json-file-source.d.ts.map +1 -0
- package/dist/i18n/json-file-source.js +258 -0
- package/dist/i18n/json-file-source.js.map +1 -0
- package/dist/i18n/merge-catalogs.d.ts +20 -0
- package/dist/i18n/merge-catalogs.d.ts.map +1 -0
- package/dist/i18n/merge-catalogs.js +34 -0
- package/dist/i18n/merge-catalogs.js.map +1 -0
- package/dist/i18n/node.d.ts +20 -0
- package/dist/i18n/node.d.ts.map +1 -0
- package/dist/i18n/node.js +19 -0
- package/dist/i18n/node.js.map +1 -0
- package/dist/i18n/translation-source.d.ts +35 -0
- package/dist/i18n/translation-source.d.ts.map +1 -0
- package/dist/i18n/translation-source.js +2 -0
- package/dist/i18n/translation-source.js.map +1 -0
- package/dist/i18n/translator.d.ts +162 -0
- package/dist/i18n/translator.d.ts.map +1 -0
- package/dist/i18n/translator.js +259 -0
- package/dist/i18n/translator.js.map +1 -0
- package/dist/i18n/types.d.ts +80 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +2 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/postgresql/database.d.ts +204 -0
- package/dist/postgresql/database.d.ts.map +1 -0
- package/dist/postgresql/database.js +321 -0
- package/dist/postgresql/database.js.map +1 -0
- package/dist/postgresql/delete-statement.d.ts +36 -0
- package/dist/postgresql/delete-statement.d.ts.map +1 -0
- package/dist/postgresql/delete-statement.js +54 -0
- package/dist/postgresql/delete-statement.js.map +1 -0
- package/dist/postgresql/index.d.ts +12 -0
- package/dist/postgresql/index.d.ts.map +1 -0
- package/dist/postgresql/index.js +12 -0
- package/dist/postgresql/index.js.map +1 -0
- package/dist/postgresql/insert-statement.d.ts +34 -0
- package/dist/postgresql/insert-statement.d.ts.map +1 -0
- package/dist/postgresql/insert-statement.js +48 -0
- package/dist/postgresql/insert-statement.js.map +1 -0
- package/dist/postgresql/update-statement.d.ts +38 -0
- package/dist/postgresql/update-statement.d.ts.map +1 -0
- package/dist/postgresql/update-statement.js +75 -0
- package/dist/postgresql/update-statement.js.map +1 -0
- package/dist/stdlib/formatString.d.ts +52 -0
- package/dist/stdlib/formatString.d.ts.map +1 -0
- package/dist/stdlib/formatString.js +118 -0
- package/dist/stdlib/formatString.js.map +1 -0
- package/dist/stdlib/index.d.ts +8 -0
- package/dist/stdlib/index.d.ts.map +1 -0
- package/dist/stdlib/index.js +8 -0
- package/dist/stdlib/index.js.map +1 -0
- package/dist/stdlib/isBoolean.d.ts +15 -0
- package/dist/stdlib/isBoolean.d.ts.map +1 -0
- package/dist/stdlib/isBoolean.js +17 -0
- package/dist/stdlib/isBoolean.js.map +1 -0
- package/dist/stdlib/isNullOrUndef.d.ts +24 -0
- package/dist/stdlib/isNullOrUndef.d.ts.map +1 -0
- package/dist/stdlib/isNullOrUndef.js +28 -0
- package/dist/stdlib/isNullOrUndef.js.map +1 -0
- package/dist/stdlib/isNumeric.d.ts +20 -0
- package/dist/stdlib/isNumeric.d.ts.map +1 -0
- package/dist/stdlib/isNumeric.js +39 -0
- package/dist/stdlib/isNumeric.js.map +1 -0
- package/dist/stdlib/isString.d.ts +15 -0
- package/dist/stdlib/isString.d.ts.map +1 -0
- package/dist/stdlib/isString.js +17 -0
- package/dist/stdlib/isString.js.map +1 -0
- package/dist/stdlib/isTemplateString.d.ts +18 -0
- package/dist/stdlib/isTemplateString.d.ts.map +1 -0
- package/dist/stdlib/isTemplateString.js +38 -0
- package/dist/stdlib/isTemplateString.js.map +1 -0
- package/dist/stdlib/wrapInArray.d.ts +14 -0
- package/dist/stdlib/wrapInArray.d.ts.map +1 -0
- package/dist/stdlib/wrapInArray.js +17 -0
- package/dist/stdlib/wrapInArray.js.map +1 -0
- package/dist/webafx/application/application-settings.d.ts +129 -0
- package/dist/webafx/application/application-settings.d.ts.map +1 -0
- package/dist/webafx/application/application-settings.js +162 -0
- package/dist/webafx/application/application-settings.js.map +1 -0
- package/dist/webafx/application/base-controller.d.ts +128 -0
- package/dist/webafx/application/base-controller.d.ts.map +1 -0
- package/dist/webafx/application/base-controller.js +122 -0
- package/dist/webafx/application/base-controller.js.map +1 -0
- package/dist/webafx/application/console-logger.d.ts +81 -0
- package/dist/webafx/application/console-logger.d.ts.map +1 -0
- package/dist/webafx/application/console-logger.js +111 -0
- package/dist/webafx/application/console-logger.js.map +1 -0
- package/dist/webafx/application/controller-registry.d.ts +34 -0
- package/dist/webafx/application/controller-registry.d.ts.map +1 -0
- package/dist/webafx/application/controller-registry.js +32 -0
- package/dist/webafx/application/controller-registry.js.map +1 -0
- package/dist/webafx/application/error-handler-middleware.d.ts +22 -0
- package/dist/webafx/application/error-handler-middleware.d.ts.map +1 -0
- package/dist/webafx/application/error-handler-middleware.js +70 -0
- package/dist/webafx/application/error-handler-middleware.js.map +1 -0
- package/dist/webafx/application/index.d.ts +13 -0
- package/dist/webafx/application/index.d.ts.map +1 -0
- package/dist/webafx/application/index.js +13 -0
- package/dist/webafx/application/index.js.map +1 -0
- package/dist/webafx/application/logger.d.ts +2 -0
- package/dist/webafx/application/logger.d.ts.map +1 -0
- package/dist/webafx/application/logger.js +2 -0
- package/dist/webafx/application/logger.js.map +1 -0
- package/dist/webafx/application/plugin.d.ts +73 -0
- package/dist/webafx/application/plugin.d.ts.map +1 -0
- package/dist/webafx/application/plugin.js +90 -0
- package/dist/webafx/application/plugin.js.map +1 -0
- package/dist/webafx/application/rate-limiter.d.ts +35 -0
- package/dist/webafx/application/rate-limiter.d.ts.map +1 -0
- package/dist/webafx/application/rate-limiter.js +74 -0
- package/dist/webafx/application/rate-limiter.js.map +1 -0
- package/dist/webafx/application/request-context.d.ts +62 -0
- package/dist/webafx/application/request-context.d.ts.map +1 -0
- package/dist/webafx/application/request-context.js +54 -0
- package/dist/webafx/application/request-context.js.map +1 -0
- package/dist/webafx/application/request-id-middleware.d.ts +30 -0
- package/dist/webafx/application/request-id-middleware.d.ts.map +1 -0
- package/dist/webafx/application/request-id-middleware.js +57 -0
- package/dist/webafx/application/request-id-middleware.js.map +1 -0
- package/dist/webafx/application/route-builder.d.ts +231 -0
- package/dist/webafx/application/route-builder.d.ts.map +1 -0
- package/dist/webafx/application/route-builder.js +182 -0
- package/dist/webafx/application/route-builder.js.map +1 -0
- package/dist/webafx/application/service-container.d.ts +144 -0
- package/dist/webafx/application/service-container.d.ts.map +1 -0
- package/dist/webafx/application/service-container.js +192 -0
- package/dist/webafx/application/service-container.js.map +1 -0
- package/dist/webafx/application/services.d.ts +27 -0
- package/dist/webafx/application/services.d.ts.map +1 -0
- package/dist/webafx/application/services.js +33 -0
- package/dist/webafx/application/services.js.map +1 -0
- package/dist/webafx/application/structured-logger.d.ts +99 -0
- package/dist/webafx/application/structured-logger.d.ts.map +1 -0
- package/dist/webafx/application/structured-logger.js +132 -0
- package/dist/webafx/application/structured-logger.js.map +1 -0
- package/dist/webafx/application/type.d.ts +29 -0
- package/dist/webafx/application/type.d.ts.map +1 -0
- package/dist/webafx/application/type.js +2 -0
- package/dist/webafx/application/type.js.map +1 -0
- package/dist/webafx/application/web-application.d.ts +257 -0
- package/dist/webafx/application/web-application.d.ts.map +1 -0
- package/dist/webafx/application/web-application.js +611 -0
- package/dist/webafx/application/web-application.js.map +1 -0
- package/dist/webafx/errors/api-error.d.ts +21 -0
- package/dist/webafx/errors/api-error.d.ts.map +1 -0
- package/dist/webafx/errors/api-error.js +38 -0
- package/dist/webafx/errors/api-error.js.map +1 -0
- package/dist/webafx/errors/http-errors.d.ts +56 -0
- package/dist/webafx/errors/http-errors.d.ts.map +1 -0
- package/dist/webafx/errors/http-errors.js +74 -0
- package/dist/webafx/errors/http-errors.js.map +1 -0
- package/dist/webafx/errors/index.d.ts +4 -0
- package/dist/webafx/errors/index.d.ts.map +1 -0
- package/dist/webafx/errors/index.js +4 -0
- package/dist/webafx/errors/index.js.map +1 -0
- package/dist/webafx/errors/types.d.ts +42 -0
- package/dist/webafx/errors/types.d.ts.map +1 -0
- package/dist/webafx/errors/types.js +2 -0
- package/dist/webafx/errors/types.js.map +1 -0
- package/dist/webafx/index.d.ts +3 -0
- package/dist/webafx/index.d.ts.map +1 -0
- package/dist/webafx/index.js +3 -0
- package/dist/webafx/index.js.map +1 -0
- package/dist/webafx-auth/abstract-auth-provider.d.ts +178 -0
- package/dist/webafx-auth/abstract-auth-provider.d.ts.map +1 -0
- package/dist/webafx-auth/abstract-auth-provider.js +240 -0
- package/dist/webafx-auth/abstract-auth-provider.js.map +1 -0
- package/dist/webafx-auth/index.d.ts +27 -0
- package/dist/webafx-auth/index.d.ts.map +1 -0
- package/dist/webafx-auth/index.js +32 -0
- package/dist/webafx-auth/index.js.map +1 -0
- package/dist/webafx-auth/jwt-auth-provider.d.ts +100 -0
- package/dist/webafx-auth/jwt-auth-provider.d.ts.map +1 -0
- package/dist/webafx-auth/jwt-auth-provider.js +154 -0
- package/dist/webafx-auth/jwt-auth-provider.js.map +1 -0
- package/dist/webafx-auth/memory-auth-provider.d.ts +100 -0
- package/dist/webafx-auth/memory-auth-provider.d.ts.map +1 -0
- package/dist/webafx-auth/memory-auth-provider.js +122 -0
- package/dist/webafx-auth/memory-auth-provider.js.map +1 -0
- package/dist/webafx-auth/types.d.ts +333 -0
- package/dist/webafx-auth/types.d.ts.map +1 -0
- package/dist/webafx-auth/types.js +24 -0
- package/dist/webafx-auth/types.js.map +1 -0
- package/dist/webafx-cache/abstract-cache-provider.d.ts +185 -0
- package/dist/webafx-cache/abstract-cache-provider.d.ts.map +1 -0
- package/dist/webafx-cache/abstract-cache-provider.js +133 -0
- package/dist/webafx-cache/abstract-cache-provider.js.map +1 -0
- package/dist/webafx-cache/abstract-pubsub-provider.d.ts +170 -0
- package/dist/webafx-cache/abstract-pubsub-provider.d.ts.map +1 -0
- package/dist/webafx-cache/abstract-pubsub-provider.js +132 -0
- package/dist/webafx-cache/abstract-pubsub-provider.js.map +1 -0
- package/dist/webafx-cache/cache-plugin.d.ts +114 -0
- package/dist/webafx-cache/cache-plugin.d.ts.map +1 -0
- package/dist/webafx-cache/cache-plugin.js +176 -0
- package/dist/webafx-cache/cache-plugin.js.map +1 -0
- package/dist/webafx-cache/index.d.ts +33 -0
- package/dist/webafx-cache/index.d.ts.map +1 -0
- package/dist/webafx-cache/index.js +44 -0
- package/dist/webafx-cache/index.js.map +1 -0
- package/dist/webafx-cache/memory-cache-provider.d.ts +99 -0
- package/dist/webafx-cache/memory-cache-provider.d.ts.map +1 -0
- package/dist/webafx-cache/memory-cache-provider.js +251 -0
- package/dist/webafx-cache/memory-cache-provider.js.map +1 -0
- package/dist/webafx-cache/memory-pubsub-provider.d.ts +124 -0
- package/dist/webafx-cache/memory-pubsub-provider.d.ts.map +1 -0
- package/dist/webafx-cache/memory-pubsub-provider.js +195 -0
- package/dist/webafx-cache/memory-pubsub-provider.js.map +1 -0
- package/dist/webafx-cache/pubsub-plugin.d.ts +128 -0
- package/dist/webafx-cache/pubsub-plugin.d.ts.map +1 -0
- package/dist/webafx-cache/pubsub-plugin.js +182 -0
- package/dist/webafx-cache/pubsub-plugin.js.map +1 -0
- package/dist/webafx-cache/redis-cache-provider.d.ts +81 -0
- package/dist/webafx-cache/redis-cache-provider.d.ts.map +1 -0
- package/dist/webafx-cache/redis-cache-provider.js +209 -0
- package/dist/webafx-cache/redis-cache-provider.js.map +1 -0
- package/dist/webafx-cache/redis-pubsub-provider.d.ts +164 -0
- package/dist/webafx-cache/redis-pubsub-provider.d.ts.map +1 -0
- package/dist/webafx-cache/redis-pubsub-provider.js +329 -0
- package/dist/webafx-cache/redis-pubsub-provider.js.map +1 -0
- package/dist/webafx-cache/types.d.ts +206 -0
- package/dist/webafx-cache/types.d.ts.map +1 -0
- package/dist/webafx-cache/types.js +27 -0
- package/dist/webafx-cache/types.js.map +1 -0
- package/dist/webafx-i18n/i18n-plugin.d.ts +29 -0
- package/dist/webafx-i18n/i18n-plugin.d.ts.map +1 -0
- package/dist/webafx-i18n/i18n-plugin.js +145 -0
- package/dist/webafx-i18n/i18n-plugin.js.map +1 -0
- package/dist/webafx-i18n/index.d.ts +12 -0
- package/dist/webafx-i18n/index.d.ts.map +1 -0
- package/dist/webafx-i18n/index.js +12 -0
- package/dist/webafx-i18n/index.js.map +1 -0
- package/dist/webafx-i18n/locale-resolver.d.ts +33 -0
- package/dist/webafx-i18n/locale-resolver.d.ts.map +1 -0
- package/dist/webafx-i18n/locale-resolver.js +67 -0
- package/dist/webafx-i18n/locale-resolver.js.map +1 -0
- package/dist/webafx-i18n/postgresql-source.d.ts +101 -0
- package/dist/webafx-i18n/postgresql-source.d.ts.map +1 -0
- package/dist/webafx-i18n/postgresql-source.js +101 -0
- package/dist/webafx-i18n/postgresql-source.js.map +1 -0
- package/dist/webafx-i18n/types.d.ts +70 -0
- package/dist/webafx-i18n/types.d.ts.map +1 -0
- package/dist/webafx-i18n/types.js +2 -0
- package/dist/webafx-i18n/types.js.map +1 -0
- package/dist/webafx-mailer/abstract-mail-provider.d.ts +55 -0
- package/dist/webafx-mailer/abstract-mail-provider.d.ts.map +1 -0
- package/dist/webafx-mailer/abstract-mail-provider.js +37 -0
- package/dist/webafx-mailer/abstract-mail-provider.js.map +1 -0
- package/dist/webafx-mailer/index.d.ts +24 -0
- package/dist/webafx-mailer/index.d.ts.map +1 -0
- package/dist/webafx-mailer/index.js +34 -0
- package/dist/webafx-mailer/index.js.map +1 -0
- package/dist/webafx-mailer/mail-plugin.d.ts +98 -0
- package/dist/webafx-mailer/mail-plugin.d.ts.map +1 -0
- package/dist/webafx-mailer/mail-plugin.js +155 -0
- package/dist/webafx-mailer/mail-plugin.js.map +1 -0
- package/dist/webafx-mailer/memory-mail-provider.d.ts +85 -0
- package/dist/webafx-mailer/memory-mail-provider.d.ts.map +1 -0
- package/dist/webafx-mailer/memory-mail-provider.js +111 -0
- package/dist/webafx-mailer/memory-mail-provider.js.map +1 -0
- package/dist/webafx-mailer/smtp-mail-provider.d.ts +65 -0
- package/dist/webafx-mailer/smtp-mail-provider.d.ts.map +1 -0
- package/dist/webafx-mailer/smtp-mail-provider.js +113 -0
- package/dist/webafx-mailer/smtp-mail-provider.js.map +1 -0
- package/dist/webafx-mailer/types.d.ts +136 -0
- package/dist/webafx-mailer/types.d.ts.map +1 -0
- package/dist/webafx-mailer/types.js +13 -0
- package/dist/webafx-mailer/types.js.map +1 -0
- package/package.json +159 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { ObjectSchema, SchemaUtils } from '../schema/index.js';
|
|
2
|
+
import { Generator } from './generator.js';
|
|
3
|
+
/**
|
|
4
|
+
* TypeScript Type Generator
|
|
5
|
+
*
|
|
6
|
+
* Generates TypeScript type definitions from schema objects. This generator converts
|
|
7
|
+
* schema definitions (primitives, objects, references) into properly formatted TypeScript
|
|
8
|
+
* types and interfaces with support for:
|
|
9
|
+
*
|
|
10
|
+
* - Type aliases and interfaces
|
|
11
|
+
* - Optional properties
|
|
12
|
+
* - Nullable types
|
|
13
|
+
* - Array types
|
|
14
|
+
* - Partial types
|
|
15
|
+
* - Reference types
|
|
16
|
+
* - JSDoc comments and descriptions
|
|
17
|
+
*/
|
|
18
|
+
export class TypeGenerator extends Generator {
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new TypeScript type generator instance.
|
|
21
|
+
*
|
|
22
|
+
* @param options - Configuration options for the generator (currently unused but reserved for future use)
|
|
23
|
+
*/
|
|
24
|
+
constructor(options) {
|
|
25
|
+
super(options);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Renders a reference schema to TypeScript type syntax.
|
|
29
|
+
*
|
|
30
|
+
* Reference schemas point to other schema objects and are rendered as type aliases.
|
|
31
|
+
* If the reference has a parent (is a property), it renders inline without export.
|
|
32
|
+
* Otherwise, it creates an exported type alias.
|
|
33
|
+
*
|
|
34
|
+
* @param obj - The reference schema object to render
|
|
35
|
+
* @returns Array of TypeScript code lines representing the reference type
|
|
36
|
+
*/
|
|
37
|
+
renderReferenceSchema(obj) {
|
|
38
|
+
const lines = [];
|
|
39
|
+
const data = obj.getData();
|
|
40
|
+
const typeName = SchemaUtils.getTypeScriptName(obj);
|
|
41
|
+
if (data.parent) {
|
|
42
|
+
// Render as inline property type (no export)
|
|
43
|
+
if (!data.ref?.isRendered()) {
|
|
44
|
+
if (!data.ref?.getName()) {
|
|
45
|
+
throw new Error(`Referenced schema is not named!`);
|
|
46
|
+
}
|
|
47
|
+
this.lines.push(...this.renderInternal(data.ref));
|
|
48
|
+
}
|
|
49
|
+
lines.push(this.modifiers(data.ref?.getData().tsType || '', obj) || '');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Render as exported type alias
|
|
53
|
+
this.addDescription(obj, lines);
|
|
54
|
+
lines.push('export', 'type', typeName, '=', this.modifiers(data.ref?.getData().tsType || '', obj) || '');
|
|
55
|
+
obj.setData({ rendered: true, tsType: typeName });
|
|
56
|
+
}
|
|
57
|
+
return this.sanitize(lines);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Renders an object schema to TypeScript interface or type syntax.
|
|
61
|
+
*
|
|
62
|
+
* Object schemas are rendered as either interfaces (preferred for plain objects)
|
|
63
|
+
* or type aliases (when modifiers like Partial, nullable, or array are applied).
|
|
64
|
+
* Properties are rendered recursively with proper optional markers and types.
|
|
65
|
+
*
|
|
66
|
+
* @param obj - The object schema to render
|
|
67
|
+
* @returns Array of TypeScript code lines representing the object type
|
|
68
|
+
*/
|
|
69
|
+
renderObjectSchema(obj) {
|
|
70
|
+
const lines = [];
|
|
71
|
+
const data = obj.getData();
|
|
72
|
+
const props = ['{'];
|
|
73
|
+
/**
|
|
74
|
+
* Creates the property definitions for the object.
|
|
75
|
+
* Iterates through all properties and renders each with:
|
|
76
|
+
* - JSDoc description (if present)
|
|
77
|
+
* - Optional marker (?) if property is optional
|
|
78
|
+
* - Recursively rendered type
|
|
79
|
+
*/
|
|
80
|
+
const createProps = () => {
|
|
81
|
+
Object.entries(obj.getProperties()).forEach(([propName, propObj]) => {
|
|
82
|
+
const { optional } = propObj.getData();
|
|
83
|
+
this.addDescription(propObj, props, true);
|
|
84
|
+
props.push(`${propName}${optional ? '?' : ''}:${this.renderInternal(propObj)}`);
|
|
85
|
+
});
|
|
86
|
+
props.push('}');
|
|
87
|
+
return this.sanitize(props, '\n');
|
|
88
|
+
};
|
|
89
|
+
if (data.parent) {
|
|
90
|
+
// Render as inline property type (nested object)
|
|
91
|
+
const targetType = obj.isRendered()
|
|
92
|
+
? this.modifiers(data.tsType, obj)
|
|
93
|
+
: this.modifiers(createProps(), obj);
|
|
94
|
+
lines.push(this.sanitize([targetType]));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// Render as exported interface or type
|
|
98
|
+
const { declType, equalSign } = this.getDeclaration(obj);
|
|
99
|
+
const typeName = SchemaUtils.getTypeScriptName(obj);
|
|
100
|
+
const targetType = declType === 'type' ? this.modifiers(createProps(), obj) : createProps();
|
|
101
|
+
this.addDescription(obj, lines);
|
|
102
|
+
lines.push(this.sanitize(['export', declType, typeName, equalSign, targetType]));
|
|
103
|
+
obj.setData({ rendered: true, tsType: typeName });
|
|
104
|
+
}
|
|
105
|
+
return this.sanitize(lines);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Renders primitive type schemas (string, number, boolean, date, any) to TypeScript.
|
|
109
|
+
*
|
|
110
|
+
* Primitive schemas represent basic TypeScript types and are rendered as type aliases
|
|
111
|
+
* when exported, or inline types when used as properties.
|
|
112
|
+
*
|
|
113
|
+
* @param obj - The primitive schema object to render
|
|
114
|
+
* @returns Array of TypeScript code lines representing the primitive type
|
|
115
|
+
*/
|
|
116
|
+
renderPrimitiveTypeSchema(obj) {
|
|
117
|
+
let lines = [];
|
|
118
|
+
const data = obj.getData();
|
|
119
|
+
const typeName = SchemaUtils.getTypeScriptName(obj) || data.tsType;
|
|
120
|
+
const targetType = obj.isRendered()
|
|
121
|
+
? data.tsType
|
|
122
|
+
: this.modifiers(data.primitive ? data.tsType : typeName, obj);
|
|
123
|
+
const { declType, equalSign } = this.getDeclaration(obj);
|
|
124
|
+
if (data.parent) {
|
|
125
|
+
// Render as inline property type
|
|
126
|
+
lines.push(this.sanitize([targetType]));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// Render as exported type alias
|
|
130
|
+
this.addDescription(obj, lines);
|
|
131
|
+
lines.push(this.sanitize(['export', declType, typeName, equalSign, targetType]));
|
|
132
|
+
obj.setData({ rendered: true, tsType: typeName });
|
|
133
|
+
}
|
|
134
|
+
return this.sanitize(lines);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Applies TypeScript type modifiers to a base type.
|
|
138
|
+
*
|
|
139
|
+
* Modifiers are applied in a specific order to ensure correct TypeScript syntax:
|
|
140
|
+
* 1. Partial<T> - Makes all properties optional
|
|
141
|
+
* 2. T[] - Array type
|
|
142
|
+
* 3. T | null - Nullable type
|
|
143
|
+
*
|
|
144
|
+
* @param target - The base type string to apply modifiers to
|
|
145
|
+
* @param obj - The schema object containing modifier flags
|
|
146
|
+
* @returns The modified type string with all applicable modifiers applied
|
|
147
|
+
*/
|
|
148
|
+
modifiers(target, obj) {
|
|
149
|
+
const { partial, nullable, arrayed, recordOf } = obj.getData();
|
|
150
|
+
// Apply Partial wrapper first
|
|
151
|
+
if (partial) {
|
|
152
|
+
target = `Partial<${target}>`;
|
|
153
|
+
}
|
|
154
|
+
// Apply array notation second
|
|
155
|
+
if (arrayed) {
|
|
156
|
+
target = `${target}[]`;
|
|
157
|
+
}
|
|
158
|
+
if (recordOf) {
|
|
159
|
+
target = `Record<string,${target}>`;
|
|
160
|
+
}
|
|
161
|
+
// Apply nullable union last
|
|
162
|
+
if (nullable) {
|
|
163
|
+
target = `${target} | null`;
|
|
164
|
+
}
|
|
165
|
+
return target;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Adds JSDoc description comments to the generated TypeScript code.
|
|
169
|
+
*
|
|
170
|
+
* This method generates comprehensive JSDoc comments that include:
|
|
171
|
+
* - Custom description text
|
|
172
|
+
* - Type metadata (@type, @interface)
|
|
173
|
+
* - Modifier annotations (@partial, @array, @optional, @nullable)
|
|
174
|
+
* - Membership information (@memberOf for properties)
|
|
175
|
+
*
|
|
176
|
+
* The comments are formatted as multi-line JSDoc blocks for better readability.
|
|
177
|
+
*
|
|
178
|
+
* @param obj - The schema object to generate description for
|
|
179
|
+
* @param lines - Array to append the description lines to
|
|
180
|
+
* @param isProp - Whether this is a property (affects spacing)
|
|
181
|
+
*/
|
|
182
|
+
addDescription(obj, lines, isProp) {
|
|
183
|
+
const data = obj.getData();
|
|
184
|
+
// Add declaration type annotation
|
|
185
|
+
if (data.declType) {
|
|
186
|
+
obj.description(`@${data.declType}`);
|
|
187
|
+
}
|
|
188
|
+
// Add modifier annotations
|
|
189
|
+
if (data.partial) {
|
|
190
|
+
obj.description(`@partial`);
|
|
191
|
+
}
|
|
192
|
+
if (data.arrayed) {
|
|
193
|
+
obj.description(`@array`);
|
|
194
|
+
}
|
|
195
|
+
if (data.optional) {
|
|
196
|
+
obj.description('@optional');
|
|
197
|
+
}
|
|
198
|
+
if (data.nullable) {
|
|
199
|
+
obj.description('@nullable');
|
|
200
|
+
}
|
|
201
|
+
// Add parent membership information for properties
|
|
202
|
+
if (data.parent) {
|
|
203
|
+
const parName = SchemaUtils.getTypeScriptName(data.parent) || data.parent.getData().tsType;
|
|
204
|
+
if (parName) {
|
|
205
|
+
obj.description(`@memberOf {${parName}}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Format and add the complete description block
|
|
209
|
+
if (data.description) {
|
|
210
|
+
const descr = SchemaUtils.formatMultilineComment(data.description).join('\n');
|
|
211
|
+
lines.push(descr);
|
|
212
|
+
if (!isProp) {
|
|
213
|
+
lines.push('\n');
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Determines whether to use 'interface' or 'type' declaration for an object schema.
|
|
219
|
+
*
|
|
220
|
+
* Decision logic:
|
|
221
|
+
* - Use 'interface' for plain object schemas without modifiers (preferred in TypeScript)
|
|
222
|
+
* - Use 'type' for objects with modifiers (Partial, array, nullable) or nested objects
|
|
223
|
+
*
|
|
224
|
+
* This ensures idiomatic TypeScript code generation that follows best practices:
|
|
225
|
+
* - Interfaces for object shapes (extensible, better error messages)
|
|
226
|
+
* - Types for unions, intersections, and modified types
|
|
227
|
+
*
|
|
228
|
+
* @param obj - The schema object to determine declaration type for
|
|
229
|
+
* @returns Object containing declaration type ('interface' or 'type'), equal sign, and flag
|
|
230
|
+
*/
|
|
231
|
+
getDeclaration(obj) {
|
|
232
|
+
const { arrayed, nullable, partial, parent } = obj.getData();
|
|
233
|
+
const is_object_schema = obj instanceof ObjectSchema;
|
|
234
|
+
// Check if this is an object type that requires 'type' declaration
|
|
235
|
+
// (has modifiers or is nested)
|
|
236
|
+
const is_object_type = is_object_schema && parent === undefined && (arrayed || nullable || partial);
|
|
237
|
+
if (is_object_schema && !is_object_type) {
|
|
238
|
+
// Use interface for plain objects (no modifiers, root level)
|
|
239
|
+
obj.setData({ declType: 'interface' });
|
|
240
|
+
return { declType: 'interface', equalSign: '', type_declaration: false };
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
// Use type for everything else (primitives, modified objects, nested objects)
|
|
244
|
+
obj.setData({ declType: 'type' });
|
|
245
|
+
return { declType: 'type', equalSign: '=', type_declaration: true };
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=type-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-generator.js","sourceRoot":"","sources":["../../src/generator/type-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ObjectSchema, ReferenceSchema } from '../schema/index.js';
|
|
2
|
+
import { SchemaObject } from '../schema/schema-object.js';
|
|
3
|
+
import { Generator, GeneratorOptions } from './generator.js';
|
|
4
|
+
export interface ZodGeneratorOptions extends GeneratorOptions {
|
|
5
|
+
zodVariablePostfix?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class ZodGenerator extends Generator<ZodGeneratorOptions> {
|
|
8
|
+
constructor(options?: ZodGeneratorOptions);
|
|
9
|
+
protected getZodVariableName(obj: SchemaObject): string;
|
|
10
|
+
protected renderReferenceSchema(obj: ReferenceSchema): string;
|
|
11
|
+
protected renderObjectSchema(obj: ObjectSchema): string;
|
|
12
|
+
protected renderPrimitiveTypeSchema(obj: SchemaObject): string;
|
|
13
|
+
protected modifiers(target: string | undefined, obj: SchemaObject): string | undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=zod-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-generator.d.ts","sourceRoot":"","sources":["../../src/generator/zod-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAA6B,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,YAAa,SAAQ,SAAS,CAAC,mBAAmB,CAAC;gBAClD,OAAO,CAAC,EAAE,mBAAmB;IASzC,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY;IAM9C,SAAS,CAAC,qBAAqB,CAAC,GAAG,EAAE,eAAe;IAsBpD,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY;IAyB9C,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,YAAY;IAcrD,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,YAAY;CAqBlE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { SchemaUtils } from '../schema/index.js';
|
|
2
|
+
import { Generator } from './generator.js';
|
|
3
|
+
export class ZodGenerator extends Generator {
|
|
4
|
+
constructor(options) {
|
|
5
|
+
options = {
|
|
6
|
+
zodVariablePostfix: 'schema',
|
|
7
|
+
...(options || {}),
|
|
8
|
+
};
|
|
9
|
+
super(options);
|
|
10
|
+
this.lines.push(`import * as z from 'zod';`);
|
|
11
|
+
}
|
|
12
|
+
getZodVariableName(obj) {
|
|
13
|
+
return SchemaUtils.snakeToPascalCase(this.sanitize([obj.getNamedScoped(), this.options.zodVariablePostfix], '_'));
|
|
14
|
+
}
|
|
15
|
+
renderReferenceSchema(obj) {
|
|
16
|
+
const lines = [];
|
|
17
|
+
const data = obj.getData();
|
|
18
|
+
if (!data.ref?.isRendered()) {
|
|
19
|
+
if (!data.ref?.getName()) {
|
|
20
|
+
throw new Error(`Referenced schema is not named!`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const zodType = this.modifiers(this.getZodVariableName(data.ref), obj);
|
|
24
|
+
if (data.parent) {
|
|
25
|
+
lines.push(zodType);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const varName = this.modifiers(this.getZodVariableName(data.ref), obj);
|
|
29
|
+
lines.push(this.sanitize(['export', 'const', varName, '=', zodType]));
|
|
30
|
+
}
|
|
31
|
+
obj.setData({ rendered: true });
|
|
32
|
+
return this.sanitize(lines);
|
|
33
|
+
}
|
|
34
|
+
renderObjectSchema(obj) {
|
|
35
|
+
const lines = [];
|
|
36
|
+
const props = [];
|
|
37
|
+
const data = obj.getData();
|
|
38
|
+
const createProps = () => {
|
|
39
|
+
Object.entries(obj.getProperties()).forEach(([propName, propObj]) => {
|
|
40
|
+
props.push(`${propName}:${this.renderInternal(propObj)}`);
|
|
41
|
+
});
|
|
42
|
+
return this.sanitize(props, ',\n');
|
|
43
|
+
};
|
|
44
|
+
const zodType = this.modifiers(`z.${data.zodType}({${createProps()}})`, obj);
|
|
45
|
+
if (data.parent) {
|
|
46
|
+
lines.push(zodType);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const varName = this.getZodVariableName(obj);
|
|
50
|
+
lines.push(this.sanitize(['export', 'const', varName, '=', zodType]));
|
|
51
|
+
}
|
|
52
|
+
obj.setData({ rendered: true });
|
|
53
|
+
return this.sanitize(lines);
|
|
54
|
+
}
|
|
55
|
+
renderPrimitiveTypeSchema(obj) {
|
|
56
|
+
let lines = [];
|
|
57
|
+
const data = obj.getData();
|
|
58
|
+
const zodType = this.modifiers(`z.${data.zodType}()`, obj);
|
|
59
|
+
if (data.parent) {
|
|
60
|
+
lines.push(zodType);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const varName = this.getZodVariableName(obj);
|
|
64
|
+
lines.push(this.sanitize(['export', 'const', varName, '=', zodType]));
|
|
65
|
+
}
|
|
66
|
+
obj.setData({ rendered: true });
|
|
67
|
+
return this.sanitize(lines);
|
|
68
|
+
}
|
|
69
|
+
modifiers(target, obj) {
|
|
70
|
+
const { optional, partial, nullable } = obj.getData();
|
|
71
|
+
if (partial) {
|
|
72
|
+
target = `${target}.partial()`;
|
|
73
|
+
}
|
|
74
|
+
if (optional) {
|
|
75
|
+
target = `${target}.optional()`;
|
|
76
|
+
}
|
|
77
|
+
// else if (obj instanceof StringSchema) {
|
|
78
|
+
// target = `${target}.nonempty()`;
|
|
79
|
+
// }
|
|
80
|
+
if (nullable) {
|
|
81
|
+
target = `${target}.nullable()`;
|
|
82
|
+
}
|
|
83
|
+
return target;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=zod-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-generator.js","sourceRoot":"","sources":["../../src/generator/zod-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod v4 → OpenAPI JSON Schema converter.
|
|
3
|
+
*
|
|
4
|
+
* Converts Zod v4 schemas into OpenAPI v3.1 JSON Schema objects by
|
|
5
|
+
* introspecting Zod's internal `_zod.def` structure. This custom converter
|
|
6
|
+
* is necessary because existing zod-to-openapi libraries do not support
|
|
7
|
+
* Zod v4's changed internals.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* Zod v4 stores schema metadata in `schema._zod.def`:
|
|
11
|
+
* - `def.type` — the Zod type name (string, number, boolean, object, array, etc.)
|
|
12
|
+
* - `def.checks` — array of validation checks (min_length, max_length, etc.)
|
|
13
|
+
* - `def.shape` — object property schemas (each value is a `_zod` internal object)
|
|
14
|
+
* - `def.element` — array item schema (`_zod` internal object)
|
|
15
|
+
* - `def.innerType` — wrapped schema for optional/nullable/default (`_zod` internal object)
|
|
16
|
+
* - `def.entries` — enum values as Record<string, string>
|
|
17
|
+
* - `def.values` — literal values as array
|
|
18
|
+
* - `def.options` — union member schemas (array of `_zod` internal objects)
|
|
19
|
+
* - `def.defaultValue` — the default value for default-wrapped schemas
|
|
20
|
+
* - `def.coerce` — boolean flag for coerced types
|
|
21
|
+
*
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
import type { OpenAPISchema, OpenAPIParameter } from './openapi-types.js';
|
|
25
|
+
/**
|
|
26
|
+
* Convert a Zod v4 schema to an OpenAPI JSON Schema object.
|
|
27
|
+
*
|
|
28
|
+
* This is the main entry point for schema conversion. It extracts the
|
|
29
|
+
* internal `_zod` node from the schema and delegates to the recursive
|
|
30
|
+
* node converter.
|
|
31
|
+
*
|
|
32
|
+
* @param zodSchema - Any Zod v4 schema instance (z.string(), z.object(), etc.)
|
|
33
|
+
* @returns An OpenAPI-compatible JSON Schema object
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { z } from 'zod';
|
|
38
|
+
* import { zodToOpenAPISchema } from './zod-to-openapi.js';
|
|
39
|
+
*
|
|
40
|
+
* const schema = z.object({ name: z.string().min(1), age: z.number().int() });
|
|
41
|
+
* const openApiSchema = zodToOpenAPISchema(schema);
|
|
42
|
+
* // { type: 'object', properties: { name: { type: 'string', minLength: 1 }, age: { type: 'integer' } }, required: ['name', 'age'] }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function zodToOpenAPISchema(zodSchema: unknown): OpenAPISchema;
|
|
46
|
+
/**
|
|
47
|
+
* Convert a Zod v4 object schema into an array of OpenAPI query parameters.
|
|
48
|
+
*
|
|
49
|
+
* Each top-level property of the Zod object becomes a separate query parameter.
|
|
50
|
+
* Optional properties become non-required parameters. Default values are included.
|
|
51
|
+
*
|
|
52
|
+
* @param zodSchema - A Zod v4 object schema (z.object({ ... }))
|
|
53
|
+
* @returns Array of OpenAPI parameter objects with `in: 'query'`
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const schema = z.object({
|
|
58
|
+
* page: z.coerce.number().default(1),
|
|
59
|
+
* search: z.string().optional(),
|
|
60
|
+
* });
|
|
61
|
+
* const params = zodToQueryParameters(schema);
|
|
62
|
+
* // [
|
|
63
|
+
* // { name: 'page', in: 'query', schema: { type: 'number', default: 1 } },
|
|
64
|
+
* // { name: 'search', in: 'query', schema: { type: 'string' } },
|
|
65
|
+
* // ]
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function zodToQueryParameters(zodSchema: unknown): OpenAPIParameter[];
|
|
69
|
+
//# sourceMappingURL=zod-to-openapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-to-openapi.d.ts","sourceRoot":"","sources":["../../src/generator/zod-to-openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwF1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,CAOpE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAgC3E"}
|