@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":"mongo-query-builder.js","sources":["../../../src/drivers/mongo/mongo-query-builder.ts"],"sourcesContent":[null],"names":["dataSourceRegistry","MongoQueryOperations","get","databaseTransactionContext","MongoQueryParser"],"mappings":"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"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import type { Operation, PipelineStage } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Helper class for constructing MongoDB aggregation pipeline operations.
|
|
4
|
+
*
|
|
5
|
+
* This class encapsulates the logic for creating operation objects that will be
|
|
6
|
+
* converted to MongoDB aggregation stages by the query parser. It provides a
|
|
7
|
+
* clean abstraction over the low-level operation structure, making the query
|
|
8
|
+
* builder code more maintainable and testable.
|
|
9
|
+
*
|
|
10
|
+
* Each operation consists of:
|
|
11
|
+
* - **stage**: The MongoDB aggregation stage name (e.g., "$match", "$project")
|
|
12
|
+
* - **type**: An internal identifier for the operation type
|
|
13
|
+
* - **payload**: The data associated with the operation
|
|
14
|
+
* - **mergeable**: Whether this operation can be merged with adjacent similar operations
|
|
15
|
+
*
|
|
16
|
+
* @internal This class is for internal use within the MongoDB driver
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const operations: Operation[] = [];
|
|
21
|
+
* const helper = new MongoQueryOperations(operations);
|
|
22
|
+
*
|
|
23
|
+
* // Add a match operation
|
|
24
|
+
* helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
|
|
25
|
+
*
|
|
26
|
+
* // Add a project operation
|
|
27
|
+
* helper.addProjectOperation("select", { fields: ["name", "email"] });
|
|
28
|
+
*
|
|
29
|
+
* // Operations array is now populated
|
|
30
|
+
* console.log(operations);
|
|
31
|
+
* // [
|
|
32
|
+
* // { stage: "$match", mergeable: true, type: "whereIn", payload: {...} },
|
|
33
|
+
* // { stage: "$project", mergeable: true, type: "select", payload: {...} }
|
|
34
|
+
* // ]
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare class MongoQueryOperations {
|
|
38
|
+
private operations;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new operations helper.
|
|
41
|
+
*
|
|
42
|
+
* The helper maintains a reference to the operations array and populates it
|
|
43
|
+
* as methods are called. This allows the query builder to maintain a single
|
|
44
|
+
* ordered list of operations that will be converted to a MongoDB aggregation
|
|
45
|
+
* pipeline.
|
|
46
|
+
*
|
|
47
|
+
* @param operations - Reference to the operations array to populate
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const operations: Operation[] = [];
|
|
52
|
+
* const helper = new MongoQueryOperations(operations);
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
constructor(operations: Operation[]);
|
|
56
|
+
setOperations(operations: Operation[]): void;
|
|
57
|
+
/**
|
|
58
|
+
* Adds a $match stage operation to the pipeline.
|
|
59
|
+
*
|
|
60
|
+
* Match operations filter documents in the aggregation pipeline, similar to
|
|
61
|
+
* the WHERE clause in SQL. Multiple match operations can be merged together
|
|
62
|
+
* by the parser for optimization.
|
|
63
|
+
*
|
|
64
|
+
* @param type - The operation type identifier (e.g., "where", "whereIn", "whereLike")
|
|
65
|
+
* @param payload - The operation payload data containing filter criteria
|
|
66
|
+
* @param mergeable - Whether this operation can be merged with adjacent match operations (default: true)
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* // Simple where operation
|
|
71
|
+
* helper.addMatchOperation("where", { field: "age", operator: ">", value: 18 });
|
|
72
|
+
*
|
|
73
|
+
* // WhereIn operation
|
|
74
|
+
* helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
|
|
75
|
+
*
|
|
76
|
+
* // Non-mergeable match (e.g., after a group stage)
|
|
77
|
+
* helper.addMatchOperation("having", { field: "count", operator: ">", value: 5 }, false);
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
addMatchOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
|
|
81
|
+
/**
|
|
82
|
+
* Adds a $project stage operation to the pipeline.
|
|
83
|
+
*
|
|
84
|
+
* Project operations control which fields are included or excluded in the
|
|
85
|
+
* output documents, similar to the SELECT clause in SQL. They can also be
|
|
86
|
+
* used to compute new fields or reshape documents.
|
|
87
|
+
*
|
|
88
|
+
* @param type - The operation type identifier (e.g., "select", "deselect", "selectRaw")
|
|
89
|
+
* @param payload - The operation payload data containing projection specifications
|
|
90
|
+
* @param mergeable - Whether this operation can be merged with adjacent project operations (default: true)
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* // Select specific fields
|
|
95
|
+
* helper.addProjectOperation("select", { fields: ["name", "email", "age"] });
|
|
96
|
+
*
|
|
97
|
+
* // Deselect fields
|
|
98
|
+
* helper.addProjectOperation("deselect", { fields: ["password", "secret"] });
|
|
99
|
+
*
|
|
100
|
+
* // Computed field
|
|
101
|
+
* helper.addProjectOperation("selectRaw", {
|
|
102
|
+
* expression: { fullName: { $concat: ["$firstName", " ", "$lastName"] } }
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
addProjectOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
|
|
107
|
+
/**
|
|
108
|
+
* Adds a $sort stage operation to the pipeline.
|
|
109
|
+
*
|
|
110
|
+
* Sort operations order the documents in the pipeline, similar to the ORDER BY
|
|
111
|
+
* clause in SQL. Multiple sort operations can be merged to create compound
|
|
112
|
+
* sorting.
|
|
113
|
+
*
|
|
114
|
+
* @param type - The operation type identifier (e.g., "orderBy", "orderByRandom")
|
|
115
|
+
* @param payload - The operation payload data containing sort specifications
|
|
116
|
+
* @param mergeable - Whether this operation can be merged with adjacent sort operations (default: true)
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* // Order by a single field
|
|
121
|
+
* helper.addSortOperation("orderBy", { field: "createdAt", direction: "desc" });
|
|
122
|
+
*
|
|
123
|
+
* // Random ordering (not mergeable)
|
|
124
|
+
* helper.addSortOperation("orderByRandom", {limit: 1000}, false);
|
|
125
|
+
*
|
|
126
|
+
* // Order by raw expression
|
|
127
|
+
* helper.addSortOperation("orderByRaw", {
|
|
128
|
+
* expression: { score: -1, name: 1 }
|
|
129
|
+
* });
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
addSortOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
|
|
133
|
+
/**
|
|
134
|
+
* Adds a $group stage operation to the pipeline.
|
|
135
|
+
*
|
|
136
|
+
* Group operations aggregate documents by specified fields and compute
|
|
137
|
+
* aggregate values, similar to the GROUP BY clause in SQL. Group operations
|
|
138
|
+
* are typically not mergeable as they represent distinct aggregation boundaries.
|
|
139
|
+
*
|
|
140
|
+
* @param type - The operation type identifier (e.g., "groupBy", "distinct")
|
|
141
|
+
* @param payload - The operation payload data containing grouping specifications
|
|
142
|
+
* @param mergeable - Whether this operation can be merged with adjacent group operations (default: false)
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* // Group by a single field
|
|
147
|
+
* helper.addGroupOperation("groupBy", { fields: "category" });
|
|
148
|
+
*
|
|
149
|
+
* // Group by multiple fields
|
|
150
|
+
* helper.addGroupOperation("groupBy", {
|
|
151
|
+
* fields: { category: "$category", status: "$status" }
|
|
152
|
+
* });
|
|
153
|
+
*
|
|
154
|
+
* // Distinct operation (special case of grouping)
|
|
155
|
+
* helper.addGroupOperation("distinct", { fields: ["email"] });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
addGroupOperation(type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
|
|
159
|
+
/**
|
|
160
|
+
* Adds a $lookup stage operation to the pipeline.
|
|
161
|
+
*
|
|
162
|
+
* Lookup operations perform left outer joins with other collections, similar
|
|
163
|
+
* to JOIN in SQL. Lookup operations are never mergeable as each represents a
|
|
164
|
+
* distinct join operation.
|
|
165
|
+
*
|
|
166
|
+
* @param type - The operation type identifier (typically "join")
|
|
167
|
+
* @param payload - The operation payload data containing join specifications
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* // Simple lookup
|
|
172
|
+
* helper.addLookupOperation("join", {
|
|
173
|
+
* table: "orders",
|
|
174
|
+
* localField: "id",
|
|
175
|
+
* foreignField: "userId",
|
|
176
|
+
* alias: "userOrders"
|
|
177
|
+
* });
|
|
178
|
+
*
|
|
179
|
+
* // Lookup with pipeline
|
|
180
|
+
* helper.addLookupOperation("join", {
|
|
181
|
+
* table: "products",
|
|
182
|
+
* pipeline: [
|
|
183
|
+
* { $match: { inStock: true } },
|
|
184
|
+
* { $sort: { price: 1 } }
|
|
185
|
+
* ],
|
|
186
|
+
* alias: "availableProducts"
|
|
187
|
+
* });
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
addLookupOperation(type: string, payload: Record<string, unknown>): void;
|
|
191
|
+
/**
|
|
192
|
+
* Adds a generic stage operation to the pipeline.
|
|
193
|
+
*
|
|
194
|
+
* This method provides flexibility to add any MongoDB aggregation stage,
|
|
195
|
+
* including less common stages like $facet, $bucket, $setWindowFields, etc.
|
|
196
|
+
* Use this for operations that don't fit into the standard categories.
|
|
197
|
+
*
|
|
198
|
+
* @param stage - The MongoDB aggregation stage name (e.g., "$limit", "$skip", "$unwind")
|
|
199
|
+
* @param type - The operation type identifier
|
|
200
|
+
* @param payload - The operation payload data
|
|
201
|
+
* @param mergeable - Whether this operation can be merged with adjacent operations (default: false)
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* // Add a limit operation
|
|
206
|
+
* helper.addOperation("$limit", "limit", { value: 10 });
|
|
207
|
+
*
|
|
208
|
+
* // Add a skip operation
|
|
209
|
+
* helper.addOperation("$skip", "skip", { value: 20 });
|
|
210
|
+
*
|
|
211
|
+
* // Add an unwind operation
|
|
212
|
+
* helper.addOperation("$unwind", "unwind", { path: "$tags" });
|
|
213
|
+
*
|
|
214
|
+
* // Add a window function
|
|
215
|
+
* helper.addOperation("$setWindowFields", "selectWindow", {
|
|
216
|
+
* spec: {
|
|
217
|
+
* partitionBy: "$category",
|
|
218
|
+
* sortBy: { price: 1 },
|
|
219
|
+
* output: { rank: { $rank: {} } }
|
|
220
|
+
* }
|
|
221
|
+
* });
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
addOperation(stage: PipelineStage, type: string, payload: Record<string, unknown>, mergeable?: boolean): void;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=mongo-query-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo-query-operations.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongo/mongo-query-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,oBAAoB;IAiBZ,OAAO,CAAC,UAAU;IAhBrC;;;;;;;;;;;;;;;OAeG;gBACwB,UAAU,EAAE,SAAS,EAAE;IAE3C,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAInD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI;IAShG;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,mBAAmB,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAO,GACf,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI;IAS/F;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,iBAAiB,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAQ,GAChB,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACI,YAAY,CACjB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,UAAQ,GAChB,IAAI;CAQR"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Helper class for constructing MongoDB aggregation pipeline operations.
|
|
3
|
+
*
|
|
4
|
+
* This class encapsulates the logic for creating operation objects that will be
|
|
5
|
+
* converted to MongoDB aggregation stages by the query parser. It provides a
|
|
6
|
+
* clean abstraction over the low-level operation structure, making the query
|
|
7
|
+
* builder code more maintainable and testable.
|
|
8
|
+
*
|
|
9
|
+
* Each operation consists of:
|
|
10
|
+
* - **stage**: The MongoDB aggregation stage name (e.g., "$match", "$project")
|
|
11
|
+
* - **type**: An internal identifier for the operation type
|
|
12
|
+
* - **payload**: The data associated with the operation
|
|
13
|
+
* - **mergeable**: Whether this operation can be merged with adjacent similar operations
|
|
14
|
+
*
|
|
15
|
+
* @internal This class is for internal use within the MongoDB driver
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const operations: Operation[] = [];
|
|
20
|
+
* const helper = new MongoQueryOperations(operations);
|
|
21
|
+
*
|
|
22
|
+
* // Add a match operation
|
|
23
|
+
* helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
|
|
24
|
+
*
|
|
25
|
+
* // Add a project operation
|
|
26
|
+
* helper.addProjectOperation("select", { fields: ["name", "email"] });
|
|
27
|
+
*
|
|
28
|
+
* // Operations array is now populated
|
|
29
|
+
* console.log(operations);
|
|
30
|
+
* // [
|
|
31
|
+
* // { stage: "$match", mergeable: true, type: "whereIn", payload: {...} },
|
|
32
|
+
* // { stage: "$project", mergeable: true, type: "select", payload: {...} }
|
|
33
|
+
* // ]
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
class MongoQueryOperations {
|
|
37
|
+
operations;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new operations helper.
|
|
40
|
+
*
|
|
41
|
+
* The helper maintains a reference to the operations array and populates it
|
|
42
|
+
* as methods are called. This allows the query builder to maintain a single
|
|
43
|
+
* ordered list of operations that will be converted to a MongoDB aggregation
|
|
44
|
+
* pipeline.
|
|
45
|
+
*
|
|
46
|
+
* @param operations - Reference to the operations array to populate
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const operations: Operation[] = [];
|
|
51
|
+
* const helper = new MongoQueryOperations(operations);
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
constructor(operations) {
|
|
55
|
+
this.operations = operations;
|
|
56
|
+
}
|
|
57
|
+
setOperations(operations) {
|
|
58
|
+
this.operations = operations;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Adds a $match stage operation to the pipeline.
|
|
62
|
+
*
|
|
63
|
+
* Match operations filter documents in the aggregation pipeline, similar to
|
|
64
|
+
* the WHERE clause in SQL. Multiple match operations can be merged together
|
|
65
|
+
* by the parser for optimization.
|
|
66
|
+
*
|
|
67
|
+
* @param type - The operation type identifier (e.g., "where", "whereIn", "whereLike")
|
|
68
|
+
* @param payload - The operation payload data containing filter criteria
|
|
69
|
+
* @param mergeable - Whether this operation can be merged with adjacent match operations (default: true)
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Simple where operation
|
|
74
|
+
* helper.addMatchOperation("where", { field: "age", operator: ">", value: 18 });
|
|
75
|
+
*
|
|
76
|
+
* // WhereIn operation
|
|
77
|
+
* helper.addMatchOperation("whereIn", { field: "status", values: ["active", "pending"] });
|
|
78
|
+
*
|
|
79
|
+
* // Non-mergeable match (e.g., after a group stage)
|
|
80
|
+
* helper.addMatchOperation("having", { field: "count", operator: ">", value: 5 }, false);
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
addMatchOperation(type, payload, mergeable = true) {
|
|
84
|
+
this.operations.push({
|
|
85
|
+
stage: "$match",
|
|
86
|
+
mergeable,
|
|
87
|
+
type,
|
|
88
|
+
payload,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Adds a $project stage operation to the pipeline.
|
|
93
|
+
*
|
|
94
|
+
* Project operations control which fields are included or excluded in the
|
|
95
|
+
* output documents, similar to the SELECT clause in SQL. They can also be
|
|
96
|
+
* used to compute new fields or reshape documents.
|
|
97
|
+
*
|
|
98
|
+
* @param type - The operation type identifier (e.g., "select", "deselect", "selectRaw")
|
|
99
|
+
* @param payload - The operation payload data containing projection specifications
|
|
100
|
+
* @param mergeable - Whether this operation can be merged with adjacent project operations (default: true)
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* // Select specific fields
|
|
105
|
+
* helper.addProjectOperation("select", { fields: ["name", "email", "age"] });
|
|
106
|
+
*
|
|
107
|
+
* // Deselect fields
|
|
108
|
+
* helper.addProjectOperation("deselect", { fields: ["password", "secret"] });
|
|
109
|
+
*
|
|
110
|
+
* // Computed field
|
|
111
|
+
* helper.addProjectOperation("selectRaw", {
|
|
112
|
+
* expression: { fullName: { $concat: ["$firstName", " ", "$lastName"] } }
|
|
113
|
+
* });
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
addProjectOperation(type, payload, mergeable = true) {
|
|
117
|
+
this.operations.push({
|
|
118
|
+
stage: "$project",
|
|
119
|
+
mergeable,
|
|
120
|
+
type,
|
|
121
|
+
payload,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Adds a $sort stage operation to the pipeline.
|
|
126
|
+
*
|
|
127
|
+
* Sort operations order the documents in the pipeline, similar to the ORDER BY
|
|
128
|
+
* clause in SQL. Multiple sort operations can be merged to create compound
|
|
129
|
+
* sorting.
|
|
130
|
+
*
|
|
131
|
+
* @param type - The operation type identifier (e.g., "orderBy", "orderByRandom")
|
|
132
|
+
* @param payload - The operation payload data containing sort specifications
|
|
133
|
+
* @param mergeable - Whether this operation can be merged with adjacent sort operations (default: true)
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* // Order by a single field
|
|
138
|
+
* helper.addSortOperation("orderBy", { field: "createdAt", direction: "desc" });
|
|
139
|
+
*
|
|
140
|
+
* // Random ordering (not mergeable)
|
|
141
|
+
* helper.addSortOperation("orderByRandom", {limit: 1000}, false);
|
|
142
|
+
*
|
|
143
|
+
* // Order by raw expression
|
|
144
|
+
* helper.addSortOperation("orderByRaw", {
|
|
145
|
+
* expression: { score: -1, name: 1 }
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
addSortOperation(type, payload, mergeable = true) {
|
|
150
|
+
this.operations.push({
|
|
151
|
+
stage: "$sort",
|
|
152
|
+
mergeable,
|
|
153
|
+
type,
|
|
154
|
+
payload,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Adds a $group stage operation to the pipeline.
|
|
159
|
+
*
|
|
160
|
+
* Group operations aggregate documents by specified fields and compute
|
|
161
|
+
* aggregate values, similar to the GROUP BY clause in SQL. Group operations
|
|
162
|
+
* are typically not mergeable as they represent distinct aggregation boundaries.
|
|
163
|
+
*
|
|
164
|
+
* @param type - The operation type identifier (e.g., "groupBy", "distinct")
|
|
165
|
+
* @param payload - The operation payload data containing grouping specifications
|
|
166
|
+
* @param mergeable - Whether this operation can be merged with adjacent group operations (default: false)
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* // Group by a single field
|
|
171
|
+
* helper.addGroupOperation("groupBy", { fields: "category" });
|
|
172
|
+
*
|
|
173
|
+
* // Group by multiple fields
|
|
174
|
+
* helper.addGroupOperation("groupBy", {
|
|
175
|
+
* fields: { category: "$category", status: "$status" }
|
|
176
|
+
* });
|
|
177
|
+
*
|
|
178
|
+
* // Distinct operation (special case of grouping)
|
|
179
|
+
* helper.addGroupOperation("distinct", { fields: ["email"] });
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
addGroupOperation(type, payload, mergeable = false) {
|
|
183
|
+
this.operations.push({
|
|
184
|
+
stage: "$group",
|
|
185
|
+
mergeable,
|
|
186
|
+
type,
|
|
187
|
+
payload,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Adds a $lookup stage operation to the pipeline.
|
|
192
|
+
*
|
|
193
|
+
* Lookup operations perform left outer joins with other collections, similar
|
|
194
|
+
* to JOIN in SQL. Lookup operations are never mergeable as each represents a
|
|
195
|
+
* distinct join operation.
|
|
196
|
+
*
|
|
197
|
+
* @param type - The operation type identifier (typically "join")
|
|
198
|
+
* @param payload - The operation payload data containing join specifications
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* // Simple lookup
|
|
203
|
+
* helper.addLookupOperation("join", {
|
|
204
|
+
* table: "orders",
|
|
205
|
+
* localField: "id",
|
|
206
|
+
* foreignField: "userId",
|
|
207
|
+
* alias: "userOrders"
|
|
208
|
+
* });
|
|
209
|
+
*
|
|
210
|
+
* // Lookup with pipeline
|
|
211
|
+
* helper.addLookupOperation("join", {
|
|
212
|
+
* table: "products",
|
|
213
|
+
* pipeline: [
|
|
214
|
+
* { $match: { inStock: true } },
|
|
215
|
+
* { $sort: { price: 1 } }
|
|
216
|
+
* ],
|
|
217
|
+
* alias: "availableProducts"
|
|
218
|
+
* });
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
addLookupOperation(type, payload) {
|
|
222
|
+
this.operations.push({
|
|
223
|
+
stage: "$lookup",
|
|
224
|
+
mergeable: false,
|
|
225
|
+
type,
|
|
226
|
+
payload,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Adds a generic stage operation to the pipeline.
|
|
231
|
+
*
|
|
232
|
+
* This method provides flexibility to add any MongoDB aggregation stage,
|
|
233
|
+
* including less common stages like $facet, $bucket, $setWindowFields, etc.
|
|
234
|
+
* Use this for operations that don't fit into the standard categories.
|
|
235
|
+
*
|
|
236
|
+
* @param stage - The MongoDB aggregation stage name (e.g., "$limit", "$skip", "$unwind")
|
|
237
|
+
* @param type - The operation type identifier
|
|
238
|
+
* @param payload - The operation payload data
|
|
239
|
+
* @param mergeable - Whether this operation can be merged with adjacent operations (default: false)
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* ```typescript
|
|
243
|
+
* // Add a limit operation
|
|
244
|
+
* helper.addOperation("$limit", "limit", { value: 10 });
|
|
245
|
+
*
|
|
246
|
+
* // Add a skip operation
|
|
247
|
+
* helper.addOperation("$skip", "skip", { value: 20 });
|
|
248
|
+
*
|
|
249
|
+
* // Add an unwind operation
|
|
250
|
+
* helper.addOperation("$unwind", "unwind", { path: "$tags" });
|
|
251
|
+
*
|
|
252
|
+
* // Add a window function
|
|
253
|
+
* helper.addOperation("$setWindowFields", "selectWindow", {
|
|
254
|
+
* spec: {
|
|
255
|
+
* partitionBy: "$category",
|
|
256
|
+
* sortBy: { price: 1 },
|
|
257
|
+
* output: { rank: { $rank: {} } }
|
|
258
|
+
* }
|
|
259
|
+
* });
|
|
260
|
+
* ```
|
|
261
|
+
*/
|
|
262
|
+
addOperation(stage, type, payload, mergeable = false) {
|
|
263
|
+
this.operations.push({
|
|
264
|
+
stage,
|
|
265
|
+
mergeable,
|
|
266
|
+
type,
|
|
267
|
+
payload,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
}exports.MongoQueryOperations=MongoQueryOperations;//# sourceMappingURL=mongo-query-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo-query-operations.js","sources":["../../../src/drivers/mongo/mongo-query-operations.ts"],"sourcesContent":[null],"names":[],"mappings":"aAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MACU,oBAAoB,CAAA;AAiBJ,IAAA,UAAA,CAAA;AAhB3B;;;;;;;;;;;;;;;AAeG;AACH,IAAA,WAAA,CAA2B,UAAuB,EAAA;QAAvB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAa;KAAI;AAE/C,IAAA,aAAa,CAAC,UAAuB,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,IAAA,iBAAiB,CAAC,IAAY,EAAE,OAAgC,EAAE,SAAS,GAAG,IAAI,EAAA;AACvF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,QAAQ;YACf,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,mBAAmB,CACxB,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,IAAI,EAAA;AAEhB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,gBAAgB,CAAC,IAAY,EAAE,OAAgC,EAAE,SAAS,GAAG,IAAI,EAAA;AACtF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,OAAO;YACd,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACI,IAAA,iBAAiB,CACtB,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,QAAQ;YACf,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;IACI,kBAAkB,CAAC,IAAY,EAAE,OAAgC,EAAA;AACtE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,SAAS,EAAE,KAAK;YAChB,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;IACI,YAAY,CACjB,KAAoB,EACpB,IAAY,EACZ,OAAgC,EAChC,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,KAAK;YACL,SAAS;YACT,IAAI;YACJ,OAAO;AACR,SAAA,CAAC,CAAC;KACJ;AACF"}
|