@warlock.js/cascade 4.0.48 → 4.0.58
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 +31 -0
- package/cjs/context/database-transaction-context.d.ts.map +1 -0
- package/cjs/context/database-transaction-context.js +34 -0
- package/cjs/context/database-transaction-context.js.map +1 -0
- package/cjs/contracts/database-driver.contract.d.ts +143 -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 +45 -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 +365 -0
- package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
- package/cjs/contracts/query-builder.contract.d.ts +1128 -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 +104 -0
- package/cjs/data-source/data-source-registry.d.ts.map +1 -0
- package/cjs/data-source/data-source-registry.js +138 -0
- package/cjs/data-source/data-source-registry.js.map +1 -0
- package/cjs/data-source/data-source.d.ts +106 -0
- package/cjs/data-source/data-source.d.ts.map +1 -0
- package/cjs/data-source/data-source.js +77 -0
- package/cjs/data-source/data-source.js.map +1 -0
- package/cjs/database-dirty-tracker.d.ts +253 -0
- package/cjs/database-dirty-tracker.d.ts.map +1 -0
- package/cjs/database-dirty-tracker.js +389 -0
- package/cjs/database-dirty-tracker.js.map +1 -0
- package/cjs/drivers/mongo/mongo-id-generator.d.ts +116 -0
- package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-id-generator.js +149 -0
- package/cjs/drivers/mongo/mongo-id-generator.js.map +1 -0
- package/cjs/drivers/mongo/mongo-migration-driver.d.ts +228 -0
- package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-migration-driver.js +524 -0
- package/cjs/drivers/mongo/mongo-migration-driver.js.map +1 -0
- package/cjs/drivers/mongo/mongo-query-builder.d.ts +922 -0
- package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-query-builder.js +1740 -0
- package/cjs/drivers/mongo/mongo-query-builder.js.map +1 -0
- package/cjs/drivers/mongo/mongo-query-operations.d.ts +226 -0
- package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-query-operations.js +270 -0
- package/cjs/drivers/mongo/mongo-query-operations.js.map +1 -0
- package/cjs/drivers/mongo/mongo-query-parser.d.ts +262 -0
- package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-query-parser.js +1351 -0
- package/cjs/drivers/mongo/mongo-query-parser.js.map +1 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.js +146 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.js.map +1 -0
- package/cjs/drivers/mongo/mongodb-blueprint.d.ts +30 -0
- package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongodb-blueprint.js +51 -0
- package/cjs/drivers/mongo/mongodb-blueprint.js.map +1 -0
- package/cjs/drivers/mongo/mongodb-driver.d.ts +188 -0
- package/cjs/drivers/mongo/mongodb-driver.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongodb-driver.js +411 -0
- package/cjs/drivers/mongo/mongodb-driver.js.map +1 -0
- package/cjs/drivers/mongo/types.d.ts +43 -0
- package/cjs/drivers/mongo/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/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 +41 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -267
- package/cjs/index.js.map +1 -1
- package/cjs/migration/column-builder.d.ts +167 -0
- package/cjs/migration/column-builder.d.ts.map +1 -0
- package/cjs/migration/column-builder.js +217 -0
- package/cjs/migration/column-builder.js.map +1 -0
- package/cjs/migration/foreign-key-builder.d.ts +110 -0
- package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
- package/cjs/migration/foreign-key-builder.js +129 -0
- package/cjs/migration/foreign-key-builder.js.map +1 -0
- package/cjs/migration/index.d.ts +6 -0
- package/cjs/migration/index.d.ts.map +1 -0
- package/cjs/migration/migration-runner.d.ts +231 -0
- package/cjs/migration/migration-runner.d.ts.map +1 -0
- package/cjs/migration/migration-runner.js +443 -0
- package/cjs/migration/migration-runner.js.map +1 -0
- package/cjs/migration/migration.js +1346 -0
- package/cjs/migration/migration.js.map +1 -0
- package/cjs/migration/types.d.ts +132 -0
- package/cjs/migration/types.d.ts.map +1 -0
- package/cjs/model/model.d.ts +1267 -0
- package/cjs/model/model.d.ts.map +1 -0
- package/cjs/model/model.js +1463 -0
- package/cjs/model/model.js.map +1 -0
- package/cjs/model/register-model.d.ts +80 -0
- package/cjs/model/register-model.d.ts.map +1 -0
- package/cjs/model/register-model.js +91 -0
- package/cjs/model/register-model.js.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 +209 -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 +425 -0
- package/cjs/restorer/database-restorer.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/types.d.ts +45 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/utils/connect-to-database.d.ts +246 -0
- package/cjs/utils/connect-to-database.d.ts.map +1 -0
- package/cjs/utils/connect-to-database.js +92 -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/once-connected.d.ts +146 -0
- package/cjs/utils/once-connected.d.ts.map +1 -0
- package/cjs/utils/once-connected.js +252 -0
- package/cjs/utils/once-connected.js.map +1 -0
- package/cjs/validation/database-seal-plugins.d.ts +2 -0
- package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
- package/cjs/validation/database-seal-plugins.js +4 -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 +42 -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 +402 -0
- package/cjs/writer/database-writer.js.map +1 -0
- package/esm/context/database-data-source-context.d.ts +29 -0
- package/esm/context/database-data-source-context.d.ts.map +1 -0
- package/esm/context/database-data-source-context.js +28 -0
- package/esm/context/database-data-source-context.js.map +1 -0
- package/esm/context/database-transaction-context.d.ts +31 -0
- package/esm/context/database-transaction-context.d.ts.map +1 -0
- package/esm/context/database-transaction-context.js +34 -0
- package/esm/context/database-transaction-context.js.map +1 -0
- package/esm/contracts/database-driver.contract.d.ts +143 -0
- package/esm/contracts/database-driver.contract.d.ts.map +1 -0
- package/esm/contracts/database-id-generator.contract.d.ts +109 -0
- package/esm/contracts/database-id-generator.contract.d.ts.map +1 -0
- package/esm/contracts/database-remover.contract.d.ts +104 -0
- package/esm/contracts/database-remover.contract.d.ts.map +1 -0
- package/esm/contracts/database-restorer.contract.d.ts +143 -0
- package/esm/contracts/database-restorer.contract.d.ts.map +1 -0
- package/esm/contracts/database-writer.contract.d.ts +119 -0
- package/esm/contracts/database-writer.contract.d.ts.map +1 -0
- package/esm/contracts/driver-blueprint.contract.d.ts +45 -0
- package/esm/contracts/driver-blueprint.contract.d.ts.map +1 -0
- package/esm/contracts/index.d.ts +10 -0
- package/esm/contracts/index.d.ts.map +1 -0
- package/esm/contracts/migration-driver.contract.d.ts +365 -0
- package/esm/contracts/migration-driver.contract.d.ts.map +1 -0
- package/esm/contracts/query-builder.contract.d.ts +1128 -0
- package/esm/contracts/query-builder.contract.d.ts.map +1 -0
- package/esm/contracts/sync-adapter.contract.d.ts +58 -0
- package/esm/contracts/sync-adapter.contract.d.ts.map +1 -0
- package/esm/data-source/data-source-registry.d.ts +104 -0
- package/esm/data-source/data-source-registry.d.ts.map +1 -0
- package/esm/data-source/data-source-registry.js +138 -0
- package/esm/data-source/data-source-registry.js.map +1 -0
- package/esm/data-source/data-source.d.ts +106 -0
- package/esm/data-source/data-source.d.ts.map +1 -0
- package/esm/data-source/data-source.js +77 -0
- package/esm/data-source/data-source.js.map +1 -0
- package/esm/database-dirty-tracker.d.ts +253 -0
- package/esm/database-dirty-tracker.d.ts.map +1 -0
- package/esm/database-dirty-tracker.js +389 -0
- package/esm/database-dirty-tracker.js.map +1 -0
- package/esm/drivers/mongo/mongo-id-generator.d.ts +116 -0
- package/esm/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-id-generator.js +149 -0
- package/esm/drivers/mongo/mongo-id-generator.js.map +1 -0
- package/esm/drivers/mongo/mongo-migration-driver.d.ts +228 -0
- package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-migration-driver.js +524 -0
- package/esm/drivers/mongo/mongo-migration-driver.js.map +1 -0
- package/esm/drivers/mongo/mongo-query-builder.d.ts +922 -0
- package/esm/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-query-builder.js +1740 -0
- package/esm/drivers/mongo/mongo-query-builder.js.map +1 -0
- package/esm/drivers/mongo/mongo-query-operations.d.ts +226 -0
- package/esm/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-query-operations.js +270 -0
- package/esm/drivers/mongo/mongo-query-operations.js.map +1 -0
- package/esm/drivers/mongo/mongo-query-parser.d.ts +262 -0
- package/esm/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-query-parser.js +1351 -0
- package/esm/drivers/mongo/mongo-query-parser.js.map +1 -0
- package/esm/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
- package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-sync-adapter.js +146 -0
- package/esm/drivers/mongo/mongo-sync-adapter.js.map +1 -0
- package/esm/drivers/mongo/mongodb-blueprint.d.ts +30 -0
- package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
- package/esm/drivers/mongo/mongodb-blueprint.js +51 -0
- package/esm/drivers/mongo/mongodb-blueprint.js.map +1 -0
- package/esm/drivers/mongo/mongodb-driver.d.ts +188 -0
- package/esm/drivers/mongo/mongodb-driver.d.ts.map +1 -0
- package/esm/drivers/mongo/mongodb-driver.js +411 -0
- package/esm/drivers/mongo/mongodb-driver.js.map +1 -0
- package/esm/drivers/mongo/types.d.ts +43 -0
- package/esm/drivers/mongo/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/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 +41 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -40
- package/esm/index.js.map +1 -1
- package/esm/migration/column-builder.d.ts +167 -0
- package/esm/migration/column-builder.d.ts.map +1 -0
- package/esm/migration/column-builder.js +217 -0
- package/esm/migration/column-builder.js.map +1 -0
- package/esm/migration/foreign-key-builder.d.ts +110 -0
- package/esm/migration/foreign-key-builder.d.ts.map +1 -0
- package/esm/migration/foreign-key-builder.js +129 -0
- package/esm/migration/foreign-key-builder.js.map +1 -0
- package/esm/migration/index.d.ts +6 -0
- package/esm/migration/index.d.ts.map +1 -0
- package/esm/migration/migration-runner.d.ts +231 -0
- package/esm/migration/migration-runner.d.ts.map +1 -0
- package/esm/migration/migration-runner.js +443 -0
- package/esm/migration/migration-runner.js.map +1 -0
- package/esm/migration/migration.js +1346 -0
- package/esm/migration/migration.js.map +1 -0
- package/esm/migration/types.d.ts +132 -0
- package/esm/migration/types.d.ts.map +1 -0
- package/esm/model/model.d.ts +1267 -0
- package/esm/model/model.d.ts.map +1 -0
- package/esm/model/model.js +1463 -0
- package/esm/model/model.js.map +1 -0
- package/esm/model/register-model.d.ts +80 -0
- package/esm/model/register-model.d.ts.map +1 -0
- package/esm/model/register-model.js +91 -0
- package/esm/model/register-model.js.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 +209 -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 +425 -0
- package/esm/restorer/database-restorer.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/types.d.ts +45 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/utils/connect-to-database.d.ts +246 -0
- package/esm/utils/connect-to-database.d.ts.map +1 -0
- package/esm/utils/connect-to-database.js +92 -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/once-connected.d.ts +146 -0
- package/esm/utils/once-connected.d.ts.map +1 -0
- package/esm/utils/once-connected.js +252 -0
- package/esm/utils/once-connected.js.map +1 -0
- package/esm/validation/database-seal-plugins.d.ts +2 -0
- package/esm/validation/database-seal-plugins.d.ts.map +1 -0
- package/esm/validation/database-seal-plugins.js +4 -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 +42 -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 +402 -0
- package/esm/writer/database-writer.js.map +1 -0
- package/package.json +61 -52
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-restorer.d.ts","sourceRoot":"","sources":["../../src/restorer/database-restorer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAG5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IAEpC,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;;;;;;;;;;OAUG;gBACgB,UAAU,EAAE,OAAO,KAAK;IAQ3C;;;;;;;;OAQG;IACU,OAAO,CAClB,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC;IA+E1B;;;;;OAKG;IACU,UAAU,CACrB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC;IAoJ1B;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;;;OAOG;YACW,qBAAqB;IAkCnC;;;;;;OAMG;YACW,yBAAyB;IAgCvC;;;;;;;;OAQG;YACW,gBAAgB;IAqB9B;;;;;;OAMG;YACW,aAAa;IAa3B;;;;;;;;;OASG;YACW,WAAW;IAuBzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Database restorer service that orchestrates model restoration.
|
|
3
|
+
*
|
|
4
|
+
* Handles the complete restoration pipeline:
|
|
5
|
+
* 1. Strategy detection (trash vs soft delete)
|
|
6
|
+
* 2. Record retrieval from trash table or soft-deleted records
|
|
7
|
+
* 3. ID conflict resolution
|
|
8
|
+
* 4. Event emission (restoring, restored)
|
|
9
|
+
* 5. Driver execution (insert back to original table, remove from trash/clear deletedAt)
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const restorer = new DatabaseRestorer(User);
|
|
14
|
+
* const result = await restorer.restore(123);
|
|
15
|
+
*
|
|
16
|
+
* console.log(result.success); // true
|
|
17
|
+
* console.log(result.strategy); // "trash" | "soft"
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
class DatabaseRestorer {
|
|
21
|
+
/** Model constructor reference */
|
|
22
|
+
ctor;
|
|
23
|
+
/** Data source containing driver */
|
|
24
|
+
dataSource;
|
|
25
|
+
/** Database driver for executing queries */
|
|
26
|
+
driver;
|
|
27
|
+
/** Table/collection name */
|
|
28
|
+
table;
|
|
29
|
+
/** Primary key field name */
|
|
30
|
+
primaryKey;
|
|
31
|
+
/**
|
|
32
|
+
* Create a new restorer instance for a model class.
|
|
33
|
+
*
|
|
34
|
+
* @param modelClass - The model class (static context)
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* const restorer = new DatabaseRestorer(User);
|
|
39
|
+
* await restorer.restore(123);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
constructor(modelClass) {
|
|
43
|
+
this.ctor = modelClass;
|
|
44
|
+
this.dataSource = modelClass.getDataSource();
|
|
45
|
+
this.driver = this.dataSource.driver;
|
|
46
|
+
this.table = modelClass.table;
|
|
47
|
+
this.primaryKey = modelClass.primaryKey;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Restore a single deleted record by its ID.
|
|
51
|
+
*
|
|
52
|
+
* @param id - The primary key value of the record to restore
|
|
53
|
+
* @param options - Restorer options
|
|
54
|
+
* @returns Result containing success status, strategy used, and restored record
|
|
55
|
+
* @throws {Error} If record not found in trash or soft-deleted records
|
|
56
|
+
* @throws {Error} If ID conflict and onIdConflict is "fail"
|
|
57
|
+
*/
|
|
58
|
+
async restore(id, options = {}) {
|
|
59
|
+
const onIdConflict = options.onIdConflict ?? "assignNew";
|
|
60
|
+
const skipEvents = options.skipEvents ?? false;
|
|
61
|
+
// 1. Resolve strategy (options → model static → data source default)
|
|
62
|
+
const strategy = this.resolveStrategy(options.strategy);
|
|
63
|
+
// 2. Validate strategy (cannot restore permanent deletes)
|
|
64
|
+
if (strategy === "permanent") {
|
|
65
|
+
throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${id}: permanently deleted records cannot be restored.`);
|
|
66
|
+
}
|
|
67
|
+
// 3. Fetch record based on strategy
|
|
68
|
+
const recordData = await this.fetchRecordByStrategy(id, strategy);
|
|
69
|
+
if (!recordData) {
|
|
70
|
+
throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${id}: record not found in ${strategy === "trash" ? "trash table" : "soft-deleted records"}.`);
|
|
71
|
+
}
|
|
72
|
+
// 4. Prepare record data (remove metadata fields)
|
|
73
|
+
const restoredData = { ...recordData };
|
|
74
|
+
delete restoredData.deletedAt;
|
|
75
|
+
delete restoredData.originalTable;
|
|
76
|
+
// 5. Check for ID conflict and handle
|
|
77
|
+
const finalData = await this.handleIdConflict(restoredData, id, onIdConflict);
|
|
78
|
+
// 6. Create temporary model instance for event emission
|
|
79
|
+
// Note: Model is abstract, but at runtime this.ctor is a concrete subclass
|
|
80
|
+
const model = new this.ctor(finalData);
|
|
81
|
+
// 7. Emit restoring event (unless skipEvents)
|
|
82
|
+
if (!skipEvents) {
|
|
83
|
+
await model.emitEvent("restoring");
|
|
84
|
+
}
|
|
85
|
+
// 8. Restore based on strategy
|
|
86
|
+
if (strategy === "trash") {
|
|
87
|
+
// Insert record back into original table (was moved to trash)
|
|
88
|
+
await this.driver.insert(this.table, finalData);
|
|
89
|
+
model.isNew = false;
|
|
90
|
+
// Remove from trash table
|
|
91
|
+
await this.driver.delete(this.resolveTrashTable(), {
|
|
92
|
+
[this.primaryKey]: id,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else if (strategy === "soft") {
|
|
96
|
+
// Record still exists, just unset deletedAt (don't insert - would create duplicate!)
|
|
97
|
+
const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
|
|
98
|
+
const filter = { [this.primaryKey]: id };
|
|
99
|
+
const updateOperations = {
|
|
100
|
+
$unset: { [deletedAtColumn]: 1 },
|
|
101
|
+
};
|
|
102
|
+
await this.driver.update(this.table, filter, updateOperations);
|
|
103
|
+
model.isNew = false;
|
|
104
|
+
}
|
|
105
|
+
// 10. Emit restored event (unless skipEvents)
|
|
106
|
+
if (!skipEvents) {
|
|
107
|
+
await model.emitEvent("restored");
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
success: true,
|
|
111
|
+
restoredCount: 1,
|
|
112
|
+
strategy,
|
|
113
|
+
restoredRecord: model,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Restore all deleted records for the model's table.
|
|
118
|
+
*
|
|
119
|
+
* @param options - Restorer options
|
|
120
|
+
* @returns Result containing success status, strategy used, and aggregate counts
|
|
121
|
+
*/
|
|
122
|
+
async restoreAll(options = {}) {
|
|
123
|
+
const onIdConflict = options.onIdConflict ?? "assignNew";
|
|
124
|
+
const skipEvents = options.skipEvents ?? false;
|
|
125
|
+
// 1. Resolve strategy (options → model static → data source default)
|
|
126
|
+
const strategy = this.resolveStrategy(options.strategy);
|
|
127
|
+
// 2. Validate strategy (cannot restore permanent deletes)
|
|
128
|
+
if (strategy === "permanent") {
|
|
129
|
+
throw new Error(`Cannot restore all ${this.ctor.name} records: permanently deleted records cannot be restored.`);
|
|
130
|
+
}
|
|
131
|
+
// 3. Fetch all records based on strategy
|
|
132
|
+
const recordsToRestore = await this.fetchAllRecordsByStrategy(strategy);
|
|
133
|
+
if (recordsToRestore.length === 0) {
|
|
134
|
+
return {
|
|
135
|
+
success: true,
|
|
136
|
+
restoredCount: 0,
|
|
137
|
+
strategy,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// 4. Restore each record
|
|
141
|
+
let restoredCount = 0;
|
|
142
|
+
const conflicts = [];
|
|
143
|
+
const restoredRecords = [];
|
|
144
|
+
for (const recordData of recordsToRestore) {
|
|
145
|
+
const id = recordData[this.primaryKey];
|
|
146
|
+
try {
|
|
147
|
+
// Prepare record data (remove metadata fields)
|
|
148
|
+
const restoredData = { ...recordData };
|
|
149
|
+
delete restoredData.deletedAt;
|
|
150
|
+
delete restoredData.originalTable;
|
|
151
|
+
// Check for ID conflict
|
|
152
|
+
const idExists = await this.checkIdExists(id);
|
|
153
|
+
if (idExists) {
|
|
154
|
+
if (onIdConflict === "fail") {
|
|
155
|
+
throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${id}: ID already exists in target table.`);
|
|
156
|
+
}
|
|
157
|
+
// Assign new ID
|
|
158
|
+
const finalData = await this.assignNewId(restoredData);
|
|
159
|
+
conflicts.push({
|
|
160
|
+
id,
|
|
161
|
+
reason: `ID ${id} already exists, assigned new ID ${finalData[this.primaryKey]}`,
|
|
162
|
+
});
|
|
163
|
+
// Create temporary model for events
|
|
164
|
+
const model = new this.ctor(finalData);
|
|
165
|
+
// Emit restoring event
|
|
166
|
+
if (!skipEvents) {
|
|
167
|
+
await model.emitEvent("restoring");
|
|
168
|
+
}
|
|
169
|
+
// Restore based on strategy
|
|
170
|
+
if (strategy === "trash") {
|
|
171
|
+
// Insert with new ID (was moved to trash)
|
|
172
|
+
await this.driver.insert(this.table, finalData);
|
|
173
|
+
model.isNew = false;
|
|
174
|
+
}
|
|
175
|
+
else if (strategy === "soft") {
|
|
176
|
+
// Record still exists, just unset deletedAt
|
|
177
|
+
const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
|
|
178
|
+
const filter = { [this.primaryKey]: id };
|
|
179
|
+
const updateOperations = {
|
|
180
|
+
$unset: { [deletedAtColumn]: 1 },
|
|
181
|
+
};
|
|
182
|
+
await this.driver.update(this.table, filter, updateOperations);
|
|
183
|
+
model.isNew = false;
|
|
184
|
+
}
|
|
185
|
+
restoredRecords.push(model);
|
|
186
|
+
// Emit restored event
|
|
187
|
+
if (!skipEvents) {
|
|
188
|
+
await model.emitEvent("restored");
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
// No conflict, restore with original ID
|
|
193
|
+
const model = new this.ctor(restoredData);
|
|
194
|
+
// Emit restoring event
|
|
195
|
+
if (!skipEvents) {
|
|
196
|
+
await model.emitEvent("restoring");
|
|
197
|
+
}
|
|
198
|
+
// Restore based on strategy
|
|
199
|
+
if (strategy === "trash") {
|
|
200
|
+
// Insert with original ID (was moved to trash)
|
|
201
|
+
await this.driver.insert(this.table, restoredData);
|
|
202
|
+
model.isNew = false;
|
|
203
|
+
}
|
|
204
|
+
else if (strategy === "soft") {
|
|
205
|
+
// Record still exists, just unset deletedAt
|
|
206
|
+
const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
|
|
207
|
+
const filter = { [this.primaryKey]: id };
|
|
208
|
+
const updateOperations = {
|
|
209
|
+
$unset: { [deletedAtColumn]: 1 },
|
|
210
|
+
};
|
|
211
|
+
await this.driver.update(this.table, filter, updateOperations);
|
|
212
|
+
model.isNew = false;
|
|
213
|
+
}
|
|
214
|
+
restoredRecords.push(model);
|
|
215
|
+
// Emit restored event
|
|
216
|
+
if (!skipEvents) {
|
|
217
|
+
await model.emitEvent("restored");
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// Remove from trash (only for trash strategy)
|
|
221
|
+
if (strategy === "trash") {
|
|
222
|
+
const trashTable = this.resolveTrashTable();
|
|
223
|
+
const trashFilter = { [this.primaryKey]: id };
|
|
224
|
+
await this.driver.delete(trashTable, trashFilter);
|
|
225
|
+
}
|
|
226
|
+
restoredCount++;
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
if (onIdConflict === "fail") {
|
|
230
|
+
throw error;
|
|
231
|
+
}
|
|
232
|
+
// Continue with next record if assignNew mode
|
|
233
|
+
conflicts.push({
|
|
234
|
+
id,
|
|
235
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
success: true,
|
|
241
|
+
restoredCount,
|
|
242
|
+
restoredRecords,
|
|
243
|
+
strategy,
|
|
244
|
+
conflicts: conflicts.length > 0 ? conflicts : undefined,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Resolve the delete strategy.
|
|
249
|
+
*
|
|
250
|
+
* Priority: options → model static → data source default → "permanent"
|
|
251
|
+
*
|
|
252
|
+
* @param strategyOption - Optional strategy override from options
|
|
253
|
+
* @returns The resolved delete strategy
|
|
254
|
+
* @private
|
|
255
|
+
*/
|
|
256
|
+
resolveStrategy(strategyOption) {
|
|
257
|
+
return (strategyOption ??
|
|
258
|
+
this.ctor.deleteStrategy ??
|
|
259
|
+
this.dataSource.defaultDeleteStrategy ??
|
|
260
|
+
"permanent");
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Fetch a record by ID based on the delete strategy.
|
|
264
|
+
*
|
|
265
|
+
* @param id - The primary key value
|
|
266
|
+
* @param strategy - The delete strategy to use
|
|
267
|
+
* @returns The record data, or null if not found
|
|
268
|
+
* @private
|
|
269
|
+
*/
|
|
270
|
+
async fetchRecordByStrategy(id, strategy) {
|
|
271
|
+
if (strategy === "trash") {
|
|
272
|
+
const trashTable = this.resolveTrashTable();
|
|
273
|
+
try {
|
|
274
|
+
const trashQuery = await this.driver
|
|
275
|
+
.queryBuilder(trashTable)
|
|
276
|
+
.where(this.primaryKey, id)
|
|
277
|
+
.first();
|
|
278
|
+
return trashQuery;
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else if (strategy === "soft") {
|
|
285
|
+
const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
|
|
286
|
+
try {
|
|
287
|
+
const softDeletedQuery = await this.driver
|
|
288
|
+
.queryBuilder(this.table)
|
|
289
|
+
.where(this.primaryKey, id)
|
|
290
|
+
.whereNotNull(deletedAtColumn)
|
|
291
|
+
.first();
|
|
292
|
+
return softDeletedQuery;
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Fetch all records based on the delete strategy.
|
|
302
|
+
*
|
|
303
|
+
* @param strategy - The delete strategy to use
|
|
304
|
+
* @returns Array of record data
|
|
305
|
+
* @private
|
|
306
|
+
*/
|
|
307
|
+
async fetchAllRecordsByStrategy(strategy) {
|
|
308
|
+
if (strategy === "trash") {
|
|
309
|
+
const trashTable = this.resolveTrashTable();
|
|
310
|
+
try {
|
|
311
|
+
const trashQuery = this.driver
|
|
312
|
+
.queryBuilder(trashTable)
|
|
313
|
+
.where("originalTable", this.table)
|
|
314
|
+
.get();
|
|
315
|
+
return (await trashQuery);
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
return [];
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
else if (strategy === "soft") {
|
|
322
|
+
const deletedAtColumn = this.ctor.deletedAtColumn ?? "deletedAt";
|
|
323
|
+
try {
|
|
324
|
+
const softDeletedQuery = this.driver
|
|
325
|
+
.queryBuilder(this.table)
|
|
326
|
+
.whereNotNull(deletedAtColumn)
|
|
327
|
+
.get();
|
|
328
|
+
return (await softDeletedQuery);
|
|
329
|
+
}
|
|
330
|
+
catch {
|
|
331
|
+
return [];
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return [];
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Handle ID conflict by checking if ID exists and assigning new one if needed.
|
|
338
|
+
*
|
|
339
|
+
* @param recordData - The record data to restore
|
|
340
|
+
* @param originalId - The original ID value
|
|
341
|
+
* @param onIdConflict - Conflict resolution strategy
|
|
342
|
+
* @returns Record data with potentially new ID
|
|
343
|
+
* @private
|
|
344
|
+
*/
|
|
345
|
+
async handleIdConflict(recordData, originalId, onIdConflict) {
|
|
346
|
+
const idExists = await this.checkIdExists(originalId);
|
|
347
|
+
if (idExists) {
|
|
348
|
+
if (onIdConflict === "fail") {
|
|
349
|
+
throw new Error(`Cannot restore ${this.ctor.name} with ${this.primaryKey} ${originalId}: ID already exists in target table.`);
|
|
350
|
+
}
|
|
351
|
+
// Assign new ID
|
|
352
|
+
return await this.assignNewId(recordData);
|
|
353
|
+
}
|
|
354
|
+
return recordData;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Check if an ID already exists in the target table.
|
|
358
|
+
*
|
|
359
|
+
* @param id - The ID to check
|
|
360
|
+
* @returns True if ID exists, false otherwise
|
|
361
|
+
* @private
|
|
362
|
+
*/
|
|
363
|
+
async checkIdExists(id) {
|
|
364
|
+
try {
|
|
365
|
+
const query = this.driver
|
|
366
|
+
.queryBuilder(this.table)
|
|
367
|
+
.where(this.primaryKey, id)
|
|
368
|
+
.exists();
|
|
369
|
+
return await query;
|
|
370
|
+
}
|
|
371
|
+
catch {
|
|
372
|
+
return false;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Assign a new ID to the record data.
|
|
377
|
+
*
|
|
378
|
+
* For MongoDB: Generates new ObjectId for `_id`, keeps `id` if it exists
|
|
379
|
+
* For SQL: Removes `id` to let database auto-increment
|
|
380
|
+
*
|
|
381
|
+
* @param recordData - The record data
|
|
382
|
+
* @returns Record data with new ID assigned
|
|
383
|
+
* @private
|
|
384
|
+
*/
|
|
385
|
+
async assignNewId(recordData) {
|
|
386
|
+
const isMongoDb = this.driver.name === "mongodb";
|
|
387
|
+
const newData = { ...recordData };
|
|
388
|
+
if (isMongoDb) {
|
|
389
|
+
// MongoDB: Generate new ObjectId for _id
|
|
390
|
+
if (this.primaryKey === "_id") {
|
|
391
|
+
// Remove _id to let MongoDB generate new one
|
|
392
|
+
delete newData._id;
|
|
393
|
+
}
|
|
394
|
+
else if (this.primaryKey === "id") {
|
|
395
|
+
// Remove id to let ID generator create new one
|
|
396
|
+
delete newData.id;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
// SQL: Remove primary key to let database auto-increment
|
|
401
|
+
delete newData[this.primaryKey];
|
|
402
|
+
}
|
|
403
|
+
return newData;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Resolve the trash table/collection name.
|
|
407
|
+
*
|
|
408
|
+
* Priority:
|
|
409
|
+
* 1. Model.trashTable (if set)
|
|
410
|
+
* 2. Data source defaultTrashTable (e.g., "RecycleBin" for MongoDB)
|
|
411
|
+
* 3. Default pattern: `{table}Trash`
|
|
412
|
+
*
|
|
413
|
+
* @returns The trash table/collection name
|
|
414
|
+
* @private
|
|
415
|
+
*/
|
|
416
|
+
resolveTrashTable() {
|
|
417
|
+
if (this.ctor.trashTable) {
|
|
418
|
+
return this.ctor.trashTable;
|
|
419
|
+
}
|
|
420
|
+
if (this.dataSource.defaultTrashTable) {
|
|
421
|
+
return this.dataSource.defaultTrashTable;
|
|
422
|
+
}
|
|
423
|
+
return `${this.table}Trash`;
|
|
424
|
+
}
|
|
425
|
+
}exports.DatabaseRestorer=DatabaseRestorer;//# sourceMappingURL=database-restorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-restorer.js","sources":["../../src/restorer/database-restorer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync system exports.
|
|
3
|
+
*
|
|
4
|
+
* @module cascade-next/sync
|
|
5
|
+
*/
|
|
6
|
+
export { modelSync } from "./model-sync";
|
|
7
|
+
export { ModelSyncOperation } from "./model-sync-operation";
|
|
8
|
+
export { MODEL_EVENT_PREFIX, ModelSyncEventType, getModelDeletedEvent, getModelEvent, getModelUpdatedEvent, } from "./model-events";
|
|
9
|
+
export { DEFAULT_MAX_SYNC_DEPTH, SyncContextManager } from "./sync-context";
|
|
10
|
+
export { SyncManager } from "./sync-manager";
|
|
11
|
+
export type { EmbedKey, ModelSyncConfig, ModelSyncContract, ModelSyncOperationContract, SyncConfig, SyncContext, SyncEventPayload, SyncInstruction, SyncInstructionOptions, SyncResult, } from "./types";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,YAAY,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,UAAU,GACX,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model sync event name helpers.
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe event names for model sync operations.
|
|
5
|
+
* Avoids hardcoded string literals throughout the codebase.
|
|
6
|
+
*
|
|
7
|
+
* @module cascade-next/sync/model-events
|
|
8
|
+
*/
|
|
9
|
+
import type { ChildModel, Model } from "../model/model";
|
|
10
|
+
/**
|
|
11
|
+
* Event name prefix for all model sync events.
|
|
12
|
+
*/
|
|
13
|
+
export declare const MODEL_EVENT_PREFIX = "model";
|
|
14
|
+
/**
|
|
15
|
+
* Model sync event types.
|
|
16
|
+
*/
|
|
17
|
+
export declare const ModelSyncEventType: {
|
|
18
|
+
readonly UPDATED: "updated";
|
|
19
|
+
readonly DELETED: "deleted";
|
|
20
|
+
};
|
|
21
|
+
export type ModelSyncEventTypeName = (typeof ModelSyncEventType)[keyof typeof ModelSyncEventType];
|
|
22
|
+
/**
|
|
23
|
+
* Get the event name for a model update.
|
|
24
|
+
*
|
|
25
|
+
* @param modelClass - The model class
|
|
26
|
+
* @returns Event name string (e.g., "model.Category.updated")
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const eventName = getModelUpdatedEvent(Category);
|
|
31
|
+
* // Returns: "model.Category.updated"
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function getModelUpdatedEvent(modelClass: ChildModel<Model>): string;
|
|
35
|
+
/**
|
|
36
|
+
* Get the event name for a model deletion.
|
|
37
|
+
*
|
|
38
|
+
* @param modelClass - The model class
|
|
39
|
+
* @returns Event name string (e.g., "model.Category.deleted")
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const eventName = getModelDeletedEvent(Category);
|
|
44
|
+
* // Returns: "model.Category.deleted"
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function getModelDeletedEvent(modelClass: ChildModel<Model>): string;
|
|
48
|
+
/**
|
|
49
|
+
* Get the event name for a model by name string.
|
|
50
|
+
*
|
|
51
|
+
* @param modelName - The model class name
|
|
52
|
+
* @param eventType - The event type
|
|
53
|
+
* @returns Event name string
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const eventName = getModelEvent("Category", "updated");
|
|
58
|
+
* // Returns: "model.Category.updated"
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function getModelEvent(modelName: string, eventType: ModelSyncEventTypeName): string;
|
|
62
|
+
//# sourceMappingURL=model-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-events.d.ts","sourceRoot":"","sources":["../../src/sync/model-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAElG;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAE1E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,GAAG,MAAM,CAE1F"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Model sync event name helpers.
|
|
3
|
+
*
|
|
4
|
+
* Provides type-safe event names for model sync operations.
|
|
5
|
+
* Avoids hardcoded string literals throughout the codebase.
|
|
6
|
+
*
|
|
7
|
+
* @module cascade-next/sync/model-events
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Event name prefix for all model sync events.
|
|
11
|
+
*/
|
|
12
|
+
const MODEL_EVENT_PREFIX = "model";
|
|
13
|
+
/**
|
|
14
|
+
* Model sync event types.
|
|
15
|
+
*/
|
|
16
|
+
const ModelSyncEventType = {
|
|
17
|
+
UPDATED: "updated",
|
|
18
|
+
DELETED: "deleted",
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Get the event name for a model update.
|
|
22
|
+
*
|
|
23
|
+
* @param modelClass - The model class
|
|
24
|
+
* @returns Event name string (e.g., "model.Category.updated")
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const eventName = getModelUpdatedEvent(Category);
|
|
29
|
+
* // Returns: "model.Category.updated"
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
function getModelUpdatedEvent(modelClass) {
|
|
33
|
+
return `${MODEL_EVENT_PREFIX}.${modelClass.name}.${ModelSyncEventType.UPDATED}`;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the event name for a model deletion.
|
|
37
|
+
*
|
|
38
|
+
* @param modelClass - The model class
|
|
39
|
+
* @returns Event name string (e.g., "model.Category.deleted")
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const eventName = getModelDeletedEvent(Category);
|
|
44
|
+
* // Returns: "model.Category.deleted"
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
function getModelDeletedEvent(modelClass) {
|
|
48
|
+
return `${MODEL_EVENT_PREFIX}.${modelClass.name}.${ModelSyncEventType.DELETED}`;
|
|
49
|
+
}exports.MODEL_EVENT_PREFIX=MODEL_EVENT_PREFIX;exports.ModelSyncEventType=ModelSyncEventType;exports.getModelDeletedEvent=getModelDeletedEvent;exports.getModelUpdatedEvent=getModelUpdatedEvent;//# sourceMappingURL=model-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-events.js","sources":["../../src/sync/model-events.ts"],"sourcesContent":[null],"names":[],"mappings":"aAAA;;;;;;;AAOG;AAIH;;AAEG;AACI,MAAM,kBAAkB,GAAG,QAAQ;AAE1C;;AAEG;AACU,MAAA,kBAAkB,GAAG;AAChC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;EACT;AAIX;;;;;;;;;;;AAWG;AACG,SAAU,oBAAoB,CAAC,UAA6B,EAAA;IAChE,OAAO,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,UAAU,CAAC,IAAI,CAAA,CAAA,EAAI,kBAAkB,CAAC,OAAO,CAAA,CAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;AAWG;AACG,SAAU,oBAAoB,CAAC,UAA6B,EAAA;IAChE,OAAO,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,UAAU,CAAC,IAAI,CAAA,CAAA,EAAI,kBAAkB,CAAC,OAAO,CAAA,CAAE,CAAC;AAClF"}
|