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,178 @@
|
|
|
1
|
+
import { CrudStatement } from './crud-statement.js';
|
|
2
|
+
import { query } from '../expression/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract statement builder that adds filtering capabilities to CRUD statements.
|
|
5
|
+
* Provides shared filter logic used by both UPDATE and DELETE operations,
|
|
6
|
+
* including simple key-value filters and complex expression-based filters.
|
|
7
|
+
*
|
|
8
|
+
* This class eliminates code duplication between UpdateStatement and DeleteStatement
|
|
9
|
+
* by centralizing the `_expressionBuilder`, `filter()`, and `filterByExpression()` methods.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @abstract
|
|
13
|
+
* @class FilterableStatement
|
|
14
|
+
* @extends {CrudStatement<TableType>}
|
|
15
|
+
* @template TableType - The type representing the table structure this statement operates on
|
|
16
|
+
* @template FilterType - The type representing the filter criteria structure
|
|
17
|
+
*/
|
|
18
|
+
export class FilterableStatement extends CrudStatement {
|
|
19
|
+
/**
|
|
20
|
+
* Expression builder function for constructing complex WHERE clauses.
|
|
21
|
+
* This is the primary mechanism for filtering records in UPDATE/DELETE operations.
|
|
22
|
+
*
|
|
23
|
+
* @protected
|
|
24
|
+
* @type {((q: QueryBuilder<FilterType>) => QueryBuilder<FilterType>) | undefined}
|
|
25
|
+
* @memberof FilterableStatement
|
|
26
|
+
*/
|
|
27
|
+
_expressionBuilder;
|
|
28
|
+
/**
|
|
29
|
+
* Cached compiled expression result to avoid double compilation.
|
|
30
|
+
* The expression builder is invoked once and the result is reused
|
|
31
|
+
* by both buildQuery() and buildParameters() in concrete implementations.
|
|
32
|
+
*
|
|
33
|
+
* @protected
|
|
34
|
+
* @type {CompileResult | undefined}
|
|
35
|
+
* @memberof FilterableStatement
|
|
36
|
+
*/
|
|
37
|
+
_compiledExpression;
|
|
38
|
+
/**
|
|
39
|
+
* Creates an instance of FilterableStatement.
|
|
40
|
+
* Initializes the statement with a table name and database connection.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} tableName - The name of the table this statement operates on
|
|
43
|
+
* @param {Database} db - The database instance to execute queries against
|
|
44
|
+
* @memberof FilterableStatement
|
|
45
|
+
*/
|
|
46
|
+
constructor(tableName, db) {
|
|
47
|
+
super(tableName, db);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Compiles the expression builder and caches the result.
|
|
51
|
+
* If no expression builder is set, returns null.
|
|
52
|
+
* Subsequent calls return the cached result without recompilation.
|
|
53
|
+
*
|
|
54
|
+
* This method is used by concrete statement implementations (e.g., PostgreSQL)
|
|
55
|
+
* to generate WHERE clause SQL and parameters from the expression builder.
|
|
56
|
+
*
|
|
57
|
+
* @protected
|
|
58
|
+
* @returns {CompileResult | null} The compiled expression result, or null if no filter is set
|
|
59
|
+
* @memberof FilterableStatement
|
|
60
|
+
*/
|
|
61
|
+
getCompiledExpression() {
|
|
62
|
+
if (!this._expressionBuilder)
|
|
63
|
+
return null;
|
|
64
|
+
if (!this._compiledExpression) {
|
|
65
|
+
const expr = query();
|
|
66
|
+
const result = this._expressionBuilder(expr);
|
|
67
|
+
this._compiledExpression = result.compile();
|
|
68
|
+
}
|
|
69
|
+
return this._compiledExpression;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets the filter criteria for selecting which records to modify.
|
|
73
|
+
* Accepts a partial object where keys represent column names and values
|
|
74
|
+
* represent the criteria. Only records matching all specified criteria will be affected.
|
|
75
|
+
*
|
|
76
|
+
* This method internally converts the key-value pairs to an expression builder
|
|
77
|
+
* using equality comparisons. Multiple filters are combined with AND logic.
|
|
78
|
+
* Can be chained with filterByExpression() to add additional conditions.
|
|
79
|
+
*
|
|
80
|
+
* @param {Partial<FilterType>} values - Object containing filter column names and criteria values
|
|
81
|
+
* @return {this} The statement instance for method chaining
|
|
82
|
+
* @memberof FilterableStatement
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Filter by a single criterion
|
|
86
|
+
* statement.filter({ id: 123 })
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* // Filter by multiple criteria (combined with AND)
|
|
90
|
+
* statement.filter({ status: 'pending', active: true })
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // Chain with filterByExpression for complex conditions
|
|
94
|
+
* statement
|
|
95
|
+
* .filter({ active: true })
|
|
96
|
+
* .filterByExpression(q => q.where('age').greaterThan(18))
|
|
97
|
+
*/
|
|
98
|
+
filter(values) {
|
|
99
|
+
// Convert filter object to expression builder
|
|
100
|
+
const newBuilder = (q) => {
|
|
101
|
+
let builder = q;
|
|
102
|
+
const keys = Object.keys(values);
|
|
103
|
+
if (keys.length === 0)
|
|
104
|
+
return builder;
|
|
105
|
+
// First condition uses where()
|
|
106
|
+
const firstKey = keys[0];
|
|
107
|
+
builder = builder.where(firstKey).equals(values[firstKey]);
|
|
108
|
+
// Subsequent conditions use and()
|
|
109
|
+
for (let i = 1; i < keys.length; i++) {
|
|
110
|
+
const key = keys[i];
|
|
111
|
+
builder = builder.and(key).equals(values[key]);
|
|
112
|
+
}
|
|
113
|
+
return builder;
|
|
114
|
+
};
|
|
115
|
+
// Merge with existing expression builder using AND
|
|
116
|
+
if (this._expressionBuilder) {
|
|
117
|
+
const existingBuilder = this._expressionBuilder;
|
|
118
|
+
this._expressionBuilder = (q) => {
|
|
119
|
+
const existing = existingBuilder(q);
|
|
120
|
+
return newBuilder(existing);
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this._expressionBuilder = newBuilder;
|
|
125
|
+
}
|
|
126
|
+
return this;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Sets a complex filter expression for selecting which records to modify.
|
|
130
|
+
* Provides full access to the expression builder API for constructing
|
|
131
|
+
* sophisticated WHERE clauses with logical operators, comparisons, and more.
|
|
132
|
+
*
|
|
133
|
+
* Can be chained with filter() to combine simple and complex conditions.
|
|
134
|
+
* Multiple calls to filterByExpression() are merged with AND logic.
|
|
135
|
+
*
|
|
136
|
+
* @param {(q: QueryBuilder<FilterType>) => QueryBuilder<FilterType>} builder - Expression builder function
|
|
137
|
+
* @return {this} The statement instance for method chaining
|
|
138
|
+
* @memberof FilterableStatement
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* // Filter with complex conditions
|
|
142
|
+
* statement.filterByExpression(q =>
|
|
143
|
+
* q.where('age').greaterThan(65)
|
|
144
|
+
* .or('status').equals('inactive')
|
|
145
|
+
* )
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* // Chain with simple filter
|
|
149
|
+
* statement
|
|
150
|
+
* .filter({ active: true })
|
|
151
|
+
* .filterByExpression(q => q.where('last_login').lessThan(cutoffDate))
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* // Complex nested conditions
|
|
155
|
+
* statement.filterByExpression(q =>
|
|
156
|
+
* q.where('category').equals('archived')
|
|
157
|
+
* .and(sub =>
|
|
158
|
+
* sub.where('created_at').lessThan(oldDate)
|
|
159
|
+
* .or('updated_at').isNull()
|
|
160
|
+
* )
|
|
161
|
+
* )
|
|
162
|
+
*/
|
|
163
|
+
filterByExpression(builder) {
|
|
164
|
+
// Merge with existing expression builder using AND
|
|
165
|
+
if (this._expressionBuilder) {
|
|
166
|
+
const existingBuilder = this._expressionBuilder;
|
|
167
|
+
this._expressionBuilder = (q) => {
|
|
168
|
+
const existing = existingBuilder(q);
|
|
169
|
+
return builder(existing);
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
this._expressionBuilder = builder;
|
|
174
|
+
}
|
|
175
|
+
return this;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=filterable-statement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterable-statement.js","sourceRoot":"","sources":["../src/filterable-statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,mBAA2C,SAAQ,aAAwB;IAC/F;;;;;;;OAOG;IACO,kBAAkB,CAA6D;IAEzF;;;;;;;;OAQG;IACO,mBAAmB,CAAiB;IAE9C;;;;;;;OAOG;IACH,YAAY,SAAiB,EAAE,EAAY;QACzC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;OAWG;IACO,qBAAqB;QAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,EAAc,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,MAA2B;QAChC,8CAA8C;QAC9C,MAAM,UAAU,GAAG,CAAC,CAA2B,EAAE,EAAE;YACjD,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAyB,CAAC;YAEzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC;YAEtC,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC,CAAC;YAE5D,kCAAkC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAE,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,mDAAmD;QACnD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE;gBAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,kBAAkB,CAAC,OAAkE;QACnF,mDAAmD;QACnD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAChD,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE;gBAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { CompileResult } from '../expression/index.js';
|
|
2
|
+
import { Database } from './database.js';
|
|
3
|
+
import { Statement } from './statement.js';
|
|
4
|
+
/**
|
|
5
|
+
* Statement builder for SELECT queries with FROM clauses.
|
|
6
|
+
* Provides a fluent interface for constructing SELECT statements with column selection,
|
|
7
|
+
* WHERE clauses, and parameter binding. Supports both simple column lists and
|
|
8
|
+
* aliased column expressions.
|
|
9
|
+
*
|
|
10
|
+
* This class enables type-safe query construction for retrieving data from database tables,
|
|
11
|
+
* with support for filtering via expression compilation results.
|
|
12
|
+
*
|
|
13
|
+
* @export
|
|
14
|
+
* @class FromStatement
|
|
15
|
+
* @extends {Statement<TableType>}
|
|
16
|
+
* @template TableType - The type representing the table structure being queried
|
|
17
|
+
*/
|
|
18
|
+
export declare class FromStatement<TableType> extends Statement<TableType> {
|
|
19
|
+
protected tableName: string;
|
|
20
|
+
/**
|
|
21
|
+
* Array of column names or expressions to select.
|
|
22
|
+
* Can include simple column names, aliased expressions, or '*' for all columns.
|
|
23
|
+
*
|
|
24
|
+
* @protected
|
|
25
|
+
* @type {string[]}
|
|
26
|
+
* @memberof FromStatement
|
|
27
|
+
*/
|
|
28
|
+
protected _selectColumns: string[];
|
|
29
|
+
/**
|
|
30
|
+
* Object containing named parameters for the query.
|
|
31
|
+
* These parameters are used in the WHERE clause for safe parameterized queries.
|
|
32
|
+
*
|
|
33
|
+
* @protected
|
|
34
|
+
* @type {Record<string, any>}
|
|
35
|
+
* @memberof FromStatement
|
|
36
|
+
*/
|
|
37
|
+
protected _parameters: Record<string, any>;
|
|
38
|
+
/**
|
|
39
|
+
* The WHERE clause string for filtering results.
|
|
40
|
+
* Generated from expression compilation or left empty for unfiltered queries.
|
|
41
|
+
*
|
|
42
|
+
* @protected
|
|
43
|
+
* @type {string}
|
|
44
|
+
* @memberof FromStatement
|
|
45
|
+
*/
|
|
46
|
+
protected _whereClause: string;
|
|
47
|
+
/**
|
|
48
|
+
* Builds the parameters object for the query.
|
|
49
|
+
* Returns the stored parameters that will be used in the WHERE clause.
|
|
50
|
+
*
|
|
51
|
+
* @protected
|
|
52
|
+
* @return {Record<string, any>} The parameters object for query execution
|
|
53
|
+
* @memberof FromStatement
|
|
54
|
+
*/
|
|
55
|
+
protected buildParameters(): Record<string, any>;
|
|
56
|
+
/**
|
|
57
|
+
* Creates an instance of FromStatement.
|
|
58
|
+
* Initializes the statement with a table name and database connection,
|
|
59
|
+
* and sets up an empty array for select columns.
|
|
60
|
+
*
|
|
61
|
+
* @param {string} tableName - The name of the table to select from
|
|
62
|
+
* @param {Database} db - The database instance to execute queries against
|
|
63
|
+
* @memberof FromStatement
|
|
64
|
+
*/
|
|
65
|
+
constructor(tableName: string, db: Database);
|
|
66
|
+
/**
|
|
67
|
+
* Specifies which columns to select in the query.
|
|
68
|
+
* Accepts an array of column names, an object mapping aliases to expressions,
|
|
69
|
+
* or defaults to '*' for all columns if not specified.
|
|
70
|
+
*
|
|
71
|
+
* When an object is provided, keys become column aliases and values are the expressions.
|
|
72
|
+
* For example, { total: 'price * quantity' } becomes "price * quantity AS total".
|
|
73
|
+
*
|
|
74
|
+
* @param {string[] | Record<string, any>} [columns] - Columns to select, or undefined for all columns
|
|
75
|
+
* @return {this} The statement instance for method chaining
|
|
76
|
+
* @memberof FromStatement
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* // Select specific columns
|
|
80
|
+
* statement.select(['id', 'name', 'email'])
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* // Select all columns
|
|
84
|
+
* statement.select()
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* // Select with aliases
|
|
88
|
+
* statement.select({ fullName: 'first_name || \' \' || last_name', total: 'price * quantity' })
|
|
89
|
+
*/
|
|
90
|
+
select(columns?: string[] | Record<string, any>): this;
|
|
91
|
+
/**
|
|
92
|
+
* Applies a WHERE clause filter using a compiled expression result.
|
|
93
|
+
* The expression result contains both the WHERE clause string and the associated
|
|
94
|
+
* parameters, which are stored for use during query execution.
|
|
95
|
+
*
|
|
96
|
+
* This method is typically used with the expression builder from @blendsdk/expression
|
|
97
|
+
* to create type-safe, parameterized WHERE clauses.
|
|
98
|
+
*
|
|
99
|
+
* @param {CompileResult} filter - The compiled expression containing WHERE clause and parameters
|
|
100
|
+
* @return {this} The statement instance for method chaining
|
|
101
|
+
* @memberof FromStatement
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* // Using with expression builder
|
|
105
|
+
* const filter = expr.compile(t => t.age.gt(18).and(t.status.eq('active')));
|
|
106
|
+
* statement.byExpression(filter);
|
|
107
|
+
*/
|
|
108
|
+
byExpression(filter: CompileResult): this;
|
|
109
|
+
/**
|
|
110
|
+
* Builds the complete SELECT query string.
|
|
111
|
+
* Combines the SELECT clause, FROM clause, and optional WHERE clause
|
|
112
|
+
* into a complete SQL query string.
|
|
113
|
+
*
|
|
114
|
+
* @protected
|
|
115
|
+
* @return {string} The complete SQL query string
|
|
116
|
+
* @memberof FromStatement
|
|
117
|
+
*/
|
|
118
|
+
protected buildQuery(): string;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=from-statement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-statement.d.ts","sourceRoot":"","sources":["../src/from-statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAa,CAAC,SAAS,CAAE,SAAQ,SAAS,CAAC,SAAS,CAAC;IAqD9D,SAAS,CAAC,SAAS,EAAE,MAAM;IApD7B;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAEnC;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAEhD;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,CAAM;IAEpC;;;;;;;OAOG;IACH,SAAS,CAAC,eAAe;IAIzB;;;;;;;;OAQG;gBAES,SAAS,EAAE,MAAM,EAC3B,EAAE,EAAE,QAAQ;IAMd;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAmBtD;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAOzC;;;;;;;;OAQG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;CAI/B"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Statement } from './statement.js';
|
|
2
|
+
/**
|
|
3
|
+
* Statement builder for SELECT queries with FROM clauses.
|
|
4
|
+
* Provides a fluent interface for constructing SELECT statements with column selection,
|
|
5
|
+
* WHERE clauses, and parameter binding. Supports both simple column lists and
|
|
6
|
+
* aliased column expressions.
|
|
7
|
+
*
|
|
8
|
+
* This class enables type-safe query construction for retrieving data from database tables,
|
|
9
|
+
* with support for filtering via expression compilation results.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @class FromStatement
|
|
13
|
+
* @extends {Statement<TableType>}
|
|
14
|
+
* @template TableType - The type representing the table structure being queried
|
|
15
|
+
*/
|
|
16
|
+
export class FromStatement extends Statement {
|
|
17
|
+
tableName;
|
|
18
|
+
/**
|
|
19
|
+
* Array of column names or expressions to select.
|
|
20
|
+
* Can include simple column names, aliased expressions, or '*' for all columns.
|
|
21
|
+
*
|
|
22
|
+
* @protected
|
|
23
|
+
* @type {string[]}
|
|
24
|
+
* @memberof FromStatement
|
|
25
|
+
*/
|
|
26
|
+
_selectColumns;
|
|
27
|
+
/**
|
|
28
|
+
* Object containing named parameters for the query.
|
|
29
|
+
* These parameters are used in the WHERE clause for safe parameterized queries.
|
|
30
|
+
*
|
|
31
|
+
* @protected
|
|
32
|
+
* @type {Record<string, any>}
|
|
33
|
+
* @memberof FromStatement
|
|
34
|
+
*/
|
|
35
|
+
_parameters = {};
|
|
36
|
+
/**
|
|
37
|
+
* The WHERE clause string for filtering results.
|
|
38
|
+
* Generated from expression compilation or left empty for unfiltered queries.
|
|
39
|
+
*
|
|
40
|
+
* @protected
|
|
41
|
+
* @type {string}
|
|
42
|
+
* @memberof FromStatement
|
|
43
|
+
*/
|
|
44
|
+
_whereClause = '';
|
|
45
|
+
/**
|
|
46
|
+
* Builds the parameters object for the query.
|
|
47
|
+
* Returns the stored parameters that will be used in the WHERE clause.
|
|
48
|
+
*
|
|
49
|
+
* @protected
|
|
50
|
+
* @return {Record<string, any>} The parameters object for query execution
|
|
51
|
+
* @memberof FromStatement
|
|
52
|
+
*/
|
|
53
|
+
buildParameters() {
|
|
54
|
+
return this._parameters;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates an instance of FromStatement.
|
|
58
|
+
* Initializes the statement with a table name and database connection,
|
|
59
|
+
* and sets up an empty array for select columns.
|
|
60
|
+
*
|
|
61
|
+
* @param {string} tableName - The name of the table to select from
|
|
62
|
+
* @param {Database} db - The database instance to execute queries against
|
|
63
|
+
* @memberof FromStatement
|
|
64
|
+
*/
|
|
65
|
+
constructor(tableName, db) {
|
|
66
|
+
super(db);
|
|
67
|
+
this.tableName = tableName;
|
|
68
|
+
this._selectColumns = [];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Specifies which columns to select in the query.
|
|
72
|
+
* Accepts an array of column names, an object mapping aliases to expressions,
|
|
73
|
+
* or defaults to '*' for all columns if not specified.
|
|
74
|
+
*
|
|
75
|
+
* When an object is provided, keys become column aliases and values are the expressions.
|
|
76
|
+
* For example, { total: 'price * quantity' } becomes "price * quantity AS total".
|
|
77
|
+
*
|
|
78
|
+
* @param {string[] | Record<string, any>} [columns] - Columns to select, or undefined for all columns
|
|
79
|
+
* @return {this} The statement instance for method chaining
|
|
80
|
+
* @memberof FromStatement
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* // Select specific columns
|
|
84
|
+
* statement.select(['id', 'name', 'email'])
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* // Select all columns
|
|
88
|
+
* statement.select()
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* // Select with aliases
|
|
92
|
+
* statement.select({ fullName: 'first_name || \' \' || last_name', total: 'price * quantity' })
|
|
93
|
+
*/
|
|
94
|
+
select(columns) {
|
|
95
|
+
// normalize columns
|
|
96
|
+
columns = columns || ['*'];
|
|
97
|
+
if (Array.isArray(columns)) {
|
|
98
|
+
this._selectColumns = columns;
|
|
99
|
+
}
|
|
100
|
+
else if (typeof columns === 'object') {
|
|
101
|
+
// convert object to array of "key AS val"
|
|
102
|
+
this._selectColumns = Object.entries(columns)
|
|
103
|
+
.map(([key, val]) => {
|
|
104
|
+
return `${val} AS ${key}`;
|
|
105
|
+
})
|
|
106
|
+
.filter(Boolean);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this._selectColumns = ['*'];
|
|
110
|
+
}
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Applies a WHERE clause filter using a compiled expression result.
|
|
115
|
+
* The expression result contains both the WHERE clause string and the associated
|
|
116
|
+
* parameters, which are stored for use during query execution.
|
|
117
|
+
*
|
|
118
|
+
* This method is typically used with the expression builder from @blendsdk/expression
|
|
119
|
+
* to create type-safe, parameterized WHERE clauses.
|
|
120
|
+
*
|
|
121
|
+
* @param {CompileResult} filter - The compiled expression containing WHERE clause and parameters
|
|
122
|
+
* @return {this} The statement instance for method chaining
|
|
123
|
+
* @memberof FromStatement
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* // Using with expression builder
|
|
127
|
+
* const filter = expr.compile(t => t.age.gt(18).and(t.status.eq('active')));
|
|
128
|
+
* statement.byExpression(filter);
|
|
129
|
+
*/
|
|
130
|
+
byExpression(filter) {
|
|
131
|
+
const { sql, params } = filter;
|
|
132
|
+
this._whereClause = `WHERE ${sql}`;
|
|
133
|
+
this._parameters = params;
|
|
134
|
+
return this;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Builds the complete SELECT query string.
|
|
138
|
+
* Combines the SELECT clause, FROM clause, and optional WHERE clause
|
|
139
|
+
* into a complete SQL query string.
|
|
140
|
+
*
|
|
141
|
+
* @protected
|
|
142
|
+
* @return {string} The complete SQL query string
|
|
143
|
+
* @memberof FromStatement
|
|
144
|
+
*/
|
|
145
|
+
buildQuery() {
|
|
146
|
+
const whereClause = this._whereClause ? ` ${this._whereClause}` : '';
|
|
147
|
+
return `SELECT ${this._selectColumns.join(', ')} FROM ${this.tableName}${whereClause}`.trim();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=from-statement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-statement.js","sourceRoot":"","sources":["../src/from-statement.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAyB,SAAQ,SAAoB;IAqDpD;IApDZ;;;;;;;OAOG;IACO,cAAc,CAAW;IAEnC;;;;;;;OAOG;IACO,WAAW,GAAwB,EAAE,CAAC;IAEhD;;;;;;;OAOG;IACO,YAAY,GAAW,EAAE,CAAC;IAEpC;;;;;;;OAOG;IACO,eAAe;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACH,YACY,SAAiB,EAC3B,EAAY;QAEZ,KAAK,CAAC,EAAE,CAAC,CAAC;QAHA,cAAS,GAAT,SAAS,CAAQ;QAI3B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,OAAwC;QAC7C,oBAAoB;QACpB,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,0CAA0C;YAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;iBAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAClB,OAAO,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;YAC5B,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAa,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,MAAqB;QAChC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACO,UAAU;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,UAAU,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAChG,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main entry point for the dbcore package.
|
|
3
|
+
* Exports all database-related classes, interfaces, and utilities for building
|
|
4
|
+
* type-safe database queries and managing database connections.
|
|
5
|
+
*
|
|
6
|
+
* Core database abstractions including statement builders for CRUD operations.
|
|
7
|
+
*
|
|
8
|
+
* **Note:** Expression types (query, CompileResult, etc.) should be imported
|
|
9
|
+
* directly from `@blendsdk/expression`, not from this package.
|
|
10
|
+
*/
|
|
11
|
+
export * from './crud-statement.js';
|
|
12
|
+
export * from './database.js';
|
|
13
|
+
export * from './dataservice-base.js';
|
|
14
|
+
export * from './delete-statement.js';
|
|
15
|
+
export * from './filterable-statement.js';
|
|
16
|
+
export * from './from-statement.js';
|
|
17
|
+
export * from './insert-statement.js';
|
|
18
|
+
export * from './query-dataservice.js';
|
|
19
|
+
export * from './statement.js';
|
|
20
|
+
export * from './update-statement.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main entry point for the dbcore package.
|
|
3
|
+
* Exports all database-related classes, interfaces, and utilities for building
|
|
4
|
+
* type-safe database queries and managing database connections.
|
|
5
|
+
*
|
|
6
|
+
* Core database abstractions including statement builders for CRUD operations.
|
|
7
|
+
*
|
|
8
|
+
* **Note:** Expression types (query, CompileResult, etc.) should be imported
|
|
9
|
+
* directly from `@blendsdk/expression`, not from this package.
|
|
10
|
+
*/
|
|
11
|
+
export * from './crud-statement.js';
|
|
12
|
+
export * from './database.js';
|
|
13
|
+
export * from './dataservice-base.js';
|
|
14
|
+
export * from './delete-statement.js';
|
|
15
|
+
export * from './filterable-statement.js';
|
|
16
|
+
export * from './from-statement.js';
|
|
17
|
+
export * from './insert-statement.js';
|
|
18
|
+
export * from './query-dataservice.js';
|
|
19
|
+
export * from './statement.js';
|
|
20
|
+
export * from './update-statement.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CrudStatement } from './crud-statement.js';
|
|
2
|
+
import { Database } from './database.js';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract statement builder for INSERT operations.
|
|
5
|
+
* Extends CrudStatement to provide functionality for inserting new records into database tables.
|
|
6
|
+
* Concrete database implementations must extend this class to provide database-specific
|
|
7
|
+
* INSERT query construction and parameter handling.
|
|
8
|
+
*
|
|
9
|
+
* This class provides a fluent interface for building INSERT statements with support
|
|
10
|
+
* for RETURNING clauses to retrieve inserted data.
|
|
11
|
+
*
|
|
12
|
+
* @export
|
|
13
|
+
* @abstract
|
|
14
|
+
* @class InsertStatement
|
|
15
|
+
* @extends {CrudStatement<TableType>}
|
|
16
|
+
* @template TableType - The type representing the table structure for insertion
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class InsertStatement<TableType> extends CrudStatement<TableType> {
|
|
19
|
+
/**
|
|
20
|
+
* Creates an instance of InsertStatement.
|
|
21
|
+
* Initializes the statement with a table name and database connection.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} tableName - The name of the table to insert into
|
|
24
|
+
* @param {Database} db - The database instance to execute queries against
|
|
25
|
+
* @memberof InsertStatement
|
|
26
|
+
*/
|
|
27
|
+
constructor(tableName: string, db: Database);
|
|
28
|
+
/**
|
|
29
|
+
* Sets the values to be inserted into the table.
|
|
30
|
+
* Accepts a partial object where keys represent column names and values
|
|
31
|
+
* represent the data to be inserted. Only the specified columns will be
|
|
32
|
+
* included in the INSERT statement.
|
|
33
|
+
*
|
|
34
|
+
* @param {Partial<TableType>} values - Object containing column names and values to insert
|
|
35
|
+
* @return {this} The statement instance for method chaining
|
|
36
|
+
* @memberof InsertStatement
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* // Insert a new user record
|
|
40
|
+
* statement.values({
|
|
41
|
+
* name: 'John Doe',
|
|
42
|
+
* email: 'john@example.com',
|
|
43
|
+
* age: 30
|
|
44
|
+
* })
|
|
45
|
+
*/
|
|
46
|
+
values(values: Partial<TableType>): this;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=insert-statement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert-statement.d.ts","sourceRoot":"","sources":["../src/insert-statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,eAAe,CAAC,SAAS,CAAE,SAAQ,aAAa,CAAC,SAAS,CAAC;IAC/E;;;;;;;OAOG;gBACS,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAI3C;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;CAIzC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CrudStatement } from './crud-statement.js';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract statement builder for INSERT operations.
|
|
4
|
+
* Extends CrudStatement to provide functionality for inserting new records into database tables.
|
|
5
|
+
* Concrete database implementations must extend this class to provide database-specific
|
|
6
|
+
* INSERT query construction and parameter handling.
|
|
7
|
+
*
|
|
8
|
+
* This class provides a fluent interface for building INSERT statements with support
|
|
9
|
+
* for RETURNING clauses to retrieve inserted data.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @abstract
|
|
13
|
+
* @class InsertStatement
|
|
14
|
+
* @extends {CrudStatement<TableType>}
|
|
15
|
+
* @template TableType - The type representing the table structure for insertion
|
|
16
|
+
*/
|
|
17
|
+
export class InsertStatement extends CrudStatement {
|
|
18
|
+
/**
|
|
19
|
+
* Creates an instance of InsertStatement.
|
|
20
|
+
* Initializes the statement with a table name and database connection.
|
|
21
|
+
*
|
|
22
|
+
* @param {string} tableName - The name of the table to insert into
|
|
23
|
+
* @param {Database} db - The database instance to execute queries against
|
|
24
|
+
* @memberof InsertStatement
|
|
25
|
+
*/
|
|
26
|
+
constructor(tableName, db) {
|
|
27
|
+
super(tableName, db);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Sets the values to be inserted into the table.
|
|
31
|
+
* Accepts a partial object where keys represent column names and values
|
|
32
|
+
* represent the data to be inserted. Only the specified columns will be
|
|
33
|
+
* included in the INSERT statement.
|
|
34
|
+
*
|
|
35
|
+
* @param {Partial<TableType>} values - Object containing column names and values to insert
|
|
36
|
+
* @return {this} The statement instance for method chaining
|
|
37
|
+
* @memberof InsertStatement
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // Insert a new user record
|
|
41
|
+
* statement.values({
|
|
42
|
+
* name: 'John Doe',
|
|
43
|
+
* email: 'john@example.com',
|
|
44
|
+
* age: 30
|
|
45
|
+
* })
|
|
46
|
+
*/
|
|
47
|
+
values(values) {
|
|
48
|
+
this._values = values;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=insert-statement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert-statement.js","sourceRoot":"","sources":["../src/insert-statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,eAA2B,SAAQ,aAAwB;IAC/E;;;;;;;OAOG;IACH,YAAY,SAAiB,EAAE,EAAY;QACzC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,MAA0B;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|