@warlock.js/cascade 4.0.48 → 4.0.59
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,97 @@
|
|
|
1
|
+
import type { ValidationResult } from "@warlock.js/seal";
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when model validation fails during database write operations.
|
|
4
|
+
*
|
|
5
|
+
* Contains detailed information about all validation errors,
|
|
6
|
+
* including field paths, error messages, and validation rules that failed.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* try {
|
|
11
|
+
* const user = new User({ name: "", age: -5 });
|
|
12
|
+
* await user.save();
|
|
13
|
+
* } catch (error) {
|
|
14
|
+
* if (error instanceof DatabaseWriterValidationError) {
|
|
15
|
+
* console.log(error.message); // "Validation failed"
|
|
16
|
+
* console.log(error.errors);
|
|
17
|
+
* // [
|
|
18
|
+
* // { path: "name", error: "name is required", rule: "required" },
|
|
19
|
+
* // { path: "age", error: "age must be at least 0", rule: "min" }
|
|
20
|
+
* // ]
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare class DatabaseWriterValidationError extends Error {
|
|
26
|
+
/**
|
|
27
|
+
* Array of validation errors from @warlock.js/seal.
|
|
28
|
+
*
|
|
29
|
+
* Each error contains:
|
|
30
|
+
* - `path`: Dot-notation path to the field (e.g., "address.city")
|
|
31
|
+
* - `error`: Human-readable error message
|
|
32
|
+
* - `rule`: The validation rule that failed (e.g., "required", "email")
|
|
33
|
+
* - Additional context depending on the rule
|
|
34
|
+
*/
|
|
35
|
+
readonly errors: ValidationResult["errors"];
|
|
36
|
+
/**
|
|
37
|
+
* Create a new DatabaseWriterValidationError.
|
|
38
|
+
*
|
|
39
|
+
* @param message - Error message (typically "Validation failed")
|
|
40
|
+
* @param errors - Array of validation errors from seal
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const error = new DatabaseWriterValidationError("Validation failed", [
|
|
45
|
+
* { path: "email", error: "email must be valid", rule: "email" }
|
|
46
|
+
* ]);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
constructor(message: string, errors: ValidationResult["errors"]);
|
|
50
|
+
/**
|
|
51
|
+
* Get a formatted string representation of all validation errors.
|
|
52
|
+
*
|
|
53
|
+
* Provides beautiful, colored terminal output with clear field-by-field breakdown.
|
|
54
|
+
*
|
|
55
|
+
* @returns Multi-line string with all errors, formatted for terminal
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* console.log(error.toString());
|
|
60
|
+
* // ❌ Validation Error: UserModel
|
|
61
|
+
* //
|
|
62
|
+
* // Field: email
|
|
63
|
+
* // Error: Email already exists
|
|
64
|
+
* // Value: "john@example.com"
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
toString(): string;
|
|
68
|
+
/**
|
|
69
|
+
* Get validation errors for a specific field.
|
|
70
|
+
*
|
|
71
|
+
* @param fieldPath - Dot-notation path to the field
|
|
72
|
+
* @returns Array of errors for that field
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const emailErrors = error.getFieldErrors("email");
|
|
77
|
+
* console.log(emailErrors);
|
|
78
|
+
* // [{ path: "email", error: "email must be valid", rule: "email" }]
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
getFieldErrors(fieldPath: string): ValidationResult["errors"];
|
|
82
|
+
/**
|
|
83
|
+
* Check if a specific field has validation errors.
|
|
84
|
+
*
|
|
85
|
+
* @param fieldPath - Dot-notation path to the field
|
|
86
|
+
* @returns True if the field has errors
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* if (error.hasFieldError("email")) {
|
|
91
|
+
* console.log("Email is invalid");
|
|
92
|
+
* }
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
hasFieldError(fieldPath: string): boolean;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=database-writer-validation-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-writer-validation-error.d.ts","sourceRoot":"","sources":["../../src/validation/database-writer-validation-error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD;;;;;;;;OAQG;IACH,SAAgB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEnD;;;;;;;;;;;;OAYG;gBACgB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IAyBtE;;;;;;;;;;;;;;;;OAgBG;IACI,QAAQ,IAAI,MAAM;IAqDzB;;;;;;;;;;;;OAYG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAIpE;;;;;;;;;;;;OAYG;IACI,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGjD"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
'use strict';var copper=require('@mongez/copper');/**
|
|
2
|
+
* Error thrown when model validation fails during database write operations.
|
|
3
|
+
*
|
|
4
|
+
* Contains detailed information about all validation errors,
|
|
5
|
+
* including field paths, error messages, and validation rules that failed.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* try {
|
|
10
|
+
* const user = new User({ name: "", age: -5 });
|
|
11
|
+
* await user.save();
|
|
12
|
+
* } catch (error) {
|
|
13
|
+
* if (error instanceof DatabaseWriterValidationError) {
|
|
14
|
+
* console.log(error.message); // "Validation failed"
|
|
15
|
+
* console.log(error.errors);
|
|
16
|
+
* // [
|
|
17
|
+
* // { path: "name", error: "name is required", rule: "required" },
|
|
18
|
+
* // { path: "age", error: "age must be at least 0", rule: "min" }
|
|
19
|
+
* // ]
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
class DatabaseWriterValidationError extends Error {
|
|
25
|
+
/**
|
|
26
|
+
* Array of validation errors from @warlock.js/seal.
|
|
27
|
+
*
|
|
28
|
+
* Each error contains:
|
|
29
|
+
* - `path`: Dot-notation path to the field (e.g., "address.city")
|
|
30
|
+
* - `error`: Human-readable error message
|
|
31
|
+
* - `rule`: The validation rule that failed (e.g., "required", "email")
|
|
32
|
+
* - Additional context depending on the rule
|
|
33
|
+
*/
|
|
34
|
+
errors;
|
|
35
|
+
/**
|
|
36
|
+
* Create a new DatabaseWriterValidationError.
|
|
37
|
+
*
|
|
38
|
+
* @param message - Error message (typically "Validation failed")
|
|
39
|
+
* @param errors - Array of validation errors from seal
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const error = new DatabaseWriterValidationError("Validation failed", [
|
|
44
|
+
* { path: "email", error: "email must be valid", rule: "email" }
|
|
45
|
+
* ]);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
constructor(message, errors) {
|
|
49
|
+
super(message);
|
|
50
|
+
this.name = "DatabaseWriterValidationError";
|
|
51
|
+
this.errors = errors;
|
|
52
|
+
// Maintain proper stack trace for where error was thrown (V8 only)
|
|
53
|
+
if (Error.captureStackTrace) {
|
|
54
|
+
Error.captureStackTrace(this, DatabaseWriterValidationError);
|
|
55
|
+
}
|
|
56
|
+
// Override Node.js inspect to use our formatted output
|
|
57
|
+
Object.defineProperty(this, "inspect", {
|
|
58
|
+
value: () => this.toString(),
|
|
59
|
+
enumerable: false,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Custom inspect method for Node.js console output.
|
|
64
|
+
* This makes console.log and error logging use our beautiful format.
|
|
65
|
+
*/
|
|
66
|
+
[Symbol.for("nodejs.util.inspect.custom")]() {
|
|
67
|
+
return this.toString();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get a formatted string representation of all validation errors.
|
|
71
|
+
*
|
|
72
|
+
* Provides beautiful, colored terminal output with clear field-by-field breakdown.
|
|
73
|
+
*
|
|
74
|
+
* @returns Multi-line string with all errors, formatted for terminal
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* console.log(error.toString());
|
|
79
|
+
* // ❌ Validation Error: UserModel
|
|
80
|
+
* //
|
|
81
|
+
* // Field: email
|
|
82
|
+
* // Error: Email already exists
|
|
83
|
+
* // Value: "john@example.com"
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
toString() {
|
|
87
|
+
// Extract model name from message (e.g., "[UserModel Model]")
|
|
88
|
+
const modelMatch = this.message.match(/\[(\w+)\s+Model\]/);
|
|
89
|
+
const modelName = modelMatch ? modelMatch[1] : "Model";
|
|
90
|
+
const operation = this.message.includes("Insert") ? "Insert" : "Update";
|
|
91
|
+
// Build header
|
|
92
|
+
const lines = [];
|
|
93
|
+
lines.push("");
|
|
94
|
+
lines.push(copper.colors.red(`❌ Validation Error: ${modelName} (${operation})`));
|
|
95
|
+
lines.push("");
|
|
96
|
+
// Group errors by field for better readability
|
|
97
|
+
const errorsByField = new Map();
|
|
98
|
+
for (const err of this.errors) {
|
|
99
|
+
const fieldName = err.input || "unknown";
|
|
100
|
+
if (!errorsByField.has(fieldName)) {
|
|
101
|
+
errorsByField.set(fieldName, []);
|
|
102
|
+
}
|
|
103
|
+
errorsByField.get(fieldName).push({
|
|
104
|
+
error: err.error,
|
|
105
|
+
type: err.type,
|
|
106
|
+
value: err.value,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
// Format each field's errors
|
|
110
|
+
for (const [fieldName, fieldErrors] of errorsByField) {
|
|
111
|
+
lines.push(copper.colors.yellow(` Field: ${fieldName}`));
|
|
112
|
+
for (const fieldError of fieldErrors) {
|
|
113
|
+
lines.push(copper.colors.white(` Error: ${fieldError.error}`));
|
|
114
|
+
if (fieldError.value !== undefined) {
|
|
115
|
+
const valueStr = typeof fieldError.value === "string"
|
|
116
|
+
? `"${fieldError.value}"`
|
|
117
|
+
: JSON.stringify(fieldError.value);
|
|
118
|
+
lines.push(copper.colors.gray(` Value: ${valueStr}`));
|
|
119
|
+
}
|
|
120
|
+
if (fieldError.type) {
|
|
121
|
+
lines.push(copper.colors.cyan(` Type: ${fieldError.type}`));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
lines.push(""); // Blank line between fields
|
|
125
|
+
}
|
|
126
|
+
return lines.join("\n");
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get validation errors for a specific field.
|
|
130
|
+
*
|
|
131
|
+
* @param fieldPath - Dot-notation path to the field
|
|
132
|
+
* @returns Array of errors for that field
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* const emailErrors = error.getFieldErrors("email");
|
|
137
|
+
* console.log(emailErrors);
|
|
138
|
+
* // [{ path: "email", error: "email must be valid", rule: "email" }]
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
getFieldErrors(fieldPath) {
|
|
142
|
+
return this.errors.filter((err) => err.input === fieldPath);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Check if a specific field has validation errors.
|
|
146
|
+
*
|
|
147
|
+
* @param fieldPath - Dot-notation path to the field
|
|
148
|
+
* @returns True if the field has errors
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* if (error.hasFieldError("email")) {
|
|
153
|
+
* console.log("Email is invalid");
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
hasFieldError(fieldPath) {
|
|
158
|
+
return this.errors.some((err) => err.input === fieldPath);
|
|
159
|
+
}
|
|
160
|
+
}exports.DatabaseWriterValidationError=DatabaseWriterValidationError;//# sourceMappingURL=database-writer-validation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-writer-validation-error.js","sources":["../../src/validation/database-writer-validation-error.ts"],"sourcesContent":[null],"names":["colors"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,OAAO,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Mutator } from "@warlock.js/seal";
|
|
2
|
+
import { ChildModel } from "../../model/model";
|
|
3
|
+
type DatabaseModelMutatorOptions = {
|
|
4
|
+
model: ChildModel<any> | string;
|
|
5
|
+
};
|
|
6
|
+
export declare const databaseModelMutator: Mutator<DatabaseModelMutatorOptions>;
|
|
7
|
+
export declare const databaseModelsMutator: Mutator<DatabaseModelMutatorOptions>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=embed-mutator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-mutator.d.ts","sourceRoot":"","sources":["../../../src/validation/mutators/embed-mutator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAS,MAAM,mBAAmB,CAAC;AAGtD,KAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,2BAA2B,CAuBrE,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,2BAA2B,CAsBtE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';var model=require('../../model/model.js'),registerModel=require('../../model/register-model.js');const databaseModelMutator = async (value, context) => {
|
|
2
|
+
let { model: ModelClass } = context.options;
|
|
3
|
+
if (typeof ModelClass === "string") {
|
|
4
|
+
ModelClass = registerModel.getModelFromRegistry(ModelClass);
|
|
5
|
+
}
|
|
6
|
+
if (!ModelClass) {
|
|
7
|
+
throw new Error(`Model ${ModelClass} not found in registry`);
|
|
8
|
+
}
|
|
9
|
+
if (value instanceof model.Model)
|
|
10
|
+
return value;
|
|
11
|
+
if (typeof value === "object" && value?.id) {
|
|
12
|
+
value = Number(value.id);
|
|
13
|
+
}
|
|
14
|
+
if (typeof value !== "number")
|
|
15
|
+
return value;
|
|
16
|
+
return await ModelClass.find(value);
|
|
17
|
+
};
|
|
18
|
+
const databaseModelsMutator = async (value, context) => {
|
|
19
|
+
if (!Array.isArray(value))
|
|
20
|
+
return value;
|
|
21
|
+
let { model: ModelClass } = context.options;
|
|
22
|
+
if (typeof ModelClass === "string") {
|
|
23
|
+
ModelClass = registerModel.getModelFromRegistry(ModelClass);
|
|
24
|
+
}
|
|
25
|
+
if (!ModelClass) {
|
|
26
|
+
throw new Error(`Model ${ModelClass} not found in registry`);
|
|
27
|
+
}
|
|
28
|
+
// first, if all values are list of models, then return them.
|
|
29
|
+
if (value.every((item) => item instanceof model.Model))
|
|
30
|
+
return value;
|
|
31
|
+
const ids = value.map((item) => item?.id || item).filter((item) => item !== undefined);
|
|
32
|
+
return await ModelClass.query().whereIn("id", ids).get();
|
|
33
|
+
};exports.databaseModelMutator=databaseModelMutator;exports.databaseModelsMutator=databaseModelsMutator;//# sourceMappingURL=embed-mutator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-mutator.js","sources":["../../../src/validation/mutators/embed-mutator.ts"],"sourcesContent":[null],"names":["getModelFromRegistry","Model"],"mappings":"8GAQa,MAAA,oBAAoB,GAAyC,OACxE,KAAK,EACL,OAAO,KACL;IACF,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAE5C,IAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,QAAA,UAAU,GAAGA,kCAAoB,CAAC,UAAU,CAAE,CAAC;AAChD,KAAA;IAED,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,CAAA,sBAAA,CAAwB,CAAC,CAAC;AAC9D,KAAA;IAED,IAAI,KAAK,YAAYC,WAAK;AAAE,QAAA,OAAO,KAAK,CAAC;IAEzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,EAAE,EAAE;AAC1C,QAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1B,KAAA;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,KAAK,CAAC;AAE5C,IAAA,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,EAAE;AAEW,MAAA,qBAAqB,GAAyC,OACzE,KAAK,EACL,OAAO,KACL;AACF,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;IAExC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAE5C,IAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,QAAA,UAAU,GAAGD,kCAAoB,CAAC,UAAU,CAAE,CAAC;AAChD,KAAA;IAED,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,SAAS,UAAU,CAAA,sBAAA,CAAwB,CAAC,CAAC;AAC9D,KAAA;;AAGD,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAYC,WAAK,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;AAE/D,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,SAAS,CAAC,CAAC;AAEvF,IAAA,OAAO,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Validator Plugin
|
|
3
|
+
*
|
|
4
|
+
* Adds file validation to Seal v factory
|
|
5
|
+
*/
|
|
6
|
+
import type { SealPlugin } from "@warlock.js/seal";
|
|
7
|
+
import type { ChildModel } from "../../model/model";
|
|
8
|
+
import { EmbedModelValidator } from "../validators/embed-validator";
|
|
9
|
+
type EmbedOptions = {
|
|
10
|
+
errorMessage?: string;
|
|
11
|
+
embed?: string | string[];
|
|
12
|
+
};
|
|
13
|
+
declare module "@warlock.js/seal" {
|
|
14
|
+
interface ValidatorV {
|
|
15
|
+
embed(model: ChildModel<any> | string, options?: EmbedOptions): EmbedModelValidator;
|
|
16
|
+
embedMany(model: ChildModel<any> | string, options?: EmbedOptions): EmbedModelValidator;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* File validation plugin for Seal
|
|
21
|
+
*/
|
|
22
|
+
export declare const embedValidator: SealPlugin;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=embed-validator-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-validator-plugin.d.ts","sourceRoot":"","sources":["../../../src/validation/plugins/embed-validator-plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,KAAK,YAAY,GAAG;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,UAAU;QAClB,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;QACpF,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;KACzF;CACF;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAY5B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';var seal=require('@warlock.js/seal'),embedValidator$1=require('../validators/embed-validator.js');/**
|
|
2
|
+
* File Validator Plugin
|
|
3
|
+
*
|
|
4
|
+
* Adds file validation to Seal v factory
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* File validation plugin for Seal
|
|
8
|
+
*/
|
|
9
|
+
const embedValidator = {
|
|
10
|
+
name: "embed",
|
|
11
|
+
version: "1.0.0",
|
|
12
|
+
description: "Adds file upload validation (v.file())",
|
|
13
|
+
install() {
|
|
14
|
+
// Inject file() method into v factory
|
|
15
|
+
seal.v.embed = (model, options) => new embedValidator$1.EmbedModelValidator().model(model).embed(options?.embed);
|
|
16
|
+
seal.v.embedMany = (model, options) => new embedValidator$1.EmbedModelValidator().models(model).embed(options?.embed);
|
|
17
|
+
},
|
|
18
|
+
};exports.embedValidator=embedValidator;//# sourceMappingURL=embed-validator-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-validator-plugin.js","sources":["../../../src/validation/plugins/embed-validator-plugin.ts"],"sourcesContent":[null],"names":["v","EmbedModelValidator"],"mappings":"+GAAA;;;;AAIG;AAmBH;;AAEG;AACU,MAAA,cAAc,GAAe;AACxC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,WAAW,EAAE,wCAAwC;IAErD,OAAO,GAAA;;QAELA,MAAC,CAAC,KAAK,GAAG,CAAC,KAA+B,EAAE,OAAsB,KAChE,IAAIC,oCAAmB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/DD,MAAC,CAAC,SAAS,GAAG,CAAC,KAA+B,EAAE,OAAsB,KACpE,IAAIC,oCAAmB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACjE;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SchemaRule } from "@warlock.js/seal";
|
|
2
|
+
import { ChildModel } from "./../../model/model";
|
|
3
|
+
export declare const databaseModelRule: SchemaRule;
|
|
4
|
+
export declare const databaseModelsRule: SchemaRule<{
|
|
5
|
+
model: ChildModel<any> | string;
|
|
6
|
+
}>;
|
|
7
|
+
//# sourceMappingURL=database-model-rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-model-rule.d.ts","sourceRoot":"","sources":["../../../src/validation/rules/database-model-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAS,MAAM,qBAAqB,CAAC;AAGxD,eAAO,MAAM,iBAAiB,EAAE,UAW/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;CAAE,CAiB9E,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';var seal=require('@warlock.js/seal'),model=require('../../model/model.js'),registerModel=require('../../model/register-model.js');const databaseModelRule = {
|
|
2
|
+
name: "databaseModule",
|
|
3
|
+
defaultErrorMessage: "The :input must be a valid :model model",
|
|
4
|
+
async validate(value, context) {
|
|
5
|
+
if (value instanceof model.Model === false) {
|
|
6
|
+
this.context.attributesList.model = this.context.options.model.name;
|
|
7
|
+
return seal.invalidRule(this, context);
|
|
8
|
+
}
|
|
9
|
+
return seal.VALID_RULE;
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
const databaseModelsRule = {
|
|
13
|
+
name: "databaseModels",
|
|
14
|
+
defaultErrorMessage: "The :input must be a list of valid :model",
|
|
15
|
+
async validate(value, context) {
|
|
16
|
+
let { model: model$1 } = this.context.options;
|
|
17
|
+
if (typeof model$1 === "string") {
|
|
18
|
+
model$1 = registerModel.getModelFromRegistry(model$1);
|
|
19
|
+
}
|
|
20
|
+
this.context.attributesList.model = model$1.name;
|
|
21
|
+
if (!Array.isArray(value))
|
|
22
|
+
return seal.invalidRule(this, context);
|
|
23
|
+
if (value.every((item) => item instanceof model.Model))
|
|
24
|
+
return seal.VALID_RULE;
|
|
25
|
+
return seal.invalidRule(this, context);
|
|
26
|
+
},
|
|
27
|
+
};exports.databaseModelRule=databaseModelRule;exports.databaseModelsRule=databaseModelsRule;//# sourceMappingURL=database-model-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-model-rule.js","sources":["../../../src/validation/rules/database-model-rule.ts"],"sourcesContent":[null],"names":["Model","invalidRule","VALID_RULE","model","getModelFromRegistry"],"mappings":"+IAIa,MAAA,iBAAiB,GAAe;AAC3C,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,mBAAmB,EAAE,yCAAyC;AAC9D,IAAA,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAA;AAC3B,QAAA,IAAI,KAAK,YAAYA,WAAK,KAAK,KAAK,EAAE;AACpC,YAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACpE,YAAA,OAAOC,gBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,eAAU,CAAC;KACnB;EACD;AAEW,MAAA,kBAAkB,GAAoD;AACjF,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,mBAAmB,EAAE,2CAA2C;AAChE,IAAA,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAA;QAC3B,IAAI,SAAEC,OAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACrC,QAAA,IAAI,OAAOA,OAAK,KAAK,QAAQ,EAAE;AAC7B,YAAAA,OAAK,GAAGC,kCAAoB,CAACD,OAAK,CAAE,CAAC;AACtC,SAAA;QAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,GAAGA,OAAK,CAAC,IAAI,CAAC;AAE/C,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,YAAA,OAAOF,gBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE7D,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAYD,WAAK,CAAC;AAAE,YAAA,OAAOE,eAAU,CAAC;AAEpE,QAAA,OAAOD,gBAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-model-transformer.d.ts","sourceRoot":"","sources":["../../../src/validation/transformers/embed-model-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,eAAO,MAAM,wBAAwB,EAAE,mBAsBtC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';var model=require('../../model/model.js');const databaseModelTransformer = (value, context) => {
|
|
2
|
+
const embed = context.options.embed ?? "embedData";
|
|
3
|
+
if (value instanceof model.Model === false && !Array.isArray(value)) {
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
if (Array.isArray(value)) {
|
|
7
|
+
return value.map((item) => {
|
|
8
|
+
if (typeof embed === "string") {
|
|
9
|
+
return item[embed];
|
|
10
|
+
}
|
|
11
|
+
return item.only(embed);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
if (typeof embed === "string") {
|
|
15
|
+
return value[embed];
|
|
16
|
+
}
|
|
17
|
+
return value.only(embed);
|
|
18
|
+
};exports.databaseModelTransformer=databaseModelTransformer;//# sourceMappingURL=embed-model-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-model-transformer.js","sources":["../../../src/validation/transformers/embed-model-transformer.ts"],"sourcesContent":[null],"names":["Model"],"mappings":"6DAGa,wBAAwB,GAAwB,CAAC,KAAK,EAAE,OAAO,KAAI;IAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC;AAEnD,IAAA,IAAI,KAAK,YAAYA,WAAK,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7D,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACxB,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,aAAA;AAED,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;AACJ,KAAA;AAED,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAQ,KAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAA;AAED,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseValidator } from "@warlock.js/seal";
|
|
2
|
+
import { type ChildModel } from "../../model/model";
|
|
3
|
+
export declare class EmbedModelValidator extends BaseValidator {
|
|
4
|
+
/**
|
|
5
|
+
* Check if value is a string type
|
|
6
|
+
*/
|
|
7
|
+
matchesType(value: any): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Mutate the value to be a model, also fail if the mutated value is not a valid model
|
|
10
|
+
*/
|
|
11
|
+
model(model: ChildModel<any> | string): this;
|
|
12
|
+
/**
|
|
13
|
+
* Validate the value is a list of models
|
|
14
|
+
*/
|
|
15
|
+
models(model: ChildModel<any> | string): this;
|
|
16
|
+
/**
|
|
17
|
+
* Determine how the data will be stored as an embedded document
|
|
18
|
+
*/
|
|
19
|
+
embed(embed?: string | string[]): this;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=embed-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-validator.d.ts","sourceRoot":"","sources":["../../../src/validation/validators/embed-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK3D,qBAAa,mBAAoB,SAAQ,aAAa;IACpD;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAQvC;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM;IAY5C;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM;IAa7C;;OAEG;IACI,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CAOvC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';var seal=require('@warlock.js/seal'),model=require('../../model/model.js'),embedMutator=require('../mutators/embed-mutator.js'),databaseModelRule=require('../rules/database-model-rule.js'),embedModelTransformer=require('../transformers/embed-model-transformer.js');class EmbedModelValidator extends seal.BaseValidator {
|
|
2
|
+
/**
|
|
3
|
+
* Check if value is a string type
|
|
4
|
+
*/
|
|
5
|
+
matchesType(value) {
|
|
6
|
+
return (value instanceof model.Model ||
|
|
7
|
+
typeof value === "number" ||
|
|
8
|
+
(Array.isArray(value) && value.every((item) => item instanceof model.Model)));
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Mutate the value to be a model, also fail if the mutated value is not a valid model
|
|
12
|
+
*/
|
|
13
|
+
model(model) {
|
|
14
|
+
this.addMutator(embedMutator.databaseModelMutator, {
|
|
15
|
+
model,
|
|
16
|
+
});
|
|
17
|
+
const rule = this.addRule(databaseModelRule.databaseModelRule);
|
|
18
|
+
rule.context.options.model = model;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Validate the value is a list of models
|
|
23
|
+
*/
|
|
24
|
+
models(model) {
|
|
25
|
+
this.addMutator(embedMutator.databaseModelsMutator, {
|
|
26
|
+
model,
|
|
27
|
+
});
|
|
28
|
+
this.addRule(seal.arrayRule);
|
|
29
|
+
const rule = this.addRule(databaseModelRule.databaseModelsRule);
|
|
30
|
+
rule.context.options.model = model;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Determine how the data will be stored as an embedded document
|
|
35
|
+
*/
|
|
36
|
+
embed(embed) {
|
|
37
|
+
this.addTransformer(embedModelTransformer.databaseModelTransformer, {
|
|
38
|
+
embed,
|
|
39
|
+
});
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
}exports.EmbedModelValidator=EmbedModelValidator;//# sourceMappingURL=embed-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-validator.js","sources":["../../../src/validation/validators/embed-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","Model","databaseModelMutator","databaseModelRule","databaseModelsMutator","arrayRule","databaseModelsRule","databaseModelTransformer"],"mappings":"sRAMM,MAAO,mBAAoB,SAAQA,kBAAa,CAAA;AACpD;;AAEG;AACI,IAAA,WAAW,CAAC,KAAU,EAAA;QAC3B,QACE,KAAK,YAAYC,WAAK;YACtB,OAAO,KAAK,KAAK,QAAQ;aACxB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAYA,WAAK,CAAC,CAAC,EACtE;KACH;AAED;;AAEG;AACI,IAAA,KAAK,CAAC,KAA+B,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,CAACC,iCAAoB,EAAE;YACpC,KAAK;AACN,SAAA,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAACC,mCAAiB,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,MAAM,CAAC,KAA+B,EAAA;AAC3C,QAAA,IAAI,CAAC,UAAU,CAACC,kCAAqB,EAAE;YACrC,KAAK;AACN,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,OAAO,CAACC,cAAS,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAACC,oCAAkB,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAEnC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,KAAK,CAAC,KAAyB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAACC,8CAAwB,EAAE;YAC5C,KAAK;AACN,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC;KACb;AACF"}
|