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,52 @@
|
|
|
1
|
+
import { FilterableStatement } from './filterable-statement.js';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract statement builder for UPDATE operations.
|
|
4
|
+
* Extends FilterableStatement to provide functionality for updating existing records in database tables.
|
|
5
|
+
* Concrete database implementations must extend this class to provide database-specific
|
|
6
|
+
* UPDATE query construction and parameter handling.
|
|
7
|
+
*
|
|
8
|
+
* This class provides a fluent interface for building UPDATE statements with support
|
|
9
|
+
* for filtering which records to update and RETURNING clauses to retrieve updated data.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @abstract
|
|
13
|
+
* @class UpdateStatement
|
|
14
|
+
* @extends {FilterableStatement<TableType, FilterType>}
|
|
15
|
+
* @template TableType - The type representing the table structure for updates
|
|
16
|
+
* @template FilterType - The type representing the filter criteria structure
|
|
17
|
+
*/
|
|
18
|
+
export class UpdateStatement extends FilterableStatement {
|
|
19
|
+
/**
|
|
20
|
+
* Creates an instance of UpdateStatement.
|
|
21
|
+
* Initializes the statement with a table name and database connection.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} tableName - The name of the table to update
|
|
24
|
+
* @param {Database} db - The database instance to execute queries against
|
|
25
|
+
* @memberof UpdateStatement
|
|
26
|
+
*/
|
|
27
|
+
constructor(tableName, db) {
|
|
28
|
+
super(tableName, db);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sets the values to be updated in the table.
|
|
32
|
+
* Accepts a partial object where keys represent column names and values
|
|
33
|
+
* represent the new data. Only the specified columns will be updated.
|
|
34
|
+
*
|
|
35
|
+
* @param {Partial<TableType>} values - Object containing column names and new values
|
|
36
|
+
* @return {this} The statement instance for method chaining
|
|
37
|
+
* @memberof UpdateStatement
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // Update user fields
|
|
41
|
+
* statement.values({
|
|
42
|
+
* name: 'Jane Doe',
|
|
43
|
+
* email: 'jane@example.com',
|
|
44
|
+
* updated_at: new Date()
|
|
45
|
+
* })
|
|
46
|
+
*/
|
|
47
|
+
values(values) {
|
|
48
|
+
this._values = values;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=update-statement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-statement.js","sourceRoot":"","sources":["../src/update-statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAgB,eAAuC,SAAQ,mBAGpE;IACC;;;;;;;OAOG;IACH,YAAY,SAAiB,EAAE,EAAY;QACzC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,MAA0B;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comparison builder implementation
|
|
3
|
+
* Provides fluent API for building comparison expressions
|
|
4
|
+
*/
|
|
5
|
+
import { ParameterManager } from '../core/parameter-manager.js';
|
|
6
|
+
import { SearchOptions, ASTNode } from '../core/types.js';
|
|
7
|
+
import { ComparisonBuilder, QueryBuilder } from '../core/query-builder-interfaces.js';
|
|
8
|
+
/**
|
|
9
|
+
* Comparison builder implementation
|
|
10
|
+
*/
|
|
11
|
+
export declare class ComparisonBuilderImpl<TSchema, K extends keyof TSchema> implements ComparisonBuilder<TSchema, K> {
|
|
12
|
+
private readonly column;
|
|
13
|
+
private readonly queryBuilder;
|
|
14
|
+
private readonly paramManager;
|
|
15
|
+
private readonly addNode;
|
|
16
|
+
constructor(column: string, queryBuilder: QueryBuilder<TSchema>, paramManager: ParameterManager, addNode: (node: ASTNode) => QueryBuilder<TSchema>);
|
|
17
|
+
equals(value: TSchema[K]): QueryBuilder<TSchema>;
|
|
18
|
+
notEquals(value: TSchema[K]): QueryBuilder<TSchema>;
|
|
19
|
+
greaterThan(value: TSchema[K]): QueryBuilder<TSchema>;
|
|
20
|
+
greaterThanOrEqual(value: TSchema[K]): QueryBuilder<TSchema>;
|
|
21
|
+
lessThan(value: TSchema[K]): QueryBuilder<TSchema>;
|
|
22
|
+
lessThanOrEqual(value: TSchema[K]): QueryBuilder<TSchema>;
|
|
23
|
+
between(min: TSchema[K], max: TSchema[K]): QueryBuilder<TSchema>;
|
|
24
|
+
notBetween(min: TSchema[K], max: TSchema[K]): QueryBuilder<TSchema>;
|
|
25
|
+
in(values: TSchema[K][]): QueryBuilder<TSchema>;
|
|
26
|
+
notIn(values: TSchema[K][]): QueryBuilder<TSchema>;
|
|
27
|
+
like(pattern: string): QueryBuilder<TSchema>;
|
|
28
|
+
ilike(pattern: string): QueryBuilder<TSchema>;
|
|
29
|
+
isNull(): QueryBuilder<TSchema>;
|
|
30
|
+
isNotNull(): QueryBuilder<TSchema>;
|
|
31
|
+
startsWith(value: string): QueryBuilder<TSchema>;
|
|
32
|
+
endsWith(value: string): QueryBuilder<TSchema>;
|
|
33
|
+
contains(value: string): QueryBuilder<TSchema>;
|
|
34
|
+
jsonContains(value: any): QueryBuilder<TSchema>;
|
|
35
|
+
jsonContainedBy(value: any): QueryBuilder<TSchema>;
|
|
36
|
+
jsonHasKey(key: string): QueryBuilder<TSchema>;
|
|
37
|
+
jsonHasAnyKey(keys: string[]): QueryBuilder<TSchema>;
|
|
38
|
+
jsonHasAllKeys(keys: string[]): QueryBuilder<TSchema>;
|
|
39
|
+
jsonPathExists(path: string): QueryBuilder<TSchema>;
|
|
40
|
+
search(query: string, options?: SearchOptions): QueryBuilder<TSchema>;
|
|
41
|
+
exists(subquery: QueryBuilder<any>): QueryBuilder<TSchema>;
|
|
42
|
+
notExists(subquery: QueryBuilder<any>): QueryBuilder<TSchema>;
|
|
43
|
+
inSubquery(subquery: QueryBuilder<any>): QueryBuilder<TSchema>;
|
|
44
|
+
notInSubquery(subquery: QueryBuilder<any>): QueryBuilder<TSchema>;
|
|
45
|
+
equalsColumn(column: string): QueryBuilder<TSchema>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=comparison-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-builder.d.ts","sourceRoot":"","sources":["../../src/builders/comparison-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comparison builder implementation
|
|
3
|
+
* Provides fluent API for building comparison expressions
|
|
4
|
+
*/
|
|
5
|
+
import { createComparisonNode, createJsonNode, createFullTextNode, createSubqueryNode, } from '../core/ast-node.js';
|
|
6
|
+
import { ComparisonOperator, JsonOperator, FullTextMode, } from '../core/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Comparison builder implementation
|
|
9
|
+
*/
|
|
10
|
+
export class ComparisonBuilderImpl {
|
|
11
|
+
column;
|
|
12
|
+
queryBuilder;
|
|
13
|
+
paramManager;
|
|
14
|
+
addNode;
|
|
15
|
+
constructor(column, queryBuilder, paramManager, addNode) {
|
|
16
|
+
this.column = column;
|
|
17
|
+
this.queryBuilder = queryBuilder;
|
|
18
|
+
this.paramManager = paramManager;
|
|
19
|
+
this.addNode = addNode;
|
|
20
|
+
}
|
|
21
|
+
equals(value) {
|
|
22
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
23
|
+
const node = createComparisonNode(this.column, ComparisonOperator.Equal, value, undefined, [paramName]);
|
|
24
|
+
return this.addNode(node);
|
|
25
|
+
}
|
|
26
|
+
notEquals(value) {
|
|
27
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
28
|
+
const node = createComparisonNode(this.column, ComparisonOperator.NotEqual, value, undefined, [paramName]);
|
|
29
|
+
return this.addNode(node);
|
|
30
|
+
}
|
|
31
|
+
greaterThan(value) {
|
|
32
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
33
|
+
const node = createComparisonNode(this.column, ComparisonOperator.GreaterThan, value, undefined, [paramName]);
|
|
34
|
+
return this.addNode(node);
|
|
35
|
+
}
|
|
36
|
+
greaterThanOrEqual(value) {
|
|
37
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
38
|
+
const node = createComparisonNode(this.column, ComparisonOperator.GreaterThanOrEqual, value, undefined, [paramName]);
|
|
39
|
+
return this.addNode(node);
|
|
40
|
+
}
|
|
41
|
+
lessThan(value) {
|
|
42
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
43
|
+
const node = createComparisonNode(this.column, ComparisonOperator.LessThan, value, undefined, [paramName]);
|
|
44
|
+
return this.addNode(node);
|
|
45
|
+
}
|
|
46
|
+
lessThanOrEqual(value) {
|
|
47
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
48
|
+
const node = createComparisonNode(this.column, ComparisonOperator.LessThanOrEqual, value, undefined, [paramName]);
|
|
49
|
+
return this.addNode(node);
|
|
50
|
+
}
|
|
51
|
+
between(min, max) {
|
|
52
|
+
const minParamName = this.paramManager.addParameterWithValue(min);
|
|
53
|
+
const maxParamName = this.paramManager.addParameterWithValue(max);
|
|
54
|
+
const node = createComparisonNode(this.column, ComparisonOperator.Between, undefined, [min, max], [minParamName, maxParamName]);
|
|
55
|
+
return this.addNode(node);
|
|
56
|
+
}
|
|
57
|
+
notBetween(min, max) {
|
|
58
|
+
const minParamName = this.paramManager.addParameterWithValue(min);
|
|
59
|
+
const maxParamName = this.paramManager.addParameterWithValue(max);
|
|
60
|
+
const node = createComparisonNode(this.column, ComparisonOperator.NotBetween, undefined, [min, max], [minParamName, maxParamName]);
|
|
61
|
+
return this.addNode(node);
|
|
62
|
+
}
|
|
63
|
+
in(values) {
|
|
64
|
+
const paramNames = values.map(v => this.paramManager.addParameterWithValue(v));
|
|
65
|
+
const node = createComparisonNode(this.column, ComparisonOperator.In, undefined, values, paramNames);
|
|
66
|
+
return this.addNode(node);
|
|
67
|
+
}
|
|
68
|
+
notIn(values) {
|
|
69
|
+
const paramNames = values.map(v => this.paramManager.addParameterWithValue(v));
|
|
70
|
+
const node = createComparisonNode(this.column, ComparisonOperator.NotIn, undefined, values, paramNames);
|
|
71
|
+
return this.addNode(node);
|
|
72
|
+
}
|
|
73
|
+
like(pattern) {
|
|
74
|
+
const paramName = this.paramManager.addParameterWithValue(pattern);
|
|
75
|
+
const node = createComparisonNode(this.column, ComparisonOperator.Like, pattern, undefined, [paramName]);
|
|
76
|
+
return this.addNode(node);
|
|
77
|
+
}
|
|
78
|
+
ilike(pattern) {
|
|
79
|
+
const paramName = this.paramManager.addParameterWithValue(pattern);
|
|
80
|
+
const node = createComparisonNode(this.column, ComparisonOperator.ILike, pattern, undefined, [paramName]);
|
|
81
|
+
return this.addNode(node);
|
|
82
|
+
}
|
|
83
|
+
isNull() {
|
|
84
|
+
const node = createComparisonNode(this.column, ComparisonOperator.IsNull);
|
|
85
|
+
return this.addNode(node);
|
|
86
|
+
}
|
|
87
|
+
isNotNull() {
|
|
88
|
+
const node = createComparisonNode(this.column, ComparisonOperator.IsNotNull);
|
|
89
|
+
return this.addNode(node);
|
|
90
|
+
}
|
|
91
|
+
startsWith(value) {
|
|
92
|
+
return this.like(`${value}%`);
|
|
93
|
+
}
|
|
94
|
+
endsWith(value) {
|
|
95
|
+
return this.like(`%${value}`);
|
|
96
|
+
}
|
|
97
|
+
contains(value) {
|
|
98
|
+
return this.like(`%${value}%`);
|
|
99
|
+
}
|
|
100
|
+
jsonContains(value) {
|
|
101
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
102
|
+
const node = createJsonNode(this.column, JsonOperator.Contains, {
|
|
103
|
+
value,
|
|
104
|
+
parameterName: paramName,
|
|
105
|
+
});
|
|
106
|
+
return this.addNode(node);
|
|
107
|
+
}
|
|
108
|
+
jsonContainedBy(value) {
|
|
109
|
+
const paramName = this.paramManager.addParameterWithValue(value);
|
|
110
|
+
const node = createJsonNode(this.column, JsonOperator.ContainedBy, {
|
|
111
|
+
value,
|
|
112
|
+
parameterName: paramName,
|
|
113
|
+
});
|
|
114
|
+
return this.addNode(node);
|
|
115
|
+
}
|
|
116
|
+
jsonHasKey(key) {
|
|
117
|
+
const paramName = this.paramManager.addParameterWithValue(key);
|
|
118
|
+
const node = createJsonNode(this.column, JsonOperator.HasKey, {
|
|
119
|
+
keys: [key],
|
|
120
|
+
parameterName: paramName,
|
|
121
|
+
});
|
|
122
|
+
return this.addNode(node);
|
|
123
|
+
}
|
|
124
|
+
jsonHasAnyKey(keys) {
|
|
125
|
+
const paramName = this.paramManager.addParameterWithValue(keys);
|
|
126
|
+
const node = createJsonNode(this.column, JsonOperator.HasAnyKey, {
|
|
127
|
+
keys,
|
|
128
|
+
parameterName: paramName,
|
|
129
|
+
});
|
|
130
|
+
return this.addNode(node);
|
|
131
|
+
}
|
|
132
|
+
jsonHasAllKeys(keys) {
|
|
133
|
+
const paramName = this.paramManager.addParameterWithValue(keys);
|
|
134
|
+
const node = createJsonNode(this.column, JsonOperator.HasAllKeys, {
|
|
135
|
+
keys,
|
|
136
|
+
parameterName: paramName,
|
|
137
|
+
});
|
|
138
|
+
return this.addNode(node);
|
|
139
|
+
}
|
|
140
|
+
jsonPathExists(path) {
|
|
141
|
+
const paramName = this.paramManager.addParameterWithValue(path);
|
|
142
|
+
const node = createJsonNode(this.column, JsonOperator.PathExists, {
|
|
143
|
+
path,
|
|
144
|
+
parameterName: paramName,
|
|
145
|
+
});
|
|
146
|
+
return this.addNode(node);
|
|
147
|
+
}
|
|
148
|
+
search(query, options) {
|
|
149
|
+
const mode = options?.mode === 'phrase'
|
|
150
|
+
? FullTextMode.Phrase
|
|
151
|
+
: options?.mode === 'websearch'
|
|
152
|
+
? FullTextMode.WebSearch
|
|
153
|
+
: FullTextMode.Plain;
|
|
154
|
+
const language = options?.language || 'english';
|
|
155
|
+
const paramName = this.paramManager.addParameterWithValue(query);
|
|
156
|
+
const node = createFullTextNode([this.column], query, mode, language, paramName);
|
|
157
|
+
return this.addNode(node);
|
|
158
|
+
}
|
|
159
|
+
exists(subquery) {
|
|
160
|
+
const subqueryAST = subquery.getAST();
|
|
161
|
+
if (!subqueryAST) {
|
|
162
|
+
throw new Error('Subquery must have at least one condition');
|
|
163
|
+
}
|
|
164
|
+
const node = createSubqueryNode('EXISTS', subqueryAST, this.column);
|
|
165
|
+
return this.addNode(node);
|
|
166
|
+
}
|
|
167
|
+
notExists(subquery) {
|
|
168
|
+
const subqueryAST = subquery.getAST();
|
|
169
|
+
if (!subqueryAST) {
|
|
170
|
+
throw new Error('Subquery must have at least one condition');
|
|
171
|
+
}
|
|
172
|
+
const node = createSubqueryNode('NOT EXISTS', subqueryAST, this.column);
|
|
173
|
+
return this.addNode(node);
|
|
174
|
+
}
|
|
175
|
+
inSubquery(subquery) {
|
|
176
|
+
const subqueryAST = subquery.getAST();
|
|
177
|
+
if (!subqueryAST) {
|
|
178
|
+
throw new Error('Subquery must have at least one condition');
|
|
179
|
+
}
|
|
180
|
+
const node = createSubqueryNode('IN', subqueryAST, this.column);
|
|
181
|
+
return this.addNode(node);
|
|
182
|
+
}
|
|
183
|
+
notInSubquery(subquery) {
|
|
184
|
+
const subqueryAST = subquery.getAST();
|
|
185
|
+
if (!subqueryAST) {
|
|
186
|
+
throw new Error('Subquery must have at least one condition');
|
|
187
|
+
}
|
|
188
|
+
const node = createSubqueryNode('NOT IN', subqueryAST, this.column);
|
|
189
|
+
return this.addNode(node);
|
|
190
|
+
}
|
|
191
|
+
equalsColumn(column) {
|
|
192
|
+
// For correlated subqueries - column reference without parameter
|
|
193
|
+
const node = createComparisonNode(this.column, ComparisonOperator.Equal, column, undefined, undefined);
|
|
194
|
+
return this.addNode(node);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=comparison-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-builder.js","sourceRoot":"","sources":["../../src/builders/comparison-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main query builder implementation
|
|
3
|
+
* Provides the fluent API for building SQL WHERE clauses
|
|
4
|
+
*/
|
|
5
|
+
import { ParameterManager } from '../core/parameter-manager.js';
|
|
6
|
+
import { ComparisonBuilder, QueryBuilder } from '../core/query-builder-interfaces.js';
|
|
7
|
+
import { ASTNode, CompileResult, QueryOptions, SearchOptions } from '../core/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Main query builder implementation
|
|
10
|
+
*/
|
|
11
|
+
export declare class QueryBuilderImpl<TSchema = Record<string, any>> implements QueryBuilder<TSchema> {
|
|
12
|
+
private ast;
|
|
13
|
+
private readonly paramManager;
|
|
14
|
+
private readonly dialect;
|
|
15
|
+
private debugMode;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new QueryBuilderImpl instance.
|
|
18
|
+
*
|
|
19
|
+
* @param options - Query builder configuration options
|
|
20
|
+
* @param parentParamManager - Optional parent parameter manager for nested builders
|
|
21
|
+
* to share parameter naming across nested sub-queries
|
|
22
|
+
*/
|
|
23
|
+
constructor(options?: QueryOptions, parentParamManager?: ParameterManager);
|
|
24
|
+
/**
|
|
25
|
+
* Start WHERE clause with a column
|
|
26
|
+
*/
|
|
27
|
+
where<K extends keyof TSchema>(column: K): ComparisonBuilder<TSchema, K>;
|
|
28
|
+
where(callback: (q: QueryBuilder<TSchema>) => QueryBuilder<TSchema>): QueryBuilder<TSchema>;
|
|
29
|
+
/**
|
|
30
|
+
* Add AND condition with a column
|
|
31
|
+
*/
|
|
32
|
+
and<K extends keyof TSchema>(column: K): ComparisonBuilder<TSchema, K>;
|
|
33
|
+
and(callback: (q: QueryBuilder<TSchema>) => QueryBuilder<TSchema>): QueryBuilder<TSchema>;
|
|
34
|
+
/**
|
|
35
|
+
* Add OR condition with a column
|
|
36
|
+
*/
|
|
37
|
+
or<K extends keyof TSchema>(column: K): ComparisonBuilder<TSchema, K>;
|
|
38
|
+
or(callback: (q: QueryBuilder<TSchema>) => QueryBuilder<TSchema>): QueryBuilder<TSchema>;
|
|
39
|
+
/**
|
|
40
|
+
* Full-text search across multiple columns
|
|
41
|
+
*/
|
|
42
|
+
search(columns: string | string[], query: string, options?: SearchOptions): QueryBuilder<TSchema>;
|
|
43
|
+
/**
|
|
44
|
+
* Enable debug mode
|
|
45
|
+
*/
|
|
46
|
+
debug(): QueryBuilder<TSchema>;
|
|
47
|
+
/**
|
|
48
|
+
* Compile the query to SQL
|
|
49
|
+
*/
|
|
50
|
+
compile(): CompileResult;
|
|
51
|
+
/**
|
|
52
|
+
* Get the internal AST
|
|
53
|
+
*/
|
|
54
|
+
getAST(): ASTNode | null;
|
|
55
|
+
/**
|
|
56
|
+
* Create a nested builder that shares the parameter manager.
|
|
57
|
+
* This ensures parameter naming is consistent across the parent
|
|
58
|
+
* and nested sub-queries (e.g., grouped WHERE conditions).
|
|
59
|
+
*
|
|
60
|
+
* @returns A new QueryBuilderImpl that shares this builder's parameter manager
|
|
61
|
+
*/
|
|
62
|
+
private createNestedBuilder;
|
|
63
|
+
/**
|
|
64
|
+
* Clone this query builder.
|
|
65
|
+
*
|
|
66
|
+
* **⚠️ WARNING: Shared state** — The cloned builder gets a **new** parameter manager,
|
|
67
|
+
* but shares the same AST reference. Modifying the AST in either the original
|
|
68
|
+
* or the clone may affect the other. Use this for branching query variations,
|
|
69
|
+
* not for independent copies. If you need fully independent copies, compile
|
|
70
|
+
* the original first, then build a new query.
|
|
71
|
+
*
|
|
72
|
+
* @returns A new QueryBuilder with the same AST but independent parameter manager
|
|
73
|
+
*/
|
|
74
|
+
clone(): QueryBuilder<TSchema>;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Create a new query builder
|
|
78
|
+
*/
|
|
79
|
+
export declare function query<TSchema = Record<string, any>>(options?: QueryOptions): QueryBuilder<TSchema>;
|
|
80
|
+
//# sourceMappingURL=query-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/builders/query-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EACL,OAAO,EACP,aAAa,EAGb,YAAY,EACZ,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAG1B;;GAEG;AACH,qBAAa,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,YAAW,YAAY,CAAC,OAAO,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,SAAS,CAAkB;IAEnC;;;;;;OAMG;gBACS,OAAO,GAAE,YAAiB,EAAE,kBAAkB,CAAC,EAAE,gBAAgB;IAM7E;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;IA8B3F;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;IAoCzF;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;IAoCxF;;OAEG;IACH,MAAM,CACJ,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,GACtB,YAAY,CAAC,OAAO,CAAC;IAsBxB;;OAEG;IACH,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC;IAK9B;;OAEG;IACH,OAAO,IAAI,aAAa;IAyDxB;;OAEG;IACH,MAAM,IAAI,OAAO,GAAG,IAAI;IAIxB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;;;;;OAUG;IACH,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC;CAQ/B;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjD,OAAO,CAAC,EAAE,YAAY,GACrB,YAAY,CAAC,OAAO,CAAC,CAEvB"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main query builder implementation
|
|
3
|
+
* Provides the fluent API for building SQL WHERE clauses
|
|
4
|
+
*/
|
|
5
|
+
import { PostgreSQLCompiler } from '../compiler/postgresql-compiler.js';
|
|
6
|
+
import { createFullTextNode, createGroupNode, createLogicalNode } from '../core/ast-node.js';
|
|
7
|
+
import { ParameterManager } from '../core/parameter-manager.js';
|
|
8
|
+
import { FullTextMode, LogicalOperator, SqlDialect, } from '../core/types.js';
|
|
9
|
+
import { ComparisonBuilderImpl } from './comparison-builder.js';
|
|
10
|
+
/**
|
|
11
|
+
* Main query builder implementation
|
|
12
|
+
*/
|
|
13
|
+
export class QueryBuilderImpl {
|
|
14
|
+
ast = null;
|
|
15
|
+
paramManager;
|
|
16
|
+
dialect;
|
|
17
|
+
debugMode = false;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new QueryBuilderImpl instance.
|
|
20
|
+
*
|
|
21
|
+
* @param options - Query builder configuration options
|
|
22
|
+
* @param parentParamManager - Optional parent parameter manager for nested builders
|
|
23
|
+
* to share parameter naming across nested sub-queries
|
|
24
|
+
*/
|
|
25
|
+
constructor(options = {}, parentParamManager) {
|
|
26
|
+
this.dialect = options.dialect || SqlDialect.PostgreSQL;
|
|
27
|
+
this.paramManager = parentParamManager || new ParameterManager(this.dialect);
|
|
28
|
+
this.debugMode = options.debug || false;
|
|
29
|
+
}
|
|
30
|
+
where(columnOrCallback) {
|
|
31
|
+
if (typeof columnOrCallback === 'function') {
|
|
32
|
+
// Callback for grouping - share parameter manager
|
|
33
|
+
const nestedBuilder = this.createNestedBuilder();
|
|
34
|
+
const result = columnOrCallback(nestedBuilder);
|
|
35
|
+
const nestedAST = result.getAST();
|
|
36
|
+
if (nestedAST) {
|
|
37
|
+
const groupNode = createGroupNode(nestedAST);
|
|
38
|
+
this.ast = groupNode;
|
|
39
|
+
}
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Column comparison
|
|
44
|
+
return new ComparisonBuilderImpl(String(columnOrCallback), this, this.paramManager, (node) => {
|
|
45
|
+
this.ast = node;
|
|
46
|
+
return this;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
and(columnOrCallback) {
|
|
51
|
+
if (typeof columnOrCallback === 'function') {
|
|
52
|
+
// Callback for grouping - share parameter manager
|
|
53
|
+
const nestedBuilder = this.createNestedBuilder();
|
|
54
|
+
const result = columnOrCallback(nestedBuilder);
|
|
55
|
+
const nestedAST = result.getAST();
|
|
56
|
+
if (nestedAST && this.ast) {
|
|
57
|
+
const groupNode = createGroupNode(nestedAST);
|
|
58
|
+
this.ast = createLogicalNode(LogicalOperator.And, this.ast, groupNode);
|
|
59
|
+
}
|
|
60
|
+
else if (nestedAST) {
|
|
61
|
+
this.ast = createGroupNode(nestedAST);
|
|
62
|
+
}
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// Column comparison
|
|
67
|
+
return new ComparisonBuilderImpl(String(columnOrCallback), this, this.paramManager, (node) => {
|
|
68
|
+
if (this.ast) {
|
|
69
|
+
this.ast = createLogicalNode(LogicalOperator.And, this.ast, node);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.ast = node;
|
|
73
|
+
}
|
|
74
|
+
return this;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
or(columnOrCallback) {
|
|
79
|
+
if (typeof columnOrCallback === 'function') {
|
|
80
|
+
// Callback for grouping - share parameter manager
|
|
81
|
+
const nestedBuilder = this.createNestedBuilder();
|
|
82
|
+
const result = columnOrCallback(nestedBuilder);
|
|
83
|
+
const nestedAST = result.getAST();
|
|
84
|
+
if (nestedAST && this.ast) {
|
|
85
|
+
const groupNode = createGroupNode(nestedAST);
|
|
86
|
+
this.ast = createLogicalNode(LogicalOperator.Or, this.ast, groupNode);
|
|
87
|
+
}
|
|
88
|
+
else if (nestedAST) {
|
|
89
|
+
this.ast = createGroupNode(nestedAST);
|
|
90
|
+
}
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// Column comparison
|
|
95
|
+
return new ComparisonBuilderImpl(String(columnOrCallback), this, this.paramManager, (node) => {
|
|
96
|
+
if (this.ast) {
|
|
97
|
+
this.ast = createLogicalNode(LogicalOperator.Or, this.ast, node);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.ast = node;
|
|
101
|
+
}
|
|
102
|
+
return this;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Full-text search across multiple columns
|
|
108
|
+
*/
|
|
109
|
+
search(columns, query, options) {
|
|
110
|
+
const columnArray = Array.isArray(columns) ? columns : [columns];
|
|
111
|
+
const mode = options?.mode === 'phrase'
|
|
112
|
+
? FullTextMode.Phrase
|
|
113
|
+
: options?.mode === 'websearch'
|
|
114
|
+
? FullTextMode.WebSearch
|
|
115
|
+
: FullTextMode.Plain;
|
|
116
|
+
const language = options?.language || 'english';
|
|
117
|
+
const paramName = this.paramManager.addParameterWithValue(query);
|
|
118
|
+
const node = createFullTextNode(columnArray, query, mode, language, paramName);
|
|
119
|
+
if (this.ast) {
|
|
120
|
+
this.ast = createLogicalNode(LogicalOperator.And, this.ast, node);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
this.ast = node;
|
|
124
|
+
}
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Enable debug mode
|
|
129
|
+
*/
|
|
130
|
+
debug() {
|
|
131
|
+
this.debugMode = true;
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Compile the query to SQL
|
|
136
|
+
*/
|
|
137
|
+
compile() {
|
|
138
|
+
const startTime = performance.now();
|
|
139
|
+
if (!this.ast) {
|
|
140
|
+
return {
|
|
141
|
+
sql: '',
|
|
142
|
+
params: {},
|
|
143
|
+
debug: this.debugMode
|
|
144
|
+
? {
|
|
145
|
+
ast: this.ast,
|
|
146
|
+
optimizations: [],
|
|
147
|
+
parameterCount: 0,
|
|
148
|
+
compilationTime: 0,
|
|
149
|
+
warnings: ['No conditions specified'],
|
|
150
|
+
}
|
|
151
|
+
: undefined,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
// Create compiler based on dialect
|
|
155
|
+
let compiler;
|
|
156
|
+
switch (this.dialect) {
|
|
157
|
+
case SqlDialect.PostgreSQL:
|
|
158
|
+
compiler = new PostgreSQLCompiler(this.paramManager);
|
|
159
|
+
break;
|
|
160
|
+
case SqlDialect.MySQL:
|
|
161
|
+
case SqlDialect.MSSQL:
|
|
162
|
+
case SqlDialect.SQLite:
|
|
163
|
+
throw new Error(`Dialect ${this.dialect} is not yet implemented`);
|
|
164
|
+
default:
|
|
165
|
+
throw new Error(`Unknown dialect: ${this.dialect}`);
|
|
166
|
+
}
|
|
167
|
+
// Compile AST to SQL
|
|
168
|
+
const sql = compiler.compile(this.ast);
|
|
169
|
+
const params = this.paramManager.getParameters();
|
|
170
|
+
const compilationTime = performance.now() - startTime;
|
|
171
|
+
const result = {
|
|
172
|
+
sql,
|
|
173
|
+
params,
|
|
174
|
+
};
|
|
175
|
+
// Add debug information if enabled
|
|
176
|
+
if (this.debugMode) {
|
|
177
|
+
result.debug = {
|
|
178
|
+
ast: this.ast,
|
|
179
|
+
optimizations: compiler.getOptimizations(),
|
|
180
|
+
parameterCount: this.paramManager.getParameterCount(),
|
|
181
|
+
compilationTime,
|
|
182
|
+
warnings: compiler.getWarnings(),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
return result;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get the internal AST
|
|
189
|
+
*/
|
|
190
|
+
getAST() {
|
|
191
|
+
return this.ast;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Create a nested builder that shares the parameter manager.
|
|
195
|
+
* This ensures parameter naming is consistent across the parent
|
|
196
|
+
* and nested sub-queries (e.g., grouped WHERE conditions).
|
|
197
|
+
*
|
|
198
|
+
* @returns A new QueryBuilderImpl that shares this builder's parameter manager
|
|
199
|
+
*/
|
|
200
|
+
createNestedBuilder() {
|
|
201
|
+
return new QueryBuilderImpl({ dialect: this.dialect, debug: this.debugMode }, this.paramManager);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Clone this query builder.
|
|
205
|
+
*
|
|
206
|
+
* **⚠️ WARNING: Shared state** — The cloned builder gets a **new** parameter manager,
|
|
207
|
+
* but shares the same AST reference. Modifying the AST in either the original
|
|
208
|
+
* or the clone may affect the other. Use this for branching query variations,
|
|
209
|
+
* not for independent copies. If you need fully independent copies, compile
|
|
210
|
+
* the original first, then build a new query.
|
|
211
|
+
*
|
|
212
|
+
* @returns A new QueryBuilder with the same AST but independent parameter manager
|
|
213
|
+
*/
|
|
214
|
+
clone() {
|
|
215
|
+
const cloned = new QueryBuilderImpl({
|
|
216
|
+
dialect: this.dialect,
|
|
217
|
+
debug: this.debugMode,
|
|
218
|
+
});
|
|
219
|
+
cloned.ast = this.ast;
|
|
220
|
+
return cloned;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Create a new query builder
|
|
225
|
+
*/
|
|
226
|
+
export function query(options) {
|
|
227
|
+
return new QueryBuilderImpl(options);
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=query-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/builders/query-builder.ts"],"names":[],"mappings":"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"}
|