@warlock.js/cascade 4.0.162 → 4.0.164
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/cjs/context/database-data-source-context.d.ts +29 -0
- package/cjs/context/database-data-source-context.d.ts.map +1 -0
- package/cjs/context/database-data-source-context.js +28 -0
- package/cjs/context/database-data-source-context.js.map +1 -0
- package/cjs/context/database-transaction-context.d.ts +35 -0
- package/cjs/context/database-transaction-context.d.ts.map +1 -0
- package/cjs/context/database-transaction-context.js +40 -0
- package/cjs/context/database-transaction-context.js.map +1 -0
- package/cjs/contracts/database-driver.contract.d.ts +450 -0
- package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
- package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
- package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
- package/cjs/contracts/database-remover.contract.d.ts +104 -0
- package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
- package/cjs/contracts/database-restorer.contract.d.ts +143 -0
- package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
- package/cjs/contracts/database-writer.contract.d.ts +119 -0
- package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
- package/cjs/contracts/driver-blueprint.contract.d.ts +49 -0
- package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
- package/cjs/contracts/index.d.ts +10 -0
- package/cjs/contracts/index.d.ts.map +1 -0
- package/cjs/contracts/migration-driver.contract.d.ts +522 -0
- package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
- package/cjs/contracts/query-builder.contract.d.ts +1609 -0
- package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
- package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
- package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
- package/cjs/data-source/data-source-registry.d.ts +108 -0
- package/cjs/data-source/data-source-registry.d.ts.map +1 -0
- package/cjs/data-source/data-source-registry.js +145 -0
- package/cjs/data-source/data-source-registry.js.map +1 -0
- package/cjs/data-source/data-source.d.ts +147 -0
- package/cjs/data-source/data-source.d.ts.map +1 -0
- package/cjs/data-source/data-source.js +83 -0
- package/cjs/data-source/data-source.js.map +1 -0
- package/cjs/database-dirty-tracker.d.ts +252 -0
- package/cjs/database-dirty-tracker.d.ts.map +1 -0
- package/cjs/database-dirty-tracker.js +386 -0
- package/cjs/database-dirty-tracker.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
- package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-blueprint.js +51 -0
- package/cjs/drivers/mongodb/mongodb-blueprint.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-driver.d.ts +325 -0
- package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-driver.js +838 -0
- package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
- package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-id-generator.js +149 -0
- package/cjs/drivers/mongodb/mongodb-id-generator.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
- package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-migration-driver.js +666 -0
- package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
- package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-query-builder.js +1988 -0
- package/cjs/drivers/mongodb/mongodb-query-builder.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
- package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-query-operations.js +270 -0
- package/cjs/drivers/mongodb/mongodb-query-operations.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
- package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-query-parser.js +1351 -0
- package/cjs/drivers/mongodb/mongodb-query-parser.js.map +1 -0
- package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
- package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
- package/cjs/drivers/mongodb/mongodb-sync-adapter.js +146 -0
- package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
- package/cjs/drivers/mongodb/types.d.ts +43 -0
- package/cjs/drivers/mongodb/types.d.ts.map +1 -0
- package/cjs/drivers/postgres/index.d.ts +16 -0
- package/cjs/drivers/postgres/index.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-blueprint.d.ts +64 -0
- package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-blueprint.js +121 -0
- package/cjs/drivers/postgres/postgres-blueprint.js.map +1 -0
- package/cjs/drivers/postgres/postgres-dialect.d.ts +136 -0
- package/cjs/drivers/postgres/postgres-dialect.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-dialect.js +268 -0
- package/cjs/drivers/postgres/postgres-dialect.js.map +1 -0
- package/cjs/drivers/postgres/postgres-driver.d.ts +432 -0
- package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-driver.js +1010 -0
- package/cjs/drivers/postgres/postgres-driver.js.map +1 -0
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts +397 -0
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-migration-driver.js +900 -0
- package/cjs/drivers/postgres/postgres-migration-driver.js.map +1 -0
- package/cjs/drivers/postgres/postgres-query-builder.d.ts +254 -0
- package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-query-builder.js +933 -0
- package/cjs/drivers/postgres/postgres-query-builder.js.map +1 -0
- package/cjs/drivers/postgres/postgres-query-parser.d.ts +328 -0
- package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-query-parser.js +868 -0
- package/cjs/drivers/postgres/postgres-query-parser.js.map +1 -0
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-sql-serializer.js +400 -0
- package/cjs/drivers/postgres/postgres-sql-serializer.js.map +1 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.js +197 -0
- package/cjs/drivers/postgres/postgres-sync-adapter.js.map +1 -0
- package/cjs/drivers/postgres/types.d.ts +144 -0
- package/cjs/drivers/postgres/types.d.ts.map +1 -0
- package/cjs/drivers/sql/index.d.ts +10 -0
- package/cjs/drivers/sql/index.d.ts.map +1 -0
- package/cjs/drivers/sql/sql-dialect.contract.d.ts +204 -0
- package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
- package/cjs/drivers/sql/sql-types.d.ts +202 -0
- package/cjs/drivers/sql/sql-types.d.ts.map +1 -0
- package/cjs/errors/missing-data-source.error.d.ts +22 -0
- package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
- package/cjs/errors/missing-data-source.error.js +29 -0
- package/cjs/errors/missing-data-source.error.js.map +1 -0
- package/cjs/errors/transaction-rollback.error.d.ts +20 -0
- package/cjs/errors/transaction-rollback.error.d.ts.map +1 -0
- package/cjs/errors/transaction-rollback.error.js +27 -0
- package/cjs/errors/transaction-rollback.error.js.map +1 -0
- package/cjs/events/model-events.d.ts +231 -0
- package/cjs/events/model-events.d.ts.map +1 -0
- package/cjs/events/model-events.js +259 -0
- package/cjs/events/model-events.js.map +1 -0
- package/cjs/expressions/aggregate-expressions.d.ts +215 -0
- package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
- package/cjs/expressions/aggregate-expressions.js +221 -0
- package/cjs/expressions/aggregate-expressions.js.map +1 -0
- package/cjs/expressions/index.d.ts +2 -0
- package/cjs/expressions/index.d.ts.map +1 -0
- package/cjs/index.d.ts +45 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -0
- package/cjs/migration/column-builder.d.ts +417 -0
- package/cjs/migration/column-builder.d.ts.map +1 -0
- package/cjs/migration/column-builder.js +586 -0
- package/cjs/migration/column-builder.js.map +1 -0
- package/cjs/migration/column-helpers.d.ts +275 -0
- package/cjs/migration/column-helpers.d.ts.map +1 -0
- package/cjs/migration/column-helpers.js +389 -0
- package/cjs/migration/column-helpers.js.map +1 -0
- package/cjs/migration/foreign-key-builder.d.ts +103 -0
- package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
- package/cjs/migration/foreign-key-builder.js +121 -0
- package/cjs/migration/foreign-key-builder.js.map +1 -0
- package/cjs/migration/index.d.ts +7 -0
- package/cjs/migration/index.d.ts.map +1 -0
- package/cjs/migration/migration-runner.d.ts +278 -0
- package/cjs/migration/migration-runner.d.ts.map +1 -0
- package/cjs/migration/migration-runner.js +815 -0
- package/cjs/migration/migration-runner.js.map +1 -0
- package/cjs/migration/migration.d.ts +1992 -0
- package/cjs/migration/migration.d.ts.map +1 -0
- package/cjs/migration/migration.js +2162 -0
- package/cjs/migration/migration.js.map +1 -0
- package/cjs/migration/sql-grammar.d.ts +61 -0
- package/cjs/migration/sql-grammar.d.ts.map +1 -0
- package/cjs/migration/sql-grammar.js +164 -0
- package/cjs/migration/sql-grammar.js.map +1 -0
- package/cjs/migration/sql-serializer.d.ts +22 -0
- package/cjs/migration/sql-serializer.d.ts.map +1 -0
- package/cjs/migration/sql-serializer.js +26 -0
- package/cjs/migration/sql-serializer.js.map +1 -0
- package/cjs/migration/types.d.ts +155 -0
- package/cjs/migration/types.d.ts.map +1 -0
- package/cjs/model/methods/accessor-methods.d.ts +13 -0
- package/cjs/model/methods/accessor-methods.d.ts.map +1 -0
- package/cjs/model/methods/accessor-methods.js +51 -0
- package/cjs/model/methods/accessor-methods.js.map +1 -0
- package/cjs/model/methods/delete-methods.d.ts +10 -0
- package/cjs/model/methods/delete-methods.d.ts.map +1 -0
- package/cjs/model/methods/delete-methods.js +10 -0
- package/cjs/model/methods/delete-methods.js.map +1 -0
- package/cjs/model/methods/dirty-methods.d.ts +10 -0
- package/cjs/model/methods/dirty-methods.d.ts.map +1 -0
- package/cjs/model/methods/dirty-methods.js +15 -0
- package/cjs/model/methods/dirty-methods.js.map +1 -0
- package/cjs/model/methods/hydration-methods.d.ts +10 -0
- package/cjs/model/methods/hydration-methods.d.ts.map +1 -0
- package/cjs/model/methods/hydration-methods.js +57 -0
- package/cjs/model/methods/hydration-methods.js.map +1 -0
- package/cjs/model/methods/instance-event-methods.d.ts +7 -0
- package/cjs/model/methods/instance-event-methods.d.ts.map +1 -0
- package/cjs/model/methods/instance-event-methods.js +15 -0
- package/cjs/model/methods/instance-event-methods.js.map +1 -0
- package/cjs/model/methods/meta-methods.d.ts +7 -0
- package/cjs/model/methods/meta-methods.d.ts.map +1 -0
- package/cjs/model/methods/meta-methods.js +78 -0
- package/cjs/model/methods/meta-methods.js.map +1 -0
- package/cjs/model/methods/query-methods.d.ts +24 -0
- package/cjs/model/methods/query-methods.d.ts.map +1 -0
- package/cjs/model/methods/query-methods.js +164 -0
- package/cjs/model/methods/query-methods.js.map +1 -0
- package/cjs/model/methods/restore-methods.d.ts +10 -0
- package/cjs/model/methods/restore-methods.d.ts.map +1 -0
- package/cjs/model/methods/restore-methods.js +13 -0
- package/cjs/model/methods/restore-methods.js.map +1 -0
- package/cjs/model/methods/scope-methods.d.ts +7 -0
- package/cjs/model/methods/scope-methods.d.ts.map +1 -0
- package/cjs/model/methods/scope-methods.js +15 -0
- package/cjs/model/methods/scope-methods.js.map +1 -0
- package/cjs/model/methods/serialization-methods.d.ts +3 -0
- package/cjs/model/methods/serialization-methods.d.ts.map +1 -0
- package/cjs/model/methods/serialization-methods.js +27 -0
- package/cjs/model/methods/serialization-methods.js.map +1 -0
- package/cjs/model/methods/static-event-methods.d.ts +9 -0
- package/cjs/model/methods/static-event-methods.d.ts.map +1 -0
- package/cjs/model/methods/static-event-methods.js +29 -0
- package/cjs/model/methods/static-event-methods.js.map +1 -0
- package/cjs/model/methods/write-methods.d.ts +10 -0
- package/cjs/model/methods/write-methods.d.ts.map +1 -0
- package/cjs/model/methods/write-methods.js +52 -0
- package/cjs/model/methods/write-methods.js.map +1 -0
- package/cjs/model/model.d.ts +1647 -0
- package/cjs/model/model.d.ts.map +1 -0
- package/cjs/model/model.js +1657 -0
- package/cjs/model/model.js.map +1 -0
- package/cjs/model/model.types.d.ts +44 -0
- package/cjs/model/model.types.d.ts.map +1 -0
- package/cjs/model/register-model.d.ts +81 -0
- package/cjs/model/register-model.d.ts.map +1 -0
- package/cjs/model/register-model.js +94 -0
- package/cjs/model/register-model.js.map +1 -0
- package/cjs/query-builder/query-builder.d.ts +556 -0
- package/cjs/query-builder/query-builder.d.ts.map +1 -0
- package/cjs/query-builder/query-builder.js +1070 -0
- package/cjs/query-builder/query-builder.js.map +1 -0
- package/cjs/relations/helpers.d.ts +156 -0
- package/cjs/relations/helpers.d.ts.map +1 -0
- package/cjs/relations/helpers.js +202 -0
- package/cjs/relations/helpers.js.map +1 -0
- package/cjs/relations/index.d.ts +35 -0
- package/cjs/relations/index.d.ts.map +1 -0
- package/cjs/relations/pivot-operations.d.ts +160 -0
- package/cjs/relations/pivot-operations.d.ts.map +1 -0
- package/cjs/relations/pivot-operations.js +293 -0
- package/cjs/relations/pivot-operations.js.map +1 -0
- package/cjs/relations/relation-hydrator.d.ts +68 -0
- package/cjs/relations/relation-hydrator.d.ts.map +1 -0
- package/cjs/relations/relation-hydrator.js +81 -0
- package/cjs/relations/relation-hydrator.js.map +1 -0
- package/cjs/relations/relation-loader.d.ts +194 -0
- package/cjs/relations/relation-loader.d.ts.map +1 -0
- package/cjs/relations/relation-loader.js +466 -0
- package/cjs/relations/relation-loader.js.map +1 -0
- package/cjs/relations/types.d.ts +306 -0
- package/cjs/relations/types.d.ts.map +1 -0
- package/cjs/remover/database-remover.d.ts +100 -0
- package/cjs/remover/database-remover.d.ts.map +1 -0
- package/cjs/remover/database-remover.js +214 -0
- package/cjs/remover/database-remover.js.map +1 -0
- package/cjs/restorer/database-restorer.d.ts +131 -0
- package/cjs/restorer/database-restorer.d.ts.map +1 -0
- package/cjs/restorer/database-restorer.js +434 -0
- package/cjs/restorer/database-restorer.js.map +1 -0
- package/cjs/sql-database-dirty-tracker.d.ts +13 -0
- package/cjs/sql-database-dirty-tracker.d.ts.map +1 -0
- package/cjs/sql-database-dirty-tracker.js +14 -0
- package/cjs/sql-database-dirty-tracker.js.map +1 -0
- package/cjs/sync/index.d.ts +12 -0
- package/cjs/sync/index.d.ts.map +1 -0
- package/cjs/sync/model-events.d.ts +62 -0
- package/cjs/sync/model-events.d.ts.map +1 -0
- package/cjs/sync/model-events.js +49 -0
- package/cjs/sync/model-events.js.map +1 -0
- package/cjs/sync/model-sync-operation.d.ts +163 -0
- package/cjs/sync/model-sync-operation.d.ts.map +1 -0
- package/cjs/sync/model-sync-operation.js +292 -0
- package/cjs/sync/model-sync-operation.js.map +1 -0
- package/cjs/sync/model-sync.d.ts +130 -0
- package/cjs/sync/model-sync.d.ts.map +1 -0
- package/cjs/sync/model-sync.js +178 -0
- package/cjs/sync/model-sync.js.map +1 -0
- package/cjs/sync/sync-context.d.ts +70 -0
- package/cjs/sync/sync-context.d.ts.map +1 -0
- package/cjs/sync/sync-context.js +101 -0
- package/cjs/sync/sync-context.js.map +1 -0
- package/cjs/sync/sync-manager.d.ts +213 -0
- package/cjs/sync/sync-manager.d.ts.map +1 -0
- package/cjs/sync/sync-manager.js +689 -0
- package/cjs/sync/sync-manager.js.map +1 -0
- package/cjs/sync/types.d.ts +289 -0
- package/cjs/sync/types.d.ts.map +1 -0
- package/cjs/test-migrations/test-enhanced-features.migration.d.ts +15 -0
- package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
- package/cjs/types.d.ts +371 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/utils/connect-to-database.d.ts +307 -0
- package/cjs/utils/connect-to-database.d.ts.map +1 -0
- package/cjs/utils/connect-to-database.js +130 -0
- package/cjs/utils/connect-to-database.js.map +1 -0
- package/cjs/utils/database-writer.utils.d.ts +15 -0
- package/cjs/utils/database-writer.utils.d.ts.map +1 -0
- package/cjs/utils/database-writer.utils.js +14 -0
- package/cjs/utils/database-writer.utils.js.map +1 -0
- package/cjs/utils/define-model.js +100 -0
- package/cjs/utils/define-model.js.map +1 -0
- package/cjs/utils/is-valid-date-value.d.ts +5 -0
- package/cjs/utils/is-valid-date-value.d.ts.map +1 -0
- package/cjs/utils/is-valid-date-value.js +25 -0
- package/cjs/utils/is-valid-date-value.js.map +1 -0
- package/cjs/utils/once-connected.d.ts +146 -0
- package/cjs/utils/once-connected.d.ts.map +1 -0
- package/cjs/utils/once-connected.js +251 -0
- package/cjs/utils/once-connected.js.map +1 -0
- package/cjs/validation/database-seal-plugins.d.ts +12 -0
- package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
- package/cjs/validation/database-seal-plugins.js +1 -0
- package/cjs/validation/database-seal-plugins.js.map +1 -0
- package/cjs/validation/database-writer-validation-error.d.ts +97 -0
- package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
- package/cjs/validation/database-writer-validation-error.js +160 -0
- package/cjs/validation/database-writer-validation-error.js.map +1 -0
- package/cjs/validation/index.d.ts +3 -0
- package/cjs/validation/index.d.ts.map +1 -0
- package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
- package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
- package/cjs/validation/mutators/embed-mutator.js +33 -0
- package/cjs/validation/mutators/embed-mutator.js.map +1 -0
- package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
- package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
- package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
- package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
- package/cjs/validation/rules/database-model-rule.d.ts +7 -0
- package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
- package/cjs/validation/rules/database-model-rule.js +27 -0
- package/cjs/validation/rules/database-model-rule.js.map +1 -0
- package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
- package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
- package/cjs/validation/transformers/embed-model-transformer.js +18 -0
- package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
- package/cjs/validation/validators/embed-validator.d.ts +21 -0
- package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
- package/cjs/validation/validators/embed-validator.js +43 -0
- package/cjs/validation/validators/embed-validator.js.map +1 -0
- package/cjs/writer/database-writer.d.ts +181 -0
- package/cjs/writer/database-writer.d.ts.map +1 -0
- package/cjs/writer/database-writer.js +407 -0
- package/cjs/writer/database-writer.js.map +1 -0
- package/esm/data-source/data-source-registry.d.ts +108 -0
- package/esm/data-source/data-source-registry.d.ts.map +1 -0
- package/esm/data-source/data-source-registry.js +145 -0
- package/esm/data-source/data-source-registry.js.map +1 -0
- package/esm/data-source/data-source.d.ts +147 -0
- package/esm/data-source/data-source.d.ts.map +1 -0
- package/esm/data-source/data-source.js +83 -0
- package/esm/data-source/data-source.js.map +1 -0
- package/esm/database-dirty-tracker.d.ts +252 -0
- package/esm/database-dirty-tracker.d.ts.map +1 -0
- package/esm/database-dirty-tracker.js +386 -0
- package/esm/database-dirty-tracker.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-blueprint.d.ts +30 -0
- package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-blueprint.js +51 -0
- package/esm/drivers/mongodb/mongodb-blueprint.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-driver.d.ts +325 -0
- package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-driver.js +838 -0
- package/esm/drivers/mongodb/mongodb-driver.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-id-generator.d.ts +116 -0
- package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-id-generator.js +149 -0
- package/esm/drivers/mongodb/mongodb-id-generator.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +317 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.js +666 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-builder.d.ts +1122 -0
- package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-builder.js +1988 -0
- package/esm/drivers/mongodb/mongodb-query-builder.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-operations.d.ts +226 -0
- package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-operations.js +270 -0
- package/esm/drivers/mongodb/mongodb-query-operations.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-parser.d.ts +262 -0
- package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-parser.js +1351 -0
- package/esm/drivers/mongodb/mongodb-query-parser.js.map +1 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +79 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +1 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.js +146 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +1 -0
- package/esm/drivers/mongodb/types.d.ts +43 -0
- package/esm/drivers/mongodb/types.d.ts.map +1 -0
- package/esm/drivers/postgres/index.d.ts +16 -0
- package/esm/drivers/postgres/index.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-blueprint.d.ts +64 -0
- package/esm/drivers/postgres/postgres-blueprint.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-blueprint.js +121 -0
- package/esm/drivers/postgres/postgres-blueprint.js.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.d.ts +136 -0
- package/esm/drivers/postgres/postgres-dialect.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.js +268 -0
- package/esm/drivers/postgres/postgres-dialect.js.map +1 -0
- package/esm/drivers/postgres/postgres-driver.d.ts +432 -0
- package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-driver.js +1010 -0
- package/esm/drivers/postgres/postgres-driver.js.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.ts +397 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.js +900 -0
- package/esm/drivers/postgres/postgres-migration-driver.js.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.d.ts +254 -0
- package/esm/drivers/postgres/postgres-query-builder.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.js +933 -0
- package/esm/drivers/postgres/postgres-query-builder.js.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.d.ts +328 -0
- package/esm/drivers/postgres/postgres-query-parser.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.js +868 -0
- package/esm/drivers/postgres/postgres-query-parser.js.map +1 -0
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts +37 -0
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-sql-serializer.js +400 -0
- package/esm/drivers/postgres/postgres-sql-serializer.js.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts +83 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.js +197 -0
- package/esm/drivers/postgres/postgres-sync-adapter.js.map +1 -0
- package/esm/drivers/postgres/types.d.ts +144 -0
- package/esm/drivers/postgres/types.d.ts.map +1 -0
- package/esm/drivers/sql/index.d.ts +10 -0
- package/esm/drivers/sql/index.d.ts.map +1 -0
- package/esm/drivers/sql/sql-dialect.contract.d.ts +204 -0
- package/esm/drivers/sql/sql-dialect.contract.d.ts.map +1 -0
- package/esm/drivers/sql/sql-types.d.ts +202 -0
- package/esm/drivers/sql/sql-types.d.ts.map +1 -0
- package/esm/errors/missing-data-source.error.d.ts +22 -0
- package/esm/errors/missing-data-source.error.d.ts.map +1 -0
- package/esm/errors/missing-data-source.error.js +29 -0
- package/esm/errors/missing-data-source.error.js.map +1 -0
- package/esm/errors/transaction-rollback.error.d.ts +20 -0
- package/esm/errors/transaction-rollback.error.d.ts.map +1 -0
- package/esm/errors/transaction-rollback.error.js +27 -0
- package/esm/errors/transaction-rollback.error.js.map +1 -0
- package/esm/events/model-events.d.ts +231 -0
- package/esm/events/model-events.d.ts.map +1 -0
- package/esm/events/model-events.js +259 -0
- package/esm/events/model-events.js.map +1 -0
- package/esm/expressions/aggregate-expressions.d.ts +215 -0
- package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
- package/esm/expressions/aggregate-expressions.js +221 -0
- package/esm/expressions/aggregate-expressions.js.map +1 -0
- package/esm/expressions/index.d.ts +2 -0
- package/esm/expressions/index.d.ts.map +1 -0
- package/esm/index.d.ts +45 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- package/esm/migration/column-builder.d.ts +417 -0
- package/esm/migration/column-builder.d.ts.map +1 -0
- package/esm/migration/column-builder.js +586 -0
- package/esm/migration/column-builder.js.map +1 -0
- package/esm/migration/column-helpers.d.ts +275 -0
- package/esm/migration/column-helpers.d.ts.map +1 -0
- package/esm/migration/column-helpers.js +389 -0
- package/esm/migration/column-helpers.js.map +1 -0
- package/esm/migration/foreign-key-builder.d.ts +103 -0
- package/esm/migration/foreign-key-builder.d.ts.map +1 -0
- package/esm/migration/foreign-key-builder.js +121 -0
- package/esm/migration/foreign-key-builder.js.map +1 -0
- package/esm/migration/index.d.ts +7 -0
- package/esm/migration/index.d.ts.map +1 -0
- package/esm/migration/migration-runner.d.ts +278 -0
- package/esm/migration/migration-runner.d.ts.map +1 -0
- package/esm/migration/migration-runner.js +815 -0
- package/esm/migration/migration-runner.js.map +1 -0
- package/esm/migration/migration.d.ts +1992 -0
- package/esm/migration/migration.d.ts.map +1 -0
- package/esm/migration/migration.js +2162 -0
- package/esm/migration/migration.js.map +1 -0
- package/esm/migration/sql-grammar.d.ts +61 -0
- package/esm/migration/sql-grammar.d.ts.map +1 -0
- package/esm/migration/sql-grammar.js +164 -0
- package/esm/migration/sql-grammar.js.map +1 -0
- package/esm/migration/sql-serializer.d.ts +22 -0
- package/esm/migration/sql-serializer.d.ts.map +1 -0
- package/esm/migration/sql-serializer.js +26 -0
- package/esm/migration/sql-serializer.js.map +1 -0
- package/esm/migration/types.d.ts +155 -0
- package/esm/migration/types.d.ts.map +1 -0
- package/esm/model/methods/accessor-methods.d.ts +13 -0
- package/esm/model/methods/accessor-methods.d.ts.map +1 -0
- package/esm/model/methods/accessor-methods.js +51 -0
- package/esm/model/methods/accessor-methods.js.map +1 -0
- package/esm/model/methods/delete-methods.d.ts +10 -0
- package/esm/model/methods/delete-methods.d.ts.map +1 -0
- package/esm/model/methods/delete-methods.js +10 -0
- package/esm/model/methods/delete-methods.js.map +1 -0
- package/esm/model/methods/dirty-methods.d.ts +10 -0
- package/esm/model/methods/dirty-methods.d.ts.map +1 -0
- package/esm/model/methods/dirty-methods.js +15 -0
- package/esm/model/methods/dirty-methods.js.map +1 -0
- package/esm/model/methods/hydration-methods.d.ts +10 -0
- package/esm/model/methods/hydration-methods.d.ts.map +1 -0
- package/esm/model/methods/hydration-methods.js +57 -0
- package/esm/model/methods/hydration-methods.js.map +1 -0
- package/esm/model/methods/instance-event-methods.d.ts +7 -0
- package/esm/model/methods/instance-event-methods.d.ts.map +1 -0
- package/esm/model/methods/instance-event-methods.js +15 -0
- package/esm/model/methods/instance-event-methods.js.map +1 -0
- package/esm/model/methods/meta-methods.d.ts +7 -0
- package/esm/model/methods/meta-methods.d.ts.map +1 -0
- package/esm/model/methods/meta-methods.js +78 -0
- package/esm/model/methods/meta-methods.js.map +1 -0
- package/esm/model/methods/query-methods.d.ts +24 -0
- package/esm/model/methods/query-methods.d.ts.map +1 -0
- package/esm/model/methods/query-methods.js +164 -0
- package/esm/model/methods/query-methods.js.map +1 -0
- package/esm/model/methods/restore-methods.d.ts +10 -0
- package/esm/model/methods/restore-methods.d.ts.map +1 -0
- package/esm/model/methods/restore-methods.js +13 -0
- package/esm/model/methods/restore-methods.js.map +1 -0
- package/esm/model/methods/scope-methods.d.ts +7 -0
- package/esm/model/methods/scope-methods.d.ts.map +1 -0
- package/esm/model/methods/scope-methods.js +15 -0
- package/esm/model/methods/scope-methods.js.map +1 -0
- package/esm/model/methods/serialization-methods.d.ts +3 -0
- package/esm/model/methods/serialization-methods.d.ts.map +1 -0
- package/esm/model/methods/serialization-methods.js +27 -0
- package/esm/model/methods/serialization-methods.js.map +1 -0
- package/esm/model/methods/static-event-methods.d.ts +9 -0
- package/esm/model/methods/static-event-methods.d.ts.map +1 -0
- package/esm/model/methods/static-event-methods.js +29 -0
- package/esm/model/methods/static-event-methods.js.map +1 -0
- package/esm/model/methods/write-methods.d.ts +10 -0
- package/esm/model/methods/write-methods.d.ts.map +1 -0
- package/esm/model/methods/write-methods.js +52 -0
- package/esm/model/methods/write-methods.js.map +1 -0
- package/esm/model/model.d.ts +1647 -0
- package/esm/model/model.d.ts.map +1 -0
- package/esm/model/model.js +1657 -0
- package/esm/model/model.js.map +1 -0
- package/esm/model/model.types.d.ts +44 -0
- package/esm/model/model.types.d.ts.map +1 -0
- package/esm/model/register-model.d.ts +81 -0
- package/esm/model/register-model.d.ts.map +1 -0
- package/esm/model/register-model.js +94 -0
- package/esm/model/register-model.js.map +1 -0
- package/esm/query-builder/query-builder.d.ts +556 -0
- package/esm/query-builder/query-builder.d.ts.map +1 -0
- package/esm/query-builder/query-builder.js +1070 -0
- package/esm/query-builder/query-builder.js.map +1 -0
- package/esm/relations/helpers.d.ts +156 -0
- package/esm/relations/helpers.d.ts.map +1 -0
- package/esm/relations/helpers.js +202 -0
- package/esm/relations/helpers.js.map +1 -0
- package/esm/relations/index.d.ts +35 -0
- package/esm/relations/index.d.ts.map +1 -0
- package/esm/relations/pivot-operations.d.ts +160 -0
- package/esm/relations/pivot-operations.d.ts.map +1 -0
- package/esm/relations/pivot-operations.js +293 -0
- package/esm/relations/pivot-operations.js.map +1 -0
- package/esm/relations/relation-hydrator.d.ts +68 -0
- package/esm/relations/relation-hydrator.d.ts.map +1 -0
- package/esm/relations/relation-hydrator.js +81 -0
- package/esm/relations/relation-hydrator.js.map +1 -0
- package/esm/relations/relation-loader.d.ts +194 -0
- package/esm/relations/relation-loader.d.ts.map +1 -0
- package/esm/relations/relation-loader.js +466 -0
- package/esm/relations/relation-loader.js.map +1 -0
- package/esm/relations/types.d.ts +306 -0
- package/esm/relations/types.d.ts.map +1 -0
- package/esm/remover/database-remover.d.ts +100 -0
- package/esm/remover/database-remover.d.ts.map +1 -0
- package/esm/remover/database-remover.js +214 -0
- package/esm/remover/database-remover.js.map +1 -0
- package/esm/restorer/database-restorer.d.ts +131 -0
- package/esm/restorer/database-restorer.d.ts.map +1 -0
- package/esm/restorer/database-restorer.js +434 -0
- package/esm/restorer/database-restorer.js.map +1 -0
- package/esm/sql-database-dirty-tracker.d.ts +13 -0
- package/esm/sql-database-dirty-tracker.d.ts.map +1 -0
- package/esm/sql-database-dirty-tracker.js +14 -0
- package/esm/sql-database-dirty-tracker.js.map +1 -0
- package/esm/sync/index.d.ts +12 -0
- package/esm/sync/index.d.ts.map +1 -0
- package/esm/sync/model-events.d.ts +62 -0
- package/esm/sync/model-events.d.ts.map +1 -0
- package/esm/sync/model-events.js +49 -0
- package/esm/sync/model-events.js.map +1 -0
- package/esm/sync/model-sync-operation.d.ts +163 -0
- package/esm/sync/model-sync-operation.d.ts.map +1 -0
- package/esm/sync/model-sync-operation.js +292 -0
- package/esm/sync/model-sync-operation.js.map +1 -0
- package/esm/sync/model-sync.d.ts +130 -0
- package/esm/sync/model-sync.d.ts.map +1 -0
- package/esm/sync/model-sync.js +178 -0
- package/esm/sync/model-sync.js.map +1 -0
- package/esm/sync/sync-context.d.ts +70 -0
- package/esm/sync/sync-context.d.ts.map +1 -0
- package/esm/sync/sync-context.js +101 -0
- package/esm/sync/sync-context.js.map +1 -0
- package/esm/sync/sync-manager.d.ts +213 -0
- package/esm/sync/sync-manager.d.ts.map +1 -0
- package/esm/sync/sync-manager.js +689 -0
- package/esm/sync/sync-manager.js.map +1 -0
- package/esm/sync/types.d.ts +289 -0
- package/esm/sync/types.d.ts.map +1 -0
- package/esm/test-migrations/test-enhanced-features.migration.d.ts +15 -0
- package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +1 -0
- package/esm/types.d.ts +371 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/utils/connect-to-database.d.ts +307 -0
- package/esm/utils/connect-to-database.d.ts.map +1 -0
- package/esm/utils/connect-to-database.js +130 -0
- package/esm/utils/connect-to-database.js.map +1 -0
- package/esm/utils/database-writer.utils.d.ts +15 -0
- package/esm/utils/database-writer.utils.d.ts.map +1 -0
- package/esm/utils/database-writer.utils.js +14 -0
- package/esm/utils/database-writer.utils.js.map +1 -0
- package/esm/utils/define-model.js +100 -0
- package/esm/utils/define-model.js.map +1 -0
- package/esm/utils/is-valid-date-value.d.ts +5 -0
- package/esm/utils/is-valid-date-value.d.ts.map +1 -0
- package/esm/utils/is-valid-date-value.js +25 -0
- package/esm/utils/is-valid-date-value.js.map +1 -0
- package/esm/utils/once-connected.d.ts +146 -0
- package/esm/utils/once-connected.d.ts.map +1 -0
- package/esm/utils/once-connected.js +251 -0
- package/esm/utils/once-connected.js.map +1 -0
- package/esm/validation/database-seal-plugins.d.ts +12 -0
- package/esm/validation/database-seal-plugins.d.ts.map +1 -0
- package/esm/validation/database-seal-plugins.js +1 -0
- package/esm/validation/database-seal-plugins.js.map +1 -0
- package/esm/validation/database-writer-validation-error.d.ts +97 -0
- package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
- package/esm/validation/database-writer-validation-error.js +160 -0
- package/esm/validation/database-writer-validation-error.js.map +1 -0
- package/esm/validation/index.d.ts +3 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/mutators/embed-mutator.d.ts +9 -0
- package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
- package/esm/validation/mutators/embed-mutator.js +33 -0
- package/esm/validation/mutators/embed-mutator.js.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
- package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.js +18 -0
- package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
- package/esm/validation/rules/database-model-rule.d.ts +7 -0
- package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
- package/esm/validation/rules/database-model-rule.js +27 -0
- package/esm/validation/rules/database-model-rule.js.map +1 -0
- package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
- package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
- package/esm/validation/transformers/embed-model-transformer.js +18 -0
- package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
- package/esm/validation/validators/embed-validator.d.ts +21 -0
- package/esm/validation/validators/embed-validator.d.ts.map +1 -0
- package/esm/validation/validators/embed-validator.js +43 -0
- package/esm/validation/validators/embed-validator.js.map +1 -0
- package/esm/writer/database-writer.d.ts +181 -0
- package/esm/writer/database-writer.d.ts.map +1 -0
- package/esm/writer/database-writer.js +407 -0
- package/esm/writer/database-writer.js.map +1 -0
- package/package.json +4 -4
package/esm/types.d.ts
ADDED
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strict mode configuration for handling unknown fields during validation.
|
|
3
|
+
*
|
|
4
|
+
* Controls how the model behaves when encountering fields not defined in the schema.
|
|
5
|
+
*
|
|
6
|
+
* - `"strip"` - Remove unknown fields silently (default, recommended for APIs)
|
|
7
|
+
* - `"fail"` - Throw validation error on unknown fields (strict validation)
|
|
8
|
+
* - `"allow"` - Allow unknown fields to pass through (permissive)
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { Model, type StrictMode } from "@warlock.js/cascade";
|
|
13
|
+
*
|
|
14
|
+
* class User extends Model {
|
|
15
|
+
* public static strictMode: StrictMode = "fail";
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export type StrictMode = "strip" | "fail" | "allow";
|
|
20
|
+
/**
|
|
21
|
+
* Delete strategy for model destruction.
|
|
22
|
+
*
|
|
23
|
+
* Controls how models are deleted from the database:
|
|
24
|
+
*
|
|
25
|
+
* - `"trash"` - Moves document to a trash/recycle bin collection, then deletes
|
|
26
|
+
* - `"permanent"` - Actually deletes the document from the database (hard delete)
|
|
27
|
+
* - `"soft"` - Sets a `deletedAt` timestamp instead of deleting (soft delete)
|
|
28
|
+
*
|
|
29
|
+
* Priority order (highest to lowest):
|
|
30
|
+
* 1. destroy() method options
|
|
31
|
+
* 2. Model static property (deleteStrategy)
|
|
32
|
+
* 3. Data source default configuration
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* class User extends Model {
|
|
37
|
+
* public static deleteStrategy: DeleteStrategy = "soft";
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* // Override at call time
|
|
41
|
+
* await user.destroy({ strategy: "permanent" });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export type DeleteStrategy = "trash" | "permanent" | "soft";
|
|
45
|
+
/**
|
|
46
|
+
* Naming convention for database column names.
|
|
47
|
+
*
|
|
48
|
+
* Different databases have different naming conventions:
|
|
49
|
+
* - `"camelCase"` - MongoDB standard (createdAt, updatedAt, deletedAt)
|
|
50
|
+
* - `"snake_case"` - PostgreSQL/MySQL standard (created_at, updated_at, deleted_at)
|
|
51
|
+
*
|
|
52
|
+
* This affects default column names for timestamps and other system columns.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // PostgreSQL driver defaults
|
|
57
|
+
* namingConvention: "snake_case"
|
|
58
|
+
* // Results in: created_at, updated_at, deleted_at
|
|
59
|
+
*
|
|
60
|
+
* // MongoDB driver defaults
|
|
61
|
+
* namingConvention: "camelCase"
|
|
62
|
+
* // Results in: createdAt, updatedAt, deletedAt
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export type NamingConvention = "camelCase" | "snake_case";
|
|
66
|
+
/**
|
|
67
|
+
* Unified model default configuration.
|
|
68
|
+
*
|
|
69
|
+
* These settings define default behaviors for models. The configuration
|
|
70
|
+
* follows a 4-tier hierarchy (highest to lowest precedence):
|
|
71
|
+
*
|
|
72
|
+
* 1. Model static property (explicit override)
|
|
73
|
+
* 2. Database config modelDefaults
|
|
74
|
+
* 3. Driver defaults (SQL vs NoSQL conventions)
|
|
75
|
+
* 4. Framework defaults (fallback values)
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* // PostgreSQL driver provides defaults:
|
|
80
|
+
* const postgresDefaults: ModelDefaults = {
|
|
81
|
+
* namingConvention: "snake_case",
|
|
82
|
+
* createdAtColumn: "created_at",
|
|
83
|
+
* updatedAtColumn: "updated_at",
|
|
84
|
+
* deletedAtColumn: "deleted_at",
|
|
85
|
+
* timestamps: true,
|
|
86
|
+
* autoGenerateId: false, // SQL handles this
|
|
87
|
+
* };
|
|
88
|
+
*
|
|
89
|
+
* // Override in database config:
|
|
90
|
+
* {
|
|
91
|
+
* modelDefaults: {
|
|
92
|
+
* randomIncrement: true,
|
|
93
|
+
* initialId: 1000,
|
|
94
|
+
* deleteStrategy: "soft",
|
|
95
|
+
* }
|
|
96
|
+
* }
|
|
97
|
+
*
|
|
98
|
+
* // Override in specific model:
|
|
99
|
+
* class User extends Model {
|
|
100
|
+
* public static createdAtColumn = "creation_date"; // Highest priority
|
|
101
|
+
* public static updatedAtColumn = false; // Disable updatedAt
|
|
102
|
+
* }
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
export type ModelDefaults = {
|
|
106
|
+
/**
|
|
107
|
+
* Auto-generate incremental `id` field on insert (NoSQL only).
|
|
108
|
+
*
|
|
109
|
+
* When enabled, the ID generator creates a sequential integer ID
|
|
110
|
+
* separate from the database's native ID (_id for MongoDB).
|
|
111
|
+
*
|
|
112
|
+
* **Note:** SQL databases use native AUTO_INCREMENT and don't need this.
|
|
113
|
+
*
|
|
114
|
+
* @default true (MongoDB), false (PostgreSQL)
|
|
115
|
+
*/
|
|
116
|
+
autoGenerateId?: boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Initial ID value for the first record.
|
|
119
|
+
*
|
|
120
|
+
* @default 1
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* initialId: 1000 // Start from 1000
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
initialId?: number;
|
|
128
|
+
/**
|
|
129
|
+
* Randomly generate the initial ID.
|
|
130
|
+
*
|
|
131
|
+
* Can be:
|
|
132
|
+
* - `true`: Generate random ID between 10000-499999
|
|
133
|
+
* - Function: Custom random ID generator
|
|
134
|
+
* - `false`: Use `initialId` or default to 1
|
|
135
|
+
*
|
|
136
|
+
* @default false
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* randomInitialId: true // Random 10000-499999
|
|
141
|
+
* randomInitialId: () => Math.floor(Math.random() * 1000000)
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
randomInitialId?: boolean | (() => number);
|
|
145
|
+
/**
|
|
146
|
+
* Amount to increment ID by for each new record.
|
|
147
|
+
*
|
|
148
|
+
* @default 1
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* incrementIdBy: 5 // Increment by 5
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
incrementIdBy?: number;
|
|
156
|
+
/**
|
|
157
|
+
* Randomly generate the increment amount.
|
|
158
|
+
*
|
|
159
|
+
* Can be:
|
|
160
|
+
* - `true`: Generate random increment between 1-10
|
|
161
|
+
* - Function: Custom random increment generator
|
|
162
|
+
* - `false`: Use `incrementIdBy` or default to 1
|
|
163
|
+
*
|
|
164
|
+
* @default false
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* randomIncrement: true // Random 1-10
|
|
169
|
+
* randomIncrement: () => Math.floor(Math.random() * 100)
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
randomIncrement?: boolean | (() => number);
|
|
173
|
+
/**
|
|
174
|
+
* Enable/disable automatic timestamp management.
|
|
175
|
+
*
|
|
176
|
+
* When enabled, createdAt and updatedAt are automatically managed.
|
|
177
|
+
* When disabled, no timestamps are added.
|
|
178
|
+
*
|
|
179
|
+
* @default true
|
|
180
|
+
*/
|
|
181
|
+
timestamps?: boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Column name for creation timestamp.
|
|
184
|
+
*
|
|
185
|
+
* Set to `false` to disable createdAt entirely.
|
|
186
|
+
*
|
|
187
|
+
* @default "createdAt" (MongoDB), "created_at" (PostgreSQL)
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* createdAtColumn: "creation_date"
|
|
192
|
+
* createdAtColumn: false // Disable
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
createdAtColumn?: string | false;
|
|
196
|
+
/**
|
|
197
|
+
* Column name for update timestamp.
|
|
198
|
+
*
|
|
199
|
+
* Set to `false` to disable updatedAt entirely.
|
|
200
|
+
*
|
|
201
|
+
* @default "updatedAt" (MongoDB), "updated_at" (PostgreSQL)
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* updatedAtColumn: "last_modified"
|
|
206
|
+
* updatedAtColumn: false // Disable
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
updatedAtColumn?: string | false;
|
|
210
|
+
/**
|
|
211
|
+
* Delete strategy for this model.
|
|
212
|
+
*
|
|
213
|
+
* Controls how models are deleted:
|
|
214
|
+
* - `"trash"` - Moves to trash collection, then deletes
|
|
215
|
+
* - `"permanent"` - Direct deletion (hard delete)
|
|
216
|
+
* - `"soft"` - Sets deletedAt timestamp (soft delete)
|
|
217
|
+
*
|
|
218
|
+
* @default "permanent"
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* deleteStrategy: "soft"
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
deleteStrategy?: DeleteStrategy;
|
|
226
|
+
/**
|
|
227
|
+
* Column name for soft delete timestamp.
|
|
228
|
+
*
|
|
229
|
+
* Used when delete strategy is "soft".
|
|
230
|
+
* Set to `false` to use a different mechanism.
|
|
231
|
+
*
|
|
232
|
+
* @default "deletedAt" (MongoDB), "deleted_at" (PostgreSQL)
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```typescript
|
|
236
|
+
* deletedAtColumn: "archived_at"
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
deletedAtColumn?: string | false;
|
|
240
|
+
/**
|
|
241
|
+
* Trash table/collection name override.
|
|
242
|
+
*
|
|
243
|
+
* Can be:
|
|
244
|
+
* - String: Fixed name for all models
|
|
245
|
+
* - Function: Generate trash table name based on model table
|
|
246
|
+
* - `undefined`: Use default pattern `{table}Trash`
|
|
247
|
+
*
|
|
248
|
+
* Used when delete strategy is "trash".
|
|
249
|
+
*
|
|
250
|
+
* @default undefined (uses {table}Trash pattern)
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```typescript
|
|
254
|
+
* trashTable: "RecycleBin" // All models use same trash
|
|
255
|
+
* trashTable: (table) => `archive_${table}` // Dynamic naming
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
trashTable?: string | ((tableName: string) => string);
|
|
259
|
+
/**
|
|
260
|
+
* Strict mode behavior for unknown fields.
|
|
261
|
+
*
|
|
262
|
+
* - `"strip"`: Remove unknown fields silently (default)
|
|
263
|
+
* - `"fail"`: Throw validation error on unknown fields
|
|
264
|
+
* - `"allow"`: Allow unknown fields to pass through
|
|
265
|
+
*
|
|
266
|
+
* @default "strip"
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```typescript
|
|
270
|
+
* strictMode: "fail" // Strict validation
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
strictMode?: StrictMode;
|
|
274
|
+
/**
|
|
275
|
+
* Naming convention for database column names.
|
|
276
|
+
*
|
|
277
|
+
* Affects default names for timestamps and other system columns.
|
|
278
|
+
*
|
|
279
|
+
* @default "camelCase" (MongoDB), "snake_case" (PostgreSQL)
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* namingConvention: "snake_case"
|
|
284
|
+
* // Results in: created_at, updated_at, deleted_at
|
|
285
|
+
* ```
|
|
286
|
+
*/
|
|
287
|
+
namingConvention?: NamingConvention;
|
|
288
|
+
};
|
|
289
|
+
/**
|
|
290
|
+
* UUID generation strategy for primary keys.
|
|
291
|
+
*
|
|
292
|
+
* Each driver maps this to its native expression:
|
|
293
|
+
* - `"v4"`: PG → `gen_random_uuid()` (PG 13+), MySQL → `UUID()`
|
|
294
|
+
* - `"v7"`: PG → `uuid_generate_v7()` (PG 18+)
|
|
295
|
+
*
|
|
296
|
+
* @example
|
|
297
|
+
* ```typescript
|
|
298
|
+
* // In database config
|
|
299
|
+
* migrationDefaults: {
|
|
300
|
+
* uuidStrategy: "v7", // Use UUID v7 (PG 18+)
|
|
301
|
+
* }
|
|
302
|
+
* ```
|
|
303
|
+
*/
|
|
304
|
+
export type UuidStrategy = "v4" | "v7";
|
|
305
|
+
/**
|
|
306
|
+
* Migration-level defaults configurable per data source.
|
|
307
|
+
*
|
|
308
|
+
* These settings affect DDL operations (schema changes) and are
|
|
309
|
+
* separate from runtime model behavior (`ModelDefaults`).
|
|
310
|
+
*
|
|
311
|
+
* The configuration follows a 3-tier hierarchy (highest to lowest):
|
|
312
|
+
* 1. Inline migration call (explicit `.default("...")`)
|
|
313
|
+
* 2. DataSource `migrationDefaults` (this type)
|
|
314
|
+
* 3. Driver migration defaults (e.g., PG defaults to v4)
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
* ```typescript
|
|
318
|
+
* // Use UUID v7 for all migrations on this data source
|
|
319
|
+
* migrationDefaults: {
|
|
320
|
+
* uuidStrategy: "v7",
|
|
321
|
+
* }
|
|
322
|
+
*
|
|
323
|
+
* // Use a custom UUID extension
|
|
324
|
+
* migrationDefaults: {
|
|
325
|
+
* uuidExpression: "uuid_generate_v1mc()",
|
|
326
|
+
* }
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export type MigrationDefaults = {
|
|
330
|
+
/**
|
|
331
|
+
* UUID generation strategy for `primaryUuid()` migration shortcut.
|
|
332
|
+
* Each driver maps this to its native SQL/expression.
|
|
333
|
+
*
|
|
334
|
+
* @default "v4"
|
|
335
|
+
*/
|
|
336
|
+
uuidStrategy?: UuidStrategy;
|
|
337
|
+
/**
|
|
338
|
+
* Raw SQL/expression override for UUID generation.
|
|
339
|
+
* Takes precedence over `uuidStrategy` when set.
|
|
340
|
+
*
|
|
341
|
+
* Use for custom extensions (e.g., `uuid-ossp`, `pgcrypto`)
|
|
342
|
+
* or non-standard UUID generation functions.
|
|
343
|
+
*
|
|
344
|
+
* @example "uuid_generate_v1mc()"
|
|
345
|
+
*/
|
|
346
|
+
uuidExpression?: string;
|
|
347
|
+
/**
|
|
348
|
+
* Default primary key type for `Migration.create()`.
|
|
349
|
+
*
|
|
350
|
+
* Controls which primary key column is automatically added when using
|
|
351
|
+
* the declarative `Migration.create()` factory. Individual migrations
|
|
352
|
+
* can still override this by passing `{ primaryKey: false }` in options.
|
|
353
|
+
*
|
|
354
|
+
* - `"uuid"` — UUID primary key via `primaryUuid()` (default for PostgreSQL)
|
|
355
|
+
* - `"int"` — Auto-increment integer via `id()`
|
|
356
|
+
* - `"bigInt"` — Big auto-increment integer via `bigId()`
|
|
357
|
+
*
|
|
358
|
+
* @default "int"
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* ```typescript
|
|
362
|
+
* // src/config/database.ts
|
|
363
|
+
* migrationOptions: {
|
|
364
|
+
* uuidStrategy: "v7",
|
|
365
|
+
* primaryKey: "uuid",
|
|
366
|
+
* }
|
|
367
|
+
* ```
|
|
368
|
+
*/
|
|
369
|
+
primaryKey?: "uuid" | "int" | "bigInt";
|
|
370
|
+
};
|
|
371
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,MAAM,aAAa,GAAG;IAK1B;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAM3C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAMjC;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAMtD;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAMxB;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAMF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;CACxC,CAAC"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { DriverContract, TransactionContext } from "../contracts";
|
|
2
|
+
import { DataSource } from "../data-source/data-source";
|
|
3
|
+
import type { DeleteStrategy, MigrationDefaults, ModelDefaults } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Supported database driver types.
|
|
6
|
+
*/
|
|
7
|
+
export type DatabaseDriver = "mongodb" | "postgres" | "mysql";
|
|
8
|
+
/**
|
|
9
|
+
* Default model configuration options.
|
|
10
|
+
*
|
|
11
|
+
* These settings will be applied to all models using this data source,
|
|
12
|
+
* unless overridden by individual model static properties.
|
|
13
|
+
*
|
|
14
|
+
* This is a re-export of Partial<ModelDefaults> for backward compatibility
|
|
15
|
+
* and to provide clearer naming in the connection config context.
|
|
16
|
+
*
|
|
17
|
+
* The full hierarchy is:
|
|
18
|
+
* 1. Model static property (highest priority)
|
|
19
|
+
* 2. Database config modelDefaults (this type)
|
|
20
|
+
* 3. Driver defaults (e.g., snake_case for PostgreSQL, camelCase for MongoDB)
|
|
21
|
+
* 4. Framework defaults (fallback values)
|
|
22
|
+
*
|
|
23
|
+
* @see ModelDefaults for complete type definition and documentation
|
|
24
|
+
*/
|
|
25
|
+
export type ModelDefaultConfig = Partial<ModelDefaults>;
|
|
26
|
+
/**
|
|
27
|
+
* Connection options for establishing a database connection.
|
|
28
|
+
*
|
|
29
|
+
* Generic type that separates concerns:
|
|
30
|
+
* - Shared config (driver, name, database, connection details)
|
|
31
|
+
* - Driver options (cascade-next driver-specific settings)
|
|
32
|
+
* - Client options (native database client settings)
|
|
33
|
+
* - Model options (default model behaviors)
|
|
34
|
+
*
|
|
35
|
+
* @template TDriverOptions - Driver-specific options (e.g., MongoDriverOptions)
|
|
36
|
+
* @template TClientOptions - Native client options (e.g., MongoClientOptions from mongodb package)
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* // MongoDB
|
|
41
|
+
* import type { MongoClientOptions } from "mongodb";
|
|
42
|
+
* import type { MongoDriverOptions } from "@warlock.js/cascade";
|
|
43
|
+
*
|
|
44
|
+
* const config: ConnectionOptions<MongoDriverOptions, MongoClientOptions> = {
|
|
45
|
+
* driver: "mongodb",
|
|
46
|
+
* database: "myapp",
|
|
47
|
+
* host: "localhost",
|
|
48
|
+
* port: 27017,
|
|
49
|
+
* driverOptions: {
|
|
50
|
+
* autoGenerateId: true,
|
|
51
|
+
* counterCollection: "counters",
|
|
52
|
+
* },
|
|
53
|
+
* clientOptions: {
|
|
54
|
+
* minPoolSize: 5,
|
|
55
|
+
* maxPoolSize: 10,
|
|
56
|
+
* },
|
|
57
|
+
* modelOptions: {
|
|
58
|
+
* randomIncrement: true,
|
|
59
|
+
* initialId: 1000,
|
|
60
|
+
* },
|
|
61
|
+
* };
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export type ConnectionOptions<TDriverOptions = any, TClientOptions = any> = {
|
|
65
|
+
/**
|
|
66
|
+
* Database driver to use.
|
|
67
|
+
* @default "mongodb"
|
|
68
|
+
*/
|
|
69
|
+
driver?: DatabaseDriver;
|
|
70
|
+
/**
|
|
71
|
+
* Unique name for this data source.
|
|
72
|
+
* Used for registration in DataSourceRegistry.
|
|
73
|
+
* @default "default"
|
|
74
|
+
*/
|
|
75
|
+
name?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Whether this should be the default data source.
|
|
78
|
+
* @default true
|
|
79
|
+
*/
|
|
80
|
+
isDefault?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Database name (required).
|
|
83
|
+
*/
|
|
84
|
+
database: string;
|
|
85
|
+
/**
|
|
86
|
+
* Enable database operation logging (queries, execution time, parameters).
|
|
87
|
+
* Highly recommended to keep this disabled in production to prevent sensitive data leakage.
|
|
88
|
+
*
|
|
89
|
+
* @default false
|
|
90
|
+
*/
|
|
91
|
+
logging?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Database connection URI.
|
|
94
|
+
* Alternative to specifying host/port separately.
|
|
95
|
+
*
|
|
96
|
+
* @example "mongodb://localhost:27017/mydb"
|
|
97
|
+
* @example "postgresql://user:pass@localhost:5432/mydb"
|
|
98
|
+
*/
|
|
99
|
+
uri?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Database host.
|
|
102
|
+
* @default "localhost"
|
|
103
|
+
*/
|
|
104
|
+
host?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Database port.
|
|
107
|
+
* @default 27017 (MongoDB), 5432 (PostgreSQL)
|
|
108
|
+
*/
|
|
109
|
+
port?: number;
|
|
110
|
+
/**
|
|
111
|
+
* Database username for authentication.
|
|
112
|
+
*/
|
|
113
|
+
username?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Database password for authentication.
|
|
116
|
+
*/
|
|
117
|
+
password?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Authentication source database.
|
|
120
|
+
* Typically "admin" for MongoDB.
|
|
121
|
+
*/
|
|
122
|
+
authSource?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Driver-specific options.
|
|
125
|
+
*
|
|
126
|
+
* For MongoDB: { autoGenerateId, counterCollection, transactionOptions }
|
|
127
|
+
* For PostgreSQL: { schema, ... }
|
|
128
|
+
*/
|
|
129
|
+
driverOptions?: TDriverOptions;
|
|
130
|
+
/**
|
|
131
|
+
* Native database client options.
|
|
132
|
+
*
|
|
133
|
+
* For MongoDB: MongoClientOptions from 'mongodb' package
|
|
134
|
+
* For PostgreSQL: PoolConfig from 'pg' package
|
|
135
|
+
*/
|
|
136
|
+
clientOptions?: TClientOptions;
|
|
137
|
+
/**
|
|
138
|
+
* Default model configuration for all models using this data source.
|
|
139
|
+
*
|
|
140
|
+
* These settings override driver defaults but are overridden by
|
|
141
|
+
* individual model static properties.
|
|
142
|
+
*
|
|
143
|
+
* **Configuration Hierarchy (highest to lowest):**
|
|
144
|
+
* 1. Model static property - `User.createdAtColumn = "creation_date"`
|
|
145
|
+
* 2. **modelOptions (this)** - Database-wide overrides
|
|
146
|
+
* 3. Driver defaults - PostgreSQL: snake_case, MongoDB: camelCase
|
|
147
|
+
* 4. Framework defaults - Fallback values
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* // PostgreSQL database with custom settings
|
|
152
|
+
* {
|
|
153
|
+
* driver: "postgres",
|
|
154
|
+
* modelOptions: {
|
|
155
|
+
* // Override PostgreSQL default (snake_case) to use camelCase
|
|
156
|
+
* namingConvention: "camelCase",
|
|
157
|
+
* createdAtColumn: "createdAt",
|
|
158
|
+
* updatedAtColumn: "updatedAt",
|
|
159
|
+
*
|
|
160
|
+
* // ID generation settings (for MongoDB)
|
|
161
|
+
* randomIncrement: true,
|
|
162
|
+
* initialId: 1000,
|
|
163
|
+
*
|
|
164
|
+
* // Deletion settings
|
|
165
|
+
* deleteStrategy: "soft",
|
|
166
|
+
* trashTable: "archive", // All models use same trash table
|
|
167
|
+
* }
|
|
168
|
+
* }
|
|
169
|
+
*
|
|
170
|
+
* // MongoDB database with defaults
|
|
171
|
+
* {
|
|
172
|
+
* driver: "mongodb",
|
|
173
|
+
* modelOptions: {
|
|
174
|
+
* // MongoDB already uses camelCase by default
|
|
175
|
+
* randomIncrement: true,
|
|
176
|
+
* initialId: 10000,
|
|
177
|
+
* deleteStrategy: "trash", // Use RecycleBin
|
|
178
|
+
* }
|
|
179
|
+
* }
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
modelOptions?: ModelDefaultConfig;
|
|
183
|
+
/**
|
|
184
|
+
* Migration-level defaults (UUID strategy, etc.).
|
|
185
|
+
*
|
|
186
|
+
* These defaults override driver migration defaults but can be
|
|
187
|
+
* overridden by individual migration calls.
|
|
188
|
+
*
|
|
189
|
+
* @default undefined (uses driver defaults)
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* migrationDefaults: {
|
|
194
|
+
* uuidStrategy: "v7", // Use UUID v7 for all migrations
|
|
195
|
+
* }
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
migrationOptions?: MigrationDefaults;
|
|
199
|
+
/**
|
|
200
|
+
* Default delete strategy for models using this data source.
|
|
201
|
+
*
|
|
202
|
+
* - MongoDB: Typically `"trash"` (uses RecycleBin collection)
|
|
203
|
+
* - PostgreSQL: Typically `"permanent"` or `"soft"`
|
|
204
|
+
*
|
|
205
|
+
* Can be overridden by model static property or destroy() options.
|
|
206
|
+
*
|
|
207
|
+
* @default undefined (falls back to "permanent")
|
|
208
|
+
*/
|
|
209
|
+
defaultDeleteStrategy?: DeleteStrategy;
|
|
210
|
+
/**
|
|
211
|
+
* Default trash table/collection name for "trash" delete strategy.
|
|
212
|
+
*
|
|
213
|
+
* - MongoDB: Typically `"RecycleBin"`
|
|
214
|
+
* - If not set, defaults to `{table}Trash` pattern
|
|
215
|
+
*
|
|
216
|
+
* Can be overridden by Model.trashTable static property.
|
|
217
|
+
*
|
|
218
|
+
* @default undefined (uses {table}Trash pattern)
|
|
219
|
+
*/
|
|
220
|
+
defaultTrashTable?: string;
|
|
221
|
+
/**
|
|
222
|
+
* Migration configuration options.
|
|
223
|
+
*/
|
|
224
|
+
migrations?: {
|
|
225
|
+
/**
|
|
226
|
+
* Whether to wrap migrations in database transactions.
|
|
227
|
+
*
|
|
228
|
+
* Overrides driver defaults:
|
|
229
|
+
* - PostgreSQL default: `true` (DDL is transactional)
|
|
230
|
+
* - MongoDB default: `false` (DDL cannot be transactional)
|
|
231
|
+
*
|
|
232
|
+
* Individual migrations can override this with their own `transactional` property.
|
|
233
|
+
*
|
|
234
|
+
* @default undefined (uses driver default)
|
|
235
|
+
*/
|
|
236
|
+
transactional?: boolean;
|
|
237
|
+
/**
|
|
238
|
+
* Name of the migrations tracking table/collection.
|
|
239
|
+
*
|
|
240
|
+
* @default "_migrations"
|
|
241
|
+
*/
|
|
242
|
+
table?: string;
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* Connect to a database and register the data source.
|
|
247
|
+
*
|
|
248
|
+
* This is a high-level utility function that simplifies database connection
|
|
249
|
+
* for small to medium projects. It handles driver instantiation, connection,
|
|
250
|
+
* data source creation, and automatic registration.
|
|
251
|
+
*
|
|
252
|
+
* **Supported Drivers:**
|
|
253
|
+
* - `mongodb` (default) - MongoDB driver with optional auto ID generation
|
|
254
|
+
* - `postgres` - PostgreSQL driver (not yet implemented)
|
|
255
|
+
* - `mysql` - MySQL driver (not yet implemented)
|
|
256
|
+
*
|
|
257
|
+
* **Features:**
|
|
258
|
+
* - Automatic driver instantiation based on driver name
|
|
259
|
+
* - Connection establishment and error handling
|
|
260
|
+
* - DataSource creation and registration
|
|
261
|
+
* - Support for MongoDB-specific features (ID generation, transactions)
|
|
262
|
+
*
|
|
263
|
+
* @param options - Connection configuration options
|
|
264
|
+
* @returns A connected and registered DataSource instance
|
|
265
|
+
* @throws {Error} If connection fails or driver is not implemented
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* ```typescript
|
|
269
|
+
* // MongoDB with new structure
|
|
270
|
+
* const dataSource = await connectToDatabase({
|
|
271
|
+
* driver: "mongodb",
|
|
272
|
+
* database: "myapp",
|
|
273
|
+
* host: "localhost",
|
|
274
|
+
* port: 27017,
|
|
275
|
+
* driverOptions: {
|
|
276
|
+
* autoGenerateId: true,
|
|
277
|
+
* },
|
|
278
|
+
* clientOptions: {
|
|
279
|
+
* minPoolSize: 5,
|
|
280
|
+
* maxPoolSize: 10,
|
|
281
|
+
* },
|
|
282
|
+
* modelOptions: {
|
|
283
|
+
* randomIncrement: true,
|
|
284
|
+
* initialId: 1000,
|
|
285
|
+
* },
|
|
286
|
+
* });
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
export declare function connectToDatabase<TDriverOptions = any, TClientOptions = any>(options: ConnectionOptions<TDriverOptions, TClientOptions>): Promise<DataSource>;
|
|
290
|
+
/**
|
|
291
|
+
* Get current driver instance.
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
* ```typescript
|
|
295
|
+
* const driver = getDatabaseDriver();
|
|
296
|
+
*
|
|
297
|
+
* // Pass type to return Postgres driver type
|
|
298
|
+
* const pgDriver = getDatabaseDriver<PostgresDriver>();
|
|
299
|
+
* ```
|
|
300
|
+
*/
|
|
301
|
+
export declare function getDatabaseDriver<T extends DriverContract = any>(): T;
|
|
302
|
+
/**
|
|
303
|
+
* Perform database transaction(s)
|
|
304
|
+
* Shorthand to `dataSourceRegister.get().driver.transaction
|
|
305
|
+
*/
|
|
306
|
+
export declare function transaction<T = any>(fn: (ctx: TransactionContext) => Promise<T>, options?: Record<string, unknown>): Promise<T>;
|
|
307
|
+
//# sourceMappingURL=connect-to-database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-to-database.d.ts","sourceRoot":"","sources":["../../src/utils/connect-to-database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,MAAM,iBAAiB,CAAC,cAAc,GAAG,GAAG,EAAE,cAAc,GAAG,GAAG,IAAI;IAK1E;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAMlB;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAM/B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAM/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAMrC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAM3B;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;;;;;;;;;WAUG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB;;;;WAIG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAsB,iBAAiB,CAAC,cAAc,GAAG,GAAG,EAAE,cAAc,GAAG,GAAG,EAChF,OAAO,EAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,GACzD,OAAO,CAAC,UAAU,CAAC,CA+ErB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,GAAG,GAAG,KAAK,CAAC,CAIrE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EACvC,EAAE,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CAEZ"}
|