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,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core type definitions for expression2
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* SQL dialect enumeration
|
|
6
|
+
*/
|
|
7
|
+
export var SqlDialect;
|
|
8
|
+
(function (SqlDialect) {
|
|
9
|
+
SqlDialect["PostgreSQL"] = "postgresql";
|
|
10
|
+
SqlDialect["MySQL"] = "mysql";
|
|
11
|
+
SqlDialect["MSSQL"] = "mssql";
|
|
12
|
+
SqlDialect["SQLite"] = "sqlite";
|
|
13
|
+
})(SqlDialect || (SqlDialect = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Base AST node type
|
|
16
|
+
*/
|
|
17
|
+
export var ASTNodeType;
|
|
18
|
+
(function (ASTNodeType) {
|
|
19
|
+
ASTNodeType["Comparison"] = "comparison";
|
|
20
|
+
ASTNodeType["Logical"] = "logical";
|
|
21
|
+
ASTNodeType["Group"] = "group";
|
|
22
|
+
ASTNodeType["Json"] = "json";
|
|
23
|
+
ASTNodeType["FullText"] = "fulltext";
|
|
24
|
+
ASTNodeType["Subquery"] = "subquery";
|
|
25
|
+
})(ASTNodeType || (ASTNodeType = {}));
|
|
26
|
+
/**
|
|
27
|
+
* Comparison operators
|
|
28
|
+
*/
|
|
29
|
+
export var ComparisonOperator;
|
|
30
|
+
(function (ComparisonOperator) {
|
|
31
|
+
ComparisonOperator["Equal"] = "=";
|
|
32
|
+
ComparisonOperator["NotEqual"] = "<>";
|
|
33
|
+
ComparisonOperator["GreaterThan"] = ">";
|
|
34
|
+
ComparisonOperator["GreaterThanOrEqual"] = ">=";
|
|
35
|
+
ComparisonOperator["LessThan"] = "<";
|
|
36
|
+
ComparisonOperator["LessThanOrEqual"] = "<=";
|
|
37
|
+
ComparisonOperator["Like"] = "LIKE";
|
|
38
|
+
ComparisonOperator["ILike"] = "ILIKE";
|
|
39
|
+
ComparisonOperator["In"] = "IN";
|
|
40
|
+
ComparisonOperator["NotIn"] = "NOT IN";
|
|
41
|
+
ComparisonOperator["Between"] = "BETWEEN";
|
|
42
|
+
ComparisonOperator["NotBetween"] = "NOT BETWEEN";
|
|
43
|
+
ComparisonOperator["IsNull"] = "IS NULL";
|
|
44
|
+
ComparisonOperator["IsNotNull"] = "IS NOT NULL";
|
|
45
|
+
})(ComparisonOperator || (ComparisonOperator = {}));
|
|
46
|
+
/**
|
|
47
|
+
* Logical operators
|
|
48
|
+
*/
|
|
49
|
+
export var LogicalOperator;
|
|
50
|
+
(function (LogicalOperator) {
|
|
51
|
+
LogicalOperator["And"] = "AND";
|
|
52
|
+
LogicalOperator["Or"] = "OR";
|
|
53
|
+
})(LogicalOperator || (LogicalOperator = {}));
|
|
54
|
+
/**
|
|
55
|
+
* JSON operators (PostgreSQL)
|
|
56
|
+
*/
|
|
57
|
+
export var JsonOperator;
|
|
58
|
+
(function (JsonOperator) {
|
|
59
|
+
JsonOperator["Contains"] = "@>";
|
|
60
|
+
JsonOperator["ContainedBy"] = "<@";
|
|
61
|
+
JsonOperator["HasKey"] = "?";
|
|
62
|
+
JsonOperator["HasAnyKey"] = "?|";
|
|
63
|
+
JsonOperator["HasAllKeys"] = "?&";
|
|
64
|
+
JsonOperator["PathExists"] = "@?";
|
|
65
|
+
})(JsonOperator || (JsonOperator = {}));
|
|
66
|
+
/**
|
|
67
|
+
* Full-text search modes
|
|
68
|
+
*/
|
|
69
|
+
export var FullTextMode;
|
|
70
|
+
(function (FullTextMode) {
|
|
71
|
+
FullTextMode["Plain"] = "plain";
|
|
72
|
+
FullTextMode["Phrase"] = "phrase";
|
|
73
|
+
FullTextMode["WebSearch"] = "websearch";
|
|
74
|
+
})(FullTextMode || (FullTextMode = {}));
|
|
75
|
+
/**
|
|
76
|
+
* Type guard to check if a value is an ASTNode
|
|
77
|
+
*/
|
|
78
|
+
export function isASTNode(value) {
|
|
79
|
+
return (value !== null &&
|
|
80
|
+
typeof value === 'object' &&
|
|
81
|
+
'type' in value &&
|
|
82
|
+
'id' in value &&
|
|
83
|
+
Object.values(ASTNodeType).includes(value.type));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Type guard for ComparisonNode
|
|
87
|
+
*/
|
|
88
|
+
export function isComparisonNode(node) {
|
|
89
|
+
return node.type === ASTNodeType.Comparison;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Type guard for LogicalNode
|
|
93
|
+
*/
|
|
94
|
+
export function isLogicalNode(node) {
|
|
95
|
+
return node.type === ASTNodeType.Logical;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Type guard for GroupNode
|
|
99
|
+
*/
|
|
100
|
+
export function isGroupNode(node) {
|
|
101
|
+
return node.type === ASTNodeType.Group;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Type guard for JsonNode
|
|
105
|
+
*/
|
|
106
|
+
export function isJsonNode(node) {
|
|
107
|
+
return node.type === ASTNodeType.Json;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Type guard for FullTextNode
|
|
111
|
+
*/
|
|
112
|
+
export function isFullTextNode(node) {
|
|
113
|
+
return node.type === ASTNodeType.FullText;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Type guard for SubqueryNode
|
|
117
|
+
*/
|
|
118
|
+
export function isSubqueryNode(node) {
|
|
119
|
+
return node.type === ASTNodeType.Subquery;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,6BAAe,CAAA;IACf,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAmED;;GAEG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAUD;;GAEG;AACH,MAAM,CAAN,IAAY,kBAeX;AAfD,WAAY,kBAAkB;IAC5B,iCAAW,CAAA;IACX,qCAAe,CAAA;IACf,uCAAiB,CAAA;IACjB,+CAAyB,CAAA;IACzB,oCAAc,CAAA;IACd,4CAAsB,CAAA;IACtB,mCAAa,CAAA;IACb,qCAAe,CAAA;IACf,+BAAS,CAAA;IACT,sCAAgB,CAAA;IAChB,yCAAmB,CAAA;IACnB,gDAA0B,CAAA;IAC1B,wCAAkB,CAAA;IAClB,+CAAyB,CAAA;AAC3B,CAAC,EAfW,kBAAkB,KAAlB,kBAAkB,QAe7B;AAcD;;GAEG;AACH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,4BAAS,CAAA;AACX,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAoBD;;GAEG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,kCAAkB,CAAA;IAClB,4BAAY,CAAA;IACZ,gCAAgB,CAAA;IAChB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;AACnB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAeD;;GAEG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;AACzB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAiDD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,IAAI,KAAK;QACf,IAAI,IAAI,KAAK;QACb,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAChD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @blendsdk/expression
|
|
3
|
+
* Modern, type-safe SQL WHERE clause builder with fluent API
|
|
4
|
+
*/
|
|
5
|
+
export { query, QueryBuilderImpl } from './builders/query-builder.js';
|
|
6
|
+
export type { ComparisonBuilder, QueryBuilder, SubqueryBuilder, } from './core/query-builder-interfaces.js';
|
|
7
|
+
export type { ASTNode, ComparisonNode, CompileResult, DebugInfo, FullTextNode, GroupNode, JsonNode, LogicalNode, QueryOptions, SearchOptions, SubqueryNode, } from './core/types.js';
|
|
8
|
+
export { ASTNodeType, ComparisonOperator, FullTextMode, JsonOperator, LogicalOperator, SqlDialect, } from './core/types.js';
|
|
9
|
+
export { PostgreSQLCompiler } from './compiler/postgresql-compiler.js';
|
|
10
|
+
export { ParameterManager } from './core/parameter-manager.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,OAAO,EACP,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @blendsdk/expression
|
|
3
|
+
* Modern, type-safe SQL WHERE clause builder with fluent API
|
|
4
|
+
*/
|
|
5
|
+
// Export main query builder
|
|
6
|
+
export { query, QueryBuilderImpl } from './builders/query-builder.js';
|
|
7
|
+
export { ASTNodeType, ComparisonOperator, FullTextMode, JsonOperator, LogicalOperator, SqlDialect, } from './core/types.js';
|
|
8
|
+
// Export utilities
|
|
9
|
+
export { PostgreSQLCompiler } from './compiler/postgresql-compiler.js';
|
|
10
|
+
export { ParameterManager } from './core/parameter-manager.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4BAA4B;AAC5B,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAuBtE,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { TranslationCatalog } from "./types.js";
|
|
2
|
+
import type { TranslationSource } from "./translation-source.js";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for the content file translation source.
|
|
5
|
+
*/
|
|
6
|
+
export interface ContentFileSourceConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Array of directory paths or glob patterns to scan for content files.
|
|
9
|
+
*
|
|
10
|
+
* Each path can be:
|
|
11
|
+
* - A directory path: all matching files in the directory are loaded
|
|
12
|
+
* - A glob pattern: files matching the pattern are loaded
|
|
13
|
+
*
|
|
14
|
+
* Files must follow the naming convention: `<locale>.<key>.<ext>`
|
|
15
|
+
* where:
|
|
16
|
+
* - First segment = locale (e.g., "en", "nl", "de")
|
|
17
|
+
* - Last segment = file extension (e.g., "html", "md", "txt")
|
|
18
|
+
* - Middle segments = translation key (e.g., "signup-email", "auth.welcome")
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* paths: ["./content/emails", "./content/pages"]
|
|
22
|
+
* paths: ["./content/emails/*.html"]
|
|
23
|
+
*/
|
|
24
|
+
paths: string[];
|
|
25
|
+
/**
|
|
26
|
+
* File extensions to include (with leading dot).
|
|
27
|
+
* Files with other extensions are silently ignored.
|
|
28
|
+
*
|
|
29
|
+
* @default [".html", ".md", ".txt"]
|
|
30
|
+
*/
|
|
31
|
+
extensions?: string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Translation source that loads from individual content files.
|
|
35
|
+
*
|
|
36
|
+
* Each file represents one translation key for one locale.
|
|
37
|
+
* The filename convention is `<locale>.<key>.<ext>`:
|
|
38
|
+
* - `nl.signup-email.html` → locale: "nl", key: "signup-email"
|
|
39
|
+
* - `en.auth.welcome.md` → locale: "en", key: "auth.welcome"
|
|
40
|
+
*
|
|
41
|
+
* File content is read as UTF-8 and stored as-is (no transformation).
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const source = new ContentFileSource({
|
|
46
|
+
* paths: ["./content/emails"],
|
|
47
|
+
* });
|
|
48
|
+
* const catalog = await source.load();
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare class ContentFileSource implements TranslationSource {
|
|
52
|
+
/** @inheritdoc */
|
|
53
|
+
readonly name = "ContentFileSource";
|
|
54
|
+
/** Source configuration */
|
|
55
|
+
protected config: ContentFileSourceConfig;
|
|
56
|
+
/** Resolved extensions (with leading dot, lowercased) */
|
|
57
|
+
protected extensions: string[];
|
|
58
|
+
/**
|
|
59
|
+
* Create a new ContentFileSource.
|
|
60
|
+
*
|
|
61
|
+
* @param config - Directory paths, glob patterns, and optional extension filter
|
|
62
|
+
*/
|
|
63
|
+
constructor(config: ContentFileSourceConfig);
|
|
64
|
+
/**
|
|
65
|
+
* Load all translations from configured content file paths.
|
|
66
|
+
*
|
|
67
|
+
* 1. Resolves all paths (directories and globs) to individual file paths
|
|
68
|
+
* 2. Parses each filename for locale and key using `<locale>.<key>.<ext>` convention
|
|
69
|
+
* 3. Filters by supported extensions
|
|
70
|
+
* 4. Reads file content as UTF-8
|
|
71
|
+
* 5. Builds translation catalog with content as-is
|
|
72
|
+
*
|
|
73
|
+
* Files that don't match the naming convention or have unsupported
|
|
74
|
+
* extensions are silently skipped.
|
|
75
|
+
*
|
|
76
|
+
* @returns The complete translation catalog from all matched content files
|
|
77
|
+
* @throws Error if a matched file cannot be read (e.g., permission denied)
|
|
78
|
+
*/
|
|
79
|
+
load(): Promise<TranslationCatalog>;
|
|
80
|
+
/**
|
|
81
|
+
* Resolve all configured paths to individual file paths.
|
|
82
|
+
*
|
|
83
|
+
* - Plain directory paths (no glob chars): list all files in the directory
|
|
84
|
+
* - Glob patterns (contains * or ?): expand using simple wildcard matching
|
|
85
|
+
*
|
|
86
|
+
* Results are sorted for deterministic ordering so the same input
|
|
87
|
+
* always produces the same catalog.
|
|
88
|
+
*
|
|
89
|
+
* @returns Array of resolved absolute file paths, sorted alphabetically
|
|
90
|
+
*/
|
|
91
|
+
protected resolveAllPaths(): Promise<string[]>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Create a ContentFileSource instance. Convenience factory for plugin configuration.
|
|
95
|
+
*
|
|
96
|
+
* @param config - Content file source configuration
|
|
97
|
+
* @returns A new ContentFileSource instance
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* app.use(createI18nPlugin({
|
|
102
|
+
* sources: [
|
|
103
|
+
* contentFileSource({ paths: ["./content/emails"] }),
|
|
104
|
+
* ],
|
|
105
|
+
* }));
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export declare function contentFileSource(config: ContentFileSourceConfig): ContentFileSource;
|
|
109
|
+
//# sourceMappingURL=content-file-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-file-source.d.ts","sourceRoot":"","sources":["../src/content-file-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AA+GD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACvD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,uBAAuB;IAEpC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC;IAE1C,yDAAyD;IACzD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,uBAAuB;IAQ3C;;;;;;;;;;;;;;OAcG;IACG,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAmCzC;;;;;;;;;;OAUG;cACa,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAkBvD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAEpF"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { readFile, readdir } from "node:fs/promises";
|
|
2
|
+
import { basename, resolve, dirname, extname } from "node:path";
|
|
3
|
+
/** Default file extensions to load when none are configured */
|
|
4
|
+
const DEFAULT_EXTENSIONS = [".html", ".md", ".txt"];
|
|
5
|
+
/**
|
|
6
|
+
* Parse a content filename into locale and key.
|
|
7
|
+
*
|
|
8
|
+
* Convention: `<locale>.<key>.<ext>`
|
|
9
|
+
* - First dot-segment = locale
|
|
10
|
+
* - Last dot-segment = extension (ignored, used for filtering)
|
|
11
|
+
* - Everything in between = translation key
|
|
12
|
+
*
|
|
13
|
+
* Requires at least 3 segments (locale + key + extension).
|
|
14
|
+
*
|
|
15
|
+
* @param filename - The filename (without directory path)
|
|
16
|
+
* @returns Parsed locale and key, or null if filename doesn't match convention
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* parseContentFilename("nl.signup-email.html")
|
|
20
|
+
* // → { locale: "nl", key: "signup-email" }
|
|
21
|
+
*
|
|
22
|
+
* parseContentFilename("en.auth.welcome.md")
|
|
23
|
+
* // → { locale: "en", key: "auth.welcome" }
|
|
24
|
+
*
|
|
25
|
+
* parseContentFilename("readme.txt")
|
|
26
|
+
* // → null (only 2 segments — no key)
|
|
27
|
+
*/
|
|
28
|
+
function parseContentFilename(filename) {
|
|
29
|
+
const segments = filename.split(".");
|
|
30
|
+
// Need at least 3 segments: locale, key (1+), extension
|
|
31
|
+
if (segments.length < 3) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const locale = segments[0];
|
|
35
|
+
// Skip the last segment (extension) and join middle segments as key
|
|
36
|
+
const key = segments.slice(1, -1).join(".");
|
|
37
|
+
// Validate: locale and key must be non-empty
|
|
38
|
+
if (!locale || !key) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return { locale, key };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* List all files in a directory (non-recursive).
|
|
45
|
+
*
|
|
46
|
+
* Returns an empty array if the directory doesn't exist,
|
|
47
|
+
* allowing graceful handling of optional content directories.
|
|
48
|
+
*
|
|
49
|
+
* @param dirPath - Directory path to list
|
|
50
|
+
* @returns Array of absolute file paths
|
|
51
|
+
*/
|
|
52
|
+
async function listDirectoryFiles(dirPath) {
|
|
53
|
+
try {
|
|
54
|
+
const entries = await readdir(resolve(dirPath));
|
|
55
|
+
return entries.map((entry) => resolve(dirPath, entry));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Directory doesn't exist or can't be read — return empty
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Expand a simple glob pattern into matching file paths.
|
|
64
|
+
*
|
|
65
|
+
* Supports only `*` and `?` wildcards in the filename part (not recursive `**`).
|
|
66
|
+
* This covers the primary use case for content files without needing
|
|
67
|
+
* an external glob library.
|
|
68
|
+
*
|
|
69
|
+
* Same implementation as used by JsonFileSource for consistency.
|
|
70
|
+
*
|
|
71
|
+
* @param pattern - A glob pattern (e.g., "./content/*.html")
|
|
72
|
+
* @returns Array of matching absolute file paths
|
|
73
|
+
*/
|
|
74
|
+
async function expandSimpleGlob(pattern) {
|
|
75
|
+
const dir = dirname(pattern);
|
|
76
|
+
const filePattern = basename(pattern);
|
|
77
|
+
// Convert glob pattern to regex: * → [^/]*, ? → [^/]
|
|
78
|
+
const regexStr = filePattern
|
|
79
|
+
.replace(/[.+^${}()|[\]\\]/g, "\\$&") // Escape regex special chars (except * and ?)
|
|
80
|
+
.replace(/\*/g, "[^/]*")
|
|
81
|
+
.replace(/\?/g, "[^/]");
|
|
82
|
+
const regex = new RegExp(`^${regexStr}$`);
|
|
83
|
+
try {
|
|
84
|
+
const entries = await readdir(resolve(dir));
|
|
85
|
+
return entries
|
|
86
|
+
.filter((entry) => regex.test(entry))
|
|
87
|
+
.map((entry) => resolve(dir, entry));
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Directory doesn't exist — return empty (no matches)
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Translation source that loads from individual content files.
|
|
96
|
+
*
|
|
97
|
+
* Each file represents one translation key for one locale.
|
|
98
|
+
* The filename convention is `<locale>.<key>.<ext>`:
|
|
99
|
+
* - `nl.signup-email.html` → locale: "nl", key: "signup-email"
|
|
100
|
+
* - `en.auth.welcome.md` → locale: "en", key: "auth.welcome"
|
|
101
|
+
*
|
|
102
|
+
* File content is read as UTF-8 and stored as-is (no transformation).
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```typescript
|
|
106
|
+
* const source = new ContentFileSource({
|
|
107
|
+
* paths: ["./content/emails"],
|
|
108
|
+
* });
|
|
109
|
+
* const catalog = await source.load();
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export class ContentFileSource {
|
|
113
|
+
/** @inheritdoc */
|
|
114
|
+
name = "ContentFileSource";
|
|
115
|
+
/** Source configuration */
|
|
116
|
+
config;
|
|
117
|
+
/** Resolved extensions (with leading dot, lowercased) */
|
|
118
|
+
extensions;
|
|
119
|
+
/**
|
|
120
|
+
* Create a new ContentFileSource.
|
|
121
|
+
*
|
|
122
|
+
* @param config - Directory paths, glob patterns, and optional extension filter
|
|
123
|
+
*/
|
|
124
|
+
constructor(config) {
|
|
125
|
+
this.config = config;
|
|
126
|
+
// Normalize extensions: ensure leading dot and lowercase
|
|
127
|
+
this.extensions = (config.extensions ?? DEFAULT_EXTENSIONS).map((ext) => ext.startsWith(".") ? ext.toLowerCase() : `.${ext.toLowerCase()}`);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Load all translations from configured content file paths.
|
|
131
|
+
*
|
|
132
|
+
* 1. Resolves all paths (directories and globs) to individual file paths
|
|
133
|
+
* 2. Parses each filename for locale and key using `<locale>.<key>.<ext>` convention
|
|
134
|
+
* 3. Filters by supported extensions
|
|
135
|
+
* 4. Reads file content as UTF-8
|
|
136
|
+
* 5. Builds translation catalog with content as-is
|
|
137
|
+
*
|
|
138
|
+
* Files that don't match the naming convention or have unsupported
|
|
139
|
+
* extensions are silently skipped.
|
|
140
|
+
*
|
|
141
|
+
* @returns The complete translation catalog from all matched content files
|
|
142
|
+
* @throws Error if a matched file cannot be read (e.g., permission denied)
|
|
143
|
+
*/
|
|
144
|
+
async load() {
|
|
145
|
+
const catalog = {};
|
|
146
|
+
// Resolve all paths to individual file paths
|
|
147
|
+
const filePaths = await this.resolveAllPaths();
|
|
148
|
+
for (const filePath of filePaths) {
|
|
149
|
+
const filename = basename(filePath);
|
|
150
|
+
// Parse locale and key from filename
|
|
151
|
+
const parsed = parseContentFilename(filename);
|
|
152
|
+
if (!parsed) {
|
|
153
|
+
// Invalid filename format — skip silently
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
// Check extension is in the supported list
|
|
157
|
+
const ext = extname(filename).toLowerCase();
|
|
158
|
+
if (!this.extensions.includes(ext)) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
// Read file content as-is (no transformation)
|
|
162
|
+
const content = await readFile(filePath, "utf-8");
|
|
163
|
+
// Add to catalog: key → { locale: content }
|
|
164
|
+
if (!catalog[parsed.key]) {
|
|
165
|
+
catalog[parsed.key] = {};
|
|
166
|
+
}
|
|
167
|
+
catalog[parsed.key][parsed.locale] = content;
|
|
168
|
+
}
|
|
169
|
+
return catalog;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Resolve all configured paths to individual file paths.
|
|
173
|
+
*
|
|
174
|
+
* - Plain directory paths (no glob chars): list all files in the directory
|
|
175
|
+
* - Glob patterns (contains * or ?): expand using simple wildcard matching
|
|
176
|
+
*
|
|
177
|
+
* Results are sorted for deterministic ordering so the same input
|
|
178
|
+
* always produces the same catalog.
|
|
179
|
+
*
|
|
180
|
+
* @returns Array of resolved absolute file paths, sorted alphabetically
|
|
181
|
+
*/
|
|
182
|
+
async resolveAllPaths() {
|
|
183
|
+
const allPaths = [];
|
|
184
|
+
for (const configPath of this.config.paths) {
|
|
185
|
+
if (configPath.includes("*") || configPath.includes("?")) {
|
|
186
|
+
// Glob pattern — expand it
|
|
187
|
+
const matches = await expandSimpleGlob(configPath);
|
|
188
|
+
allPaths.push(...matches);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Plain directory path — list files
|
|
192
|
+
const files = await listDirectoryFiles(configPath);
|
|
193
|
+
allPaths.push(...files);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Sort for deterministic ordering
|
|
197
|
+
return allPaths.sort();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Create a ContentFileSource instance. Convenience factory for plugin configuration.
|
|
202
|
+
*
|
|
203
|
+
* @param config - Content file source configuration
|
|
204
|
+
* @returns A new ContentFileSource instance
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```typescript
|
|
208
|
+
* app.use(createI18nPlugin({
|
|
209
|
+
* sources: [
|
|
210
|
+
* contentFileSource({ paths: ["./content/emails"] }),
|
|
211
|
+
* ],
|
|
212
|
+
* }));
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
export function contentFileSource(config) {
|
|
216
|
+
return new ContentFileSource(config);
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=content-file-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-file-source.js","sourceRoot":"","sources":["../src/content-file-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe core entry point for @blendsdk/i18n.
|
|
3
|
+
*
|
|
4
|
+
* This module exports only the runtime-agnostic parts of the i18n library:
|
|
5
|
+
* Translator, mergeCatalogs, types, and the TranslationSource interface.
|
|
6
|
+
* It contains NO Node.js-specific imports (no `node:fs`, `node:path`),
|
|
7
|
+
* making it safe for browser bundlers (Webpack, Vite, esbuild, etc.).
|
|
8
|
+
*
|
|
9
|
+
* **Import paths:**
|
|
10
|
+
* - `@blendsdk/i18n` — This module (browser-safe core)
|
|
11
|
+
* - `@blendsdk/i18n/node` — Full package including JsonFileSource & ContentFileSource (Node.js only)
|
|
12
|
+
*
|
|
13
|
+
* @module @blendsdk/i18n
|
|
14
|
+
*/
|
|
15
|
+
export type { TranslationValue, TranslationEntry, TranslationCatalog, TranslatorConfig, LocaleParts, } from "./types.js";
|
|
16
|
+
export { Translator } from "./translator.js";
|
|
17
|
+
export type { TranslationSource } from "./translation-source.js";
|
|
18
|
+
export { mergeCatalogs } from "./merge-catalogs.js";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe core entry point for @blendsdk/i18n.
|
|
3
|
+
*
|
|
4
|
+
* This module exports only the runtime-agnostic parts of the i18n library:
|
|
5
|
+
* Translator, mergeCatalogs, types, and the TranslationSource interface.
|
|
6
|
+
* It contains NO Node.js-specific imports (no `node:fs`, `node:path`),
|
|
7
|
+
* making it safe for browser bundlers (Webpack, Vite, esbuild, etc.).
|
|
8
|
+
*
|
|
9
|
+
* **Import paths:**
|
|
10
|
+
* - `@blendsdk/i18n` — This module (browser-safe core)
|
|
11
|
+
* - `@blendsdk/i18n/node` — Full package including JsonFileSource & ContentFileSource (Node.js only)
|
|
12
|
+
*
|
|
13
|
+
* @module @blendsdk/i18n
|
|
14
|
+
*/
|
|
15
|
+
// Core
|
|
16
|
+
export { Translator } from "./translator.js";
|
|
17
|
+
// Catalog utilities
|
|
18
|
+
export { mergeCatalogs } from "./merge-catalogs.js";
|
|
19
|
+
// NOTE: JsonFileSource, ContentFileSource, and their factories are Node.js-only
|
|
20
|
+
// and are exported from "./node.js" — see ./node.ts
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO;AACP,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,gFAAgF;AAChF,8DAA8D"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { TranslationCatalog } from "./types.js";
|
|
2
|
+
import type { TranslationSource } from "./translation-source.js";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for the JSON file translation source.
|
|
5
|
+
*/
|
|
6
|
+
export interface JsonFileSourceConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Array of file paths or glob patterns to load.
|
|
9
|
+
*
|
|
10
|
+
* Supports two JSON file formats:
|
|
11
|
+
*
|
|
12
|
+
* **Format 1: Multi-locale file** — Each key maps to a locale→value object:
|
|
13
|
+
* ```json
|
|
14
|
+
* {
|
|
15
|
+
* "greeting": { "en": "Hello", "nl": "Hallo" },
|
|
16
|
+
* "book": { "en": ["1 book", "N books"] }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* **Format 2: Single-locale file** — Flat key→value, locale derived from filename:
|
|
21
|
+
* File: `translations/en.json`
|
|
22
|
+
* ```json
|
|
23
|
+
* {
|
|
24
|
+
* "greeting": "Hello",
|
|
25
|
+
* "farewell": "Goodbye"
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
* The locale is extracted from the filename: `en.json` → locale "en".
|
|
29
|
+
*
|
|
30
|
+
* Both formats are auto-detected per file and normalized into TranslationCatalog.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* paths: ["./translations/*.json"]
|
|
34
|
+
* paths: ["./translations/en.json", "./translations/nl.json"]
|
|
35
|
+
*/
|
|
36
|
+
paths: string[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Translation source that loads from JSON files.
|
|
40
|
+
*
|
|
41
|
+
* Supports two file formats:
|
|
42
|
+
* 1. Multi-locale: `{ key: { locale: value } }` — all locales in one file
|
|
43
|
+
* 2. Single-locale: `{ key: value }` — one file per locale, locale from filename
|
|
44
|
+
*
|
|
45
|
+
* Format is auto-detected per file based on the structure of the first value.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const source = new JsonFileSource({
|
|
50
|
+
* paths: ["./translations/*.json"],
|
|
51
|
+
* });
|
|
52
|
+
* const catalog = await source.load();
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare class JsonFileSource implements TranslationSource {
|
|
56
|
+
/** @inheritdoc */
|
|
57
|
+
readonly name = "JsonFileSource";
|
|
58
|
+
/** Source configuration */
|
|
59
|
+
protected config: JsonFileSourceConfig;
|
|
60
|
+
/**
|
|
61
|
+
* Create a new JsonFileSource.
|
|
62
|
+
*
|
|
63
|
+
* @param config - File paths or glob patterns configuration
|
|
64
|
+
*/
|
|
65
|
+
constructor(config: JsonFileSourceConfig);
|
|
66
|
+
/**
|
|
67
|
+
* Load all translations from configured JSON file paths.
|
|
68
|
+
*
|
|
69
|
+
* 1. Resolves all glob patterns to file paths
|
|
70
|
+
* 2. Reads and parses each JSON file
|
|
71
|
+
* 3. Auto-detects format (multi-locale vs single-locale)
|
|
72
|
+
* 4. Normalizes into TranslationCatalog entries
|
|
73
|
+
* 5. Merges all entries (later files override earlier for same key+locale)
|
|
74
|
+
*
|
|
75
|
+
* @returns The complete translation catalog from all matched files
|
|
76
|
+
* @throws Error if a file cannot be read or parsed
|
|
77
|
+
*/
|
|
78
|
+
load(): Promise<TranslationCatalog>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create a JsonFileSource instance. Convenience factory for plugin configuration.
|
|
82
|
+
*
|
|
83
|
+
* @param config - JSON file source configuration
|
|
84
|
+
* @returns A new JsonFileSource instance
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* app.use(createI18nPlugin({
|
|
89
|
+
* sources: [
|
|
90
|
+
* jsonFileSource({ paths: ["./translations/*.json"] }),
|
|
91
|
+
* ],
|
|
92
|
+
* }));
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function jsonFileSource(config: JsonFileSourceConfig): JsonFileSource;
|
|
96
|
+
//# sourceMappingURL=json-file-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-file-source.d.ts","sourceRoot":"","sources":["../src/json-file-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAsC,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IACpD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,oBAAoB;IAEjC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEvC;;;;OAIG;gBACS,MAAM,EAAE,oBAAoB;IAIxC;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAgC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAE3E"}
|