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,259 @@
|
|
|
1
|
+
import { formatString } from "../stdlib/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Core translation engine.
|
|
4
|
+
*
|
|
5
|
+
* Provides translation lookup with locale fallback, plural support,
|
|
6
|
+
* and string interpolation via `formatString`. The catalog is treated
|
|
7
|
+
* as immutable after construction — use `setCatalog()` for atomic
|
|
8
|
+
* replacement (e.g., on reload).
|
|
9
|
+
*
|
|
10
|
+
* Runtime-agnostic: no Node.js or browser-specific APIs.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const translator = new Translator({
|
|
15
|
+
* defaultLocale: "en",
|
|
16
|
+
* catalog: {
|
|
17
|
+
* greeting: { en: "Hello ${name}", nl: "Hallo ${name}" },
|
|
18
|
+
* book: { en: ["${count} book", "${count} books"] },
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* translator.translate("greeting", "en", { name: "Alice" });
|
|
23
|
+
* // → "Hello Alice"
|
|
24
|
+
*
|
|
25
|
+
* translator.translate("book", "en", { count: 5 });
|
|
26
|
+
* // → "5 books"
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export class Translator {
|
|
30
|
+
/** The default locale used when none is specified */
|
|
31
|
+
defaultLocale;
|
|
32
|
+
/** The translation catalog (atomic reference for reload safety) */
|
|
33
|
+
catalog;
|
|
34
|
+
/** Cache for parsed locale parts to avoid repeated parsing */
|
|
35
|
+
localeCache;
|
|
36
|
+
/** Optional callback for missing translations */
|
|
37
|
+
onMissingTranslation;
|
|
38
|
+
/**
|
|
39
|
+
* Create a new Translator instance.
|
|
40
|
+
*
|
|
41
|
+
* @param config - Optional configuration (defaults to "en" locale, empty catalog)
|
|
42
|
+
*/
|
|
43
|
+
constructor(config) {
|
|
44
|
+
this.defaultLocale = config?.defaultLocale ?? "en";
|
|
45
|
+
this.catalog = config?.catalog ?? {};
|
|
46
|
+
this.localeCache = new Map();
|
|
47
|
+
this.onMissingTranslation = config?.onMissingTranslation;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Translate a key for a given locale with optional parameter interpolation.
|
|
51
|
+
*
|
|
52
|
+
* Locale fallback chain: exact locale → language only → key as-is.
|
|
53
|
+
* Plural selection: if the translation value is a [singular, plural] tuple
|
|
54
|
+
* and params contains a `count` property, the appropriate form is selected.
|
|
55
|
+
*
|
|
56
|
+
* @param key - Translation key (e.g., "greeting", "auth.login")
|
|
57
|
+
* @param locale - Target locale (e.g., "en_GB", "nl"). Uses defaultLocale if omitted.
|
|
58
|
+
* @param params - Optional interpolation parameters
|
|
59
|
+
* @returns The translated, interpolated string
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* translator.translate("greeting", "en", { name: "Alice" })
|
|
63
|
+
* // → "Hello Alice"
|
|
64
|
+
*
|
|
65
|
+
* translator.translate("book", "en", { count: 1 })
|
|
66
|
+
* // → "1 book"
|
|
67
|
+
*
|
|
68
|
+
* translator.translate("book", "en", { count: 5 })
|
|
69
|
+
* // → "5 books"
|
|
70
|
+
*
|
|
71
|
+
* translator.translate("unknown.key", "en")
|
|
72
|
+
* // → "unknown.key" (key returned as-is)
|
|
73
|
+
*/
|
|
74
|
+
translate(key, locale, params) {
|
|
75
|
+
const resolvedLocale = locale ?? this.defaultLocale;
|
|
76
|
+
const localeParts = this.parseLocale(resolvedLocale);
|
|
77
|
+
// Look up the entry for this key
|
|
78
|
+
const entry = this.catalog[key];
|
|
79
|
+
if (!entry) {
|
|
80
|
+
// Key not found — invoke callback and return key as-is
|
|
81
|
+
this.onMissingTranslation?.(key, resolvedLocale);
|
|
82
|
+
return key;
|
|
83
|
+
}
|
|
84
|
+
// Resolve the best value using the locale fallback chain
|
|
85
|
+
const value = this.resolveValue(entry, localeParts);
|
|
86
|
+
if (value === undefined) {
|
|
87
|
+
// No value for this locale — invoke callback and return key
|
|
88
|
+
this.onMissingTranslation?.(key, resolvedLocale);
|
|
89
|
+
return key;
|
|
90
|
+
}
|
|
91
|
+
// Select singular/plural form if applicable
|
|
92
|
+
const selectedString = this.selectPlural(value, params);
|
|
93
|
+
// Interpolate parameters using formatString from stdlib
|
|
94
|
+
return formatString(selectedString, params);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get all translations for a specific locale as a flat key-value map.
|
|
98
|
+
*
|
|
99
|
+
* Resolves each key using the locale fallback chain (exact → language).
|
|
100
|
+
* Plural values are returned as-is (the array form) since the client
|
|
101
|
+
* needs both forms for dynamic count-based selection.
|
|
102
|
+
*
|
|
103
|
+
* Primarily used to serve translations to frontend clients.
|
|
104
|
+
*
|
|
105
|
+
* @param locale - Target locale (e.g., "en", "nl_NL")
|
|
106
|
+
* @returns Flat map of { key: resolvedValue } for the locale
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* translator.getTranslationsForLocale("nl")
|
|
110
|
+
* // → { greeting: "Hallo ${name}", book: ["${count} boek", "${count} boeken"] }
|
|
111
|
+
*/
|
|
112
|
+
getTranslationsForLocale(locale) {
|
|
113
|
+
const localeParts = this.parseLocale(locale);
|
|
114
|
+
const result = {};
|
|
115
|
+
for (const [key, entry] of Object.entries(this.catalog)) {
|
|
116
|
+
const value = this.resolveValue(entry, localeParts);
|
|
117
|
+
if (value !== undefined) {
|
|
118
|
+
result[key] = value;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Check if a translation key exists, optionally for a specific locale.
|
|
125
|
+
*
|
|
126
|
+
* @param key - Translation key
|
|
127
|
+
* @param locale - Optional: check for this specific locale (with fallback)
|
|
128
|
+
* @returns true if the key exists (and has a value for the locale if specified)
|
|
129
|
+
*/
|
|
130
|
+
hasKey(key, locale) {
|
|
131
|
+
const entry = this.catalog[key];
|
|
132
|
+
if (!entry)
|
|
133
|
+
return false;
|
|
134
|
+
if (!locale)
|
|
135
|
+
return true;
|
|
136
|
+
// Check if the key has a value for the requested locale (with fallback)
|
|
137
|
+
const localeParts = this.parseLocale(locale);
|
|
138
|
+
return this.resolveValue(entry, localeParts) !== undefined;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Atomically replace the translation catalog.
|
|
142
|
+
*
|
|
143
|
+
* Used by the reload mechanism to swap in a new catalog without
|
|
144
|
+
* affecting ongoing translations. The old catalog serves current
|
|
145
|
+
* requests; the new catalog serves subsequent ones.
|
|
146
|
+
*
|
|
147
|
+
* @param catalog - The new translation catalog
|
|
148
|
+
*/
|
|
149
|
+
setCatalog(catalog) {
|
|
150
|
+
this.catalog = catalog;
|
|
151
|
+
// Clear locale cache since new catalog may have different locale coverage
|
|
152
|
+
this.localeCache.clear();
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get the current translation catalog.
|
|
156
|
+
* Primarily useful for testing and debugging.
|
|
157
|
+
*
|
|
158
|
+
* @returns The current TranslationCatalog
|
|
159
|
+
*/
|
|
160
|
+
getCatalog() {
|
|
161
|
+
return this.catalog;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Get the configured default locale.
|
|
165
|
+
* @returns The default locale string
|
|
166
|
+
*/
|
|
167
|
+
getDefaultLocale() {
|
|
168
|
+
return this.defaultLocale;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Parse and cache a locale string into its component parts.
|
|
172
|
+
*
|
|
173
|
+
* Handles formats like:
|
|
174
|
+
* - "en" → { full: "en", language: "en" }
|
|
175
|
+
* - "en_GB" → { full: "en_GB", language: "en", region: "GB" }
|
|
176
|
+
* - "en-GB" → { full: "en_GB", language: "en", region: "GB" } (normalizes dash to underscore)
|
|
177
|
+
* - "en_GB.UTF-8" → { full: "en_GB", language: "en", region: "GB" } (strips encoding)
|
|
178
|
+
*
|
|
179
|
+
* Results are cached in a Map for O(1) subsequent lookups.
|
|
180
|
+
*
|
|
181
|
+
* @param locale - The locale string to parse
|
|
182
|
+
* @returns Parsed LocaleParts
|
|
183
|
+
*/
|
|
184
|
+
parseLocale(locale) {
|
|
185
|
+
// Check cache first
|
|
186
|
+
const cached = this.localeCache.get(locale);
|
|
187
|
+
if (cached)
|
|
188
|
+
return cached;
|
|
189
|
+
// Strip encoding (e.g., ".UTF-8")
|
|
190
|
+
const withoutEncoding = locale.split(".")[0];
|
|
191
|
+
// Normalize dash to underscore (e.g., "en-GB" → "en_GB")
|
|
192
|
+
const normalized = withoutEncoding.replace("-", "_");
|
|
193
|
+
// Split on underscore to get language and optional region
|
|
194
|
+
const parts = normalized.split("_");
|
|
195
|
+
const language = parts[0];
|
|
196
|
+
const region = parts.length > 1 ? parts[1] : undefined;
|
|
197
|
+
const result = {
|
|
198
|
+
full: normalized,
|
|
199
|
+
language,
|
|
200
|
+
region,
|
|
201
|
+
};
|
|
202
|
+
// Cache for future lookups
|
|
203
|
+
this.localeCache.set(locale, result);
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Resolve the best translation value from an entry for a given locale.
|
|
208
|
+
*
|
|
209
|
+
* Fallback chain:
|
|
210
|
+
* 1. Exact match: entry[locale_full] (e.g., entry["en_GB"])
|
|
211
|
+
* 2. Language match: entry[language] (e.g., entry["en"])
|
|
212
|
+
* 3. undefined (not found)
|
|
213
|
+
*
|
|
214
|
+
* @param entry - The translation entry for a key
|
|
215
|
+
* @param localeParts - Parsed locale parts
|
|
216
|
+
* @returns The resolved value, or undefined if no match
|
|
217
|
+
*/
|
|
218
|
+
resolveValue(entry, localeParts) {
|
|
219
|
+
// Try exact locale match first (e.g., "en_GB")
|
|
220
|
+
if (entry[localeParts.full] !== undefined) {
|
|
221
|
+
return entry[localeParts.full];
|
|
222
|
+
}
|
|
223
|
+
// Fall back to language-only match (e.g., "en")
|
|
224
|
+
// Only try if full locale differs from language (has a region)
|
|
225
|
+
if (localeParts.region && entry[localeParts.language] !== undefined) {
|
|
226
|
+
return entry[localeParts.language];
|
|
227
|
+
}
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Select singular or plural form based on the `count` parameter.
|
|
232
|
+
*
|
|
233
|
+
* If the value is a [singular, plural] tuple and params.count exists
|
|
234
|
+
* and is a number:
|
|
235
|
+
* - count === 1 → singular (index 0)
|
|
236
|
+
* - count !== 1 → plural (index 1)
|
|
237
|
+
*
|
|
238
|
+
* If the value is a simple string, returns it unchanged.
|
|
239
|
+
* If count is not a valid number, defaults to singular.
|
|
240
|
+
*
|
|
241
|
+
* @param value - The translation value (string or [singular, plural])
|
|
242
|
+
* @param params - Parameters that may contain a `count` property
|
|
243
|
+
* @returns The selected string form
|
|
244
|
+
*/
|
|
245
|
+
selectPlural(value, params) {
|
|
246
|
+
// Simple string — return as-is
|
|
247
|
+
if (typeof value === "string") {
|
|
248
|
+
return value;
|
|
249
|
+
}
|
|
250
|
+
// Plural tuple — select based on count
|
|
251
|
+
const count = params?.count;
|
|
252
|
+
if (typeof count === "number" && !Number.isNaN(count)) {
|
|
253
|
+
return count === 1 ? value[0] : value[1];
|
|
254
|
+
}
|
|
255
|
+
// No valid count — default to singular form
|
|
256
|
+
return value[0];
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translator.js","sourceRoot":"","sources":["../src/translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single translation value.
|
|
3
|
+
*
|
|
4
|
+
* Can be either:
|
|
5
|
+
* - A simple string: "Hello ${name}"
|
|
6
|
+
* - A plural pair: ["${count} book", "${count} books"]
|
|
7
|
+
* where index 0 = singular, index 1 = plural
|
|
8
|
+
*/
|
|
9
|
+
export type TranslationValue = string | [singular: string, plural: string];
|
|
10
|
+
/**
|
|
11
|
+
* A translation entry: one key mapped to all its locale translations.
|
|
12
|
+
*
|
|
13
|
+
* Keys are locale identifiers (e.g., "en", "en_GB", "nl", "nl_NL").
|
|
14
|
+
* Values are either simple strings or [singular, plural] tuples.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* {
|
|
18
|
+
* en: "Hello ${name}",
|
|
19
|
+
* nl: "Hallo ${name}",
|
|
20
|
+
* de: "Hallo ${name}",
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* @example Plural
|
|
24
|
+
* {
|
|
25
|
+
* en: ["${count} book", "${count} books"],
|
|
26
|
+
* nl: ["${count} boek", "${count} boeken"],
|
|
27
|
+
* }
|
|
28
|
+
*/
|
|
29
|
+
export type TranslationEntry = Record<string, TranslationValue>;
|
|
30
|
+
/**
|
|
31
|
+
* The complete translation catalog.
|
|
32
|
+
*
|
|
33
|
+
* A flat map of translation keys to their locale entries.
|
|
34
|
+
* Keys use dot-notation by convention for namespacing (e.g., "auth.login_button").
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* {
|
|
38
|
+
* "greeting": { en: "Hello", nl: "Hallo" },
|
|
39
|
+
* "auth.login": { en: "Log in", nl: "Inloggen" },
|
|
40
|
+
* "item_count": { en: ["${count} item", "${count} items"] },
|
|
41
|
+
* }
|
|
42
|
+
*/
|
|
43
|
+
export type TranslationCatalog = Record<string, TranslationEntry>;
|
|
44
|
+
/**
|
|
45
|
+
* Configuration for creating a Translator instance.
|
|
46
|
+
*/
|
|
47
|
+
export interface TranslatorConfig {
|
|
48
|
+
/**
|
|
49
|
+
* The default locale to use when no locale is specified.
|
|
50
|
+
* @default "en"
|
|
51
|
+
*/
|
|
52
|
+
defaultLocale?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Initial translation catalog. Can be empty if translations
|
|
55
|
+
* will be loaded later via sources.
|
|
56
|
+
*/
|
|
57
|
+
catalog?: TranslationCatalog;
|
|
58
|
+
/**
|
|
59
|
+
* Optional callback invoked when a translation key is not found.
|
|
60
|
+
* Useful for logging missing translations during development.
|
|
61
|
+
*/
|
|
62
|
+
onMissingTranslation?: (key: string, locale: string) => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Parsed locale parts.
|
|
66
|
+
* Splits a locale identifier into its component parts.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* "en_GB.UTF-8" → { full: "en_GB", language: "en", region: "GB" }
|
|
70
|
+
* "nl" → { full: "nl", language: "nl", region: undefined }
|
|
71
|
+
*/
|
|
72
|
+
export interface LocaleParts {
|
|
73
|
+
/** The cleaned locale (encoding stripped): "en_GB" */
|
|
74
|
+
full: string;
|
|
75
|
+
/** The language part: "en" */
|
|
76
|
+
language: string;
|
|
77
|
+
/** The region part (if present): "GB" */
|
|
78
|
+
region?: string;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAChE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IACxB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { Database, DatabaseConfig, DeleteStatement, ExecuteQueryOptions, InsertStatement, QueryResult, UpdateStatement } from '../dbcore/index.js';
|
|
2
|
+
import { FieldDef, Pool, PoolClient } from 'pg';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for the PostgreSQL connection pool.
|
|
5
|
+
* All properties are optional and have sensible defaults.
|
|
6
|
+
*
|
|
7
|
+
* @export
|
|
8
|
+
* @interface PoolConfig
|
|
9
|
+
*/
|
|
10
|
+
export interface PoolConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Maximum number of clients in the pool (default: 10)
|
|
13
|
+
* @type {number}
|
|
14
|
+
*/
|
|
15
|
+
max?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Number of milliseconds a client must sit idle before being closed (default: 30000)
|
|
18
|
+
* @type {number}
|
|
19
|
+
*/
|
|
20
|
+
idleTimeoutMillis?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Number of milliseconds to wait before timing out when connecting a new client (default: 0 - no timeout)
|
|
23
|
+
* @type {number}
|
|
24
|
+
*/
|
|
25
|
+
connectionTimeoutMillis?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Defines the configuration options for PostgreSQL database connections.
|
|
29
|
+
* Extends the base DatabaseConfig with PostgreSQL-specific settings.
|
|
30
|
+
*
|
|
31
|
+
* @export
|
|
32
|
+
* @interface PostgreSQLConfig
|
|
33
|
+
* @extends {DatabaseConfig}
|
|
34
|
+
*/
|
|
35
|
+
export interface PostgreSQLConfig extends DatabaseConfig {
|
|
36
|
+
/**
|
|
37
|
+
* Optional pool configuration for connection management
|
|
38
|
+
* @type {PoolConfig}
|
|
39
|
+
*/
|
|
40
|
+
poolConfig?: PoolConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Enable automatic graceful shutdown handlers for SIGINT/SIGTERM (default: false).
|
|
43
|
+
*
|
|
44
|
+
* **⚠️ WARNING:** Do NOT enable this when the database is managed by a WebApplication
|
|
45
|
+
* (from `@blendsdk/webafx`), which has its own shutdown handling via SIGTERM/SIGINT.
|
|
46
|
+
* Enabling both will cause signal handler conflicts and unpredictable shutdown behavior.
|
|
47
|
+
* Only enable this for standalone database usage outside of the web framework.
|
|
48
|
+
*
|
|
49
|
+
* @type {boolean}
|
|
50
|
+
*/
|
|
51
|
+
enableGracefulShutdown?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Represents the result of a PostgreSQL query execution.
|
|
55
|
+
* Extends the base QueryResult with PostgreSQL-specific field definitions.
|
|
56
|
+
*
|
|
57
|
+
* @export
|
|
58
|
+
* @interface PostgreSQLQueryResult
|
|
59
|
+
* @template T - The type of records returned by the query
|
|
60
|
+
* @extends {QueryResult<T>}
|
|
61
|
+
*/
|
|
62
|
+
export interface PostgreSQLQueryResult<T> extends QueryResult<T> {
|
|
63
|
+
/**
|
|
64
|
+
* Array of field definitions describing the structure of returned columns
|
|
65
|
+
* @type {FieldDef[]}
|
|
66
|
+
*/
|
|
67
|
+
fields: FieldDef[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Provides PostgreSQL database connectivity and query execution capabilities.
|
|
71
|
+
* Manages connection pooling, transactions, and statement creation for PostgreSQL databases.
|
|
72
|
+
* Extends the base Database class with PostgreSQL-specific implementations.
|
|
73
|
+
*
|
|
74
|
+
* @export
|
|
75
|
+
* @class PostgreSQLDatabase
|
|
76
|
+
* @extends {Database}
|
|
77
|
+
*/
|
|
78
|
+
export declare class PostgreSQLDatabase extends Database {
|
|
79
|
+
/**
|
|
80
|
+
* The PostgreSQL connection pool for managing database connections
|
|
81
|
+
* @protected
|
|
82
|
+
* @type {Pool}
|
|
83
|
+
* @memberof PostgreSQLDatabase
|
|
84
|
+
*/
|
|
85
|
+
protected pool: Pool;
|
|
86
|
+
/**
|
|
87
|
+
* The current transaction client, null when no transaction is active
|
|
88
|
+
* @protected
|
|
89
|
+
* @type {(PoolClient | null)}
|
|
90
|
+
* @memberof PostgreSQLDatabase
|
|
91
|
+
*/
|
|
92
|
+
protected transactionClient: PoolClient | null;
|
|
93
|
+
/**
|
|
94
|
+
* Flag to prevent new connections during shutdown
|
|
95
|
+
* @protected
|
|
96
|
+
* @type {boolean}
|
|
97
|
+
* @memberof PostgreSQLDatabase
|
|
98
|
+
*/
|
|
99
|
+
protected isShuttingDown: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Creates an instance of PostgreSQLDatabase.
|
|
102
|
+
* Initializes the connection pool with the provided configuration settings.
|
|
103
|
+
*
|
|
104
|
+
* @param {PostgreSQLConfig} config - The database configuration including host, port, credentials, and database name
|
|
105
|
+
* @memberof PostgreSQLDatabase
|
|
106
|
+
*/
|
|
107
|
+
constructor(config: PostgreSQLConfig);
|
|
108
|
+
/**
|
|
109
|
+
* Executes a function within a database transaction context.
|
|
110
|
+
* Automatically handles BEGIN, COMMIT, and ROLLBACK operations.
|
|
111
|
+
* Ensures proper cleanup of transaction resources in all scenarios.
|
|
112
|
+
*
|
|
113
|
+
* @template T - The return type of the transaction function
|
|
114
|
+
* @param {(db: this) => Promise<T>} fn - The function to execute within the transaction context
|
|
115
|
+
* @return {Promise<T>} Promise resolving to the result of the transaction function
|
|
116
|
+
* @throws {Error} When the transaction function fails, triggers automatic ROLLBACK
|
|
117
|
+
* @memberof PostgreSQLDatabase
|
|
118
|
+
*/
|
|
119
|
+
withTransaction<T>(fn: (db: this) => Promise<T>): Promise<T>;
|
|
120
|
+
/**
|
|
121
|
+
* Acquires a client connection from the connection pool.
|
|
122
|
+
* Used internally for transaction management and query execution.
|
|
123
|
+
*
|
|
124
|
+
* @return {Promise<PoolClient>} Promise resolving to a PostgreSQL client connection
|
|
125
|
+
* @memberof PostgreSQLDatabase
|
|
126
|
+
*/
|
|
127
|
+
connect(): Promise<PoolClient>;
|
|
128
|
+
/**
|
|
129
|
+
* Closes all connections in the pool and terminates the database connection.
|
|
130
|
+
* Implements timeout protection to prevent hanging on unreleased connections.
|
|
131
|
+
* Should be called when the application is shutting down to ensure clean resource cleanup.
|
|
132
|
+
*
|
|
133
|
+
* @param {number} [timeoutMs=10000] - Maximum time to wait for graceful shutdown in milliseconds
|
|
134
|
+
* @return {Promise<void>} Promise that resolves when all connections are closed
|
|
135
|
+
* @throws {Error} When disconnect times out, after forcing connection closure
|
|
136
|
+
* @memberof PostgreSQLDatabase
|
|
137
|
+
*/
|
|
138
|
+
disconnect(timeoutMs?: number): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Forcefully closes all connections in the pool without waiting for graceful shutdown.
|
|
141
|
+
* This is a last resort method used when normal disconnect times out.
|
|
142
|
+
* Warning: This may interrupt active queries and transactions.
|
|
143
|
+
*
|
|
144
|
+
* @protected
|
|
145
|
+
* @return {Promise<void>} Promise that resolves when all connections are forcefully closed
|
|
146
|
+
* @memberof PostgreSQLDatabase
|
|
147
|
+
*/
|
|
148
|
+
protected forceDisconnect(): Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Registers signal handlers for graceful shutdown on SIGINT and SIGTERM.
|
|
151
|
+
* Automatically calls disconnect() when these signals are received.
|
|
152
|
+
* Only registered if enableGracefulShutdown is true in config.
|
|
153
|
+
*
|
|
154
|
+
* @protected
|
|
155
|
+
* @memberof PostgreSQLDatabase
|
|
156
|
+
*/
|
|
157
|
+
protected registerShutdownHandlers(): void;
|
|
158
|
+
/**
|
|
159
|
+
* Executes a parameterized SQL query against the PostgreSQL database.
|
|
160
|
+
* Handles named parameter substitution, transaction management, and query hooks.
|
|
161
|
+
* Automatically manages connection acquisition and release for non-transactional queries.
|
|
162
|
+
*
|
|
163
|
+
* @template R - The type of records returned by the query
|
|
164
|
+
* @param {string} query - The SQL query string with named parameters (e.g., :paramName)
|
|
165
|
+
* @param {Record<string, any>} [params] - Object containing named parameter values
|
|
166
|
+
* @param {ExecuteQueryOptions} [options] - Optional query execution options including beforeQuery and afterQuery hooks
|
|
167
|
+
* @return {Promise<PostgreSQLQueryResult<R>>} Promise resolving to query results including records, row count, and field definitions
|
|
168
|
+
* @throws {Error} When no database connection is available
|
|
169
|
+
* @memberof PostgreSQLDatabase
|
|
170
|
+
*/
|
|
171
|
+
executeQuery<R>(query: string, params?: Record<string, any>, options?: ExecuteQueryOptions): Promise<PostgreSQLQueryResult<R>>;
|
|
172
|
+
/**
|
|
173
|
+
* Creates a new INSERT statement builder for the specified table.
|
|
174
|
+
* Provides a fluent interface for constructing INSERT queries.
|
|
175
|
+
*
|
|
176
|
+
* @template T - The type representing the table structure
|
|
177
|
+
* @param {string} tableName - The name of the table to insert into
|
|
178
|
+
* @return {InsertStatement<T>} A new INSERT statement builder instance
|
|
179
|
+
* @memberof PostgreSQLDatabase
|
|
180
|
+
*/
|
|
181
|
+
insert<T>(tableName: string): InsertStatement<T>;
|
|
182
|
+
/**
|
|
183
|
+
* Creates a new UPDATE statement builder for the specified table.
|
|
184
|
+
* Provides a fluent interface for constructing UPDATE queries with filtering.
|
|
185
|
+
*
|
|
186
|
+
* @template T - The type representing the table structure
|
|
187
|
+
* @template F - The type representing the filter criteria
|
|
188
|
+
* @param {string} tableName - The name of the table to update
|
|
189
|
+
* @return {UpdateStatement<T, F>} A new UPDATE statement builder instance
|
|
190
|
+
* @memberof PostgreSQLDatabase
|
|
191
|
+
*/
|
|
192
|
+
update<T, F>(tableName: string): UpdateStatement<T, F>;
|
|
193
|
+
/**
|
|
194
|
+
* Creates a new DELETE statement builder for the specified table.
|
|
195
|
+
* Provides a fluent interface for constructing DELETE queries with filtering.
|
|
196
|
+
*
|
|
197
|
+
* @template F - The type representing the filter criteria
|
|
198
|
+
* @param {string} tableName - The name of the table to delete from
|
|
199
|
+
* @return {DeleteStatement<F>} A new DELETE statement builder instance
|
|
200
|
+
* @memberof PostgreSQLDatabase
|
|
201
|
+
*/
|
|
202
|
+
delete<F>(tableName: string): DeleteStatement<F>;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAMhD;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;;;;OASG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC9D;;;OAGG;IACH,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IAErB;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,EAAE,UAAU,GAAG,IAAI,CAAQ;IAEtD;;;;;OAKG;IACH,SAAS,CAAC,cAAc,EAAE,OAAO,CAAS;IAE1C;;;;;;OAMG;gBACS,MAAM,EAAE,gBAAgB;IAuBpC;;;;;;;;;;OAUG;IACG,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA4ClE;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAI9B;;;;;;;;;OASG;IACG,UAAU,CAAC,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1D;;;;;;;;OAQG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBhD;;;;;;;OAOG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAiB1C;;;;;;;;;;;;OAYG;IACG,YAAY,CAAC,CAAC,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IA6DpC;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;IAIhD;;;;;;;;;OASG;IACH,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;IAItD;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;CAIjD"}
|