@warlock.js/cascade 4.0.156 → 4.0.158
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/package.json +4 -4
- 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 -324
- package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-driver.js +0 -799
- 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 -965
- 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 -864
- 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 -197
- package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
- package/cjs/drivers/postgres/types.d.ts +0 -142
- 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 -1992
- 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 -161
- 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 -1650
- 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 -201
- 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 -300
- package/cjs/utils/connect-to-database.d.ts.map +0 -1
- package/cjs/utils/connect-to-database.js +0 -128
- 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 -181
- package/cjs/writer/database-writer.d.ts.map +0 -1
- package/cjs/writer/database-writer.js +0 -407
- 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 -324
- package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-driver.js +0 -799
- 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 -965
- 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 -864
- 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 -197
- package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
- package/esm/drivers/postgres/types.d.ts +0 -142
- 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 -1992
- 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 -161
- 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 -1650
- 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 -201
- 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 -300
- package/esm/utils/connect-to-database.d.ts.map +0 -1
- package/esm/utils/connect-to-database.js +0 -128
- 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 -181
- package/esm/writer/database-writer.d.ts.map +0 -1
- package/esm/writer/database-writer.js +0 -407
- package/esm/writer/database-writer.js.map +0 -1
package/cjs/relations/types.d.ts
DELETED
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Relation type definitions for the Cascade ORM relations system.
|
|
3
|
-
*
|
|
4
|
-
* This module defines all the types and interfaces needed for configuring
|
|
5
|
-
* model relationships including hasMany, belongsTo, belongsToMany, and hasOne.
|
|
6
|
-
*
|
|
7
|
-
* @module @warlock.js/cascade/relations/types
|
|
8
|
-
*/
|
|
9
|
-
import type { QueryBuilderContract } from "../contracts";
|
|
10
|
-
import type { Model } from "../model/model";
|
|
11
|
-
/**
|
|
12
|
-
* The type of relationship between models.
|
|
13
|
-
*
|
|
14
|
-
* - `hasOne`: One-to-one relationship where the foreign key is on the related model
|
|
15
|
-
* - `hasMany`: One-to-many relationship where the foreign key is on the related model
|
|
16
|
-
* - `belongsTo`: Inverse of hasOne/hasMany where the foreign key is on this model
|
|
17
|
-
* - `belongsToMany`: Many-to-many relationship through a pivot table
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* // User hasOne Profile (profile.userId references user.id)
|
|
22
|
-
* // User hasMany Posts (post.userId references user.id)
|
|
23
|
-
* // Post belongsTo User (post.userId references user.id)
|
|
24
|
-
* // Post belongsToMany Tags (through post_tags pivot table)
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export type RelationType = "hasOne" | "hasMany" | "belongsTo" | "belongsToMany";
|
|
28
|
-
/**
|
|
29
|
-
* Complete definition of a model relationship.
|
|
30
|
-
*
|
|
31
|
-
* This interface describes how two models are connected, including
|
|
32
|
-
* the type of relationship and the keys used for joining.
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* const postsRelation: RelationDefinition = {
|
|
37
|
-
* type: "hasMany",
|
|
38
|
-
* model: "Post",
|
|
39
|
-
* foreignKey: "userId",
|
|
40
|
-
* localKey: "id",
|
|
41
|
-
* };
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export type RelationDefinition = {
|
|
45
|
-
/**
|
|
46
|
-
* The type of relationship.
|
|
47
|
-
*/
|
|
48
|
-
readonly type: RelationType;
|
|
49
|
-
/**
|
|
50
|
-
* The name of the related model in the registry.
|
|
51
|
-
* Models must be decorated with `@RegisterModel()` to be resolvable.
|
|
52
|
-
*/
|
|
53
|
-
readonly model: string;
|
|
54
|
-
/**
|
|
55
|
-
* The foreign key field on the related model (for hasOne/hasMany)
|
|
56
|
-
* or on this model (for belongsTo).
|
|
57
|
-
*
|
|
58
|
-
* For belongsToMany, this is the key on the related model.
|
|
59
|
-
*/
|
|
60
|
-
readonly foreignKey?: string;
|
|
61
|
-
/**
|
|
62
|
-
* The local key field on this model that the foreign key references.
|
|
63
|
-
*
|
|
64
|
-
* @default "id"
|
|
65
|
-
*/
|
|
66
|
-
readonly localKey?: string;
|
|
67
|
-
/**
|
|
68
|
-
* The pivot table name (only for belongsToMany relationships).
|
|
69
|
-
*/
|
|
70
|
-
readonly pivot?: string;
|
|
71
|
-
/**
|
|
72
|
-
* The column in the pivot table that references this model's primary key.
|
|
73
|
-
* Only applicable for belongsToMany relationships.
|
|
74
|
-
*/
|
|
75
|
-
readonly pivotLocalKey?: string;
|
|
76
|
-
/**
|
|
77
|
-
* The column in the pivot table that references the related model's primary key.
|
|
78
|
-
* Only applicable for belongsToMany relationships.
|
|
79
|
-
*/
|
|
80
|
-
readonly pivotForeignKey?: string;
|
|
81
|
-
/**
|
|
82
|
-
* List of specific columns to select.
|
|
83
|
-
*
|
|
84
|
-
* If not provided, defaults to all columns.
|
|
85
|
-
*/
|
|
86
|
-
readonly select?: string[];
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Configuration options for a hasMany relationship.
|
|
90
|
-
*
|
|
91
|
-
* @example
|
|
92
|
-
* ```typescript
|
|
93
|
-
* // User has many Posts via post.userId
|
|
94
|
-
* static relations = {
|
|
95
|
-
* posts: hasMany("Post", { foreignKey: "userId" }),
|
|
96
|
-
* };
|
|
97
|
-
* ```
|
|
98
|
-
*/
|
|
99
|
-
export type HasManyOptions = {
|
|
100
|
-
/**
|
|
101
|
-
* The foreign key field on the related model.
|
|
102
|
-
*
|
|
103
|
-
* If not provided, defaults to `{thisModelName}Id` (e.g., `userId` for User model).
|
|
104
|
-
*/
|
|
105
|
-
readonly foreignKey?: string;
|
|
106
|
-
/**
|
|
107
|
-
* The local key field on this model that the foreign key references.
|
|
108
|
-
*
|
|
109
|
-
* @default "id"
|
|
110
|
-
*/
|
|
111
|
-
readonly localKey?: string;
|
|
112
|
-
/**
|
|
113
|
-
* List of specific columns to select.
|
|
114
|
-
*
|
|
115
|
-
* If not provided, defaults to all columns.
|
|
116
|
-
*/
|
|
117
|
-
readonly select?: string[];
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* Configuration options for a hasOne relationship.
|
|
121
|
-
*
|
|
122
|
-
* @example
|
|
123
|
-
* ```typescript
|
|
124
|
-
* // User has one Profile via profile.userId
|
|
125
|
-
* static relations = {
|
|
126
|
-
* profile: hasOne("Profile", { foreignKey: "userId" }),
|
|
127
|
-
* };
|
|
128
|
-
* ```
|
|
129
|
-
*/
|
|
130
|
-
export type HasOneOptions = {
|
|
131
|
-
/**
|
|
132
|
-
* The foreign key field on the related model.
|
|
133
|
-
*
|
|
134
|
-
* If not provided, defaults to `{thisModelName}Id` (e.g., `userId` for User model).
|
|
135
|
-
*/
|
|
136
|
-
readonly foreignKey?: string;
|
|
137
|
-
/**
|
|
138
|
-
* The local key field on this model that the foreign key references.
|
|
139
|
-
*
|
|
140
|
-
* @default "id"
|
|
141
|
-
*/
|
|
142
|
-
readonly localKey?: string;
|
|
143
|
-
/**
|
|
144
|
-
* List of specific columns to select.
|
|
145
|
-
*
|
|
146
|
-
* If not provided, defaults to all columns.
|
|
147
|
-
*/
|
|
148
|
-
readonly select?: string[];
|
|
149
|
-
};
|
|
150
|
-
/**
|
|
151
|
-
* Configuration options for a belongsTo relationship.
|
|
152
|
-
*
|
|
153
|
-
* @example
|
|
154
|
-
* ```typescript
|
|
155
|
-
* // Post belongs to User via post.userId
|
|
156
|
-
* static relations = {
|
|
157
|
-
* author: belongsTo("User", { foreignKey: "userId" }),
|
|
158
|
-
* };
|
|
159
|
-
* ```
|
|
160
|
-
*/
|
|
161
|
-
export type BelongsToOptions = {
|
|
162
|
-
/**
|
|
163
|
-
* The foreign key field on this model that references the related model.
|
|
164
|
-
*
|
|
165
|
-
* If not provided, defaults to `{relationName}Id` (e.g., `authorId` for author relation).
|
|
166
|
-
*/
|
|
167
|
-
readonly foreignKey?: string;
|
|
168
|
-
/**
|
|
169
|
-
* The primary key field on the related model.
|
|
170
|
-
*
|
|
171
|
-
* @default "id"
|
|
172
|
-
*/
|
|
173
|
-
readonly ownerKey?: string;
|
|
174
|
-
/**
|
|
175
|
-
* List of specific columns to select from the related model.
|
|
176
|
-
*/
|
|
177
|
-
readonly select?: string[];
|
|
178
|
-
};
|
|
179
|
-
/**
|
|
180
|
-
* Configuration options for a belongsToMany relationship.
|
|
181
|
-
*
|
|
182
|
-
* @example
|
|
183
|
-
* ```typescript
|
|
184
|
-
* // Post belongs to many Tags via post_tags pivot table
|
|
185
|
-
* static relations = {
|
|
186
|
-
* tags: belongsToMany("Tag", {
|
|
187
|
-
* pivot: "post_tags",
|
|
188
|
-
* localKey: "postId",
|
|
189
|
-
* foreignKey: "tagId",
|
|
190
|
-
* }),
|
|
191
|
-
* };
|
|
192
|
-
* ```
|
|
193
|
-
*/
|
|
194
|
-
export type BelongsToManyOptions = {
|
|
195
|
-
/**
|
|
196
|
-
* The pivot table name that connects the two models.
|
|
197
|
-
* This is required for many-to-many relationships.
|
|
198
|
-
*/
|
|
199
|
-
readonly pivot: string;
|
|
200
|
-
/**
|
|
201
|
-
* The column in the pivot table that references this model's primary key.
|
|
202
|
-
*
|
|
203
|
-
* If not provided, defaults to `{thisModelName}Id`.
|
|
204
|
-
*/
|
|
205
|
-
readonly localKey?: string;
|
|
206
|
-
/**
|
|
207
|
-
* The column in the pivot table that references the related model's primary key.
|
|
208
|
-
*
|
|
209
|
-
* If not provided, defaults to `{relatedModelName}Id`.
|
|
210
|
-
*/
|
|
211
|
-
readonly foreignKey?: string;
|
|
212
|
-
/**
|
|
213
|
-
* The primary key of this model that the pivot table references.
|
|
214
|
-
*
|
|
215
|
-
* @default "id"
|
|
216
|
-
*/
|
|
217
|
-
readonly pivotLocalKey?: string;
|
|
218
|
-
/**
|
|
219
|
-
* The primary key of the related model that the pivot table references.
|
|
220
|
-
*
|
|
221
|
-
* @default "id"
|
|
222
|
-
*/
|
|
223
|
-
readonly pivotForeignKey?: string;
|
|
224
|
-
/**
|
|
225
|
-
* List of specific columns to select from the related model.
|
|
226
|
-
*/
|
|
227
|
-
readonly select?: string[];
|
|
228
|
-
};
|
|
229
|
-
/**
|
|
230
|
-
* Callback function to apply constraints when loading a relation.
|
|
231
|
-
*
|
|
232
|
-
* @example
|
|
233
|
-
* ```typescript
|
|
234
|
-
* User.query().with("posts", (query) => {
|
|
235
|
-
* query.where("isPublished", true).orderBy("createdAt", "desc");
|
|
236
|
-
* });
|
|
237
|
-
* ```
|
|
238
|
-
*/
|
|
239
|
-
export type RelationConstraintCallback = (query: QueryBuilderContract) => void;
|
|
240
|
-
/**
|
|
241
|
-
* Constraints to apply when loading relations.
|
|
242
|
-
*
|
|
243
|
-
* Can be:
|
|
244
|
-
* - A single constraint callback for a relation
|
|
245
|
-
* - An object mapping relation names to constraint callbacks or boolean values
|
|
246
|
-
*
|
|
247
|
-
* @example
|
|
248
|
-
* ```typescript
|
|
249
|
-
* // Object form
|
|
250
|
-
* await User.loadRelations(users, {
|
|
251
|
-
* posts: (query) => query.where("isPublished", true),
|
|
252
|
-
* organization: true,
|
|
253
|
-
* });
|
|
254
|
-
* ```
|
|
255
|
-
*/
|
|
256
|
-
export type RelationConstraints = Record<string, boolean | RelationConstraintCallback>;
|
|
257
|
-
/**
|
|
258
|
-
* Type for the result of loading a relation.
|
|
259
|
-
*
|
|
260
|
-
* - For hasOne/belongsTo: A single model instance or null
|
|
261
|
-
* - For hasMany/belongsToMany: An array of model instances
|
|
262
|
-
*/
|
|
263
|
-
export type LoadedRelationResult = Model | Model[] | null;
|
|
264
|
-
/**
|
|
265
|
-
* Map that stores loaded relation data on a model instance.
|
|
266
|
-
*
|
|
267
|
-
* @example
|
|
268
|
-
* ```typescript
|
|
269
|
-
* // After user.load("posts", "profile")
|
|
270
|
-
* user.loadedRelations.get("posts"); // Post[]
|
|
271
|
-
* user.loadedRelations.get("profile"); // Profile | null
|
|
272
|
-
* ```
|
|
273
|
-
*/
|
|
274
|
-
export type LoadedRelationsMap = Map<string, LoadedRelationResult>;
|
|
275
|
-
/**
|
|
276
|
-
* A map of relation names to their definitions.
|
|
277
|
-
*
|
|
278
|
-
* This is the type for the static `relations` property on models.
|
|
279
|
-
*
|
|
280
|
-
* @example
|
|
281
|
-
* ```typescript
|
|
282
|
-
* class User extends Model {
|
|
283
|
-
* static relations: RelationDefinitions = {
|
|
284
|
-
* posts: hasMany("Post"),
|
|
285
|
-
* profile: hasOne("Profile"),
|
|
286
|
-
* organization: belongsTo("Organization"),
|
|
287
|
-
* };
|
|
288
|
-
* }
|
|
289
|
-
* ```
|
|
290
|
-
*/
|
|
291
|
-
export type RelationDefinitions = Record<string, RelationDefinition>;
|
|
292
|
-
/**
|
|
293
|
-
* Additional data to store in the pivot table for many-to-many relationships.
|
|
294
|
-
*
|
|
295
|
-
* @example
|
|
296
|
-
* ```typescript
|
|
297
|
-
* await post.attach("tags", [1, 2, 3], { addedBy: userId, addedAt: new Date() });
|
|
298
|
-
* ```
|
|
299
|
-
*/
|
|
300
|
-
export type PivotData = Record<string, unknown>;
|
|
301
|
-
/**
|
|
302
|
-
* IDs that can be used for pivot operations.
|
|
303
|
-
* Supports both numeric and string IDs.
|
|
304
|
-
*/
|
|
305
|
-
export type PivotIds = (number | string)[];
|
|
306
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/relations/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import type { RemoverContract, RemoverOptions, RemoverResult } from "../contracts/database-remover.contract";
|
|
2
|
-
import type { Model } from "../model/model";
|
|
3
|
-
/**
|
|
4
|
-
* Database remover service that orchestrates model deletion.
|
|
5
|
-
*
|
|
6
|
-
* Handles the complete deletion pipeline:
|
|
7
|
-
* 1. Strategy resolution (options → model static → data source default)
|
|
8
|
-
* 2. Validation (check if model is new, has primary key)
|
|
9
|
-
* 3. Event emission (deleting, deleted)
|
|
10
|
-
* 4. Driver execution (based on strategy: trash, permanent, or soft)
|
|
11
|
-
* 5. Post-deletion cleanup (mark as new, reset state)
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```typescript
|
|
15
|
-
* const user = await User.find(1);
|
|
16
|
-
* const remover = new DatabaseRemover(user);
|
|
17
|
-
* const result = await remover.destroy();
|
|
18
|
-
*
|
|
19
|
-
* console.log(result.success); // true
|
|
20
|
-
* console.log(result.strategy); // "trash" | "permanent" | "soft"
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export declare class DatabaseRemover implements RemoverContract {
|
|
24
|
-
/** The model instance being deleted */
|
|
25
|
-
private readonly model;
|
|
26
|
-
/** Model constructor reference */
|
|
27
|
-
private readonly ctor;
|
|
28
|
-
/** Data source containing driver */
|
|
29
|
-
private readonly dataSource;
|
|
30
|
-
/** Database driver for executing queries */
|
|
31
|
-
private readonly driver;
|
|
32
|
-
/** Table/collection name */
|
|
33
|
-
private readonly table;
|
|
34
|
-
/** Primary key field name */
|
|
35
|
-
private readonly primaryKey;
|
|
36
|
-
/**
|
|
37
|
-
* Create a new remover instance for a model.
|
|
38
|
-
*
|
|
39
|
-
* @param model - The model instance to delete
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const user = await User.find(1);
|
|
44
|
-
* const remover = new DatabaseRemover(user);
|
|
45
|
-
* await remover.destroy();
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
constructor(model: Model);
|
|
49
|
-
/**
|
|
50
|
-
* Destroy (delete) the model instance from the database.
|
|
51
|
-
*
|
|
52
|
-
* @param options - Remover options
|
|
53
|
-
* @returns Result containing success status, strategy used, and metadata
|
|
54
|
-
* @throws {Error} If model is new (not saved) or if deletion fails
|
|
55
|
-
*/
|
|
56
|
-
destroy(options?: RemoverOptions): Promise<RemoverResult>;
|
|
57
|
-
/**
|
|
58
|
-
* Prepare the trash record by preserving all original fields and adding deletion metadata.
|
|
59
|
-
*
|
|
60
|
-
* Keeps all original fields intact for easy restoration and adds:
|
|
61
|
-
* - `deletedAt`: Timestamp when the record was deleted
|
|
62
|
-
* - `originalTable`: The table/collection the record came from (for filtering in restoreAll)
|
|
63
|
-
*
|
|
64
|
-
* **ID Handling:**
|
|
65
|
-
* - MongoDB with `_id`: Keeps `_id` as-is (unique across database)
|
|
66
|
-
* - MongoDB with auto-increment `id`: Keeps `id` as a regular field (not primary key)
|
|
67
|
-
* - SQL: Keeps original `id` as a regular field (trash table uses its own auto-increment primary key)
|
|
68
|
-
*
|
|
69
|
-
* The trash table should use its own primary key structure:
|
|
70
|
-
* - MongoDB: Uses `_id` (ObjectId) as primary key, original `id` is just a field
|
|
71
|
-
* - SQL: Uses auto-increment `trashId` as primary key, original `id` is just a field
|
|
72
|
-
*
|
|
73
|
-
* @param documentData - The original document data
|
|
74
|
-
* @returns Prepared trash record data with all original fields + deletedAt + originalTable
|
|
75
|
-
* @private
|
|
76
|
-
*/
|
|
77
|
-
private prepareTrashRecord;
|
|
78
|
-
/**
|
|
79
|
-
* Resolve the trash table/collection name.
|
|
80
|
-
*
|
|
81
|
-
* Priority:
|
|
82
|
-
* 1. Model.trashTable (if set)
|
|
83
|
-
* 2. Data source defaultTrashTable (e.g., "RecycleBin" for MongoDB)
|
|
84
|
-
* 3. Default pattern: `{table}Trash`
|
|
85
|
-
*
|
|
86
|
-
* @returns The trash table/collection name
|
|
87
|
-
* @private
|
|
88
|
-
*/
|
|
89
|
-
private resolveTrashTable;
|
|
90
|
-
/**
|
|
91
|
-
* Trigger sync operations after successful deletion.
|
|
92
|
-
*
|
|
93
|
-
* Emits a model.deleted event that ModelSyncOperation listens to.
|
|
94
|
-
* The sync is handled by registered sync operations, not directly here.
|
|
95
|
-
*
|
|
96
|
-
* @private
|
|
97
|
-
*/
|
|
98
|
-
private triggerSync;
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=database-remover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-remover.d.ts","sourceRoot":"","sources":["../../src/remover/database-remover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIxD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IAEzC,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;;;;;;;OAWG;gBACgB,KAAK,EAAE,KAAK;IAS/B;;;;;;OAMG;IACU,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IA0H1E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;OAOG;YACW,WAAW;CAI1B"}
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
'use strict';var events=require('@mongez/events'),modelEvents=require('../sync/model-events.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var events__default=/*#__PURE__*/_interopDefault(events);/**
|
|
2
|
-
* Database remover service that orchestrates model deletion.
|
|
3
|
-
*
|
|
4
|
-
* Handles the complete deletion pipeline:
|
|
5
|
-
* 1. Strategy resolution (options → model static → data source default)
|
|
6
|
-
* 2. Validation (check if model is new, has primary key)
|
|
7
|
-
* 3. Event emission (deleting, deleted)
|
|
8
|
-
* 4. Driver execution (based on strategy: trash, permanent, or soft)
|
|
9
|
-
* 5. Post-deletion cleanup (mark as new, reset state)
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const user = await User.find(1);
|
|
14
|
-
* const remover = new DatabaseRemover(user);
|
|
15
|
-
* const result = await remover.destroy();
|
|
16
|
-
*
|
|
17
|
-
* console.log(result.success); // true
|
|
18
|
-
* console.log(result.strategy); // "trash" | "permanent" | "soft"
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
class DatabaseRemover {
|
|
22
|
-
/** The model instance being deleted */
|
|
23
|
-
model;
|
|
24
|
-
/** Model constructor reference */
|
|
25
|
-
ctor;
|
|
26
|
-
/** Data source containing driver */
|
|
27
|
-
dataSource;
|
|
28
|
-
/** Database driver for executing queries */
|
|
29
|
-
driver;
|
|
30
|
-
/** Table/collection name */
|
|
31
|
-
table;
|
|
32
|
-
/** Primary key field name */
|
|
33
|
-
primaryKey;
|
|
34
|
-
/**
|
|
35
|
-
* Create a new remover instance for a model.
|
|
36
|
-
*
|
|
37
|
-
* @param model - The model instance to delete
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```typescript
|
|
41
|
-
* const user = await User.find(1);
|
|
42
|
-
* const remover = new DatabaseRemover(user);
|
|
43
|
-
* await remover.destroy();
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
constructor(model) {
|
|
47
|
-
this.model = model;
|
|
48
|
-
this.ctor = model.constructor;
|
|
49
|
-
this.dataSource = this.ctor.getDataSource();
|
|
50
|
-
this.driver = this.dataSource.driver;
|
|
51
|
-
this.table = this.ctor.table;
|
|
52
|
-
this.primaryKey = this.ctor.primaryKey;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Destroy (delete) the model instance from the database.
|
|
56
|
-
*
|
|
57
|
-
* @param options - Remover options
|
|
58
|
-
* @returns Result containing success status, strategy used, and metadata
|
|
59
|
-
* @throws {Error} If model is new (not saved) or if deletion fails
|
|
60
|
-
*/
|
|
61
|
-
async destroy(options = {}) {
|
|
62
|
-
// 1. Resolve strategy (options → model static → data source default → permanent)
|
|
63
|
-
const strategy = options.strategy ??
|
|
64
|
-
this.ctor.deleteStrategy ??
|
|
65
|
-
this.dataSource.defaultDeleteStrategy ??
|
|
66
|
-
"permanent";
|
|
67
|
-
// 2. Validate model is not new and has primary key
|
|
68
|
-
if (this.model.isNew) {
|
|
69
|
-
throw new Error(`Cannot destroy ${this.ctor.name} instance that hasn't been saved to the database.`);
|
|
70
|
-
}
|
|
71
|
-
const primaryKeyValue = this.model.get(this.primaryKey);
|
|
72
|
-
if (!primaryKeyValue) {
|
|
73
|
-
throw new Error(`Cannot destroy ${this.ctor.name} instance: primary key (${this.primaryKey}) is missing.`);
|
|
74
|
-
}
|
|
75
|
-
// 3. Emit deleting event (unless skipEvents)
|
|
76
|
-
if (!options.skipEvents) {
|
|
77
|
-
await this.model.emitEvent("deleting", {
|
|
78
|
-
strategy,
|
|
79
|
-
primaryKeyValue,
|
|
80
|
-
primaryKey: this.primaryKey,
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
// 4. Execute deletion based on strategy
|
|
84
|
-
let deletedCount = 0;
|
|
85
|
-
let trashRecord;
|
|
86
|
-
const filter = { [this.primaryKey]: primaryKeyValue };
|
|
87
|
-
const context = {
|
|
88
|
-
strategy,
|
|
89
|
-
primaryKeyValue,
|
|
90
|
-
primaryKey: this.primaryKey,
|
|
91
|
-
};
|
|
92
|
-
switch (strategy) {
|
|
93
|
-
case "trash": {
|
|
94
|
-
// Move to trash table, then delete
|
|
95
|
-
const trashTable = this.resolveTrashTable();
|
|
96
|
-
const documentData = { ...this.model.data };
|
|
97
|
-
// Prepare trash record with metadata and handle ID conflicts
|
|
98
|
-
const trashData = this.prepareTrashRecord(documentData);
|
|
99
|
-
// Insert into trash table
|
|
100
|
-
const insertResult = await this.driver.insert(trashTable, trashData);
|
|
101
|
-
trashRecord = insertResult.document;
|
|
102
|
-
context.trashRecord = trashRecord;
|
|
103
|
-
// Delete original
|
|
104
|
-
const result = await this.driver.delete(this.table, filter);
|
|
105
|
-
deletedCount = result > 0 ? 1 : 0;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
case "permanent": {
|
|
109
|
-
// Direct deletion
|
|
110
|
-
const result = await this.driver.delete(this.table, filter);
|
|
111
|
-
deletedCount = result > 0 ? 1 : 0;
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
case "soft": {
|
|
115
|
-
// Set deletedAt timestamp (using resolved column name)
|
|
116
|
-
const deletedAtColumn = this.ctor.deletedAtColumn;
|
|
117
|
-
// Only proceed if deletedAtColumn is configured (not false or undefined)
|
|
118
|
-
if (deletedAtColumn === false || deletedAtColumn === undefined) {
|
|
119
|
-
throw new Error(`Cannot perform soft delete on ${this.ctor.name}: deletedAtColumn is not configured. ` +
|
|
120
|
-
`Set a column name or use a different delete strategy.`);
|
|
121
|
-
}
|
|
122
|
-
const updateOperations = {
|
|
123
|
-
$set: { [deletedAtColumn]: new Date() },
|
|
124
|
-
};
|
|
125
|
-
const updateResult = await this.driver.update(this.table, filter, updateOperations);
|
|
126
|
-
deletedCount = updateResult.modifiedCount > 0 ? 1 : 0;
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
if (deletedCount === 0) {
|
|
131
|
-
throw new Error(`Failed to destroy ${this.ctor.name} instance: record not found.`);
|
|
132
|
-
}
|
|
133
|
-
context.deletedCount = deletedCount;
|
|
134
|
-
// 5. Post-deletion cleanup
|
|
135
|
-
// Only mark as new for permanent and trash (soft delete keeps the record)
|
|
136
|
-
if (strategy !== "soft") {
|
|
137
|
-
this.model.isNew = true;
|
|
138
|
-
}
|
|
139
|
-
// 6. Emit deleted event (unless skipEvents)
|
|
140
|
-
if (!options.skipEvents) {
|
|
141
|
-
await this.model.emitEvent("deleted", context);
|
|
142
|
-
}
|
|
143
|
-
// 7. Trigger sync operations (fire-and-forget, non-blocking)
|
|
144
|
-
if (!options.skipSync) {
|
|
145
|
-
void this.triggerSync();
|
|
146
|
-
}
|
|
147
|
-
return {
|
|
148
|
-
success: true,
|
|
149
|
-
deletedCount,
|
|
150
|
-
strategy,
|
|
151
|
-
trashRecord,
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Prepare the trash record by preserving all original fields and adding deletion metadata.
|
|
156
|
-
*
|
|
157
|
-
* Keeps all original fields intact for easy restoration and adds:
|
|
158
|
-
* - `deletedAt`: Timestamp when the record was deleted
|
|
159
|
-
* - `originalTable`: The table/collection the record came from (for filtering in restoreAll)
|
|
160
|
-
*
|
|
161
|
-
* **ID Handling:**
|
|
162
|
-
* - MongoDB with `_id`: Keeps `_id` as-is (unique across database)
|
|
163
|
-
* - MongoDB with auto-increment `id`: Keeps `id` as a regular field (not primary key)
|
|
164
|
-
* - SQL: Keeps original `id` as a regular field (trash table uses its own auto-increment primary key)
|
|
165
|
-
*
|
|
166
|
-
* The trash table should use its own primary key structure:
|
|
167
|
-
* - MongoDB: Uses `_id` (ObjectId) as primary key, original `id` is just a field
|
|
168
|
-
* - SQL: Uses auto-increment `trashId` as primary key, original `id` is just a field
|
|
169
|
-
*
|
|
170
|
-
* @param documentData - The original document data
|
|
171
|
-
* @returns Prepared trash record data with all original fields + deletedAt + originalTable
|
|
172
|
-
* @private
|
|
173
|
-
*/
|
|
174
|
-
prepareTrashRecord(documentData) {
|
|
175
|
-
// Preserve all original fields and add deletion metadata
|
|
176
|
-
return {
|
|
177
|
-
...documentData,
|
|
178
|
-
deletedAt: new Date(),
|
|
179
|
-
originalTable: this.table,
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Resolve the trash table/collection name.
|
|
184
|
-
*
|
|
185
|
-
* Priority:
|
|
186
|
-
* 1. Model.trashTable (if set)
|
|
187
|
-
* 2. Data source defaultTrashTable (e.g., "RecycleBin" for MongoDB)
|
|
188
|
-
* 3. Default pattern: `{table}Trash`
|
|
189
|
-
*
|
|
190
|
-
* @returns The trash table/collection name
|
|
191
|
-
* @private
|
|
192
|
-
*/
|
|
193
|
-
resolveTrashTable() {
|
|
194
|
-
if (this.ctor.trashTable) {
|
|
195
|
-
return this.ctor.trashTable;
|
|
196
|
-
}
|
|
197
|
-
if (this.dataSource.defaultTrashTable) {
|
|
198
|
-
return this.dataSource.defaultTrashTable;
|
|
199
|
-
}
|
|
200
|
-
return `${this.table}Trash`;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Trigger sync operations after successful deletion.
|
|
204
|
-
*
|
|
205
|
-
* Emits a model.deleted event that ModelSyncOperation listens to.
|
|
206
|
-
* The sync is handled by registered sync operations, not directly here.
|
|
207
|
-
*
|
|
208
|
-
* @private
|
|
209
|
-
*/
|
|
210
|
-
async triggerSync() {
|
|
211
|
-
// Emit model.deleted event - ModelSyncOperation listens to these
|
|
212
|
-
await events__default.default.triggerAll(modelEvents.getModelDeletedEvent(this.ctor), this.model);
|
|
213
|
-
}
|
|
214
|
-
}exports.DatabaseRemover=DatabaseRemover;//# sourceMappingURL=database-remover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-remover.js","sources":["../../src/remover/database-remover.ts"],"sourcesContent":[null],"names":["events","getModelDeletedEvent"],"mappings":"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"}
|