@warlock.js/cascade 4.0.174 → 4.1.2
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 +6 -5
- package/bin/cascadejs +3 -0
- package/esm/cli/commands/migrate-export-sql.mjs +48 -0
- package/esm/cli/commands/migrate-export-sql.mjs.map +1 -0
- package/esm/cli/commands/migrate-list.mjs +26 -0
- package/esm/cli/commands/migrate-list.mjs.map +1 -0
- package/esm/cli/commands/migrate-rollback.mjs +50 -0
- package/esm/cli/commands/migrate-rollback.mjs.map +1 -0
- package/esm/cli/commands/migrate.mjs +65 -0
- package/esm/cli/commands/migrate.mjs.map +1 -0
- package/esm/cli/connection-from-env.mjs +181 -0
- package/esm/cli/connection-from-env.mjs.map +1 -0
- package/esm/cli/index.mjs +31 -0
- package/esm/cli/index.mjs.map +1 -0
- package/esm/cli/load-migrations.mjs +78 -0
- package/esm/cli/load-migrations.mjs.map +1 -0
- package/esm/cli/printers.mjs +57 -0
- package/esm/cli/printers.mjs.map +1 -0
- package/esm/cli/setup-logger.mjs +30 -0
- package/esm/cli/setup-logger.mjs.map +1 -0
- package/esm/cli/with-cli-connection.mjs +39 -0
- package/esm/cli/with-cli-connection.mjs.map +1 -0
- package/esm/cli.d.mts +1 -0
- package/esm/cli.mjs +26 -0
- package/esm/cli.mjs.map +1 -0
- package/esm/context/database-data-source-context.d.mts +32 -0
- package/esm/context/database-data-source-context.d.mts.map +1 -0
- package/esm/context/database-data-source-context.mjs +35 -0
- package/esm/context/database-data-source-context.mjs.map +1 -0
- package/esm/context/database-transaction-context.d.mts +38 -0
- package/esm/context/database-transaction-context.d.mts.map +1 -0
- package/esm/context/database-transaction-context.mjs +47 -0
- package/esm/context/database-transaction-context.mjs.map +1 -0
- package/esm/contracts/database-driver.contract.d.mts +443 -0
- package/esm/contracts/database-driver.contract.d.mts.map +1 -0
- package/esm/contracts/database-id-generator.contract.d.mts +109 -0
- package/esm/contracts/database-id-generator.contract.d.mts.map +1 -0
- package/esm/contracts/database-remover.contract.d.mts +108 -0
- package/esm/contracts/database-remover.contract.d.mts.map +1 -0
- package/esm/contracts/database-restorer.contract.d.mts +145 -0
- package/esm/contracts/database-restorer.contract.d.mts.map +1 -0
- package/esm/contracts/database-writer.contract.d.mts +123 -0
- package/esm/contracts/database-writer.contract.d.mts.map +1 -0
- package/esm/contracts/driver-blueprint.contract.d.mts +52 -0
- package/esm/contracts/driver-blueprint.contract.d.mts.map +1 -0
- package/esm/contracts/index.d.mts +9 -0
- package/esm/contracts/migration-driver.contract.d.mts +476 -0
- package/esm/contracts/migration-driver.contract.d.mts.map +1 -0
- package/esm/contracts/query-builder.contract.d.mts +1663 -0
- package/esm/contracts/query-builder.contract.d.mts.map +1 -0
- package/esm/contracts/sync-adapter.contract.d.mts +49 -0
- package/esm/contracts/sync-adapter.contract.d.mts.map +1 -0
- package/esm/data-source/data-source-registry.d.mts +111 -0
- package/esm/data-source/data-source-registry.d.mts.map +1 -0
- package/esm/data-source/data-source-registry.mjs +142 -0
- package/esm/data-source/data-source-registry.mjs.map +1 -0
- package/esm/data-source/data-source.d.mts +160 -0
- package/esm/data-source/data-source.d.mts.map +1 -0
- package/esm/data-source/data-source.mjs +87 -0
- package/esm/data-source/data-source.mjs.map +1 -0
- package/esm/database-dirty-tracker.d.mts +254 -0
- package/esm/database-dirty-tracker.d.mts.map +1 -0
- package/esm/database-dirty-tracker.mjs +356 -0
- package/esm/database-dirty-tracker.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-blueprint.mjs +54 -0
- package/esm/drivers/mongodb/mongodb-blueprint.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-driver.d.mts +334 -0
- package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-driver.mjs +716 -0
- package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-id-generator.d.mts +120 -0
- package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-id-generator.mjs +141 -0
- package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.d.mts +322 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.mjs +531 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-builder.d.mts +1117 -0
- package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-builder.mjs +1828 -0
- package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-operations.d.mts +230 -0
- package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-operations.mjs +275 -0
- package/esm/drivers/mongodb/mongodb-query-operations.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-parser.d.mts +263 -0
- package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-parser.mjs +965 -0
- package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts +78 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.mjs +118 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.mjs.map +1 -0
- package/esm/drivers/mongodb/types.d.mts +43 -0
- package/esm/drivers/mongodb/types.d.mts.map +1 -0
- package/esm/drivers/postgres/index.d.mts +8 -0
- package/esm/drivers/postgres/index.mjs +9 -0
- package/esm/drivers/postgres/postgres-blueprint.d.mts +60 -0
- package/esm/drivers/postgres/postgres-blueprint.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-blueprint.mjs +105 -0
- package/esm/drivers/postgres/postgres-blueprint.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.d.mts +144 -0
- package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.mjs +227 -0
- package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-driver.d.mts +424 -0
- package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-driver.mjs +845 -0
- package/esm/drivers/postgres/postgres-driver.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.mts +393 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.mjs +760 -0
- package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.d.mts +399 -0
- package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.mjs +1105 -0
- package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.d.mts +351 -0
- package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.mjs +796 -0
- package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-sql-serializer.mjs +260 -0
- package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.mts +79 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.mjs +162 -0
- package/esm/drivers/postgres/postgres-sync-adapter.mjs.map +1 -0
- package/esm/drivers/postgres/types.d.mts +105 -0
- package/esm/drivers/postgres/types.d.mts.map +1 -0
- package/esm/drivers/sql/sql-dialect.contract.d.mts +221 -0
- package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -0
- package/esm/drivers/sql/sql-types.d.mts +150 -0
- package/esm/drivers/sql/sql-types.d.mts.map +1 -0
- package/esm/errors/missing-data-source.error.d.mts +25 -0
- package/esm/errors/missing-data-source.error.d.mts.map +1 -0
- package/esm/errors/missing-data-source.error.mjs +31 -0
- package/esm/errors/missing-data-source.error.mjs.map +1 -0
- package/esm/errors/transaction-rollback.error.d.mts +23 -0
- package/esm/errors/transaction-rollback.error.d.mts.map +1 -0
- package/esm/errors/transaction-rollback.error.mjs +29 -0
- package/esm/errors/transaction-rollback.error.mjs.map +1 -0
- package/esm/events/model-events.d.mts +234 -0
- package/esm/events/model-events.d.mts.map +1 -0
- package/esm/events/model-events.mjs +254 -0
- package/esm/events/model-events.mjs.map +1 -0
- package/esm/expressions/aggregate-expressions.d.mts +224 -0
- package/esm/expressions/aggregate-expressions.d.mts.map +1 -0
- package/esm/expressions/aggregate-expressions.mjs +232 -0
- package/esm/expressions/aggregate-expressions.mjs.map +1 -0
- package/esm/index.d.mts +67 -0
- package/esm/index.mjs +53 -0
- package/esm/migration/column-builder.d.mts +420 -0
- package/esm/migration/column-builder.d.mts.map +1 -0
- package/esm/migration/column-builder.mjs +532 -0
- package/esm/migration/column-builder.mjs.map +1 -0
- package/esm/migration/column-helpers.d.mts +280 -0
- package/esm/migration/column-helpers.d.mts.map +1 -0
- package/esm/migration/column-helpers.mjs +376 -0
- package/esm/migration/column-helpers.mjs.map +1 -0
- package/esm/migration/foreign-key-builder.d.mts +106 -0
- package/esm/migration/foreign-key-builder.d.mts.map +1 -0
- package/esm/migration/foreign-key-builder.mjs +126 -0
- package/esm/migration/foreign-key-builder.mjs.map +1 -0
- package/esm/migration/index.d.mts +6 -0
- package/esm/migration/index.mjs +7 -0
- package/esm/migration/migration-runner.d.mts +279 -0
- package/esm/migration/migration-runner.d.mts.map +1 -0
- package/esm/migration/migration-runner.mjs +662 -0
- package/esm/migration/migration-runner.mjs.map +1 -0
- package/esm/migration/migration.d.mts +2035 -0
- package/esm/migration/migration.d.mts.map +1 -0
- package/esm/migration/migration.mjs +2083 -0
- package/esm/migration/migration.mjs.map +1 -0
- package/esm/migration/sql-grammar.mjs +115 -0
- package/esm/migration/sql-grammar.mjs.map +1 -0
- package/esm/migration/sql-serializer.d.mts +26 -0
- package/esm/migration/sql-serializer.d.mts.map +1 -0
- package/esm/migration/sql-serializer.mjs +26 -0
- package/esm/migration/sql-serializer.mjs.map +1 -0
- package/esm/migration/types.d.mts +136 -0
- package/esm/migration/types.d.mts.map +1 -0
- package/esm/model/methods/accessor-methods.mjs +54 -0
- package/esm/model/methods/accessor-methods.mjs.map +1 -0
- package/esm/model/methods/delete-methods.mjs +16 -0
- package/esm/model/methods/delete-methods.mjs.map +1 -0
- package/esm/model/methods/dirty-methods.mjs +20 -0
- package/esm/model/methods/dirty-methods.mjs.map +1 -0
- package/esm/model/methods/hydration-methods.mjs +51 -0
- package/esm/model/methods/hydration-methods.mjs.map +1 -0
- package/esm/model/methods/instance-event-methods.mjs +22 -0
- package/esm/model/methods/instance-event-methods.mjs.map +1 -0
- package/esm/model/methods/meta-methods.mjs +36 -0
- package/esm/model/methods/meta-methods.mjs.map +1 -0
- package/esm/model/methods/pivot-methods.mjs +48 -0
- package/esm/model/methods/pivot-methods.mjs.map +1 -0
- package/esm/model/methods/query-methods.mjs +121 -0
- package/esm/model/methods/query-methods.mjs.map +1 -0
- package/esm/model/methods/restore-methods.mjs +16 -0
- package/esm/model/methods/restore-methods.mjs.map +1 -0
- package/esm/model/methods/scope-methods.mjs +20 -0
- package/esm/model/methods/scope-methods.mjs.map +1 -0
- package/esm/model/methods/serialization-methods.mjs +20 -0
- package/esm/model/methods/serialization-methods.mjs.map +1 -0
- package/esm/model/methods/static-event-methods.mjs +37 -0
- package/esm/model/methods/static-event-methods.mjs.map +1 -0
- package/esm/model/methods/write-methods.mjs +69 -0
- package/esm/model/methods/write-methods.mjs.map +1 -0
- package/esm/model/model.d.mts +1778 -0
- package/esm/model/model.d.mts.map +1 -0
- package/esm/model/model.mjs +1762 -0
- package/esm/model/model.mjs.map +1 -0
- package/esm/model/model.types.d.mts +47 -0
- package/esm/model/model.types.d.mts.map +1 -0
- package/esm/model/register-model.d.mts +140 -0
- package/esm/model/register-model.d.mts.map +1 -0
- package/esm/model/register-model.mjs +175 -0
- package/esm/model/register-model.mjs.map +1 -0
- package/esm/model/relation-decorators.d.mts +88 -0
- package/esm/model/relation-decorators.d.mts.map +1 -0
- package/esm/model/relation-decorators.mjs +191 -0
- package/esm/model/relation-decorators.mjs.map +1 -0
- package/esm/operations/database.d.mts +46 -0
- package/esm/operations/database.d.mts.map +1 -0
- package/esm/operations/database.mjs +40 -0
- package/esm/operations/database.mjs.map +1 -0
- package/esm/operations/index.d.mts +2 -0
- package/esm/operations/index.mjs +4 -0
- package/esm/operations/migrations.d.mts +71 -0
- package/esm/operations/migrations.d.mts.map +1 -0
- package/esm/operations/migrations.mjs +70 -0
- package/esm/operations/migrations.mjs.map +1 -0
- package/esm/query-builder/query-builder.d.mts +564 -0
- package/esm/query-builder/query-builder.d.mts.map +1 -0
- package/esm/query-builder/query-builder.mjs +1097 -0
- package/esm/query-builder/query-builder.mjs.map +1 -0
- package/esm/relations/index.d.mts +4 -0
- package/esm/relations/index.mjs +5 -0
- package/esm/relations/key-conventions.mjs +119 -0
- package/esm/relations/key-conventions.mjs.map +1 -0
- package/esm/relations/pivot-operations.d.mts +155 -0
- package/esm/relations/pivot-operations.d.mts.map +1 -0
- package/esm/relations/pivot-operations.mjs +232 -0
- package/esm/relations/pivot-operations.mjs.map +1 -0
- package/esm/relations/relation-hydrator.d.mts +55 -0
- package/esm/relations/relation-hydrator.d.mts.map +1 -0
- package/esm/relations/relation-hydrator.mjs +52 -0
- package/esm/relations/relation-hydrator.mjs.map +1 -0
- package/esm/relations/relation-loader.d.mts +190 -0
- package/esm/relations/relation-loader.d.mts.map +1 -0
- package/esm/relations/relation-loader.mjs +416 -0
- package/esm/relations/relation-loader.mjs.map +1 -0
- package/esm/relations/types.d.mts +317 -0
- package/esm/relations/types.d.mts.map +1 -0
- package/esm/remover/database-remover.d.mts +104 -0
- package/esm/remover/database-remover.d.mts.map +1 -0
- package/esm/remover/database-remover.mjs +174 -0
- package/esm/remover/database-remover.mjs.map +1 -0
- package/esm/restorer/database-restorer.d.mts +135 -0
- package/esm/restorer/database-restorer.d.mts.map +1 -0
- package/esm/restorer/database-restorer.mjs +316 -0
- package/esm/restorer/database-restorer.mjs.map +1 -0
- package/esm/sql-database-dirty-tracker.d.mts +17 -0
- package/esm/sql-database-dirty-tracker.d.mts.map +1 -0
- package/esm/sql-database-dirty-tracker.mjs +20 -0
- package/esm/sql-database-dirty-tracker.mjs.map +1 -0
- package/esm/sync/model-events.mjs +46 -0
- package/esm/sync/model-events.mjs.map +1 -0
- package/esm/sync/model-sync-operation.d.mts +159 -0
- package/esm/sync/model-sync-operation.d.mts.map +1 -0
- package/esm/sync/model-sync-operation.mjs +257 -0
- package/esm/sync/model-sync-operation.mjs.map +1 -0
- package/esm/sync/model-sync.d.mts +126 -0
- package/esm/sync/model-sync.d.mts.map +1 -0
- package/esm/sync/model-sync.mjs +157 -0
- package/esm/sync/model-sync.mjs.map +1 -0
- package/esm/sync/sync-context.d.mts +69 -0
- package/esm/sync/sync-context.d.mts.map +1 -0
- package/esm/sync/sync-context.mjs +95 -0
- package/esm/sync/sync-context.mjs.map +1 -0
- package/esm/sync/sync-manager.d.mts +213 -0
- package/esm/sync/sync-manager.d.mts.map +1 -0
- package/esm/sync/sync-manager.mjs +597 -0
- package/esm/sync/sync-manager.mjs.map +1 -0
- package/esm/sync/types.d.mts +215 -0
- package/esm/sync/types.d.mts.map +1 -0
- package/esm/types.d.mts +423 -0
- package/esm/types.d.mts.map +1 -0
- package/esm/utils/connect-to-database.d.mts +328 -0
- package/esm/utils/connect-to-database.d.mts.map +1 -0
- package/esm/utils/connect-to-database.mjs +130 -0
- package/esm/utils/connect-to-database.mjs.map +1 -0
- package/esm/utils/database-writer.utils.d.mts +18 -0
- package/esm/utils/database-writer.utils.d.mts.map +1 -0
- package/esm/utils/database-writer.utils.mjs +25 -0
- package/esm/utils/database-writer.utils.mjs.map +1 -0
- package/esm/utils/define-model.d.mts +185 -0
- package/esm/utils/define-model.d.mts.map +1 -0
- package/esm/utils/define-model.mjs +105 -0
- package/esm/utils/define-model.mjs.map +1 -0
- package/esm/utils/is-valid-date-value.mjs +22 -0
- package/esm/utils/is-valid-date-value.mjs.map +1 -0
- package/esm/utils/once-connected.d.mts +150 -0
- package/esm/utils/once-connected.d.mts.map +1 -0
- package/esm/utils/once-connected.mjs +203 -0
- package/esm/utils/once-connected.mjs.map +1 -0
- package/esm/validation/database-seal-plugins.d.mts +1 -0
- package/esm/validation/database-seal-plugins.mjs +11 -0
- package/esm/validation/database-seal-plugins.mjs.map +1 -0
- package/esm/validation/database-writer-validation-error.d.mts +101 -0
- package/esm/validation/database-writer-validation-error.d.mts.map +1 -0
- package/esm/validation/database-writer-validation-error.mjs +153 -0
- package/esm/validation/database-writer-validation-error.mjs.map +1 -0
- package/esm/validation/index.d.mts +2 -0
- package/esm/validation/index.mjs +4 -0
- package/esm/validation/mutators/embed-mutator.mjs +26 -0
- package/esm/validation/mutators/embed-mutator.mjs.map +1 -0
- package/esm/validation/plugins/database-rules-plugin.d.mts +28 -0
- package/esm/validation/plugins/database-rules-plugin.d.mts.map +1 -0
- package/esm/validation/plugins/database-rules-plugin.mjs +43 -0
- package/esm/validation/plugins/database-rules-plugin.mjs.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.d.mts +17 -0
- package/esm/validation/plugins/embed-validator-plugin.d.mts.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.mjs +20 -0
- package/esm/validation/plugins/embed-validator-plugin.mjs.map +1 -0
- package/esm/validation/rules/database-model-rule.mjs +32 -0
- package/esm/validation/rules/database-model-rule.mjs.map +1 -0
- package/esm/validation/rules/exists-rule.mjs +29 -0
- package/esm/validation/rules/exists-rule.mjs.map +1 -0
- package/esm/validation/rules/unique-rule.mjs +43 -0
- package/esm/validation/rules/unique-rule.mjs.map +1 -0
- package/esm/validation/transformers/embed-model-transformer.mjs +17 -0
- package/esm/validation/transformers/embed-model-transformer.mjs.map +1 -0
- package/esm/validation/types.d.mts +43 -0
- package/esm/validation/types.d.mts.map +1 -0
- package/esm/validation/validators/embed-validator.d.mts +25 -0
- package/esm/validation/validators/embed-validator.d.mts.map +1 -0
- package/esm/validation/validators/embed-validator.mjs +42 -0
- package/esm/validation/validators/embed-validator.mjs.map +1 -0
- package/esm/writer/database-writer.d.mts +178 -0
- package/esm/writer/database-writer.d.mts.map +1 -0
- package/esm/writer/database-writer.mjs +317 -0
- package/esm/writer/database-writer.mjs.map +1 -0
- package/llms-full.txt +2027 -0
- package/llms.txt +23 -0
- package/package.json +60 -51
- package/skills/README.md +65 -0
- package/skills/aggregate-data/SKILL.md +102 -0
- package/skills/cascade-basics/SKILL.md +93 -0
- package/skills/configure-delete-strategy/SKILL.md +126 -0
- package/skills/define-model/SKILL.md +170 -0
- package/skills/define-relations/SKILL.md +171 -0
- package/skills/manage-data-sources/SKILL.md +140 -0
- package/skills/manage-transactions/SKILL.md +118 -0
- package/skills/paginate-results/SKILL.md +122 -0
- package/skills/perform-atomic-ops/SKILL.md +98 -0
- package/skills/query-data/SKILL.md +168 -0
- package/skills/run-cascade-cli/SKILL.md +125 -0
- package/skills/search-by-vector/SKILL.md +127 -0
- package/skills/subscribe-to-model-events/SKILL.md +148 -0
- package/skills/track-changes/SKILL.md +109 -0
- package/skills/write-migration/SKILL.md +144 -0
- package/cjs/context/database-data-source-context.d.ts +0 -29
- package/cjs/context/database-data-source-context.d.ts.map +0 -1
- package/cjs/context/database-data-source-context.js +0 -28
- package/cjs/context/database-data-source-context.js.map +0 -1
- package/cjs/context/database-transaction-context.d.ts +0 -35
- package/cjs/context/database-transaction-context.d.ts.map +0 -1
- package/cjs/context/database-transaction-context.js +0 -40
- package/cjs/context/database-transaction-context.js.map +0 -1
- package/cjs/contracts/database-driver.contract.d.ts +0 -450
- package/cjs/contracts/database-driver.contract.d.ts.map +0 -1
- package/cjs/contracts/database-id-generator.contract.d.ts +0 -109
- package/cjs/contracts/database-id-generator.contract.d.ts.map +0 -1
- package/cjs/contracts/database-remover.contract.d.ts +0 -104
- package/cjs/contracts/database-remover.contract.d.ts.map +0 -1
- package/cjs/contracts/database-restorer.contract.d.ts +0 -143
- package/cjs/contracts/database-restorer.contract.d.ts.map +0 -1
- package/cjs/contracts/database-writer.contract.d.ts +0 -119
- package/cjs/contracts/database-writer.contract.d.ts.map +0 -1
- package/cjs/contracts/driver-blueprint.contract.d.ts +0 -49
- package/cjs/contracts/driver-blueprint.contract.d.ts.map +0 -1
- package/cjs/contracts/index.d.ts +0 -10
- package/cjs/contracts/index.d.ts.map +0 -1
- package/cjs/contracts/migration-driver.contract.d.ts +0 -522
- package/cjs/contracts/migration-driver.contract.d.ts.map +0 -1
- package/cjs/contracts/query-builder.contract.d.ts +0 -1609
- package/cjs/contracts/query-builder.contract.d.ts.map +0 -1
- package/cjs/contracts/sync-adapter.contract.d.ts +0 -58
- package/cjs/contracts/sync-adapter.contract.d.ts.map +0 -1
- package/cjs/data-source/data-source-registry.d.ts +0 -108
- package/cjs/data-source/data-source-registry.d.ts.map +0 -1
- package/cjs/data-source/data-source-registry.js +0 -145
- package/cjs/data-source/data-source-registry.js.map +0 -1
- package/cjs/data-source/data-source.d.ts +0 -147
- package/cjs/data-source/data-source.d.ts.map +0 -1
- package/cjs/data-source/data-source.js +0 -83
- package/cjs/data-source/data-source.js.map +0 -1
- package/cjs/database-dirty-tracker.d.ts +0 -252
- package/cjs/database-dirty-tracker.d.ts.map +0 -1
- package/cjs/database-dirty-tracker.js +0 -386
- package/cjs/database-dirty-tracker.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
- package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-blueprint.js +0 -51
- package/cjs/drivers/mongodb/mongodb-blueprint.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-driver.d.ts +0 -325
- package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-driver.js +0 -845
- package/cjs/drivers/mongodb/mongodb-driver.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
- package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-id-generator.js +0 -149
- package/cjs/drivers/mongodb/mongodb-id-generator.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
- package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-migration-driver.js +0 -666
- package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
- package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-builder.js +0 -1988
- package/cjs/drivers/mongodb/mongodb-query-builder.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
- package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-operations.js +0 -270
- package/cjs/drivers/mongodb/mongodb-query-operations.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
- package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-parser.js +0 -1351
- package/cjs/drivers/mongodb/mongodb-query-parser.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
- package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-sync-adapter.js +0 -146
- package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
- package/cjs/drivers/mongodb/types.d.ts +0 -43
- package/cjs/drivers/mongodb/types.d.ts.map +0 -1
- package/cjs/drivers/postgres/index.d.ts +0 -16
- package/cjs/drivers/postgres/index.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-blueprint.d.ts +0 -64
- package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-blueprint.js +0 -121
- package/cjs/drivers/postgres/postgres-blueprint.js.map +0 -1
- package/cjs/drivers/postgres/postgres-dialect.d.ts +0 -136
- package/cjs/drivers/postgres/postgres-dialect.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-dialect.js +0 -268
- package/cjs/drivers/postgres/postgres-dialect.js.map +0 -1
- package/cjs/drivers/postgres/postgres-driver.d.ts +0 -432
- package/cjs/drivers/postgres/postgres-driver.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-driver.js +0 -1008
- package/cjs/drivers/postgres/postgres-driver.js.map +0 -1
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts +0 -397
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-migration-driver.js +0 -900
- package/cjs/drivers/postgres/postgres-migration-driver.js.map +0 -1
- package/cjs/drivers/postgres/postgres-query-builder.d.ts +0 -254
- package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-query-builder.js +0 -933
- package/cjs/drivers/postgres/postgres-query-builder.js.map +0 -1
- package/cjs/drivers/postgres/postgres-query-parser.d.ts +0 -328
- package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-query-parser.js +0 -868
- package/cjs/drivers/postgres/postgres-query-parser.js.map +0 -1
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-sql-serializer.js +0 -400
- package/cjs/drivers/postgres/postgres-sql-serializer.js.map +0 -1
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-sync-adapter.js +0 -204
- package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
- package/cjs/drivers/postgres/types.d.ts +0 -144
- package/cjs/drivers/postgres/types.d.ts.map +0 -1
- package/cjs/drivers/sql/index.d.ts +0 -10
- package/cjs/drivers/sql/index.d.ts.map +0 -1
- package/cjs/drivers/sql/sql-dialect.contract.d.ts +0 -204
- package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
- package/cjs/drivers/sql/sql-types.d.ts +0 -202
- package/cjs/drivers/sql/sql-types.d.ts.map +0 -1
- package/cjs/errors/missing-data-source.error.d.ts +0 -22
- package/cjs/errors/missing-data-source.error.d.ts.map +0 -1
- package/cjs/errors/missing-data-source.error.js +0 -29
- package/cjs/errors/missing-data-source.error.js.map +0 -1
- package/cjs/errors/transaction-rollback.error.d.ts +0 -20
- package/cjs/errors/transaction-rollback.error.d.ts.map +0 -1
- package/cjs/errors/transaction-rollback.error.js +0 -27
- package/cjs/errors/transaction-rollback.error.js.map +0 -1
- package/cjs/events/model-events.d.ts +0 -231
- package/cjs/events/model-events.d.ts.map +0 -1
- package/cjs/events/model-events.js +0 -259
- package/cjs/events/model-events.js.map +0 -1
- package/cjs/expressions/aggregate-expressions.d.ts +0 -215
- package/cjs/expressions/aggregate-expressions.d.ts.map +0 -1
- package/cjs/expressions/aggregate-expressions.js +0 -221
- package/cjs/expressions/aggregate-expressions.js.map +0 -1
- package/cjs/expressions/index.d.ts +0 -2
- package/cjs/expressions/index.d.ts.map +0 -1
- package/cjs/index.d.ts +0 -45
- package/cjs/index.d.ts.map +0 -1
- package/cjs/index.js +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/migration/column-builder.d.ts +0 -417
- package/cjs/migration/column-builder.d.ts.map +0 -1
- package/cjs/migration/column-builder.js +0 -586
- package/cjs/migration/column-builder.js.map +0 -1
- package/cjs/migration/column-helpers.d.ts +0 -275
- package/cjs/migration/column-helpers.d.ts.map +0 -1
- package/cjs/migration/column-helpers.js +0 -389
- package/cjs/migration/column-helpers.js.map +0 -1
- package/cjs/migration/foreign-key-builder.d.ts +0 -103
- package/cjs/migration/foreign-key-builder.d.ts.map +0 -1
- package/cjs/migration/foreign-key-builder.js +0 -121
- package/cjs/migration/foreign-key-builder.js.map +0 -1
- package/cjs/migration/index.d.ts +0 -7
- package/cjs/migration/index.d.ts.map +0 -1
- package/cjs/migration/migration-runner.d.ts +0 -278
- package/cjs/migration/migration-runner.d.ts.map +0 -1
- package/cjs/migration/migration-runner.js +0 -815
- package/cjs/migration/migration-runner.js.map +0 -1
- package/cjs/migration/migration.d.ts +0 -1988
- package/cjs/migration/migration.d.ts.map +0 -1
- package/cjs/migration/migration.js +0 -2162
- package/cjs/migration/migration.js.map +0 -1
- package/cjs/migration/sql-grammar.d.ts +0 -61
- package/cjs/migration/sql-grammar.d.ts.map +0 -1
- package/cjs/migration/sql-grammar.js +0 -164
- package/cjs/migration/sql-grammar.js.map +0 -1
- package/cjs/migration/sql-serializer.d.ts +0 -22
- package/cjs/migration/sql-serializer.d.ts.map +0 -1
- package/cjs/migration/sql-serializer.js +0 -26
- package/cjs/migration/sql-serializer.js.map +0 -1
- package/cjs/migration/types.d.ts +0 -155
- package/cjs/migration/types.d.ts.map +0 -1
- package/cjs/model/methods/accessor-methods.d.ts +0 -13
- package/cjs/model/methods/accessor-methods.d.ts.map +0 -1
- package/cjs/model/methods/accessor-methods.js +0 -51
- package/cjs/model/methods/accessor-methods.js.map +0 -1
- package/cjs/model/methods/delete-methods.d.ts +0 -10
- package/cjs/model/methods/delete-methods.d.ts.map +0 -1
- package/cjs/model/methods/delete-methods.js +0 -10
- package/cjs/model/methods/delete-methods.js.map +0 -1
- package/cjs/model/methods/dirty-methods.d.ts +0 -10
- package/cjs/model/methods/dirty-methods.d.ts.map +0 -1
- package/cjs/model/methods/dirty-methods.js +0 -15
- package/cjs/model/methods/dirty-methods.js.map +0 -1
- package/cjs/model/methods/hydration-methods.d.ts +0 -10
- package/cjs/model/methods/hydration-methods.d.ts.map +0 -1
- package/cjs/model/methods/hydration-methods.js +0 -57
- package/cjs/model/methods/hydration-methods.js.map +0 -1
- package/cjs/model/methods/instance-event-methods.d.ts +0 -7
- package/cjs/model/methods/instance-event-methods.d.ts.map +0 -1
- package/cjs/model/methods/instance-event-methods.js +0 -15
- package/cjs/model/methods/instance-event-methods.js.map +0 -1
- package/cjs/model/methods/meta-methods.d.ts +0 -7
- package/cjs/model/methods/meta-methods.d.ts.map +0 -1
- package/cjs/model/methods/meta-methods.js +0 -78
- package/cjs/model/methods/meta-methods.js.map +0 -1
- package/cjs/model/methods/query-methods.d.ts +0 -24
- package/cjs/model/methods/query-methods.d.ts.map +0 -1
- package/cjs/model/methods/query-methods.js +0 -164
- package/cjs/model/methods/query-methods.js.map +0 -1
- package/cjs/model/methods/restore-methods.d.ts +0 -10
- package/cjs/model/methods/restore-methods.d.ts.map +0 -1
- package/cjs/model/methods/restore-methods.js +0 -13
- package/cjs/model/methods/restore-methods.js.map +0 -1
- package/cjs/model/methods/scope-methods.d.ts +0 -7
- package/cjs/model/methods/scope-methods.d.ts.map +0 -1
- package/cjs/model/methods/scope-methods.js +0 -15
- package/cjs/model/methods/scope-methods.js.map +0 -1
- package/cjs/model/methods/serialization-methods.d.ts +0 -3
- package/cjs/model/methods/serialization-methods.d.ts.map +0 -1
- package/cjs/model/methods/serialization-methods.js +0 -27
- package/cjs/model/methods/serialization-methods.js.map +0 -1
- package/cjs/model/methods/static-event-methods.d.ts +0 -9
- package/cjs/model/methods/static-event-methods.d.ts.map +0 -1
- package/cjs/model/methods/static-event-methods.js +0 -29
- package/cjs/model/methods/static-event-methods.js.map +0 -1
- package/cjs/model/methods/write-methods.d.ts +0 -10
- package/cjs/model/methods/write-methods.d.ts.map +0 -1
- package/cjs/model/methods/write-methods.js +0 -52
- package/cjs/model/methods/write-methods.js.map +0 -1
- package/cjs/model/model.d.ts +0 -1647
- package/cjs/model/model.d.ts.map +0 -1
- package/cjs/model/model.js +0 -1657
- package/cjs/model/model.js.map +0 -1
- package/cjs/model/model.types.d.ts +0 -44
- package/cjs/model/model.types.d.ts.map +0 -1
- package/cjs/model/register-model.d.ts +0 -81
- package/cjs/model/register-model.d.ts.map +0 -1
- package/cjs/model/register-model.js +0 -94
- package/cjs/model/register-model.js.map +0 -1
- package/cjs/query-builder/query-builder.d.ts +0 -556
- package/cjs/query-builder/query-builder.d.ts.map +0 -1
- package/cjs/query-builder/query-builder.js +0 -1070
- package/cjs/query-builder/query-builder.js.map +0 -1
- package/cjs/relations/helpers.d.ts +0 -156
- package/cjs/relations/helpers.d.ts.map +0 -1
- package/cjs/relations/helpers.js +0 -202
- package/cjs/relations/helpers.js.map +0 -1
- package/cjs/relations/index.d.ts +0 -35
- package/cjs/relations/index.d.ts.map +0 -1
- package/cjs/relations/pivot-operations.d.ts +0 -160
- package/cjs/relations/pivot-operations.d.ts.map +0 -1
- package/cjs/relations/pivot-operations.js +0 -293
- package/cjs/relations/pivot-operations.js.map +0 -1
- package/cjs/relations/relation-hydrator.d.ts +0 -68
- package/cjs/relations/relation-hydrator.d.ts.map +0 -1
- package/cjs/relations/relation-hydrator.js +0 -81
- package/cjs/relations/relation-hydrator.js.map +0 -1
- package/cjs/relations/relation-loader.d.ts +0 -194
- package/cjs/relations/relation-loader.d.ts.map +0 -1
- package/cjs/relations/relation-loader.js +0 -466
- package/cjs/relations/relation-loader.js.map +0 -1
- package/cjs/relations/types.d.ts +0 -306
- package/cjs/relations/types.d.ts.map +0 -1
- package/cjs/remover/database-remover.d.ts +0 -100
- package/cjs/remover/database-remover.d.ts.map +0 -1
- package/cjs/remover/database-remover.js +0 -214
- package/cjs/remover/database-remover.js.map +0 -1
- package/cjs/restorer/database-restorer.d.ts +0 -131
- package/cjs/restorer/database-restorer.d.ts.map +0 -1
- package/cjs/restorer/database-restorer.js +0 -434
- package/cjs/restorer/database-restorer.js.map +0 -1
- package/cjs/sql-database-dirty-tracker.d.ts +0 -13
- package/cjs/sql-database-dirty-tracker.d.ts.map +0 -1
- package/cjs/sql-database-dirty-tracker.js +0 -14
- package/cjs/sql-database-dirty-tracker.js.map +0 -1
- package/cjs/sync/index.d.ts +0 -12
- package/cjs/sync/index.d.ts.map +0 -1
- package/cjs/sync/model-events.d.ts +0 -62
- package/cjs/sync/model-events.d.ts.map +0 -1
- package/cjs/sync/model-events.js +0 -49
- package/cjs/sync/model-events.js.map +0 -1
- package/cjs/sync/model-sync-operation.d.ts +0 -163
- package/cjs/sync/model-sync-operation.d.ts.map +0 -1
- package/cjs/sync/model-sync-operation.js +0 -292
- package/cjs/sync/model-sync-operation.js.map +0 -1
- package/cjs/sync/model-sync.d.ts +0 -130
- package/cjs/sync/model-sync.d.ts.map +0 -1
- package/cjs/sync/model-sync.js +0 -178
- package/cjs/sync/model-sync.js.map +0 -1
- package/cjs/sync/sync-context.d.ts +0 -70
- package/cjs/sync/sync-context.d.ts.map +0 -1
- package/cjs/sync/sync-context.js +0 -101
- package/cjs/sync/sync-context.js.map +0 -1
- package/cjs/sync/sync-manager.d.ts +0 -213
- package/cjs/sync/sync-manager.d.ts.map +0 -1
- package/cjs/sync/sync-manager.js +0 -689
- package/cjs/sync/sync-manager.js.map +0 -1
- package/cjs/sync/types.d.ts +0 -289
- package/cjs/sync/types.d.ts.map +0 -1
- package/cjs/test-migrations/test-enhanced-features.migration.d.ts +0 -15
- package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
- package/cjs/types.d.ts +0 -371
- package/cjs/types.d.ts.map +0 -1
- package/cjs/utils/connect-to-database.d.ts +0 -307
- package/cjs/utils/connect-to-database.d.ts.map +0 -1
- package/cjs/utils/connect-to-database.js +0 -130
- package/cjs/utils/connect-to-database.js.map +0 -1
- package/cjs/utils/database-writer.utils.d.ts +0 -15
- package/cjs/utils/database-writer.utils.d.ts.map +0 -1
- package/cjs/utils/database-writer.utils.js +0 -14
- package/cjs/utils/database-writer.utils.js.map +0 -1
- package/cjs/utils/define-model.js +0 -100
- package/cjs/utils/define-model.js.map +0 -1
- package/cjs/utils/is-valid-date-value.d.ts +0 -5
- package/cjs/utils/is-valid-date-value.d.ts.map +0 -1
- package/cjs/utils/is-valid-date-value.js +0 -25
- package/cjs/utils/is-valid-date-value.js.map +0 -1
- package/cjs/utils/once-connected.d.ts +0 -146
- package/cjs/utils/once-connected.d.ts.map +0 -1
- package/cjs/utils/once-connected.js +0 -251
- package/cjs/utils/once-connected.js.map +0 -1
- package/cjs/validation/database-seal-plugins.d.ts +0 -12
- package/cjs/validation/database-seal-plugins.d.ts.map +0 -1
- package/cjs/validation/database-seal-plugins.js +0 -1
- package/cjs/validation/database-seal-plugins.js.map +0 -1
- package/cjs/validation/database-writer-validation-error.d.ts +0 -97
- package/cjs/validation/database-writer-validation-error.d.ts.map +0 -1
- package/cjs/validation/database-writer-validation-error.js +0 -160
- package/cjs/validation/database-writer-validation-error.js.map +0 -1
- package/cjs/validation/index.d.ts +0 -3
- package/cjs/validation/index.d.ts.map +0 -1
- package/cjs/validation/mutators/embed-mutator.d.ts +0 -9
- package/cjs/validation/mutators/embed-mutator.d.ts.map +0 -1
- package/cjs/validation/mutators/embed-mutator.js +0 -33
- package/cjs/validation/mutators/embed-mutator.js.map +0 -1
- package/cjs/validation/plugins/embed-validator-plugin.d.ts +0 -24
- package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
- package/cjs/validation/plugins/embed-validator-plugin.js +0 -18
- package/cjs/validation/plugins/embed-validator-plugin.js.map +0 -1
- package/cjs/validation/rules/database-model-rule.d.ts +0 -7
- package/cjs/validation/rules/database-model-rule.d.ts.map +0 -1
- package/cjs/validation/rules/database-model-rule.js +0 -27
- package/cjs/validation/rules/database-model-rule.js.map +0 -1
- package/cjs/validation/transformers/embed-model-transformer.d.ts +0 -3
- package/cjs/validation/transformers/embed-model-transformer.d.ts.map +0 -1
- package/cjs/validation/transformers/embed-model-transformer.js +0 -18
- package/cjs/validation/transformers/embed-model-transformer.js.map +0 -1
- package/cjs/validation/validators/embed-validator.d.ts +0 -21
- package/cjs/validation/validators/embed-validator.d.ts.map +0 -1
- package/cjs/validation/validators/embed-validator.js +0 -43
- package/cjs/validation/validators/embed-validator.js.map +0 -1
- package/cjs/writer/database-writer.d.ts +0 -174
- package/cjs/writer/database-writer.d.ts.map +0 -1
- package/cjs/writer/database-writer.js +0 -400
- package/cjs/writer/database-writer.js.map +0 -1
- package/esm/context/database-data-source-context.d.ts +0 -29
- package/esm/context/database-data-source-context.d.ts.map +0 -1
- package/esm/context/database-data-source-context.js +0 -28
- package/esm/context/database-data-source-context.js.map +0 -1
- package/esm/context/database-transaction-context.d.ts +0 -35
- package/esm/context/database-transaction-context.d.ts.map +0 -1
- package/esm/context/database-transaction-context.js +0 -40
- package/esm/context/database-transaction-context.js.map +0 -1
- package/esm/contracts/database-driver.contract.d.ts +0 -450
- package/esm/contracts/database-driver.contract.d.ts.map +0 -1
- package/esm/contracts/database-id-generator.contract.d.ts +0 -109
- package/esm/contracts/database-id-generator.contract.d.ts.map +0 -1
- package/esm/contracts/database-remover.contract.d.ts +0 -104
- package/esm/contracts/database-remover.contract.d.ts.map +0 -1
- package/esm/contracts/database-restorer.contract.d.ts +0 -143
- package/esm/contracts/database-restorer.contract.d.ts.map +0 -1
- package/esm/contracts/database-writer.contract.d.ts +0 -119
- package/esm/contracts/database-writer.contract.d.ts.map +0 -1
- package/esm/contracts/driver-blueprint.contract.d.ts +0 -49
- package/esm/contracts/driver-blueprint.contract.d.ts.map +0 -1
- package/esm/contracts/index.d.ts +0 -10
- package/esm/contracts/index.d.ts.map +0 -1
- package/esm/contracts/migration-driver.contract.d.ts +0 -522
- package/esm/contracts/migration-driver.contract.d.ts.map +0 -1
- package/esm/contracts/query-builder.contract.d.ts +0 -1609
- package/esm/contracts/query-builder.contract.d.ts.map +0 -1
- package/esm/contracts/sync-adapter.contract.d.ts +0 -58
- package/esm/contracts/sync-adapter.contract.d.ts.map +0 -1
- package/esm/data-source/data-source-registry.d.ts +0 -108
- package/esm/data-source/data-source-registry.d.ts.map +0 -1
- package/esm/data-source/data-source-registry.js +0 -145
- package/esm/data-source/data-source-registry.js.map +0 -1
- package/esm/data-source/data-source.d.ts +0 -147
- package/esm/data-source/data-source.d.ts.map +0 -1
- package/esm/data-source/data-source.js +0 -83
- package/esm/data-source/data-source.js.map +0 -1
- package/esm/database-dirty-tracker.d.ts +0 -252
- package/esm/database-dirty-tracker.d.ts.map +0 -1
- package/esm/database-dirty-tracker.js +0 -386
- package/esm/database-dirty-tracker.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
- package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-blueprint.js +0 -51
- package/esm/drivers/mongodb/mongodb-blueprint.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-driver.d.ts +0 -325
- package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-driver.js +0 -845
- package/esm/drivers/mongodb/mongodb-driver.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
- package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-id-generator.js +0 -149
- package/esm/drivers/mongodb/mongodb-id-generator.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
- package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-migration-driver.js +0 -666
- package/esm/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
- package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-builder.js +0 -1988
- package/esm/drivers/mongodb/mongodb-query-builder.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
- package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-operations.js +0 -270
- package/esm/drivers/mongodb/mongodb-query-operations.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
- package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-parser.js +0 -1351
- package/esm/drivers/mongodb/mongodb-query-parser.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-sync-adapter.js +0 -146
- package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
- package/esm/drivers/mongodb/types.d.ts +0 -43
- package/esm/drivers/mongodb/types.d.ts.map +0 -1
- package/esm/drivers/postgres/index.d.ts +0 -16
- package/esm/drivers/postgres/index.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-blueprint.d.ts +0 -64
- package/esm/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-blueprint.js +0 -121
- package/esm/drivers/postgres/postgres-blueprint.js.map +0 -1
- package/esm/drivers/postgres/postgres-dialect.d.ts +0 -136
- package/esm/drivers/postgres/postgres-dialect.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-dialect.js +0 -268
- package/esm/drivers/postgres/postgres-dialect.js.map +0 -1
- package/esm/drivers/postgres/postgres-driver.d.ts +0 -432
- package/esm/drivers/postgres/postgres-driver.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-driver.js +0 -1008
- package/esm/drivers/postgres/postgres-driver.js.map +0 -1
- package/esm/drivers/postgres/postgres-migration-driver.d.ts +0 -397
- package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-migration-driver.js +0 -900
- package/esm/drivers/postgres/postgres-migration-driver.js.map +0 -1
- package/esm/drivers/postgres/postgres-query-builder.d.ts +0 -254
- package/esm/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-query-builder.js +0 -933
- package/esm/drivers/postgres/postgres-query-builder.js.map +0 -1
- package/esm/drivers/postgres/postgres-query-parser.d.ts +0 -328
- package/esm/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-query-parser.js +0 -868
- package/esm/drivers/postgres/postgres-query-parser.js.map +0 -1
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-sql-serializer.js +0 -400
- package/esm/drivers/postgres/postgres-sql-serializer.js.map +0 -1
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-sync-adapter.js +0 -204
- package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
- package/esm/drivers/postgres/types.d.ts +0 -144
- package/esm/drivers/postgres/types.d.ts.map +0 -1
- package/esm/drivers/sql/index.d.ts +0 -10
- package/esm/drivers/sql/index.d.ts.map +0 -1
- package/esm/drivers/sql/sql-dialect.contract.d.ts +0 -204
- package/esm/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
- package/esm/drivers/sql/sql-types.d.ts +0 -202
- package/esm/drivers/sql/sql-types.d.ts.map +0 -1
- package/esm/errors/missing-data-source.error.d.ts +0 -22
- package/esm/errors/missing-data-source.error.d.ts.map +0 -1
- package/esm/errors/missing-data-source.error.js +0 -29
- package/esm/errors/missing-data-source.error.js.map +0 -1
- package/esm/errors/transaction-rollback.error.d.ts +0 -20
- package/esm/errors/transaction-rollback.error.d.ts.map +0 -1
- package/esm/errors/transaction-rollback.error.js +0 -27
- package/esm/errors/transaction-rollback.error.js.map +0 -1
- package/esm/events/model-events.d.ts +0 -231
- package/esm/events/model-events.d.ts.map +0 -1
- package/esm/events/model-events.js +0 -259
- package/esm/events/model-events.js.map +0 -1
- package/esm/expressions/aggregate-expressions.d.ts +0 -215
- package/esm/expressions/aggregate-expressions.d.ts.map +0 -1
- package/esm/expressions/aggregate-expressions.js +0 -221
- package/esm/expressions/aggregate-expressions.js.map +0 -1
- package/esm/expressions/index.d.ts +0 -2
- package/esm/expressions/index.d.ts.map +0 -1
- package/esm/index.d.ts +0 -45
- package/esm/index.d.ts.map +0 -1
- package/esm/index.js +0 -1
- package/esm/index.js.map +0 -1
- package/esm/migration/column-builder.d.ts +0 -417
- package/esm/migration/column-builder.d.ts.map +0 -1
- package/esm/migration/column-builder.js +0 -586
- package/esm/migration/column-builder.js.map +0 -1
- package/esm/migration/column-helpers.d.ts +0 -275
- package/esm/migration/column-helpers.d.ts.map +0 -1
- package/esm/migration/column-helpers.js +0 -389
- package/esm/migration/column-helpers.js.map +0 -1
- package/esm/migration/foreign-key-builder.d.ts +0 -103
- package/esm/migration/foreign-key-builder.d.ts.map +0 -1
- package/esm/migration/foreign-key-builder.js +0 -121
- package/esm/migration/foreign-key-builder.js.map +0 -1
- package/esm/migration/index.d.ts +0 -7
- package/esm/migration/index.d.ts.map +0 -1
- package/esm/migration/migration-runner.d.ts +0 -278
- package/esm/migration/migration-runner.d.ts.map +0 -1
- package/esm/migration/migration-runner.js +0 -815
- package/esm/migration/migration-runner.js.map +0 -1
- package/esm/migration/migration.d.ts +0 -1988
- package/esm/migration/migration.d.ts.map +0 -1
- package/esm/migration/migration.js +0 -2162
- package/esm/migration/migration.js.map +0 -1
- package/esm/migration/sql-grammar.d.ts +0 -61
- package/esm/migration/sql-grammar.d.ts.map +0 -1
- package/esm/migration/sql-grammar.js +0 -164
- package/esm/migration/sql-grammar.js.map +0 -1
- package/esm/migration/sql-serializer.d.ts +0 -22
- package/esm/migration/sql-serializer.d.ts.map +0 -1
- package/esm/migration/sql-serializer.js +0 -26
- package/esm/migration/sql-serializer.js.map +0 -1
- package/esm/migration/types.d.ts +0 -155
- package/esm/migration/types.d.ts.map +0 -1
- package/esm/model/methods/accessor-methods.d.ts +0 -13
- package/esm/model/methods/accessor-methods.d.ts.map +0 -1
- package/esm/model/methods/accessor-methods.js +0 -51
- package/esm/model/methods/accessor-methods.js.map +0 -1
- package/esm/model/methods/delete-methods.d.ts +0 -10
- package/esm/model/methods/delete-methods.d.ts.map +0 -1
- package/esm/model/methods/delete-methods.js +0 -10
- package/esm/model/methods/delete-methods.js.map +0 -1
- package/esm/model/methods/dirty-methods.d.ts +0 -10
- package/esm/model/methods/dirty-methods.d.ts.map +0 -1
- package/esm/model/methods/dirty-methods.js +0 -15
- package/esm/model/methods/dirty-methods.js.map +0 -1
- package/esm/model/methods/hydration-methods.d.ts +0 -10
- package/esm/model/methods/hydration-methods.d.ts.map +0 -1
- package/esm/model/methods/hydration-methods.js +0 -57
- package/esm/model/methods/hydration-methods.js.map +0 -1
- package/esm/model/methods/instance-event-methods.d.ts +0 -7
- package/esm/model/methods/instance-event-methods.d.ts.map +0 -1
- package/esm/model/methods/instance-event-methods.js +0 -15
- package/esm/model/methods/instance-event-methods.js.map +0 -1
- package/esm/model/methods/meta-methods.d.ts +0 -7
- package/esm/model/methods/meta-methods.d.ts.map +0 -1
- package/esm/model/methods/meta-methods.js +0 -78
- package/esm/model/methods/meta-methods.js.map +0 -1
- package/esm/model/methods/query-methods.d.ts +0 -24
- package/esm/model/methods/query-methods.d.ts.map +0 -1
- package/esm/model/methods/query-methods.js +0 -164
- package/esm/model/methods/query-methods.js.map +0 -1
- package/esm/model/methods/restore-methods.d.ts +0 -10
- package/esm/model/methods/restore-methods.d.ts.map +0 -1
- package/esm/model/methods/restore-methods.js +0 -13
- package/esm/model/methods/restore-methods.js.map +0 -1
- package/esm/model/methods/scope-methods.d.ts +0 -7
- package/esm/model/methods/scope-methods.d.ts.map +0 -1
- package/esm/model/methods/scope-methods.js +0 -15
- package/esm/model/methods/scope-methods.js.map +0 -1
- package/esm/model/methods/serialization-methods.d.ts +0 -3
- package/esm/model/methods/serialization-methods.d.ts.map +0 -1
- package/esm/model/methods/serialization-methods.js +0 -27
- package/esm/model/methods/serialization-methods.js.map +0 -1
- package/esm/model/methods/static-event-methods.d.ts +0 -9
- package/esm/model/methods/static-event-methods.d.ts.map +0 -1
- package/esm/model/methods/static-event-methods.js +0 -29
- package/esm/model/methods/static-event-methods.js.map +0 -1
- package/esm/model/methods/write-methods.d.ts +0 -10
- package/esm/model/methods/write-methods.d.ts.map +0 -1
- package/esm/model/methods/write-methods.js +0 -52
- package/esm/model/methods/write-methods.js.map +0 -1
- package/esm/model/model.d.ts +0 -1647
- package/esm/model/model.d.ts.map +0 -1
- package/esm/model/model.js +0 -1657
- package/esm/model/model.js.map +0 -1
- package/esm/model/model.types.d.ts +0 -44
- package/esm/model/model.types.d.ts.map +0 -1
- package/esm/model/register-model.d.ts +0 -81
- package/esm/model/register-model.d.ts.map +0 -1
- package/esm/model/register-model.js +0 -94
- package/esm/model/register-model.js.map +0 -1
- package/esm/query-builder/query-builder.d.ts +0 -556
- package/esm/query-builder/query-builder.d.ts.map +0 -1
- package/esm/query-builder/query-builder.js +0 -1070
- package/esm/query-builder/query-builder.js.map +0 -1
- package/esm/relations/helpers.d.ts +0 -156
- package/esm/relations/helpers.d.ts.map +0 -1
- package/esm/relations/helpers.js +0 -202
- package/esm/relations/helpers.js.map +0 -1
- package/esm/relations/index.d.ts +0 -35
- package/esm/relations/index.d.ts.map +0 -1
- package/esm/relations/pivot-operations.d.ts +0 -160
- package/esm/relations/pivot-operations.d.ts.map +0 -1
- package/esm/relations/pivot-operations.js +0 -293
- package/esm/relations/pivot-operations.js.map +0 -1
- package/esm/relations/relation-hydrator.d.ts +0 -68
- package/esm/relations/relation-hydrator.d.ts.map +0 -1
- package/esm/relations/relation-hydrator.js +0 -81
- package/esm/relations/relation-hydrator.js.map +0 -1
- package/esm/relations/relation-loader.d.ts +0 -194
- package/esm/relations/relation-loader.d.ts.map +0 -1
- package/esm/relations/relation-loader.js +0 -466
- package/esm/relations/relation-loader.js.map +0 -1
- package/esm/relations/types.d.ts +0 -306
- package/esm/relations/types.d.ts.map +0 -1
- package/esm/remover/database-remover.d.ts +0 -100
- package/esm/remover/database-remover.d.ts.map +0 -1
- package/esm/remover/database-remover.js +0 -214
- package/esm/remover/database-remover.js.map +0 -1
- package/esm/restorer/database-restorer.d.ts +0 -131
- package/esm/restorer/database-restorer.d.ts.map +0 -1
- package/esm/restorer/database-restorer.js +0 -434
- package/esm/restorer/database-restorer.js.map +0 -1
- package/esm/sql-database-dirty-tracker.d.ts +0 -13
- package/esm/sql-database-dirty-tracker.d.ts.map +0 -1
- package/esm/sql-database-dirty-tracker.js +0 -14
- package/esm/sql-database-dirty-tracker.js.map +0 -1
- package/esm/sync/index.d.ts +0 -12
- package/esm/sync/index.d.ts.map +0 -1
- package/esm/sync/model-events.d.ts +0 -62
- package/esm/sync/model-events.d.ts.map +0 -1
- package/esm/sync/model-events.js +0 -49
- package/esm/sync/model-events.js.map +0 -1
- package/esm/sync/model-sync-operation.d.ts +0 -163
- package/esm/sync/model-sync-operation.d.ts.map +0 -1
- package/esm/sync/model-sync-operation.js +0 -292
- package/esm/sync/model-sync-operation.js.map +0 -1
- package/esm/sync/model-sync.d.ts +0 -130
- package/esm/sync/model-sync.d.ts.map +0 -1
- package/esm/sync/model-sync.js +0 -178
- package/esm/sync/model-sync.js.map +0 -1
- package/esm/sync/sync-context.d.ts +0 -70
- package/esm/sync/sync-context.d.ts.map +0 -1
- package/esm/sync/sync-context.js +0 -101
- package/esm/sync/sync-context.js.map +0 -1
- package/esm/sync/sync-manager.d.ts +0 -213
- package/esm/sync/sync-manager.d.ts.map +0 -1
- package/esm/sync/sync-manager.js +0 -689
- package/esm/sync/sync-manager.js.map +0 -1
- package/esm/sync/types.d.ts +0 -289
- package/esm/sync/types.d.ts.map +0 -1
- package/esm/test-migrations/test-enhanced-features.migration.d.ts +0 -15
- package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
- package/esm/types.d.ts +0 -371
- package/esm/types.d.ts.map +0 -1
- package/esm/utils/connect-to-database.d.ts +0 -307
- package/esm/utils/connect-to-database.d.ts.map +0 -1
- package/esm/utils/connect-to-database.js +0 -130
- package/esm/utils/connect-to-database.js.map +0 -1
- package/esm/utils/database-writer.utils.d.ts +0 -15
- package/esm/utils/database-writer.utils.d.ts.map +0 -1
- package/esm/utils/database-writer.utils.js +0 -14
- package/esm/utils/database-writer.utils.js.map +0 -1
- package/esm/utils/define-model.js +0 -100
- package/esm/utils/define-model.js.map +0 -1
- package/esm/utils/is-valid-date-value.d.ts +0 -5
- package/esm/utils/is-valid-date-value.d.ts.map +0 -1
- package/esm/utils/is-valid-date-value.js +0 -25
- package/esm/utils/is-valid-date-value.js.map +0 -1
- package/esm/utils/once-connected.d.ts +0 -146
- package/esm/utils/once-connected.d.ts.map +0 -1
- package/esm/utils/once-connected.js +0 -251
- package/esm/utils/once-connected.js.map +0 -1
- package/esm/validation/database-seal-plugins.d.ts +0 -12
- package/esm/validation/database-seal-plugins.d.ts.map +0 -1
- package/esm/validation/database-seal-plugins.js +0 -1
- package/esm/validation/database-seal-plugins.js.map +0 -1
- package/esm/validation/database-writer-validation-error.d.ts +0 -97
- package/esm/validation/database-writer-validation-error.d.ts.map +0 -1
- package/esm/validation/database-writer-validation-error.js +0 -160
- package/esm/validation/database-writer-validation-error.js.map +0 -1
- package/esm/validation/index.d.ts +0 -3
- package/esm/validation/index.d.ts.map +0 -1
- package/esm/validation/mutators/embed-mutator.d.ts +0 -9
- package/esm/validation/mutators/embed-mutator.d.ts.map +0 -1
- package/esm/validation/mutators/embed-mutator.js +0 -33
- package/esm/validation/mutators/embed-mutator.js.map +0 -1
- package/esm/validation/plugins/embed-validator-plugin.d.ts +0 -24
- package/esm/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
- package/esm/validation/plugins/embed-validator-plugin.js +0 -18
- package/esm/validation/plugins/embed-validator-plugin.js.map +0 -1
- package/esm/validation/rules/database-model-rule.d.ts +0 -7
- package/esm/validation/rules/database-model-rule.d.ts.map +0 -1
- package/esm/validation/rules/database-model-rule.js +0 -27
- package/esm/validation/rules/database-model-rule.js.map +0 -1
- package/esm/validation/transformers/embed-model-transformer.d.ts +0 -3
- package/esm/validation/transformers/embed-model-transformer.d.ts.map +0 -1
- package/esm/validation/transformers/embed-model-transformer.js +0 -18
- package/esm/validation/transformers/embed-model-transformer.js.map +0 -1
- package/esm/validation/validators/embed-validator.d.ts +0 -21
- package/esm/validation/validators/embed-validator.d.ts.map +0 -1
- package/esm/validation/validators/embed-validator.js +0 -43
- package/esm/validation/validators/embed-validator.js.map +0 -1
- package/esm/writer/database-writer.d.ts +0 -174
- package/esm/writer/database-writer.d.ts.map +0 -1
- package/esm/writer/database-writer.js +0 -400
- package/esm/writer/database-writer.js.map +0 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
//#region ../../@warlock.js/cascade/src/drivers/postgres/postgres-sync-adapter.ts
|
|
2
|
+
/**
|
|
3
|
+
* PostgreSQL Sync Adapter.
|
|
4
|
+
*
|
|
5
|
+
* Handles batch updates for embedded/denormalized data stored
|
|
6
|
+
* in JSONB columns. In a normalized SQL world, this is less common
|
|
7
|
+
* than in MongoDB, but still useful for JSONB documents.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const syncAdapter = driver.syncAdapter();
|
|
12
|
+
*
|
|
13
|
+
* // Update embedded user data in posts
|
|
14
|
+
* await syncAdapter.executeBatch([
|
|
15
|
+
* {
|
|
16
|
+
* targetTable: 'posts',
|
|
17
|
+
* filter: { 'author.id': 123 },
|
|
18
|
+
* update: { 'author.name': 'New Name' },
|
|
19
|
+
* // ... other fields
|
|
20
|
+
* }
|
|
21
|
+
* ]);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
var PostgresSyncAdapter = class {
|
|
25
|
+
driver;
|
|
26
|
+
/**
|
|
27
|
+
* Create a new sync adapter.
|
|
28
|
+
*
|
|
29
|
+
* @param driver - The PostgreSQL driver instance
|
|
30
|
+
*/
|
|
31
|
+
constructor(driver) {
|
|
32
|
+
this.driver = driver;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Execute a batch of sync instructions.
|
|
36
|
+
*
|
|
37
|
+
* @param instructions - Array of sync instructions
|
|
38
|
+
* @returns Total number of affected rows
|
|
39
|
+
*/
|
|
40
|
+
async executeBatch(instructions) {
|
|
41
|
+
let totalAffected = 0;
|
|
42
|
+
for (const instruction of instructions) if (instruction.isArrayUpdate) totalAffected += await this.executeArrayUpdate(instruction);
|
|
43
|
+
else totalAffected += await this.executeOne(instruction);
|
|
44
|
+
return totalAffected;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Execute a single sync instruction.
|
|
48
|
+
*
|
|
49
|
+
* @param instruction - Sync instruction
|
|
50
|
+
* @returns Number of affected rows
|
|
51
|
+
*/
|
|
52
|
+
async executeOne(instruction) {
|
|
53
|
+
const { targetTable, filter, update } = instruction;
|
|
54
|
+
return this.executeJsonbUpdate(targetTable, filter, update);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Execute an array update instruction with positional operators.
|
|
58
|
+
*
|
|
59
|
+
* @param instruction - Sync instruction with array update info
|
|
60
|
+
* @returns Number of affected rows
|
|
61
|
+
*/
|
|
62
|
+
async executeArrayUpdate(instruction) {
|
|
63
|
+
const { targetTable, filter, update, arrayField, identifierField, identifierValue } = instruction;
|
|
64
|
+
if (!arrayField || !identifierField || identifierValue === void 0) return this.executeOne(instruction);
|
|
65
|
+
return this.executeArrayElementUpdate(targetTable, filter, arrayField, { [identifierField]: identifierValue }, update);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Execute an update on JSONB fields.
|
|
69
|
+
*
|
|
70
|
+
* @param table - Table name
|
|
71
|
+
* @param filter - Row filter
|
|
72
|
+
* @param update - Fields to update
|
|
73
|
+
* @returns Number of affected rows
|
|
74
|
+
*/
|
|
75
|
+
async executeJsonbUpdate(table, filter, update) {
|
|
76
|
+
const quotedTable = this.driver.dialect.quoteIdentifier(table);
|
|
77
|
+
const setClauses = [];
|
|
78
|
+
const params = [];
|
|
79
|
+
let paramIndex = 1;
|
|
80
|
+
for (const [path, value] of Object.entries(update)) if (path.includes(".")) {
|
|
81
|
+
const [column, ...pathParts] = path.split(".");
|
|
82
|
+
const quotedColumn = this.driver.dialect.quoteIdentifier(column);
|
|
83
|
+
const jsonPath = `{${pathParts.join(",")}}`;
|
|
84
|
+
const placeholder = this.driver.dialect.placeholder(paramIndex++);
|
|
85
|
+
params.push(JSON.stringify(value));
|
|
86
|
+
setClauses.push(`${quotedColumn} = jsonb_set(COALESCE(${quotedColumn}, '{}'::jsonb), '${jsonPath}', ${placeholder}::jsonb)`);
|
|
87
|
+
} else {
|
|
88
|
+
const quotedColumn = this.driver.dialect.quoteIdentifier(path);
|
|
89
|
+
const placeholder = this.driver.dialect.placeholder(paramIndex++);
|
|
90
|
+
params.push(value);
|
|
91
|
+
setClauses.push(`${quotedColumn} = ${placeholder}`);
|
|
92
|
+
}
|
|
93
|
+
const whereClauses = [];
|
|
94
|
+
for (const [key, value] of Object.entries(filter)) if (key.includes(".")) {
|
|
95
|
+
const [column, ...pathParts] = key.split(".");
|
|
96
|
+
const quotedColumn = this.driver.dialect.quoteIdentifier(column);
|
|
97
|
+
const intermediateExpr = pathParts.slice(0, -1).map((p) => `->'${p}'`).join("");
|
|
98
|
+
const finalExpr = `->>'${pathParts[pathParts.length - 1]}'`;
|
|
99
|
+
const placeholder = this.driver.dialect.placeholder(paramIndex++);
|
|
100
|
+
params.push(value);
|
|
101
|
+
whereClauses.push(`${quotedColumn}${intermediateExpr}${finalExpr} = ${placeholder}`);
|
|
102
|
+
} else {
|
|
103
|
+
const quotedKey = this.driver.dialect.quoteIdentifier(key);
|
|
104
|
+
const placeholder = this.driver.dialect.placeholder(paramIndex++);
|
|
105
|
+
params.push(value);
|
|
106
|
+
whereClauses.push(`${quotedKey} = ${placeholder}`);
|
|
107
|
+
}
|
|
108
|
+
const sql = `UPDATE ${quotedTable} SET ${setClauses.join(", ")} WHERE ${whereClauses.join(" AND ")}`;
|
|
109
|
+
return (await this.driver.query(sql, params)).rowCount ?? 0;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Execute an update on elements within a JSONB array.
|
|
113
|
+
*
|
|
114
|
+
* @param table - Table name
|
|
115
|
+
* @param filter - Row filter
|
|
116
|
+
* @param arrayField - JSONB array column
|
|
117
|
+
* @param arrayFilter - Filter to match array elements
|
|
118
|
+
* @param update - Fields to update on matched elements
|
|
119
|
+
* @returns Number of affected rows
|
|
120
|
+
*/
|
|
121
|
+
async executeArrayElementUpdate(table, filter, arrayField, arrayFilter, update) {
|
|
122
|
+
const quotedTable = this.driver.dialect.quoteIdentifier(table);
|
|
123
|
+
const quotedArrayField = this.driver.dialect.quoteIdentifier(arrayField);
|
|
124
|
+
const params = [];
|
|
125
|
+
let paramIndex = 1;
|
|
126
|
+
const sql = `
|
|
127
|
+
WITH updated AS (
|
|
128
|
+
SELECT ctid, (
|
|
129
|
+
SELECT jsonb_agg(
|
|
130
|
+
CASE
|
|
131
|
+
WHEN ${Object.entries(arrayFilter).map(([key, value]) => {
|
|
132
|
+
params.push(value);
|
|
133
|
+
return `elem->>'${key}' = ${this.driver.dialect.placeholder(paramIndex++)}`;
|
|
134
|
+
}).join(" AND ")}
|
|
135
|
+
THEN elem || jsonb_build_object(${Object.entries(update).map(([key, value]) => {
|
|
136
|
+
params.push(JSON.stringify(value));
|
|
137
|
+
return `'${key}', ${this.driver.dialect.placeholder(paramIndex++)}::jsonb`;
|
|
138
|
+
}).join(", ")})
|
|
139
|
+
ELSE elem
|
|
140
|
+
END
|
|
141
|
+
)
|
|
142
|
+
FROM jsonb_array_elements(${quotedArrayField}) elem
|
|
143
|
+
) AS new_array
|
|
144
|
+
FROM ${quotedTable}
|
|
145
|
+
WHERE ${Object.entries(filter).map(([key, value]) => {
|
|
146
|
+
const quotedKey = this.driver.dialect.quoteIdentifier(key);
|
|
147
|
+
params.push(value);
|
|
148
|
+
return `${quotedKey} = ${this.driver.dialect.placeholder(paramIndex++)}`;
|
|
149
|
+
}).join(" AND ")}
|
|
150
|
+
)
|
|
151
|
+
UPDATE ${quotedTable} t
|
|
152
|
+
SET ${quotedArrayField} = u.new_array
|
|
153
|
+
FROM updated u
|
|
154
|
+
WHERE t.ctid = u.ctid
|
|
155
|
+
`;
|
|
156
|
+
return (await this.driver.query(sql, params)).rowCount ?? 0;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
//#endregion
|
|
161
|
+
export { PostgresSyncAdapter };
|
|
162
|
+
//# sourceMappingURL=postgres-sync-adapter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-sync-adapter.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/drivers/postgres/postgres-sync-adapter.ts"],"sourcesContent":["/**\r\n * PostgreSQL Sync Adapter\r\n *\r\n * Implements the SyncAdapterContract for batch update operations\r\n * on embedded/denormalized data in PostgreSQL.\r\n *\r\n * @module cascade/drivers/postgres\r\n */\r\n\r\nimport type { SyncAdapterContract, SyncInstruction } from \"../../contracts/sync-adapter.contract\";\r\nimport type { PostgresDriver } from \"./postgres-driver\";\r\n\r\n/**\r\n * PostgreSQL Sync Adapter.\r\n *\r\n * Handles batch updates for embedded/denormalized data stored\r\n * in JSONB columns. In a normalized SQL world, this is less common\r\n * than in MongoDB, but still useful for JSONB documents.\r\n *\r\n * @example\r\n * ```typescript\r\n * const syncAdapter = driver.syncAdapter();\r\n *\r\n * // Update embedded user data in posts\r\n * await syncAdapter.executeBatch([\r\n * {\r\n * targetTable: 'posts',\r\n * filter: { 'author.id': 123 },\r\n * update: { 'author.name': 'New Name' },\r\n * // ... other fields\r\n * }\r\n * ]);\r\n * ```\r\n */\r\nexport class PostgresSyncAdapter implements SyncAdapterContract {\r\n /**\r\n * Create a new sync adapter.\r\n *\r\n * @param driver - The PostgreSQL driver instance\r\n */\r\n public constructor(private readonly driver: PostgresDriver) {}\r\n\r\n /**\r\n * Execute a batch of sync instructions.\r\n *\r\n * @param instructions - Array of sync instructions\r\n * @returns Total number of affected rows\r\n */\r\n public async executeBatch(instructions: SyncInstruction[]): Promise<number> {\r\n let totalAffected = 0;\r\n\r\n for (const instruction of instructions) {\r\n if (instruction.isArrayUpdate) {\r\n totalAffected += await this.executeArrayUpdate(instruction);\r\n } else {\r\n totalAffected += await this.executeOne(instruction);\r\n }\r\n }\r\n\r\n return totalAffected;\r\n }\r\n\r\n /**\r\n * Execute a single sync instruction.\r\n *\r\n * @param instruction - Sync instruction\r\n * @returns Number of affected rows\r\n */\r\n public async executeOne(instruction: SyncInstruction): Promise<number> {\r\n const { targetTable, filter, update } = instruction;\r\n return this.executeJsonbUpdate(targetTable, filter, update);\r\n }\r\n\r\n /**\r\n * Execute an array update instruction with positional operators.\r\n *\r\n * @param instruction - Sync instruction with array update info\r\n * @returns Number of affected rows\r\n */\r\n public async executeArrayUpdate(instruction: SyncInstruction): Promise<number> {\r\n const { targetTable, filter, update, arrayField, identifierField, identifierValue } =\r\n instruction;\r\n\r\n if (!arrayField || !identifierField || identifierValue === undefined) {\r\n // Fall back to regular update if array info is missing\r\n return this.executeOne(instruction);\r\n }\r\n\r\n return this.executeArrayElementUpdate(\r\n targetTable,\r\n filter,\r\n arrayField,\r\n { [identifierField]: identifierValue },\r\n update,\r\n );\r\n }\r\n\r\n /**\r\n * Execute an update on JSONB fields.\r\n *\r\n * @param table - Table name\r\n * @param filter - Row filter\r\n * @param update - Fields to update\r\n * @returns Number of affected rows\r\n */\r\n private async executeJsonbUpdate(\r\n table: string,\r\n filter: Record<string, unknown>,\r\n update: Record<string, unknown>,\r\n ): Promise<number> {\r\n const quotedTable = this.driver.dialect.quoteIdentifier(table);\r\n const setClauses: string[] = [];\r\n const params: unknown[] = [];\r\n let paramIndex = 1;\r\n\r\n // Build SET clauses for each update field\r\n for (const [path, value] of Object.entries(update)) {\r\n if (path.includes(\".\")) {\r\n // JSONB path update: \"column.nested.field\" -> jsonb_set\r\n const [column, ...pathParts] = path.split(\".\");\r\n const quotedColumn = this.driver.dialect.quoteIdentifier(column);\r\n const jsonPath = `{${pathParts.join(\",\")}}`;\r\n const placeholder = this.driver.dialect.placeholder(paramIndex++);\r\n params.push(JSON.stringify(value));\r\n\r\n setClauses.push(\r\n `${quotedColumn} = jsonb_set(COALESCE(${quotedColumn}, '{}'::jsonb), '${jsonPath}', ${placeholder}::jsonb)`,\r\n );\r\n } else {\r\n // Regular column update\r\n const quotedColumn = this.driver.dialect.quoteIdentifier(path);\r\n const placeholder = this.driver.dialect.placeholder(paramIndex++);\r\n params.push(value);\r\n\r\n setClauses.push(`${quotedColumn} = ${placeholder}`);\r\n }\r\n }\r\n\r\n // Build WHERE clause\r\n const whereClauses: string[] = [];\r\n for (const [key, value] of Object.entries(filter)) {\r\n if (key.includes(\".\")) {\r\n // JSONB path filter: intermediate segments use -> (jsonb), final uses ->> (text).\r\n // e.g. \"column.a\" → \"column\"->>'a', \"column.a.b\" → \"column\"->'a'->>'b'\r\n const [column, ...pathParts] = key.split(\".\");\r\n const quotedColumn = this.driver.dialect.quoteIdentifier(column);\r\n const intermediateExpr = pathParts\r\n .slice(0, -1)\r\n .map((p) => `->'${p}'`)\r\n .join(\"\");\r\n const finalExpr = `->>'${pathParts[pathParts.length - 1]}'`;\r\n const placeholder = this.driver.dialect.placeholder(paramIndex++);\r\n params.push(value);\r\n\r\n whereClauses.push(`${quotedColumn}${intermediateExpr}${finalExpr} = ${placeholder}`);\r\n } else {\r\n const quotedKey = this.driver.dialect.quoteIdentifier(key);\r\n const placeholder = this.driver.dialect.placeholder(paramIndex++);\r\n params.push(value);\r\n\r\n whereClauses.push(`${quotedKey} = ${placeholder}`);\r\n }\r\n }\r\n\r\n const sql = `UPDATE ${quotedTable} SET ${setClauses.join(\", \")} WHERE ${whereClauses.join(\" AND \")}`;\r\n\r\n const result = await this.driver.query(sql, params);\r\n return result.rowCount ?? 0;\r\n }\r\n\r\n /**\r\n * Execute an update on elements within a JSONB array.\r\n *\r\n * @param table - Table name\r\n * @param filter - Row filter\r\n * @param arrayField - JSONB array column\r\n * @param arrayFilter - Filter to match array elements\r\n * @param update - Fields to update on matched elements\r\n * @returns Number of affected rows\r\n */\r\n private async executeArrayElementUpdate(\r\n table: string,\r\n filter: Record<string, unknown>,\r\n arrayField: string,\r\n arrayFilter: Record<string, unknown>,\r\n update: Record<string, unknown>,\r\n ): Promise<number> {\r\n const quotedTable = this.driver.dialect.quoteIdentifier(table);\r\n const quotedArrayField = this.driver.dialect.quoteIdentifier(arrayField);\r\n\r\n const params: unknown[] = [];\r\n let paramIndex = 1;\r\n\r\n // Build array element filter condition\r\n const arrayFilterCondition = Object.entries(arrayFilter)\r\n .map(([key, value]) => {\r\n params.push(value);\r\n return `elem->>'${key}' = ${this.driver.dialect.placeholder(paramIndex++)}`;\r\n })\r\n .join(\" AND \");\r\n\r\n // Build update expression for matched elements\r\n const updateExpr = Object.entries(update)\r\n .map(([key, value]) => {\r\n params.push(JSON.stringify(value));\r\n return `'${key}', ${this.driver.dialect.placeholder(paramIndex++)}::jsonb`;\r\n })\r\n .join(\", \");\r\n\r\n // Build WHERE clause for row filter\r\n const whereClauses = Object.entries(filter).map(([key, value]) => {\r\n const quotedKey = this.driver.dialect.quoteIdentifier(key);\r\n params.push(value);\r\n return `${quotedKey} = ${this.driver.dialect.placeholder(paramIndex++)}`;\r\n });\r\n\r\n // Use a CTE to update array elements.\r\n // ctid is PostgreSQL's built-in physical row identifier, available on every\r\n // table regardless of the primary key column name.\r\n const sql = `\r\n WITH updated AS (\r\n SELECT ctid, (\r\n SELECT jsonb_agg(\r\n CASE\r\n WHEN ${arrayFilterCondition}\r\n THEN elem || jsonb_build_object(${updateExpr})\r\n ELSE elem\r\n END\r\n )\r\n FROM jsonb_array_elements(${quotedArrayField}) elem\r\n ) AS new_array\r\n FROM ${quotedTable}\r\n WHERE ${whereClauses.join(\" AND \")}\r\n )\r\n UPDATE ${quotedTable} t\r\n SET ${quotedArrayField} = u.new_array\r\n FROM updated u\r\n WHERE t.ctid = u.ctid\r\n `;\r\n\r\n const result = await this.driver.query(sql, params);\r\n return result.rowCount ?? 0;\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkCA,IAAa,sBAAb,MAAgE;CAM1B;;;;;;CAApC,AAAO,YAAY,AAAiB,QAAwB;EAAxB;CAAyB;;;;;;;CAQ7D,MAAa,aAAa,cAAkD;EAC1E,IAAI,gBAAgB;EAEpB,KAAK,MAAM,eAAe,cACxB,IAAI,YAAY,eACd,iBAAiB,MAAM,KAAK,mBAAmB,WAAW;OAE1D,iBAAiB,MAAM,KAAK,WAAW,WAAW;EAItD,OAAO;CACT;;;;;;;CAQA,MAAa,WAAW,aAA+C;EACrE,MAAM,EAAE,aAAa,QAAQ,WAAW;EACxC,OAAO,KAAK,mBAAmB,aAAa,QAAQ,MAAM;CAC5D;;;;;;;CAQA,MAAa,mBAAmB,aAA+C;EAC7E,MAAM,EAAE,aAAa,QAAQ,QAAQ,YAAY,iBAAiB,oBAChE;EAEF,IAAI,CAAC,cAAc,CAAC,mBAAmB,oBAAoB,QAEzD,OAAO,KAAK,WAAW,WAAW;EAGpC,OAAO,KAAK,0BACV,aACA,QACA,YACA,GAAG,kBAAkB,gBAAgB,GACrC,MACF;CACF;;;;;;;;;CAUA,MAAc,mBACZ,OACA,QACA,QACiB;EACjB,MAAM,cAAc,KAAK,OAAO,QAAQ,gBAAgB,KAAK;EAC7D,MAAM,aAAuB,CAAC;EAC9B,MAAM,SAAoB,CAAC;EAC3B,IAAI,aAAa;EAGjB,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,MAAM,GAC/C,IAAI,KAAK,SAAS,GAAG,GAAG;GAEtB,MAAM,CAAC,QAAQ,GAAG,aAAa,KAAK,MAAM,GAAG;GAC7C,MAAM,eAAe,KAAK,OAAO,QAAQ,gBAAgB,MAAM;GAC/D,MAAM,WAAW,IAAI,UAAU,KAAK,GAAG,EAAE;GACzC,MAAM,cAAc,KAAK,OAAO,QAAQ,YAAY,YAAY;GAChE,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;GAEjC,WAAW,KACT,GAAG,aAAa,wBAAwB,aAAa,mBAAmB,SAAS,KAAK,YAAY,SACpG;EACF,OAAO;GAEL,MAAM,eAAe,KAAK,OAAO,QAAQ,gBAAgB,IAAI;GAC7D,MAAM,cAAc,KAAK,OAAO,QAAQ,YAAY,YAAY;GAChE,OAAO,KAAK,KAAK;GAEjB,WAAW,KAAK,GAAG,aAAa,KAAK,aAAa;EACpD;EAIF,MAAM,eAAyB,CAAC;EAChC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAC9C,IAAI,IAAI,SAAS,GAAG,GAAG;GAGrB,MAAM,CAAC,QAAQ,GAAG,aAAa,IAAI,MAAM,GAAG;GAC5C,MAAM,eAAe,KAAK,OAAO,QAAQ,gBAAgB,MAAM;GAC/D,MAAM,mBAAmB,UACtB,MAAM,GAAG,EAAE,EACX,KAAK,MAAM,MAAM,EAAE,EAAE,EACrB,KAAK,EAAE;GACV,MAAM,YAAY,OAAO,UAAU,UAAU,SAAS,GAAG;GACzD,MAAM,cAAc,KAAK,OAAO,QAAQ,YAAY,YAAY;GAChE,OAAO,KAAK,KAAK;GAEjB,aAAa,KAAK,GAAG,eAAe,mBAAmB,UAAU,KAAK,aAAa;EACrF,OAAO;GACL,MAAM,YAAY,KAAK,OAAO,QAAQ,gBAAgB,GAAG;GACzD,MAAM,cAAc,KAAK,OAAO,QAAQ,YAAY,YAAY;GAChE,OAAO,KAAK,KAAK;GAEjB,aAAa,KAAK,GAAG,UAAU,KAAK,aAAa;EACnD;EAGF,MAAM,MAAM,UAAU,YAAY,OAAO,WAAW,KAAK,IAAI,EAAE,SAAS,aAAa,KAAK,OAAO;EAGjG,QAAO,MADc,KAAK,OAAO,MAAM,KAAK,MAAM,GACpC,YAAY;CAC5B;;;;;;;;;;;CAYA,MAAc,0BACZ,OACA,QACA,YACA,aACA,QACiB;EACjB,MAAM,cAAc,KAAK,OAAO,QAAQ,gBAAgB,KAAK;EAC7D,MAAM,mBAAmB,KAAK,OAAO,QAAQ,gBAAgB,UAAU;EAEvE,MAAM,SAAoB,CAAC;EAC3B,IAAI,aAAa;EA4BjB,MAAM,MAAM;;;;;qBAzBiB,OAAO,QAAQ,WAAW,EACpD,KAAK,CAAC,KAAK,WAAW;GACrB,OAAO,KAAK,KAAK;GACjB,OAAO,WAAW,IAAI,MAAM,KAAK,OAAO,QAAQ,YAAY,YAAY;EAC1E,CAAC,EACA,KAAK,OAyB4B,EAAE;gDAtBnB,OAAO,QAAQ,MAAM,EACrC,KAAK,CAAC,KAAK,WAAW;GACrB,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;GACjC,OAAO,IAAI,IAAI,KAAK,KAAK,OAAO,QAAQ,YAAY,YAAY,EAAE;EACpE,CAAC,EACA,KAAK,IAkB6C,EAAE;;;;sCAIrB,iBAAiB;;eAExC,YAAY;gBArBF,OAAO,QAAQ,MAAM,EAAE,KAAK,CAAC,KAAK,WAAW;GAChE,MAAM,YAAY,KAAK,OAAO,QAAQ,gBAAgB,GAAG;GACzD,OAAO,KAAK,KAAK;GACjB,OAAO,GAAG,UAAU,KAAK,KAAK,OAAO,QAAQ,YAAY,YAAY;EACvE,CAkBuB,EAAE,KAAK,OAAO,EAAE;;eAE5B,YAAY;YACf,iBAAiB;;;;EAMzB,QAAO,MADc,KAAK,OAAO,MAAM,KAAK,MAAM,GACpC,YAAY;CAC5B;AACF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
//#region ../../@warlock.js/cascade/src/drivers/postgres/types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* PostgreSQL Driver Types
|
|
4
|
+
*
|
|
5
|
+
* Type definitions specific to the PostgreSQL driver implementation.
|
|
6
|
+
*
|
|
7
|
+
* @module cascade/drivers/postgres
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* PostgreSQL connection configuration options.
|
|
11
|
+
*/
|
|
12
|
+
type PostgresConnectionConfig = {
|
|
13
|
+
/** Database host (default: "localhost") */readonly host?: string; /** Database port (default: 5432) */
|
|
14
|
+
readonly port?: number; /** Database name */
|
|
15
|
+
readonly database: string; /** Database user */
|
|
16
|
+
readonly user?: string; /** Database password */
|
|
17
|
+
readonly password?: string; /** Connection string (alternative to individual options) */
|
|
18
|
+
readonly connectionString?: string; /** SSL configuration */
|
|
19
|
+
readonly ssl?: boolean | {
|
|
20
|
+
readonly rejectUnauthorized?: boolean;
|
|
21
|
+
readonly ca?: string;
|
|
22
|
+
readonly cert?: string;
|
|
23
|
+
readonly key?: string;
|
|
24
|
+
}; /** Enable database operation logging (queries, execution time, parameters) */
|
|
25
|
+
readonly logging?: boolean;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* PostgreSQL pool configuration options.
|
|
29
|
+
*/
|
|
30
|
+
type PostgresPoolConfig = PostgresConnectionConfig & {
|
|
31
|
+
/** Maximum number of clients in the pool (default: 10) */readonly max?: number; /** Minimum number of clients in the pool (default: 0) */
|
|
32
|
+
readonly min?: number; /** How long a client can sit idle before being closed (ms) */
|
|
33
|
+
readonly idleTimeoutMillis?: number; /** How long to wait for a client before timing out (ms) */
|
|
34
|
+
readonly connectionTimeoutMillis?: number; /** Maximum times to use a connection before destroying it */
|
|
35
|
+
readonly maxUses?: number; /** Application name for connection identification */
|
|
36
|
+
readonly application_name?: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* PostgreSQL query result wrapper.
|
|
40
|
+
*/
|
|
41
|
+
type PostgresQueryResult<T = Record<string, unknown>> = {
|
|
42
|
+
/** Array of rows returned by the query */readonly rows: T[]; /** Number of rows affected by INSERT/UPDATE/DELETE */
|
|
43
|
+
readonly rowCount: number | null; /** Column definitions from the result */
|
|
44
|
+
readonly fields: Array<{
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly dataTypeID: number;
|
|
47
|
+
}>; /** Command that was executed (SELECT, INSERT, etc.) */
|
|
48
|
+
readonly command: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* PostgreSQL transaction isolation levels.
|
|
52
|
+
*/
|
|
53
|
+
type PostgresIsolationLevel = "read uncommitted" | "read committed" | "repeatable read" | "serializable";
|
|
54
|
+
/**
|
|
55
|
+
* PostgreSQL transaction options.
|
|
56
|
+
*/
|
|
57
|
+
type PostgresTransactionOptions = {
|
|
58
|
+
/** Isolation level for the transaction */readonly isolationLevel?: PostgresIsolationLevel; /** Whether the transaction is read-only */
|
|
59
|
+
readonly readOnly?: boolean; /** Use deferrable mode (for serializable + read-only) */
|
|
60
|
+
readonly deferrable?: boolean;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* PostgreSQL-specific operation types used in the query builder.
|
|
64
|
+
*/
|
|
65
|
+
type PostgresOperation = {
|
|
66
|
+
/** Operation stage (select, where, join, etc.) */readonly stage: "select" | "from" | "join" | "where" | "groupBy" | "having" | "orderBy" | "limit" | "offset"; /** Operation type/name */
|
|
67
|
+
readonly type: string; /** Operation payload/data */
|
|
68
|
+
readonly data: Record<string, unknown>;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Internal representation of a pending WHERE clause.
|
|
72
|
+
*/
|
|
73
|
+
type PostgresWhereClause = {
|
|
74
|
+
/** Boolean operator to combine with previous clause */readonly boolean: "and" | "or"; /** Type of where clause */
|
|
75
|
+
readonly type: "basic" | "raw" | "null" | "notNull" | "in" | "notIn" | "between" | "notBetween" | "exists" | "notExists" | "nested" | "column"; /** Column/field name */
|
|
76
|
+
readonly column?: string; /** Comparison operator */
|
|
77
|
+
readonly operator?: string; /** Value to compare */
|
|
78
|
+
readonly value?: unknown; /** Raw SQL expression */
|
|
79
|
+
readonly raw?: string; /** Parameter bindings */
|
|
80
|
+
readonly bindings?: unknown[]; /** Nested conditions */
|
|
81
|
+
readonly nested?: PostgresWhereClause[];
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* PostgreSQL NOTIFY payload structure.
|
|
85
|
+
*/
|
|
86
|
+
type PostgresNotification = {
|
|
87
|
+
/** Channel name */readonly channel: string; /** Notification payload */
|
|
88
|
+
readonly payload?: string; /** Process ID of the notifying backend */
|
|
89
|
+
readonly processId: number;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* PostgreSQL COPY options for bulk operations.
|
|
93
|
+
*/
|
|
94
|
+
type PostgresCopyOptions = {
|
|
95
|
+
/** Format (text, csv, binary) */readonly format?: "text" | "csv" | "binary"; /** Field delimiter for text/csv */
|
|
96
|
+
readonly delimiter?: string; /** Quote character for csv */
|
|
97
|
+
readonly quote?: string; /** Escape character for csv */
|
|
98
|
+
readonly escape?: string; /** Include header row */
|
|
99
|
+
readonly header?: boolean; /** Null string representation */
|
|
100
|
+
readonly null?: string; /** Column list */
|
|
101
|
+
readonly columns?: string[];
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
export { PostgresConnectionConfig, PostgresCopyOptions, PostgresIsolationLevel, PostgresNotification, PostgresOperation, PostgresPoolConfig, PostgresQueryResult, PostgresTransactionOptions, PostgresWhereClause };
|
|
105
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/drivers/postgres/types.ts"],"mappings":";;AAWA;;;;;;;;;KAAY,wBAAA;EAcD,oDAZA,IAAA,WAgBM;EAAA,SAdN,IAAA,WAgBM;EAAA,SAdN,QAAA,UAiBO;EAAA,SAfP,IAAA,WAqBC;EAAA,SAnBD,QAAA;WAEA,gBAAA,WAiBsB;EAAA,SAftB,GAAA;IAAA,SAGM,kBAAA;IAAA,SACA,EAAA;IAAA,SACA,IAAA;IAAA,SACA,GAAA;EAAA,GAqBU;EAAA,SAlBhB,OAAA;AAAA;;;;KAMC,kBAAA,GAAqB,wBAAwB;EAwBtC,mEAtBR,GAAA,WAsBa;EAAA,SApBb,GAAA,WAcyB;EAAA,SAZzB,iBAAA,WAcM;EAAA,SAZN,uBAAA,WAgBA;EAAA,SAdA,OAAA,WAeE;EAAA,SAbF,gBAAA;AAAA;;AAiBO;AAMlB;KAjBY,mBAAA,KAAwB,MAAA;qDAEzB,IAAA,EAAM,CAAA,IAeiB;EAAA,SAbvB,QAAA,iBAsB2B;EAAA,SApB3B,MAAA,EAAQ,KAAA;IAAA,SACN,IAAA;IAAA,SACA,UAAA;EAAA,IAsBF;EAAA,SAnBA,OAAA;AAAA;AAqBU;AAMrB;;AANqB,KAfT,sBAAA;;;;KASA,0BAAA;EA2BK,mDAzBN,cAAA,GAAiB,sBAAsB,EAyB3B;EAAA,SAvBZ,QAAA,YA6BoB;EAAA,SA3BpB,UAAA;AAAA;;;;KAMC,iBAAA;EA2CD,2DAzCA,KAAA,gGA6CA;EAAA,SAlCA,IAAA,UAoCS;EAAA,SAlCT,IAAA,EAAM,MAAM;AAAA;AAwCvB;;;AAAA,KAlCY,mBAAA;EAoCD,gEAlCA,OAAA,gBAsCA;EAAA,SApCA,IAAA,mIAoCS;EAAA,SAtBT,MAAA,WA4BoB;EAAA,SA1BpB,QAAA,WA0BoB;EAAA,SAxBpB,KAAA,YA4BA;EAAA,SA1BA,GAAA,WA8BA;EAAA,SA5BA,QAAA,cAgCA;EAAA,SA9BA,MAAA,GAAS,mBAAmB;AAAA;AAgCrB;;;AAAA,KA1BN,oBAAA;8BAED,OAAA;WAEA,OAAA;WAEA,SAAA;AAAA;;;;KAMC,mBAAA;4CAED,MAAA;WAEA,SAAA;WAEA,KAAA;WAEA,MAAA;WAEA,MAAA;WAEA,IAAA;WAEA,OAAA;AAAA"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { AggregateExpression } from "../../expressions/aggregate-expressions.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../../@warlock.js/cascade/src/drivers/sql/sql-dialect.contract.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Contract that SQL dialects must implement to handle database-specific
|
|
6
|
+
* SQL syntax variations.
|
|
7
|
+
*
|
|
8
|
+
* Each SQL database (PostgreSQL, MySQL, SQLite) has subtle differences
|
|
9
|
+
* in how they handle parameters, identifiers, and certain SQL features.
|
|
10
|
+
* This interface abstracts those differences.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* class PostgresDialect implements SqlDialectContract {
|
|
15
|
+
* placeholder(index: number): string {
|
|
16
|
+
* return `$${index}`; // PostgreSQL uses $1, $2, etc.
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* class MySqlDialect implements SqlDialectContract {
|
|
21
|
+
* placeholder(index: number): string {
|
|
22
|
+
* return '?'; // MySQL uses ? for all parameters
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
interface SqlDialectContract {
|
|
28
|
+
/**
|
|
29
|
+
* The name of the dialect for identification purposes.
|
|
30
|
+
*
|
|
31
|
+
* @example "postgres", "mysql", "sqlite"
|
|
32
|
+
*/
|
|
33
|
+
readonly name: string;
|
|
34
|
+
/**
|
|
35
|
+
* Generate a parameter placeholder for the given index.
|
|
36
|
+
*
|
|
37
|
+
* Different databases use different placeholder styles:
|
|
38
|
+
* - PostgreSQL: `$1`, `$2`, `$3`
|
|
39
|
+
* - MySQL/SQLite: `?` (positional)
|
|
40
|
+
*
|
|
41
|
+
* @param index - The 1-based parameter index
|
|
42
|
+
* @returns The placeholder string to use in the SQL query
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* dialect.placeholder(1); // "$1" for PostgreSQL
|
|
47
|
+
* dialect.placeholder(2); // "?" for MySQL
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
placeholder(index: number): string;
|
|
51
|
+
/**
|
|
52
|
+
* Quote an identifier (table name, column name) for safe use in SQL.
|
|
53
|
+
*
|
|
54
|
+
* Different databases use different quote characters:
|
|
55
|
+
* - PostgreSQL: `"column_name"`
|
|
56
|
+
* - MySQL: `` `column_name` ``
|
|
57
|
+
*
|
|
58
|
+
* This also handles escaping if the identifier contains the quote character.
|
|
59
|
+
*
|
|
60
|
+
* @param identifier - The identifier to quote
|
|
61
|
+
* @returns The quoted identifier safe for use in SQL
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* dialect.quoteIdentifier('user'); // '"user"' for PostgreSQL
|
|
66
|
+
* dialect.quoteIdentifier('order'); // '`order`' for MySQL
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
quoteIdentifier(identifier: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Convert a boolean value to the appropriate SQL literal.
|
|
72
|
+
*
|
|
73
|
+
* Different databases represent booleans differently:
|
|
74
|
+
* - PostgreSQL: `TRUE` / `FALSE`
|
|
75
|
+
* - MySQL: `1` / `0`
|
|
76
|
+
*
|
|
77
|
+
* @param value - The boolean value to convert
|
|
78
|
+
* @returns The SQL literal string
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* dialect.booleanLiteral(true); // "TRUE" for PostgreSQL
|
|
83
|
+
* dialect.booleanLiteral(false); // "0" for MySQL
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
booleanLiteral(value: boolean): string;
|
|
87
|
+
/**
|
|
88
|
+
* Whether the database supports the RETURNING clause for INSERT/UPDATE/DELETE.
|
|
89
|
+
*
|
|
90
|
+
* - PostgreSQL: `true` (supports `RETURNING *`)
|
|
91
|
+
* - MySQL: `false` (must use `LAST_INSERT_ID()`)
|
|
92
|
+
*/
|
|
93
|
+
readonly supportsReturning: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* The keyword used for upsert (insert or update) operations.
|
|
96
|
+
*
|
|
97
|
+
* - PostgreSQL: `"ON CONFLICT"`
|
|
98
|
+
* - MySQL: `"ON DUPLICATE KEY"`
|
|
99
|
+
*/
|
|
100
|
+
readonly upsertKeyword: "ON CONFLICT" | "ON DUPLICATE KEY";
|
|
101
|
+
/**
|
|
102
|
+
* Build the LIMIT/OFFSET clause for pagination.
|
|
103
|
+
*
|
|
104
|
+
* Most databases use `LIMIT x OFFSET y`, but syntax may vary.
|
|
105
|
+
*
|
|
106
|
+
* @param limit - Maximum number of rows to return (undefined = no limit)
|
|
107
|
+
* @param offset - Number of rows to skip (undefined = no offset)
|
|
108
|
+
* @returns The SQL clause string (e.g., "LIMIT 10 OFFSET 20")
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* dialect.limitOffset(10, 20); // "LIMIT 10 OFFSET 20"
|
|
113
|
+
* dialect.limitOffset(10); // "LIMIT 10"
|
|
114
|
+
* dialect.limitOffset(undefined, 20); // "OFFSET 20"
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
limitOffset(limit?: number, offset?: number): string;
|
|
118
|
+
/**
|
|
119
|
+
* Build a JSON path extraction expression.
|
|
120
|
+
*
|
|
121
|
+
* Different databases have different JSON operators:
|
|
122
|
+
* - PostgreSQL: `column->>'path'` or `column->'path'`
|
|
123
|
+
* - MySQL: `JSON_EXTRACT(column, '$.path')`
|
|
124
|
+
*
|
|
125
|
+
* @param column - The JSON/JSONB column name
|
|
126
|
+
* @param path - The path to extract (dot notation)
|
|
127
|
+
* @returns The SQL expression for extracting the path
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* dialect.jsonExtract('data', 'user.name');
|
|
132
|
+
* // PostgreSQL: "data"->>'user'->>'name'
|
|
133
|
+
* // MySQL: JSON_EXTRACT("data", '$.user.name')
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
jsonExtract(column: string, path: string): string;
|
|
137
|
+
/**
|
|
138
|
+
* Check if a JSON column contains a value.
|
|
139
|
+
*
|
|
140
|
+
* - PostgreSQL: `column @> '{"key": "value"}'::jsonb`
|
|
141
|
+
* - MySQL: `JSON_CONTAINS(column, '"value"', '$.key')`
|
|
142
|
+
*
|
|
143
|
+
* @param column - The JSON/JSONB column name
|
|
144
|
+
* @param value - The value to check for
|
|
145
|
+
* @param path - Optional path within the JSON
|
|
146
|
+
* @returns The SQL expression
|
|
147
|
+
*/
|
|
148
|
+
jsonContains(column: string, value: unknown, path?: string): string;
|
|
149
|
+
/**
|
|
150
|
+
* Build a LIKE pattern with proper escaping.
|
|
151
|
+
*
|
|
152
|
+
* @param pattern - The pattern (may include % and _ wildcards)
|
|
153
|
+
* @param caseInsensitive - Whether to use case-insensitive matching
|
|
154
|
+
* @returns Object with the SQL operator and escaped pattern
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* dialect.likePattern('%test%', true);
|
|
159
|
+
* // PostgreSQL: { operator: 'ILIKE', pattern: '%test%' }
|
|
160
|
+
* // MySQL: { operator: 'LIKE', pattern: '%test%' } (case-insensitive by default)
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
likePattern(pattern: string, caseInsensitive?: boolean): {
|
|
164
|
+
operator: string;
|
|
165
|
+
pattern: string;
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Build an array contains expression.
|
|
169
|
+
*
|
|
170
|
+
* - PostgreSQL: `$1 = ANY(column)` or `column @> ARRAY[$1]`
|
|
171
|
+
* - MySQL: `JSON_CONTAINS(column, ...)` for JSON arrays
|
|
172
|
+
*
|
|
173
|
+
* @param column - The array column name
|
|
174
|
+
* @param paramIndex - The parameter index for the value
|
|
175
|
+
* @returns The SQL expression
|
|
176
|
+
*/
|
|
177
|
+
arrayContains(column: string, paramIndex: number): string;
|
|
178
|
+
/**
|
|
179
|
+
* Get the SQL type name for common abstract types.
|
|
180
|
+
*
|
|
181
|
+
* @param type - The abstract type name
|
|
182
|
+
* @param options - Type-specific options (length, precision, scale)
|
|
183
|
+
* @returns The database-specific SQL type
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* dialect.getSqlType('string', { length: 255 }); // "VARCHAR(255)"
|
|
188
|
+
* dialect.getSqlType('json'); // "JSONB" for PostgreSQL, "JSON" for MySQL
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
getSqlType(type: string, options?: {
|
|
192
|
+
length?: number;
|
|
193
|
+
precision?: number;
|
|
194
|
+
scale?: number;
|
|
195
|
+
dimensions?: number;
|
|
196
|
+
}): string;
|
|
197
|
+
/**
|
|
198
|
+
* Translate a database-agnostic aggregate expression to its SQL form.
|
|
199
|
+
*
|
|
200
|
+
* Supported aggregates return their SQL function call. Aggregates a given
|
|
201
|
+
* dialect cannot express as a scalar `GROUP BY` aggregate (e.g. `distinct`,
|
|
202
|
+
* `floor`, `first`, `last` on PostgreSQL) MUST throw with an actionable
|
|
203
|
+
* message naming the SQL escape hatch — never emit a silently-different
|
|
204
|
+
* semantic. Making this part of the contract forces every SQL dialect to
|
|
205
|
+
* decide its own aggregate capability matrix explicitly.
|
|
206
|
+
*
|
|
207
|
+
* @param expression - The abstract aggregate (`$agg.*`) to translate
|
|
208
|
+
* @returns The SQL fragment (e.g. `SUM("amount")`, `COUNT(*)`)
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* dialect.aggregateToSql($agg.sum("amount")); // 'SUM("amount")'
|
|
213
|
+
* dialect.aggregateToSql($agg.count()); // "COUNT(*)"
|
|
214
|
+
* dialect.aggregateToSql($agg.distinct("c")); // throws — use selectRaw escape hatch
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
aggregateToSql(expression: AggregateExpression): string;
|
|
218
|
+
}
|
|
219
|
+
//#endregion
|
|
220
|
+
export { SqlDialectContract };
|
|
221
|
+
//# sourceMappingURL=sql-dialect.contract.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-dialect.contract.d.mts","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/drivers/sql/sql-dialect.contract.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;UAmCiB,kBAAA;EA4Kf;;;;;EAAA,SAtKS,IAAA;EAwKP;;;;;AAuB4C;;;;;;;;;;;EA7K9C,WAAA,CAAY,KAAA;;;;;;;;;;;;;;;;;;;EAoBZ,eAAA,CAAgB,UAAA;;;;;;;;;;;;;;;;;EAkBhB,cAAA,CAAe,KAAA;;;;;;;WAQN,iBAAA;;;;;;;WAQA,aAAA;;;;;;;;;;;;;;;;;EAkBT,WAAA,CAAY,KAAA,WAAgB,MAAA;;;;;;;;;;;;;;;;;;;EAoB5B,WAAA,CAAY,MAAA,UAAgB,IAAA;;;;;;;;;;;;EAa5B,YAAA,CAAa,MAAA,UAAgB,KAAA,WAAgB,IAAA;;;;;;;;;;;;;;;EAgB7C,WAAA,CAAY,OAAA,UAAiB,eAAA;IAA8B,QAAA;IAAkB,OAAA;EAAA;;;;;;;;;;;EAY7E,aAAA,CAAc,MAAA,UAAgB,UAAA;;;;;;;;;;;;;;EAe9B,UAAA,CACE,IAAA,UACA,OAAA;IAAY,MAAA;IAAiB,SAAA;IAAoB,KAAA;IAAgB,UAAA;EAAA;;;;;;;;;;;;;;;;;;;;;EAuBnE,cAAA,CAAe,UAAA,EAAY,mBAAmB;AAAA"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
//#region ../../@warlock.js/cascade/src/drivers/sql/sql-types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* SQL Types and Definitions
|
|
4
|
+
*
|
|
5
|
+
* Shared type definitions used across SQL database drivers (PostgreSQL, MySQL, SQLite).
|
|
6
|
+
* These types represent common SQL operations and their parameters.
|
|
7
|
+
*
|
|
8
|
+
* @module cascade/drivers/sql
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Result of building a SQL query with parameterized values.
|
|
12
|
+
*
|
|
13
|
+
* Contains the SQL string with placeholders and the corresponding parameter values.
|
|
14
|
+
* This separation prevents SQL injection by ensuring values are properly escaped.
|
|
15
|
+
*/
|
|
16
|
+
type SqlQueryResult = {
|
|
17
|
+
/** The SQL query string with parameter placeholders ($1, $2, etc. or ?) */readonly sql: string; /** The parameter values in order matching the placeholders */
|
|
18
|
+
readonly params: unknown[];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Supported SQL JOIN types.
|
|
22
|
+
*/
|
|
23
|
+
type SqlJoinType = "inner" | "left" | "right" | "full" | "cross";
|
|
24
|
+
/**
|
|
25
|
+
* SQL JOIN clause definition.
|
|
26
|
+
*
|
|
27
|
+
* Represents a JOIN between two tables with its condition.
|
|
28
|
+
*/
|
|
29
|
+
type SqlJoinClause = {
|
|
30
|
+
/** Type of JOIN operation */readonly type: SqlJoinType; /** Target table to join */
|
|
31
|
+
readonly table: string; /** Optional alias for the joined table */
|
|
32
|
+
readonly alias?: string; /** JOIN condition */
|
|
33
|
+
readonly on: {
|
|
34
|
+
/** Field from the left (current) table */readonly left: string; /** Comparison operator (usually "=") */
|
|
35
|
+
readonly operator: string; /** Field from the right (joined) table */
|
|
36
|
+
readonly right: string;
|
|
37
|
+
}; /** Additional ON conditions (for complex joins) */
|
|
38
|
+
readonly additionalConditions?: Array<{
|
|
39
|
+
readonly left: string;
|
|
40
|
+
readonly operator: string;
|
|
41
|
+
readonly right: string;
|
|
42
|
+
}>;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* SQL ORDER BY clause definition.
|
|
46
|
+
*/
|
|
47
|
+
type SqlOrderClause = {
|
|
48
|
+
/** Column to order by */readonly column: string; /** Sort direction */
|
|
49
|
+
readonly direction: "asc" | "desc"; /** Nulls position (PostgreSQL-specific) */
|
|
50
|
+
readonly nulls?: "first" | "last";
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* SQL GROUP BY clause definition.
|
|
54
|
+
*/
|
|
55
|
+
type SqlGroupClause = {
|
|
56
|
+
/** Columns to group by */readonly columns: string[];
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* SQL HAVING clause condition.
|
|
60
|
+
*/
|
|
61
|
+
type SqlHavingClause = {
|
|
62
|
+
/** Aggregate function (count, sum, avg, etc.) */readonly aggregate: string; /** Column the aggregate operates on */
|
|
63
|
+
readonly column: string; /** Comparison operator */
|
|
64
|
+
readonly operator: string; /** Value to compare against */
|
|
65
|
+
readonly value: unknown;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* SQL WHERE clause operation types.
|
|
69
|
+
*/
|
|
70
|
+
type SqlWhereType = "where" | "orWhere" | "whereRaw" | "orWhereRaw" | "whereNot" | "orWhereNot" | "whereExists" | "whereNotExists";
|
|
71
|
+
/**
|
|
72
|
+
* SQL WHERE clause operation.
|
|
73
|
+
*
|
|
74
|
+
* Represents a single WHERE condition with its type, field, operator, and value.
|
|
75
|
+
*/
|
|
76
|
+
type SqlWhereOperation = {
|
|
77
|
+
/** Type of WHERE clause (where, orWhere, whereRaw, etc.) */readonly type: SqlWhereType; /** Field name (for standard where clauses) */
|
|
78
|
+
readonly field?: string; /** Comparison operator */
|
|
79
|
+
readonly operator?: string; /** Value to compare against */
|
|
80
|
+
readonly value?: unknown; /** Raw SQL expression (for whereRaw clauses) */
|
|
81
|
+
readonly raw?: string; /** Parameter bindings for raw expressions */
|
|
82
|
+
readonly bindings?: unknown[]; /** Nested conditions (for grouped where clauses) */
|
|
83
|
+
readonly nested?: SqlWhereOperation[];
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* SQL SELECT clause definition.
|
|
87
|
+
*/
|
|
88
|
+
type SqlSelectClause = {
|
|
89
|
+
/** Column name or expression */readonly expression: string; /** Optional alias for the column */
|
|
90
|
+
readonly alias?: string; /** Whether this is a raw expression */
|
|
91
|
+
readonly isRaw?: boolean;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Configuration for building SQL queries.
|
|
95
|
+
*/
|
|
96
|
+
type SqlQueryConfig = {
|
|
97
|
+
/** Target table name */readonly table: string; /** Table alias (optional) */
|
|
98
|
+
readonly alias?: string; /** SELECT columns (empty = SELECT *) */
|
|
99
|
+
readonly select: SqlSelectClause[]; /** JOIN clauses */
|
|
100
|
+
readonly joins: SqlJoinClause[]; /** WHERE conditions */
|
|
101
|
+
readonly where: SqlWhereOperation[]; /** GROUP BY columns */
|
|
102
|
+
readonly groupBy: string[]; /** HAVING conditions */
|
|
103
|
+
readonly having: SqlHavingClause[]; /** ORDER BY clauses */
|
|
104
|
+
readonly orderBy: SqlOrderClause[]; /** LIMIT value */
|
|
105
|
+
readonly limit?: number; /** OFFSET value */
|
|
106
|
+
readonly offset?: number; /** DISTINCT flag */
|
|
107
|
+
readonly distinct?: boolean;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* SQL INSERT operation definition.
|
|
111
|
+
*/
|
|
112
|
+
type SqlInsertOperation = {
|
|
113
|
+
/** Target table */readonly table: string; /** Column names */
|
|
114
|
+
readonly columns: string[]; /** Values to insert (array of arrays for multi-row insert) */
|
|
115
|
+
readonly values: unknown[][]; /** Whether to return the inserted rows */
|
|
116
|
+
readonly returning?: string[] | boolean; /** Conflict resolution (upsert) */
|
|
117
|
+
readonly onConflict?: {
|
|
118
|
+
readonly columns: string[];
|
|
119
|
+
readonly action: "update" | "nothing";
|
|
120
|
+
readonly updateColumns?: string[];
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* SQL UPDATE operation definition.
|
|
125
|
+
*/
|
|
126
|
+
type SqlUpdateOperation = {
|
|
127
|
+
/** Target table */readonly table: string; /** Columns to set with their values */
|
|
128
|
+
readonly set: Record<string, unknown>; /** Columns to increment */
|
|
129
|
+
readonly increment?: Record<string, number>; /** Columns to set to NULL */
|
|
130
|
+
readonly unset?: string[]; /** WHERE conditions */
|
|
131
|
+
readonly where: SqlWhereOperation[]; /** Whether to return updated rows */
|
|
132
|
+
readonly returning?: string[] | boolean; /** Maximum rows to update (some databases support LIMIT in UPDATE) */
|
|
133
|
+
readonly limit?: number;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* SQL DELETE operation definition.
|
|
137
|
+
*/
|
|
138
|
+
type SqlDeleteOperation = {
|
|
139
|
+
/** Target table */readonly table: string; /** WHERE conditions */
|
|
140
|
+
readonly where: SqlWhereOperation[]; /** Whether to return deleted rows */
|
|
141
|
+
readonly returning?: string[] | boolean; /** Maximum rows to delete */
|
|
142
|
+
readonly limit?: number;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Aggregate function types supported in SQL.
|
|
146
|
+
*/
|
|
147
|
+
type SqlAggregateFunction = "count" | "sum" | "avg" | "min" | "max" | "array_agg" | "string_agg" | "jsonb_agg";
|
|
148
|
+
//#endregion
|
|
149
|
+
export { SqlAggregateFunction, SqlDeleteOperation, SqlGroupClause, SqlHavingClause, SqlInsertOperation, SqlJoinClause, SqlJoinType, SqlOrderClause, SqlQueryConfig, SqlQueryResult, SqlSelectClause, SqlUpdateOperation, SqlWhereOperation, SqlWhereType };
|
|
150
|
+
//# sourceMappingURL=sql-types.d.mts.map
|