@warlock.js/cascade 4.0.174 → 4.1.2
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/README.md +6 -5
- package/bin/cascadejs +3 -0
- package/esm/cli/commands/migrate-export-sql.mjs +48 -0
- package/esm/cli/commands/migrate-export-sql.mjs.map +1 -0
- package/esm/cli/commands/migrate-list.mjs +26 -0
- package/esm/cli/commands/migrate-list.mjs.map +1 -0
- package/esm/cli/commands/migrate-rollback.mjs +50 -0
- package/esm/cli/commands/migrate-rollback.mjs.map +1 -0
- package/esm/cli/commands/migrate.mjs +65 -0
- package/esm/cli/commands/migrate.mjs.map +1 -0
- package/esm/cli/connection-from-env.mjs +181 -0
- package/esm/cli/connection-from-env.mjs.map +1 -0
- package/esm/cli/index.mjs +31 -0
- package/esm/cli/index.mjs.map +1 -0
- package/esm/cli/load-migrations.mjs +78 -0
- package/esm/cli/load-migrations.mjs.map +1 -0
- package/esm/cli/printers.mjs +57 -0
- package/esm/cli/printers.mjs.map +1 -0
- package/esm/cli/setup-logger.mjs +30 -0
- package/esm/cli/setup-logger.mjs.map +1 -0
- package/esm/cli/with-cli-connection.mjs +39 -0
- package/esm/cli/with-cli-connection.mjs.map +1 -0
- package/esm/cli.d.mts +1 -0
- package/esm/cli.mjs +26 -0
- package/esm/cli.mjs.map +1 -0
- package/esm/context/database-data-source-context.d.mts +32 -0
- package/esm/context/database-data-source-context.d.mts.map +1 -0
- package/esm/context/database-data-source-context.mjs +35 -0
- package/esm/context/database-data-source-context.mjs.map +1 -0
- package/esm/context/database-transaction-context.d.mts +38 -0
- package/esm/context/database-transaction-context.d.mts.map +1 -0
- package/esm/context/database-transaction-context.mjs +47 -0
- package/esm/context/database-transaction-context.mjs.map +1 -0
- package/esm/contracts/database-driver.contract.d.mts +443 -0
- package/esm/contracts/database-driver.contract.d.mts.map +1 -0
- package/esm/contracts/database-id-generator.contract.d.mts +109 -0
- package/esm/contracts/database-id-generator.contract.d.mts.map +1 -0
- package/esm/contracts/database-remover.contract.d.mts +108 -0
- package/esm/contracts/database-remover.contract.d.mts.map +1 -0
- package/esm/contracts/database-restorer.contract.d.mts +145 -0
- package/esm/contracts/database-restorer.contract.d.mts.map +1 -0
- package/esm/contracts/database-writer.contract.d.mts +123 -0
- package/esm/contracts/database-writer.contract.d.mts.map +1 -0
- package/esm/contracts/driver-blueprint.contract.d.mts +52 -0
- package/esm/contracts/driver-blueprint.contract.d.mts.map +1 -0
- package/esm/contracts/index.d.mts +9 -0
- package/esm/contracts/migration-driver.contract.d.mts +476 -0
- package/esm/contracts/migration-driver.contract.d.mts.map +1 -0
- package/esm/contracts/query-builder.contract.d.mts +1663 -0
- package/esm/contracts/query-builder.contract.d.mts.map +1 -0
- package/esm/contracts/sync-adapter.contract.d.mts +49 -0
- package/esm/contracts/sync-adapter.contract.d.mts.map +1 -0
- package/esm/data-source/data-source-registry.d.mts +111 -0
- package/esm/data-source/data-source-registry.d.mts.map +1 -0
- package/esm/data-source/data-source-registry.mjs +142 -0
- package/esm/data-source/data-source-registry.mjs.map +1 -0
- package/esm/data-source/data-source.d.mts +160 -0
- package/esm/data-source/data-source.d.mts.map +1 -0
- package/esm/data-source/data-source.mjs +87 -0
- package/esm/data-source/data-source.mjs.map +1 -0
- package/esm/database-dirty-tracker.d.mts +254 -0
- package/esm/database-dirty-tracker.d.mts.map +1 -0
- package/esm/database-dirty-tracker.mjs +356 -0
- package/esm/database-dirty-tracker.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-blueprint.mjs +54 -0
- package/esm/drivers/mongodb/mongodb-blueprint.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-driver.d.mts +334 -0
- package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-driver.mjs +716 -0
- package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-id-generator.d.mts +120 -0
- package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-id-generator.mjs +141 -0
- package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.d.mts +322 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.mjs +531 -0
- package/esm/drivers/mongodb/mongodb-migration-driver.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-builder.d.mts +1117 -0
- package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-builder.mjs +1828 -0
- package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-operations.d.mts +230 -0
- package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-operations.mjs +275 -0
- package/esm/drivers/mongodb/mongodb-query-operations.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-parser.d.mts +263 -0
- package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-query-parser.mjs +965 -0
- package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts +78 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.mts.map +1 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.mjs +118 -0
- package/esm/drivers/mongodb/mongodb-sync-adapter.mjs.map +1 -0
- package/esm/drivers/mongodb/types.d.mts +43 -0
- package/esm/drivers/mongodb/types.d.mts.map +1 -0
- package/esm/drivers/postgres/index.d.mts +8 -0
- package/esm/drivers/postgres/index.mjs +9 -0
- package/esm/drivers/postgres/postgres-blueprint.d.mts +60 -0
- package/esm/drivers/postgres/postgres-blueprint.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-blueprint.mjs +105 -0
- package/esm/drivers/postgres/postgres-blueprint.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.d.mts +144 -0
- package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-dialect.mjs +227 -0
- package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-driver.d.mts +424 -0
- package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-driver.mjs +845 -0
- package/esm/drivers/postgres/postgres-driver.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.mts +393 -0
- package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-migration-driver.mjs +760 -0
- package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.d.mts +399 -0
- package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-query-builder.mjs +1105 -0
- package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.d.mts +351 -0
- package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-query-parser.mjs +796 -0
- package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-sql-serializer.mjs +260 -0
- package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.mts +79 -0
- package/esm/drivers/postgres/postgres-sync-adapter.d.mts.map +1 -0
- package/esm/drivers/postgres/postgres-sync-adapter.mjs +162 -0
- package/esm/drivers/postgres/postgres-sync-adapter.mjs.map +1 -0
- package/esm/drivers/postgres/types.d.mts +105 -0
- package/esm/drivers/postgres/types.d.mts.map +1 -0
- package/esm/drivers/sql/sql-dialect.contract.d.mts +221 -0
- package/esm/drivers/sql/sql-dialect.contract.d.mts.map +1 -0
- package/esm/drivers/sql/sql-types.d.mts +150 -0
- package/esm/drivers/sql/sql-types.d.mts.map +1 -0
- package/esm/errors/missing-data-source.error.d.mts +25 -0
- package/esm/errors/missing-data-source.error.d.mts.map +1 -0
- package/esm/errors/missing-data-source.error.mjs +31 -0
- package/esm/errors/missing-data-source.error.mjs.map +1 -0
- package/esm/errors/transaction-rollback.error.d.mts +23 -0
- package/esm/errors/transaction-rollback.error.d.mts.map +1 -0
- package/esm/errors/transaction-rollback.error.mjs +29 -0
- package/esm/errors/transaction-rollback.error.mjs.map +1 -0
- package/esm/events/model-events.d.mts +234 -0
- package/esm/events/model-events.d.mts.map +1 -0
- package/esm/events/model-events.mjs +254 -0
- package/esm/events/model-events.mjs.map +1 -0
- package/esm/expressions/aggregate-expressions.d.mts +224 -0
- package/esm/expressions/aggregate-expressions.d.mts.map +1 -0
- package/esm/expressions/aggregate-expressions.mjs +232 -0
- package/esm/expressions/aggregate-expressions.mjs.map +1 -0
- package/esm/index.d.mts +67 -0
- package/esm/index.mjs +53 -0
- package/esm/migration/column-builder.d.mts +420 -0
- package/esm/migration/column-builder.d.mts.map +1 -0
- package/esm/migration/column-builder.mjs +532 -0
- package/esm/migration/column-builder.mjs.map +1 -0
- package/esm/migration/column-helpers.d.mts +280 -0
- package/esm/migration/column-helpers.d.mts.map +1 -0
- package/esm/migration/column-helpers.mjs +376 -0
- package/esm/migration/column-helpers.mjs.map +1 -0
- package/esm/migration/foreign-key-builder.d.mts +106 -0
- package/esm/migration/foreign-key-builder.d.mts.map +1 -0
- package/esm/migration/foreign-key-builder.mjs +126 -0
- package/esm/migration/foreign-key-builder.mjs.map +1 -0
- package/esm/migration/index.d.mts +6 -0
- package/esm/migration/index.mjs +7 -0
- package/esm/migration/migration-runner.d.mts +279 -0
- package/esm/migration/migration-runner.d.mts.map +1 -0
- package/esm/migration/migration-runner.mjs +662 -0
- package/esm/migration/migration-runner.mjs.map +1 -0
- package/esm/migration/migration.d.mts +2035 -0
- package/esm/migration/migration.d.mts.map +1 -0
- package/esm/migration/migration.mjs +2083 -0
- package/esm/migration/migration.mjs.map +1 -0
- package/esm/migration/sql-grammar.mjs +115 -0
- package/esm/migration/sql-grammar.mjs.map +1 -0
- package/esm/migration/sql-serializer.d.mts +26 -0
- package/esm/migration/sql-serializer.d.mts.map +1 -0
- package/esm/migration/sql-serializer.mjs +26 -0
- package/esm/migration/sql-serializer.mjs.map +1 -0
- package/esm/migration/types.d.mts +136 -0
- package/esm/migration/types.d.mts.map +1 -0
- package/esm/model/methods/accessor-methods.mjs +54 -0
- package/esm/model/methods/accessor-methods.mjs.map +1 -0
- package/esm/model/methods/delete-methods.mjs +16 -0
- package/esm/model/methods/delete-methods.mjs.map +1 -0
- package/esm/model/methods/dirty-methods.mjs +20 -0
- package/esm/model/methods/dirty-methods.mjs.map +1 -0
- package/esm/model/methods/hydration-methods.mjs +51 -0
- package/esm/model/methods/hydration-methods.mjs.map +1 -0
- package/esm/model/methods/instance-event-methods.mjs +22 -0
- package/esm/model/methods/instance-event-methods.mjs.map +1 -0
- package/esm/model/methods/meta-methods.mjs +36 -0
- package/esm/model/methods/meta-methods.mjs.map +1 -0
- package/esm/model/methods/pivot-methods.mjs +48 -0
- package/esm/model/methods/pivot-methods.mjs.map +1 -0
- package/esm/model/methods/query-methods.mjs +121 -0
- package/esm/model/methods/query-methods.mjs.map +1 -0
- package/esm/model/methods/restore-methods.mjs +16 -0
- package/esm/model/methods/restore-methods.mjs.map +1 -0
- package/esm/model/methods/scope-methods.mjs +20 -0
- package/esm/model/methods/scope-methods.mjs.map +1 -0
- package/esm/model/methods/serialization-methods.mjs +20 -0
- package/esm/model/methods/serialization-methods.mjs.map +1 -0
- package/esm/model/methods/static-event-methods.mjs +37 -0
- package/esm/model/methods/static-event-methods.mjs.map +1 -0
- package/esm/model/methods/write-methods.mjs +69 -0
- package/esm/model/methods/write-methods.mjs.map +1 -0
- package/esm/model/model.d.mts +1778 -0
- package/esm/model/model.d.mts.map +1 -0
- package/esm/model/model.mjs +1762 -0
- package/esm/model/model.mjs.map +1 -0
- package/esm/model/model.types.d.mts +47 -0
- package/esm/model/model.types.d.mts.map +1 -0
- package/esm/model/register-model.d.mts +140 -0
- package/esm/model/register-model.d.mts.map +1 -0
- package/esm/model/register-model.mjs +175 -0
- package/esm/model/register-model.mjs.map +1 -0
- package/esm/model/relation-decorators.d.mts +88 -0
- package/esm/model/relation-decorators.d.mts.map +1 -0
- package/esm/model/relation-decorators.mjs +191 -0
- package/esm/model/relation-decorators.mjs.map +1 -0
- package/esm/operations/database.d.mts +46 -0
- package/esm/operations/database.d.mts.map +1 -0
- package/esm/operations/database.mjs +40 -0
- package/esm/operations/database.mjs.map +1 -0
- package/esm/operations/index.d.mts +2 -0
- package/esm/operations/index.mjs +4 -0
- package/esm/operations/migrations.d.mts +71 -0
- package/esm/operations/migrations.d.mts.map +1 -0
- package/esm/operations/migrations.mjs +70 -0
- package/esm/operations/migrations.mjs.map +1 -0
- package/esm/query-builder/query-builder.d.mts +564 -0
- package/esm/query-builder/query-builder.d.mts.map +1 -0
- package/esm/query-builder/query-builder.mjs +1097 -0
- package/esm/query-builder/query-builder.mjs.map +1 -0
- package/esm/relations/index.d.mts +4 -0
- package/esm/relations/index.mjs +5 -0
- package/esm/relations/key-conventions.mjs +119 -0
- package/esm/relations/key-conventions.mjs.map +1 -0
- package/esm/relations/pivot-operations.d.mts +155 -0
- package/esm/relations/pivot-operations.d.mts.map +1 -0
- package/esm/relations/pivot-operations.mjs +232 -0
- package/esm/relations/pivot-operations.mjs.map +1 -0
- package/esm/relations/relation-hydrator.d.mts +55 -0
- package/esm/relations/relation-hydrator.d.mts.map +1 -0
- package/esm/relations/relation-hydrator.mjs +52 -0
- package/esm/relations/relation-hydrator.mjs.map +1 -0
- package/esm/relations/relation-loader.d.mts +190 -0
- package/esm/relations/relation-loader.d.mts.map +1 -0
- package/esm/relations/relation-loader.mjs +416 -0
- package/esm/relations/relation-loader.mjs.map +1 -0
- package/esm/relations/types.d.mts +317 -0
- package/esm/relations/types.d.mts.map +1 -0
- package/esm/remover/database-remover.d.mts +104 -0
- package/esm/remover/database-remover.d.mts.map +1 -0
- package/esm/remover/database-remover.mjs +174 -0
- package/esm/remover/database-remover.mjs.map +1 -0
- package/esm/restorer/database-restorer.d.mts +135 -0
- package/esm/restorer/database-restorer.d.mts.map +1 -0
- package/esm/restorer/database-restorer.mjs +316 -0
- package/esm/restorer/database-restorer.mjs.map +1 -0
- package/esm/sql-database-dirty-tracker.d.mts +17 -0
- package/esm/sql-database-dirty-tracker.d.mts.map +1 -0
- package/esm/sql-database-dirty-tracker.mjs +20 -0
- package/esm/sql-database-dirty-tracker.mjs.map +1 -0
- package/esm/sync/model-events.mjs +46 -0
- package/esm/sync/model-events.mjs.map +1 -0
- package/esm/sync/model-sync-operation.d.mts +159 -0
- package/esm/sync/model-sync-operation.d.mts.map +1 -0
- package/esm/sync/model-sync-operation.mjs +257 -0
- package/esm/sync/model-sync-operation.mjs.map +1 -0
- package/esm/sync/model-sync.d.mts +126 -0
- package/esm/sync/model-sync.d.mts.map +1 -0
- package/esm/sync/model-sync.mjs +157 -0
- package/esm/sync/model-sync.mjs.map +1 -0
- package/esm/sync/sync-context.d.mts +69 -0
- package/esm/sync/sync-context.d.mts.map +1 -0
- package/esm/sync/sync-context.mjs +95 -0
- package/esm/sync/sync-context.mjs.map +1 -0
- package/esm/sync/sync-manager.d.mts +213 -0
- package/esm/sync/sync-manager.d.mts.map +1 -0
- package/esm/sync/sync-manager.mjs +597 -0
- package/esm/sync/sync-manager.mjs.map +1 -0
- package/esm/sync/types.d.mts +215 -0
- package/esm/sync/types.d.mts.map +1 -0
- package/esm/types.d.mts +423 -0
- package/esm/types.d.mts.map +1 -0
- package/esm/utils/connect-to-database.d.mts +328 -0
- package/esm/utils/connect-to-database.d.mts.map +1 -0
- package/esm/utils/connect-to-database.mjs +130 -0
- package/esm/utils/connect-to-database.mjs.map +1 -0
- package/esm/utils/database-writer.utils.d.mts +18 -0
- package/esm/utils/database-writer.utils.d.mts.map +1 -0
- package/esm/utils/database-writer.utils.mjs +25 -0
- package/esm/utils/database-writer.utils.mjs.map +1 -0
- package/esm/utils/define-model.d.mts +185 -0
- package/esm/utils/define-model.d.mts.map +1 -0
- package/esm/utils/define-model.mjs +105 -0
- package/esm/utils/define-model.mjs.map +1 -0
- package/esm/utils/is-valid-date-value.mjs +22 -0
- package/esm/utils/is-valid-date-value.mjs.map +1 -0
- package/esm/utils/once-connected.d.mts +150 -0
- package/esm/utils/once-connected.d.mts.map +1 -0
- package/esm/utils/once-connected.mjs +203 -0
- package/esm/utils/once-connected.mjs.map +1 -0
- package/esm/validation/database-seal-plugins.d.mts +1 -0
- package/esm/validation/database-seal-plugins.mjs +11 -0
- package/esm/validation/database-seal-plugins.mjs.map +1 -0
- package/esm/validation/database-writer-validation-error.d.mts +101 -0
- package/esm/validation/database-writer-validation-error.d.mts.map +1 -0
- package/esm/validation/database-writer-validation-error.mjs +153 -0
- package/esm/validation/database-writer-validation-error.mjs.map +1 -0
- package/esm/validation/index.d.mts +2 -0
- package/esm/validation/index.mjs +4 -0
- package/esm/validation/mutators/embed-mutator.mjs +26 -0
- package/esm/validation/mutators/embed-mutator.mjs.map +1 -0
- package/esm/validation/plugins/database-rules-plugin.d.mts +28 -0
- package/esm/validation/plugins/database-rules-plugin.d.mts.map +1 -0
- package/esm/validation/plugins/database-rules-plugin.mjs +43 -0
- package/esm/validation/plugins/database-rules-plugin.mjs.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.d.mts +17 -0
- package/esm/validation/plugins/embed-validator-plugin.d.mts.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.mjs +20 -0
- package/esm/validation/plugins/embed-validator-plugin.mjs.map +1 -0
- package/esm/validation/rules/database-model-rule.mjs +32 -0
- package/esm/validation/rules/database-model-rule.mjs.map +1 -0
- package/esm/validation/rules/exists-rule.mjs +29 -0
- package/esm/validation/rules/exists-rule.mjs.map +1 -0
- package/esm/validation/rules/unique-rule.mjs +43 -0
- package/esm/validation/rules/unique-rule.mjs.map +1 -0
- package/esm/validation/transformers/embed-model-transformer.mjs +17 -0
- package/esm/validation/transformers/embed-model-transformer.mjs.map +1 -0
- package/esm/validation/types.d.mts +43 -0
- package/esm/validation/types.d.mts.map +1 -0
- package/esm/validation/validators/embed-validator.d.mts +25 -0
- package/esm/validation/validators/embed-validator.d.mts.map +1 -0
- package/esm/validation/validators/embed-validator.mjs +42 -0
- package/esm/validation/validators/embed-validator.mjs.map +1 -0
- package/esm/writer/database-writer.d.mts +178 -0
- package/esm/writer/database-writer.d.mts.map +1 -0
- package/esm/writer/database-writer.mjs +317 -0
- package/esm/writer/database-writer.mjs.map +1 -0
- package/llms-full.txt +2027 -0
- package/llms.txt +23 -0
- package/package.json +60 -51
- package/skills/README.md +65 -0
- package/skills/aggregate-data/SKILL.md +102 -0
- package/skills/cascade-basics/SKILL.md +93 -0
- package/skills/configure-delete-strategy/SKILL.md +126 -0
- package/skills/define-model/SKILL.md +170 -0
- package/skills/define-relations/SKILL.md +171 -0
- package/skills/manage-data-sources/SKILL.md +140 -0
- package/skills/manage-transactions/SKILL.md +118 -0
- package/skills/paginate-results/SKILL.md +122 -0
- package/skills/perform-atomic-ops/SKILL.md +98 -0
- package/skills/query-data/SKILL.md +168 -0
- package/skills/run-cascade-cli/SKILL.md +125 -0
- package/skills/search-by-vector/SKILL.md +127 -0
- package/skills/subscribe-to-model-events/SKILL.md +148 -0
- package/skills/track-changes/SKILL.md +109 -0
- package/skills/write-migration/SKILL.md +144 -0
- package/cjs/context/database-data-source-context.d.ts +0 -29
- package/cjs/context/database-data-source-context.d.ts.map +0 -1
- package/cjs/context/database-data-source-context.js +0 -28
- package/cjs/context/database-data-source-context.js.map +0 -1
- package/cjs/context/database-transaction-context.d.ts +0 -35
- package/cjs/context/database-transaction-context.d.ts.map +0 -1
- package/cjs/context/database-transaction-context.js +0 -40
- package/cjs/context/database-transaction-context.js.map +0 -1
- package/cjs/contracts/database-driver.contract.d.ts +0 -450
- package/cjs/contracts/database-driver.contract.d.ts.map +0 -1
- package/cjs/contracts/database-id-generator.contract.d.ts +0 -109
- package/cjs/contracts/database-id-generator.contract.d.ts.map +0 -1
- package/cjs/contracts/database-remover.contract.d.ts +0 -104
- package/cjs/contracts/database-remover.contract.d.ts.map +0 -1
- package/cjs/contracts/database-restorer.contract.d.ts +0 -143
- package/cjs/contracts/database-restorer.contract.d.ts.map +0 -1
- package/cjs/contracts/database-writer.contract.d.ts +0 -119
- package/cjs/contracts/database-writer.contract.d.ts.map +0 -1
- package/cjs/contracts/driver-blueprint.contract.d.ts +0 -49
- package/cjs/contracts/driver-blueprint.contract.d.ts.map +0 -1
- package/cjs/contracts/index.d.ts +0 -10
- package/cjs/contracts/index.d.ts.map +0 -1
- package/cjs/contracts/migration-driver.contract.d.ts +0 -522
- package/cjs/contracts/migration-driver.contract.d.ts.map +0 -1
- package/cjs/contracts/query-builder.contract.d.ts +0 -1609
- package/cjs/contracts/query-builder.contract.d.ts.map +0 -1
- package/cjs/contracts/sync-adapter.contract.d.ts +0 -58
- package/cjs/contracts/sync-adapter.contract.d.ts.map +0 -1
- package/cjs/data-source/data-source-registry.d.ts +0 -108
- package/cjs/data-source/data-source-registry.d.ts.map +0 -1
- package/cjs/data-source/data-source-registry.js +0 -145
- package/cjs/data-source/data-source-registry.js.map +0 -1
- package/cjs/data-source/data-source.d.ts +0 -147
- package/cjs/data-source/data-source.d.ts.map +0 -1
- package/cjs/data-source/data-source.js +0 -83
- package/cjs/data-source/data-source.js.map +0 -1
- package/cjs/database-dirty-tracker.d.ts +0 -252
- package/cjs/database-dirty-tracker.d.ts.map +0 -1
- package/cjs/database-dirty-tracker.js +0 -386
- package/cjs/database-dirty-tracker.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
- package/cjs/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-blueprint.js +0 -51
- package/cjs/drivers/mongodb/mongodb-blueprint.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-driver.d.ts +0 -325
- package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-driver.js +0 -845
- package/cjs/drivers/mongodb/mongodb-driver.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
- package/cjs/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-id-generator.js +0 -149
- package/cjs/drivers/mongodb/mongodb-id-generator.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
- package/cjs/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-migration-driver.js +0 -666
- package/cjs/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
- package/cjs/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-builder.js +0 -1988
- package/cjs/drivers/mongodb/mongodb-query-builder.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
- package/cjs/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-operations.js +0 -270
- package/cjs/drivers/mongodb/mongodb-query-operations.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
- package/cjs/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-query-parser.js +0 -1351
- package/cjs/drivers/mongodb/mongodb-query-parser.js.map +0 -1
- package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
- package/cjs/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
- package/cjs/drivers/mongodb/mongodb-sync-adapter.js +0 -146
- package/cjs/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
- package/cjs/drivers/mongodb/types.d.ts +0 -43
- package/cjs/drivers/mongodb/types.d.ts.map +0 -1
- package/cjs/drivers/postgres/index.d.ts +0 -16
- package/cjs/drivers/postgres/index.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-blueprint.d.ts +0 -64
- package/cjs/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-blueprint.js +0 -121
- package/cjs/drivers/postgres/postgres-blueprint.js.map +0 -1
- package/cjs/drivers/postgres/postgres-dialect.d.ts +0 -136
- package/cjs/drivers/postgres/postgres-dialect.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-dialect.js +0 -268
- package/cjs/drivers/postgres/postgres-dialect.js.map +0 -1
- package/cjs/drivers/postgres/postgres-driver.d.ts +0 -432
- package/cjs/drivers/postgres/postgres-driver.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-driver.js +0 -1008
- package/cjs/drivers/postgres/postgres-driver.js.map +0 -1
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts +0 -397
- package/cjs/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-migration-driver.js +0 -900
- package/cjs/drivers/postgres/postgres-migration-driver.js.map +0 -1
- package/cjs/drivers/postgres/postgres-query-builder.d.ts +0 -254
- package/cjs/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-query-builder.js +0 -933
- package/cjs/drivers/postgres/postgres-query-builder.js.map +0 -1
- package/cjs/drivers/postgres/postgres-query-parser.d.ts +0 -328
- package/cjs/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-query-parser.js +0 -868
- package/cjs/drivers/postgres/postgres-query-parser.js.map +0 -1
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
- package/cjs/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-sql-serializer.js +0 -400
- package/cjs/drivers/postgres/postgres-sql-serializer.js.map +0 -1
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
- package/cjs/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
- package/cjs/drivers/postgres/postgres-sync-adapter.js +0 -204
- package/cjs/drivers/postgres/postgres-sync-adapter.js.map +0 -1
- package/cjs/drivers/postgres/types.d.ts +0 -144
- package/cjs/drivers/postgres/types.d.ts.map +0 -1
- package/cjs/drivers/sql/index.d.ts +0 -10
- package/cjs/drivers/sql/index.d.ts.map +0 -1
- package/cjs/drivers/sql/sql-dialect.contract.d.ts +0 -204
- package/cjs/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
- package/cjs/drivers/sql/sql-types.d.ts +0 -202
- package/cjs/drivers/sql/sql-types.d.ts.map +0 -1
- package/cjs/errors/missing-data-source.error.d.ts +0 -22
- package/cjs/errors/missing-data-source.error.d.ts.map +0 -1
- package/cjs/errors/missing-data-source.error.js +0 -29
- package/cjs/errors/missing-data-source.error.js.map +0 -1
- package/cjs/errors/transaction-rollback.error.d.ts +0 -20
- package/cjs/errors/transaction-rollback.error.d.ts.map +0 -1
- package/cjs/errors/transaction-rollback.error.js +0 -27
- package/cjs/errors/transaction-rollback.error.js.map +0 -1
- package/cjs/events/model-events.d.ts +0 -231
- package/cjs/events/model-events.d.ts.map +0 -1
- package/cjs/events/model-events.js +0 -259
- package/cjs/events/model-events.js.map +0 -1
- package/cjs/expressions/aggregate-expressions.d.ts +0 -215
- package/cjs/expressions/aggregate-expressions.d.ts.map +0 -1
- package/cjs/expressions/aggregate-expressions.js +0 -221
- package/cjs/expressions/aggregate-expressions.js.map +0 -1
- package/cjs/expressions/index.d.ts +0 -2
- package/cjs/expressions/index.d.ts.map +0 -1
- package/cjs/index.d.ts +0 -45
- package/cjs/index.d.ts.map +0 -1
- package/cjs/index.js +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/migration/column-builder.d.ts +0 -417
- package/cjs/migration/column-builder.d.ts.map +0 -1
- package/cjs/migration/column-builder.js +0 -586
- package/cjs/migration/column-builder.js.map +0 -1
- package/cjs/migration/column-helpers.d.ts +0 -275
- package/cjs/migration/column-helpers.d.ts.map +0 -1
- package/cjs/migration/column-helpers.js +0 -389
- package/cjs/migration/column-helpers.js.map +0 -1
- package/cjs/migration/foreign-key-builder.d.ts +0 -103
- package/cjs/migration/foreign-key-builder.d.ts.map +0 -1
- package/cjs/migration/foreign-key-builder.js +0 -121
- package/cjs/migration/foreign-key-builder.js.map +0 -1
- package/cjs/migration/index.d.ts +0 -7
- package/cjs/migration/index.d.ts.map +0 -1
- package/cjs/migration/migration-runner.d.ts +0 -278
- package/cjs/migration/migration-runner.d.ts.map +0 -1
- package/cjs/migration/migration-runner.js +0 -815
- package/cjs/migration/migration-runner.js.map +0 -1
- package/cjs/migration/migration.d.ts +0 -1988
- package/cjs/migration/migration.d.ts.map +0 -1
- package/cjs/migration/migration.js +0 -2162
- package/cjs/migration/migration.js.map +0 -1
- package/cjs/migration/sql-grammar.d.ts +0 -61
- package/cjs/migration/sql-grammar.d.ts.map +0 -1
- package/cjs/migration/sql-grammar.js +0 -164
- package/cjs/migration/sql-grammar.js.map +0 -1
- package/cjs/migration/sql-serializer.d.ts +0 -22
- package/cjs/migration/sql-serializer.d.ts.map +0 -1
- package/cjs/migration/sql-serializer.js +0 -26
- package/cjs/migration/sql-serializer.js.map +0 -1
- package/cjs/migration/types.d.ts +0 -155
- package/cjs/migration/types.d.ts.map +0 -1
- package/cjs/model/methods/accessor-methods.d.ts +0 -13
- package/cjs/model/methods/accessor-methods.d.ts.map +0 -1
- package/cjs/model/methods/accessor-methods.js +0 -51
- package/cjs/model/methods/accessor-methods.js.map +0 -1
- package/cjs/model/methods/delete-methods.d.ts +0 -10
- package/cjs/model/methods/delete-methods.d.ts.map +0 -1
- package/cjs/model/methods/delete-methods.js +0 -10
- package/cjs/model/methods/delete-methods.js.map +0 -1
- package/cjs/model/methods/dirty-methods.d.ts +0 -10
- package/cjs/model/methods/dirty-methods.d.ts.map +0 -1
- package/cjs/model/methods/dirty-methods.js +0 -15
- package/cjs/model/methods/dirty-methods.js.map +0 -1
- package/cjs/model/methods/hydration-methods.d.ts +0 -10
- package/cjs/model/methods/hydration-methods.d.ts.map +0 -1
- package/cjs/model/methods/hydration-methods.js +0 -57
- package/cjs/model/methods/hydration-methods.js.map +0 -1
- package/cjs/model/methods/instance-event-methods.d.ts +0 -7
- package/cjs/model/methods/instance-event-methods.d.ts.map +0 -1
- package/cjs/model/methods/instance-event-methods.js +0 -15
- package/cjs/model/methods/instance-event-methods.js.map +0 -1
- package/cjs/model/methods/meta-methods.d.ts +0 -7
- package/cjs/model/methods/meta-methods.d.ts.map +0 -1
- package/cjs/model/methods/meta-methods.js +0 -78
- package/cjs/model/methods/meta-methods.js.map +0 -1
- package/cjs/model/methods/query-methods.d.ts +0 -24
- package/cjs/model/methods/query-methods.d.ts.map +0 -1
- package/cjs/model/methods/query-methods.js +0 -164
- package/cjs/model/methods/query-methods.js.map +0 -1
- package/cjs/model/methods/restore-methods.d.ts +0 -10
- package/cjs/model/methods/restore-methods.d.ts.map +0 -1
- package/cjs/model/methods/restore-methods.js +0 -13
- package/cjs/model/methods/restore-methods.js.map +0 -1
- package/cjs/model/methods/scope-methods.d.ts +0 -7
- package/cjs/model/methods/scope-methods.d.ts.map +0 -1
- package/cjs/model/methods/scope-methods.js +0 -15
- package/cjs/model/methods/scope-methods.js.map +0 -1
- package/cjs/model/methods/serialization-methods.d.ts +0 -3
- package/cjs/model/methods/serialization-methods.d.ts.map +0 -1
- package/cjs/model/methods/serialization-methods.js +0 -27
- package/cjs/model/methods/serialization-methods.js.map +0 -1
- package/cjs/model/methods/static-event-methods.d.ts +0 -9
- package/cjs/model/methods/static-event-methods.d.ts.map +0 -1
- package/cjs/model/methods/static-event-methods.js +0 -29
- package/cjs/model/methods/static-event-methods.js.map +0 -1
- package/cjs/model/methods/write-methods.d.ts +0 -10
- package/cjs/model/methods/write-methods.d.ts.map +0 -1
- package/cjs/model/methods/write-methods.js +0 -52
- package/cjs/model/methods/write-methods.js.map +0 -1
- package/cjs/model/model.d.ts +0 -1647
- package/cjs/model/model.d.ts.map +0 -1
- package/cjs/model/model.js +0 -1657
- package/cjs/model/model.js.map +0 -1
- package/cjs/model/model.types.d.ts +0 -44
- package/cjs/model/model.types.d.ts.map +0 -1
- package/cjs/model/register-model.d.ts +0 -81
- package/cjs/model/register-model.d.ts.map +0 -1
- package/cjs/model/register-model.js +0 -94
- package/cjs/model/register-model.js.map +0 -1
- package/cjs/query-builder/query-builder.d.ts +0 -556
- package/cjs/query-builder/query-builder.d.ts.map +0 -1
- package/cjs/query-builder/query-builder.js +0 -1070
- package/cjs/query-builder/query-builder.js.map +0 -1
- package/cjs/relations/helpers.d.ts +0 -156
- package/cjs/relations/helpers.d.ts.map +0 -1
- package/cjs/relations/helpers.js +0 -202
- package/cjs/relations/helpers.js.map +0 -1
- package/cjs/relations/index.d.ts +0 -35
- package/cjs/relations/index.d.ts.map +0 -1
- package/cjs/relations/pivot-operations.d.ts +0 -160
- package/cjs/relations/pivot-operations.d.ts.map +0 -1
- package/cjs/relations/pivot-operations.js +0 -293
- package/cjs/relations/pivot-operations.js.map +0 -1
- package/cjs/relations/relation-hydrator.d.ts +0 -68
- package/cjs/relations/relation-hydrator.d.ts.map +0 -1
- package/cjs/relations/relation-hydrator.js +0 -81
- package/cjs/relations/relation-hydrator.js.map +0 -1
- package/cjs/relations/relation-loader.d.ts +0 -194
- package/cjs/relations/relation-loader.d.ts.map +0 -1
- package/cjs/relations/relation-loader.js +0 -466
- package/cjs/relations/relation-loader.js.map +0 -1
- package/cjs/relations/types.d.ts +0 -306
- package/cjs/relations/types.d.ts.map +0 -1
- package/cjs/remover/database-remover.d.ts +0 -100
- package/cjs/remover/database-remover.d.ts.map +0 -1
- package/cjs/remover/database-remover.js +0 -214
- package/cjs/remover/database-remover.js.map +0 -1
- package/cjs/restorer/database-restorer.d.ts +0 -131
- package/cjs/restorer/database-restorer.d.ts.map +0 -1
- package/cjs/restorer/database-restorer.js +0 -434
- package/cjs/restorer/database-restorer.js.map +0 -1
- package/cjs/sql-database-dirty-tracker.d.ts +0 -13
- package/cjs/sql-database-dirty-tracker.d.ts.map +0 -1
- package/cjs/sql-database-dirty-tracker.js +0 -14
- package/cjs/sql-database-dirty-tracker.js.map +0 -1
- package/cjs/sync/index.d.ts +0 -12
- package/cjs/sync/index.d.ts.map +0 -1
- package/cjs/sync/model-events.d.ts +0 -62
- package/cjs/sync/model-events.d.ts.map +0 -1
- package/cjs/sync/model-events.js +0 -49
- package/cjs/sync/model-events.js.map +0 -1
- package/cjs/sync/model-sync-operation.d.ts +0 -163
- package/cjs/sync/model-sync-operation.d.ts.map +0 -1
- package/cjs/sync/model-sync-operation.js +0 -292
- package/cjs/sync/model-sync-operation.js.map +0 -1
- package/cjs/sync/model-sync.d.ts +0 -130
- package/cjs/sync/model-sync.d.ts.map +0 -1
- package/cjs/sync/model-sync.js +0 -178
- package/cjs/sync/model-sync.js.map +0 -1
- package/cjs/sync/sync-context.d.ts +0 -70
- package/cjs/sync/sync-context.d.ts.map +0 -1
- package/cjs/sync/sync-context.js +0 -101
- package/cjs/sync/sync-context.js.map +0 -1
- package/cjs/sync/sync-manager.d.ts +0 -213
- package/cjs/sync/sync-manager.d.ts.map +0 -1
- package/cjs/sync/sync-manager.js +0 -689
- package/cjs/sync/sync-manager.js.map +0 -1
- package/cjs/sync/types.d.ts +0 -289
- package/cjs/sync/types.d.ts.map +0 -1
- package/cjs/test-migrations/test-enhanced-features.migration.d.ts +0 -15
- package/cjs/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
- package/cjs/types.d.ts +0 -371
- package/cjs/types.d.ts.map +0 -1
- package/cjs/utils/connect-to-database.d.ts +0 -307
- package/cjs/utils/connect-to-database.d.ts.map +0 -1
- package/cjs/utils/connect-to-database.js +0 -130
- package/cjs/utils/connect-to-database.js.map +0 -1
- package/cjs/utils/database-writer.utils.d.ts +0 -15
- package/cjs/utils/database-writer.utils.d.ts.map +0 -1
- package/cjs/utils/database-writer.utils.js +0 -14
- package/cjs/utils/database-writer.utils.js.map +0 -1
- package/cjs/utils/define-model.js +0 -100
- package/cjs/utils/define-model.js.map +0 -1
- package/cjs/utils/is-valid-date-value.d.ts +0 -5
- package/cjs/utils/is-valid-date-value.d.ts.map +0 -1
- package/cjs/utils/is-valid-date-value.js +0 -25
- package/cjs/utils/is-valid-date-value.js.map +0 -1
- package/cjs/utils/once-connected.d.ts +0 -146
- package/cjs/utils/once-connected.d.ts.map +0 -1
- package/cjs/utils/once-connected.js +0 -251
- package/cjs/utils/once-connected.js.map +0 -1
- package/cjs/validation/database-seal-plugins.d.ts +0 -12
- package/cjs/validation/database-seal-plugins.d.ts.map +0 -1
- package/cjs/validation/database-seal-plugins.js +0 -1
- package/cjs/validation/database-seal-plugins.js.map +0 -1
- package/cjs/validation/database-writer-validation-error.d.ts +0 -97
- package/cjs/validation/database-writer-validation-error.d.ts.map +0 -1
- package/cjs/validation/database-writer-validation-error.js +0 -160
- package/cjs/validation/database-writer-validation-error.js.map +0 -1
- package/cjs/validation/index.d.ts +0 -3
- package/cjs/validation/index.d.ts.map +0 -1
- package/cjs/validation/mutators/embed-mutator.d.ts +0 -9
- package/cjs/validation/mutators/embed-mutator.d.ts.map +0 -1
- package/cjs/validation/mutators/embed-mutator.js +0 -33
- package/cjs/validation/mutators/embed-mutator.js.map +0 -1
- package/cjs/validation/plugins/embed-validator-plugin.d.ts +0 -24
- package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
- package/cjs/validation/plugins/embed-validator-plugin.js +0 -18
- package/cjs/validation/plugins/embed-validator-plugin.js.map +0 -1
- package/cjs/validation/rules/database-model-rule.d.ts +0 -7
- package/cjs/validation/rules/database-model-rule.d.ts.map +0 -1
- package/cjs/validation/rules/database-model-rule.js +0 -27
- package/cjs/validation/rules/database-model-rule.js.map +0 -1
- package/cjs/validation/transformers/embed-model-transformer.d.ts +0 -3
- package/cjs/validation/transformers/embed-model-transformer.d.ts.map +0 -1
- package/cjs/validation/transformers/embed-model-transformer.js +0 -18
- package/cjs/validation/transformers/embed-model-transformer.js.map +0 -1
- package/cjs/validation/validators/embed-validator.d.ts +0 -21
- package/cjs/validation/validators/embed-validator.d.ts.map +0 -1
- package/cjs/validation/validators/embed-validator.js +0 -43
- package/cjs/validation/validators/embed-validator.js.map +0 -1
- package/cjs/writer/database-writer.d.ts +0 -174
- package/cjs/writer/database-writer.d.ts.map +0 -1
- package/cjs/writer/database-writer.js +0 -400
- package/cjs/writer/database-writer.js.map +0 -1
- package/esm/context/database-data-source-context.d.ts +0 -29
- package/esm/context/database-data-source-context.d.ts.map +0 -1
- package/esm/context/database-data-source-context.js +0 -28
- package/esm/context/database-data-source-context.js.map +0 -1
- package/esm/context/database-transaction-context.d.ts +0 -35
- package/esm/context/database-transaction-context.d.ts.map +0 -1
- package/esm/context/database-transaction-context.js +0 -40
- package/esm/context/database-transaction-context.js.map +0 -1
- package/esm/contracts/database-driver.contract.d.ts +0 -450
- package/esm/contracts/database-driver.contract.d.ts.map +0 -1
- package/esm/contracts/database-id-generator.contract.d.ts +0 -109
- package/esm/contracts/database-id-generator.contract.d.ts.map +0 -1
- package/esm/contracts/database-remover.contract.d.ts +0 -104
- package/esm/contracts/database-remover.contract.d.ts.map +0 -1
- package/esm/contracts/database-restorer.contract.d.ts +0 -143
- package/esm/contracts/database-restorer.contract.d.ts.map +0 -1
- package/esm/contracts/database-writer.contract.d.ts +0 -119
- package/esm/contracts/database-writer.contract.d.ts.map +0 -1
- package/esm/contracts/driver-blueprint.contract.d.ts +0 -49
- package/esm/contracts/driver-blueprint.contract.d.ts.map +0 -1
- package/esm/contracts/index.d.ts +0 -10
- package/esm/contracts/index.d.ts.map +0 -1
- package/esm/contracts/migration-driver.contract.d.ts +0 -522
- package/esm/contracts/migration-driver.contract.d.ts.map +0 -1
- package/esm/contracts/query-builder.contract.d.ts +0 -1609
- package/esm/contracts/query-builder.contract.d.ts.map +0 -1
- package/esm/contracts/sync-adapter.contract.d.ts +0 -58
- package/esm/contracts/sync-adapter.contract.d.ts.map +0 -1
- package/esm/data-source/data-source-registry.d.ts +0 -108
- package/esm/data-source/data-source-registry.d.ts.map +0 -1
- package/esm/data-source/data-source-registry.js +0 -145
- package/esm/data-source/data-source-registry.js.map +0 -1
- package/esm/data-source/data-source.d.ts +0 -147
- package/esm/data-source/data-source.d.ts.map +0 -1
- package/esm/data-source/data-source.js +0 -83
- package/esm/data-source/data-source.js.map +0 -1
- package/esm/database-dirty-tracker.d.ts +0 -252
- package/esm/database-dirty-tracker.d.ts.map +0 -1
- package/esm/database-dirty-tracker.js +0 -386
- package/esm/database-dirty-tracker.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-blueprint.d.ts +0 -30
- package/esm/drivers/mongodb/mongodb-blueprint.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-blueprint.js +0 -51
- package/esm/drivers/mongodb/mongodb-blueprint.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-driver.d.ts +0 -325
- package/esm/drivers/mongodb/mongodb-driver.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-driver.js +0 -845
- package/esm/drivers/mongodb/mongodb-driver.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-id-generator.d.ts +0 -116
- package/esm/drivers/mongodb/mongodb-id-generator.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-id-generator.js +0 -149
- package/esm/drivers/mongodb/mongodb-id-generator.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-migration-driver.d.ts +0 -317
- package/esm/drivers/mongodb/mongodb-migration-driver.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-migration-driver.js +0 -666
- package/esm/drivers/mongodb/mongodb-migration-driver.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-builder.d.ts +0 -1122
- package/esm/drivers/mongodb/mongodb-query-builder.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-builder.js +0 -1988
- package/esm/drivers/mongodb/mongodb-query-builder.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-operations.d.ts +0 -226
- package/esm/drivers/mongodb/mongodb-query-operations.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-operations.js +0 -270
- package/esm/drivers/mongodb/mongodb-query-operations.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-parser.d.ts +0 -262
- package/esm/drivers/mongodb/mongodb-query-parser.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-query-parser.js +0 -1351
- package/esm/drivers/mongodb/mongodb-query-parser.js.map +0 -1
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts +0 -79
- package/esm/drivers/mongodb/mongodb-sync-adapter.d.ts.map +0 -1
- package/esm/drivers/mongodb/mongodb-sync-adapter.js +0 -146
- package/esm/drivers/mongodb/mongodb-sync-adapter.js.map +0 -1
- package/esm/drivers/mongodb/types.d.ts +0 -43
- package/esm/drivers/mongodb/types.d.ts.map +0 -1
- package/esm/drivers/postgres/index.d.ts +0 -16
- package/esm/drivers/postgres/index.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-blueprint.d.ts +0 -64
- package/esm/drivers/postgres/postgres-blueprint.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-blueprint.js +0 -121
- package/esm/drivers/postgres/postgres-blueprint.js.map +0 -1
- package/esm/drivers/postgres/postgres-dialect.d.ts +0 -136
- package/esm/drivers/postgres/postgres-dialect.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-dialect.js +0 -268
- package/esm/drivers/postgres/postgres-dialect.js.map +0 -1
- package/esm/drivers/postgres/postgres-driver.d.ts +0 -432
- package/esm/drivers/postgres/postgres-driver.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-driver.js +0 -1008
- package/esm/drivers/postgres/postgres-driver.js.map +0 -1
- package/esm/drivers/postgres/postgres-migration-driver.d.ts +0 -397
- package/esm/drivers/postgres/postgres-migration-driver.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-migration-driver.js +0 -900
- package/esm/drivers/postgres/postgres-migration-driver.js.map +0 -1
- package/esm/drivers/postgres/postgres-query-builder.d.ts +0 -254
- package/esm/drivers/postgres/postgres-query-builder.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-query-builder.js +0 -933
- package/esm/drivers/postgres/postgres-query-builder.js.map +0 -1
- package/esm/drivers/postgres/postgres-query-parser.d.ts +0 -328
- package/esm/drivers/postgres/postgres-query-parser.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-query-parser.js +0 -868
- package/esm/drivers/postgres/postgres-query-parser.js.map +0 -1
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts +0 -37
- package/esm/drivers/postgres/postgres-sql-serializer.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-sql-serializer.js +0 -400
- package/esm/drivers/postgres/postgres-sql-serializer.js.map +0 -1
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts +0 -83
- package/esm/drivers/postgres/postgres-sync-adapter.d.ts.map +0 -1
- package/esm/drivers/postgres/postgres-sync-adapter.js +0 -204
- package/esm/drivers/postgres/postgres-sync-adapter.js.map +0 -1
- package/esm/drivers/postgres/types.d.ts +0 -144
- package/esm/drivers/postgres/types.d.ts.map +0 -1
- package/esm/drivers/sql/index.d.ts +0 -10
- package/esm/drivers/sql/index.d.ts.map +0 -1
- package/esm/drivers/sql/sql-dialect.contract.d.ts +0 -204
- package/esm/drivers/sql/sql-dialect.contract.d.ts.map +0 -1
- package/esm/drivers/sql/sql-types.d.ts +0 -202
- package/esm/drivers/sql/sql-types.d.ts.map +0 -1
- package/esm/errors/missing-data-source.error.d.ts +0 -22
- package/esm/errors/missing-data-source.error.d.ts.map +0 -1
- package/esm/errors/missing-data-source.error.js +0 -29
- package/esm/errors/missing-data-source.error.js.map +0 -1
- package/esm/errors/transaction-rollback.error.d.ts +0 -20
- package/esm/errors/transaction-rollback.error.d.ts.map +0 -1
- package/esm/errors/transaction-rollback.error.js +0 -27
- package/esm/errors/transaction-rollback.error.js.map +0 -1
- package/esm/events/model-events.d.ts +0 -231
- package/esm/events/model-events.d.ts.map +0 -1
- package/esm/events/model-events.js +0 -259
- package/esm/events/model-events.js.map +0 -1
- package/esm/expressions/aggregate-expressions.d.ts +0 -215
- package/esm/expressions/aggregate-expressions.d.ts.map +0 -1
- package/esm/expressions/aggregate-expressions.js +0 -221
- package/esm/expressions/aggregate-expressions.js.map +0 -1
- package/esm/expressions/index.d.ts +0 -2
- package/esm/expressions/index.d.ts.map +0 -1
- package/esm/index.d.ts +0 -45
- package/esm/index.d.ts.map +0 -1
- package/esm/index.js +0 -1
- package/esm/index.js.map +0 -1
- package/esm/migration/column-builder.d.ts +0 -417
- package/esm/migration/column-builder.d.ts.map +0 -1
- package/esm/migration/column-builder.js +0 -586
- package/esm/migration/column-builder.js.map +0 -1
- package/esm/migration/column-helpers.d.ts +0 -275
- package/esm/migration/column-helpers.d.ts.map +0 -1
- package/esm/migration/column-helpers.js +0 -389
- package/esm/migration/column-helpers.js.map +0 -1
- package/esm/migration/foreign-key-builder.d.ts +0 -103
- package/esm/migration/foreign-key-builder.d.ts.map +0 -1
- package/esm/migration/foreign-key-builder.js +0 -121
- package/esm/migration/foreign-key-builder.js.map +0 -1
- package/esm/migration/index.d.ts +0 -7
- package/esm/migration/index.d.ts.map +0 -1
- package/esm/migration/migration-runner.d.ts +0 -278
- package/esm/migration/migration-runner.d.ts.map +0 -1
- package/esm/migration/migration-runner.js +0 -815
- package/esm/migration/migration-runner.js.map +0 -1
- package/esm/migration/migration.d.ts +0 -1988
- package/esm/migration/migration.d.ts.map +0 -1
- package/esm/migration/migration.js +0 -2162
- package/esm/migration/migration.js.map +0 -1
- package/esm/migration/sql-grammar.d.ts +0 -61
- package/esm/migration/sql-grammar.d.ts.map +0 -1
- package/esm/migration/sql-grammar.js +0 -164
- package/esm/migration/sql-grammar.js.map +0 -1
- package/esm/migration/sql-serializer.d.ts +0 -22
- package/esm/migration/sql-serializer.d.ts.map +0 -1
- package/esm/migration/sql-serializer.js +0 -26
- package/esm/migration/sql-serializer.js.map +0 -1
- package/esm/migration/types.d.ts +0 -155
- package/esm/migration/types.d.ts.map +0 -1
- package/esm/model/methods/accessor-methods.d.ts +0 -13
- package/esm/model/methods/accessor-methods.d.ts.map +0 -1
- package/esm/model/methods/accessor-methods.js +0 -51
- package/esm/model/methods/accessor-methods.js.map +0 -1
- package/esm/model/methods/delete-methods.d.ts +0 -10
- package/esm/model/methods/delete-methods.d.ts.map +0 -1
- package/esm/model/methods/delete-methods.js +0 -10
- package/esm/model/methods/delete-methods.js.map +0 -1
- package/esm/model/methods/dirty-methods.d.ts +0 -10
- package/esm/model/methods/dirty-methods.d.ts.map +0 -1
- package/esm/model/methods/dirty-methods.js +0 -15
- package/esm/model/methods/dirty-methods.js.map +0 -1
- package/esm/model/methods/hydration-methods.d.ts +0 -10
- package/esm/model/methods/hydration-methods.d.ts.map +0 -1
- package/esm/model/methods/hydration-methods.js +0 -57
- package/esm/model/methods/hydration-methods.js.map +0 -1
- package/esm/model/methods/instance-event-methods.d.ts +0 -7
- package/esm/model/methods/instance-event-methods.d.ts.map +0 -1
- package/esm/model/methods/instance-event-methods.js +0 -15
- package/esm/model/methods/instance-event-methods.js.map +0 -1
- package/esm/model/methods/meta-methods.d.ts +0 -7
- package/esm/model/methods/meta-methods.d.ts.map +0 -1
- package/esm/model/methods/meta-methods.js +0 -78
- package/esm/model/methods/meta-methods.js.map +0 -1
- package/esm/model/methods/query-methods.d.ts +0 -24
- package/esm/model/methods/query-methods.d.ts.map +0 -1
- package/esm/model/methods/query-methods.js +0 -164
- package/esm/model/methods/query-methods.js.map +0 -1
- package/esm/model/methods/restore-methods.d.ts +0 -10
- package/esm/model/methods/restore-methods.d.ts.map +0 -1
- package/esm/model/methods/restore-methods.js +0 -13
- package/esm/model/methods/restore-methods.js.map +0 -1
- package/esm/model/methods/scope-methods.d.ts +0 -7
- package/esm/model/methods/scope-methods.d.ts.map +0 -1
- package/esm/model/methods/scope-methods.js +0 -15
- package/esm/model/methods/scope-methods.js.map +0 -1
- package/esm/model/methods/serialization-methods.d.ts +0 -3
- package/esm/model/methods/serialization-methods.d.ts.map +0 -1
- package/esm/model/methods/serialization-methods.js +0 -27
- package/esm/model/methods/serialization-methods.js.map +0 -1
- package/esm/model/methods/static-event-methods.d.ts +0 -9
- package/esm/model/methods/static-event-methods.d.ts.map +0 -1
- package/esm/model/methods/static-event-methods.js +0 -29
- package/esm/model/methods/static-event-methods.js.map +0 -1
- package/esm/model/methods/write-methods.d.ts +0 -10
- package/esm/model/methods/write-methods.d.ts.map +0 -1
- package/esm/model/methods/write-methods.js +0 -52
- package/esm/model/methods/write-methods.js.map +0 -1
- package/esm/model/model.d.ts +0 -1647
- package/esm/model/model.d.ts.map +0 -1
- package/esm/model/model.js +0 -1657
- package/esm/model/model.js.map +0 -1
- package/esm/model/model.types.d.ts +0 -44
- package/esm/model/model.types.d.ts.map +0 -1
- package/esm/model/register-model.d.ts +0 -81
- package/esm/model/register-model.d.ts.map +0 -1
- package/esm/model/register-model.js +0 -94
- package/esm/model/register-model.js.map +0 -1
- package/esm/query-builder/query-builder.d.ts +0 -556
- package/esm/query-builder/query-builder.d.ts.map +0 -1
- package/esm/query-builder/query-builder.js +0 -1070
- package/esm/query-builder/query-builder.js.map +0 -1
- package/esm/relations/helpers.d.ts +0 -156
- package/esm/relations/helpers.d.ts.map +0 -1
- package/esm/relations/helpers.js +0 -202
- package/esm/relations/helpers.js.map +0 -1
- package/esm/relations/index.d.ts +0 -35
- package/esm/relations/index.d.ts.map +0 -1
- package/esm/relations/pivot-operations.d.ts +0 -160
- package/esm/relations/pivot-operations.d.ts.map +0 -1
- package/esm/relations/pivot-operations.js +0 -293
- package/esm/relations/pivot-operations.js.map +0 -1
- package/esm/relations/relation-hydrator.d.ts +0 -68
- package/esm/relations/relation-hydrator.d.ts.map +0 -1
- package/esm/relations/relation-hydrator.js +0 -81
- package/esm/relations/relation-hydrator.js.map +0 -1
- package/esm/relations/relation-loader.d.ts +0 -194
- package/esm/relations/relation-loader.d.ts.map +0 -1
- package/esm/relations/relation-loader.js +0 -466
- package/esm/relations/relation-loader.js.map +0 -1
- package/esm/relations/types.d.ts +0 -306
- package/esm/relations/types.d.ts.map +0 -1
- package/esm/remover/database-remover.d.ts +0 -100
- package/esm/remover/database-remover.d.ts.map +0 -1
- package/esm/remover/database-remover.js +0 -214
- package/esm/remover/database-remover.js.map +0 -1
- package/esm/restorer/database-restorer.d.ts +0 -131
- package/esm/restorer/database-restorer.d.ts.map +0 -1
- package/esm/restorer/database-restorer.js +0 -434
- package/esm/restorer/database-restorer.js.map +0 -1
- package/esm/sql-database-dirty-tracker.d.ts +0 -13
- package/esm/sql-database-dirty-tracker.d.ts.map +0 -1
- package/esm/sql-database-dirty-tracker.js +0 -14
- package/esm/sql-database-dirty-tracker.js.map +0 -1
- package/esm/sync/index.d.ts +0 -12
- package/esm/sync/index.d.ts.map +0 -1
- package/esm/sync/model-events.d.ts +0 -62
- package/esm/sync/model-events.d.ts.map +0 -1
- package/esm/sync/model-events.js +0 -49
- package/esm/sync/model-events.js.map +0 -1
- package/esm/sync/model-sync-operation.d.ts +0 -163
- package/esm/sync/model-sync-operation.d.ts.map +0 -1
- package/esm/sync/model-sync-operation.js +0 -292
- package/esm/sync/model-sync-operation.js.map +0 -1
- package/esm/sync/model-sync.d.ts +0 -130
- package/esm/sync/model-sync.d.ts.map +0 -1
- package/esm/sync/model-sync.js +0 -178
- package/esm/sync/model-sync.js.map +0 -1
- package/esm/sync/sync-context.d.ts +0 -70
- package/esm/sync/sync-context.d.ts.map +0 -1
- package/esm/sync/sync-context.js +0 -101
- package/esm/sync/sync-context.js.map +0 -1
- package/esm/sync/sync-manager.d.ts +0 -213
- package/esm/sync/sync-manager.d.ts.map +0 -1
- package/esm/sync/sync-manager.js +0 -689
- package/esm/sync/sync-manager.js.map +0 -1
- package/esm/sync/types.d.ts +0 -289
- package/esm/sync/types.d.ts.map +0 -1
- package/esm/test-migrations/test-enhanced-features.migration.d.ts +0 -15
- package/esm/test-migrations/test-enhanced-features.migration.d.ts.map +0 -1
- package/esm/types.d.ts +0 -371
- package/esm/types.d.ts.map +0 -1
- package/esm/utils/connect-to-database.d.ts +0 -307
- package/esm/utils/connect-to-database.d.ts.map +0 -1
- package/esm/utils/connect-to-database.js +0 -130
- package/esm/utils/connect-to-database.js.map +0 -1
- package/esm/utils/database-writer.utils.d.ts +0 -15
- package/esm/utils/database-writer.utils.d.ts.map +0 -1
- package/esm/utils/database-writer.utils.js +0 -14
- package/esm/utils/database-writer.utils.js.map +0 -1
- package/esm/utils/define-model.js +0 -100
- package/esm/utils/define-model.js.map +0 -1
- package/esm/utils/is-valid-date-value.d.ts +0 -5
- package/esm/utils/is-valid-date-value.d.ts.map +0 -1
- package/esm/utils/is-valid-date-value.js +0 -25
- package/esm/utils/is-valid-date-value.js.map +0 -1
- package/esm/utils/once-connected.d.ts +0 -146
- package/esm/utils/once-connected.d.ts.map +0 -1
- package/esm/utils/once-connected.js +0 -251
- package/esm/utils/once-connected.js.map +0 -1
- package/esm/validation/database-seal-plugins.d.ts +0 -12
- package/esm/validation/database-seal-plugins.d.ts.map +0 -1
- package/esm/validation/database-seal-plugins.js +0 -1
- package/esm/validation/database-seal-plugins.js.map +0 -1
- package/esm/validation/database-writer-validation-error.d.ts +0 -97
- package/esm/validation/database-writer-validation-error.d.ts.map +0 -1
- package/esm/validation/database-writer-validation-error.js +0 -160
- package/esm/validation/database-writer-validation-error.js.map +0 -1
- package/esm/validation/index.d.ts +0 -3
- package/esm/validation/index.d.ts.map +0 -1
- package/esm/validation/mutators/embed-mutator.d.ts +0 -9
- package/esm/validation/mutators/embed-mutator.d.ts.map +0 -1
- package/esm/validation/mutators/embed-mutator.js +0 -33
- package/esm/validation/mutators/embed-mutator.js.map +0 -1
- package/esm/validation/plugins/embed-validator-plugin.d.ts +0 -24
- package/esm/validation/plugins/embed-validator-plugin.d.ts.map +0 -1
- package/esm/validation/plugins/embed-validator-plugin.js +0 -18
- package/esm/validation/plugins/embed-validator-plugin.js.map +0 -1
- package/esm/validation/rules/database-model-rule.d.ts +0 -7
- package/esm/validation/rules/database-model-rule.d.ts.map +0 -1
- package/esm/validation/rules/database-model-rule.js +0 -27
- package/esm/validation/rules/database-model-rule.js.map +0 -1
- package/esm/validation/transformers/embed-model-transformer.d.ts +0 -3
- package/esm/validation/transformers/embed-model-transformer.d.ts.map +0 -1
- package/esm/validation/transformers/embed-model-transformer.js +0 -18
- package/esm/validation/transformers/embed-model-transformer.js.map +0 -1
- package/esm/validation/validators/embed-validator.d.ts +0 -21
- package/esm/validation/validators/embed-validator.d.ts.map +0 -1
- package/esm/validation/validators/embed-validator.js +0 -43
- package/esm/validation/validators/embed-validator.js.map +0 -1
- package/esm/writer/database-writer.d.ts +0 -174
- package/esm/writer/database-writer.d.ts.map +0 -1
- package/esm/writer/database-writer.js +0 -400
- package/esm/writer/database-writer.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# cascade
|
|
2
2
|
|
|
3
|
-
A powerful
|
|
3
|
+
A powerful, model-first TypeScript ORM for **MongoDB and PostgreSQL** on `Node.js`.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Cascade is a unified ORM for MongoDB and PostgreSQL — one model-first API runs against both engines. Define a model once (its `@warlock.js/seal` schema doubles as the TypeScript type, the runtime validator, and the DB shape) and query straight off the class. It's fast, type-safe, and built for real-world apps.
|
|
8
8
|
|
|
9
9
|
Some but not all of the features:
|
|
10
10
|
|
|
@@ -52,14 +52,15 @@ pnpm add @warlock.js/cascade
|
|
|
52
52
|
Here is a simple example of defining a User model:
|
|
53
53
|
|
|
54
54
|
```ts title="src/models/user.ts"
|
|
55
|
-
import { Model } from "@warlock.js/cascade";
|
|
55
|
+
import { Model, RegisterModel } from "@warlock.js/cascade";
|
|
56
56
|
|
|
57
|
+
@RegisterModel()
|
|
57
58
|
export class User extends Model {
|
|
58
59
|
/**
|
|
59
|
-
* The collection name
|
|
60
|
+
* The table / collection name.
|
|
60
61
|
* Must be defined explicitly.
|
|
61
62
|
*/
|
|
62
|
-
public static
|
|
63
|
+
public static table = "users";
|
|
63
64
|
}
|
|
64
65
|
```
|
|
65
66
|
|
package/bin/cascadejs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { exportMigrationsSQL } from "../../operations/migrations.mjs";
|
|
2
|
+
import { loadMigrations } from "../load-migrations.mjs";
|
|
3
|
+
import { withCliConnection } from "../with-cli-connection.mjs";
|
|
4
|
+
import { defineCommand } from "citty";
|
|
5
|
+
|
|
6
|
+
//#region ../../@warlock.js/cascade/src/cli/commands/migrate-export-sql.ts
|
|
7
|
+
/**
|
|
8
|
+
* `cascade migrate:export-sql` — write phase-ordered `.up.sql` /
|
|
9
|
+
* `.down.sql` files for the registered migrations under
|
|
10
|
+
* `<cwd>/database/sql/`. No DB writes occur.
|
|
11
|
+
*/
|
|
12
|
+
const migrateExportSqlCommand = defineCommand({
|
|
13
|
+
meta: {
|
|
14
|
+
name: "migrate:export-sql",
|
|
15
|
+
description: "Write phase-ordered SQL files for the registered migrations."
|
|
16
|
+
},
|
|
17
|
+
args: {
|
|
18
|
+
"pending-only": {
|
|
19
|
+
type: "boolean",
|
|
20
|
+
description: "Export only pending migrations.",
|
|
21
|
+
default: false
|
|
22
|
+
},
|
|
23
|
+
compact: {
|
|
24
|
+
type: "boolean",
|
|
25
|
+
alias: "c",
|
|
26
|
+
description: "Strip generated comments and blank lines.",
|
|
27
|
+
default: false
|
|
28
|
+
},
|
|
29
|
+
path: {
|
|
30
|
+
type: "string",
|
|
31
|
+
alias: "p",
|
|
32
|
+
description: "Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}."
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
async run({ args }) {
|
|
36
|
+
await withCliConnection(async () => {
|
|
37
|
+
await loadMigrations(args.path);
|
|
38
|
+
await exportMigrationsSQL({
|
|
39
|
+
pendingOnly: Boolean(args["pending-only"]),
|
|
40
|
+
compact: Boolean(args.compact)
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
export { migrateExportSqlCommand };
|
|
48
|
+
//# sourceMappingURL=migrate-export-sql.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-export-sql.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate-export-sql.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { exportMigrationsSQL } from \"../../operations/migrations\";\nimport { loadMigrations } from \"../load-migrations\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate:export-sql` — write phase-ordered `.up.sql` /\n * `.down.sql` files for the registered migrations under\n * `<cwd>/database/sql/`. No DB writes occur.\n */\nexport const migrateExportSqlCommand = defineCommand({\n meta: {\n name: \"migrate:export-sql\",\n description: \"Write phase-ordered SQL files for the registered migrations.\",\n },\n args: {\n \"pending-only\": {\n type: \"boolean\",\n description: \"Export only pending migrations.\",\n default: false,\n },\n compact: {\n type: \"boolean\",\n alias: \"c\",\n description: \"Strip generated comments and blank lines.\",\n default: false,\n },\n path: {\n type: \"string\",\n alias: \"p\",\n description: \"Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}.\",\n },\n },\n async run({ args }) {\n await withCliConnection(async () => {\n await loadMigrations(args.path);\n\n await exportMigrationsSQL({\n pendingOnly: Boolean(args[\"pending-only\"]),\n compact: Boolean(args.compact),\n });\n });\n },\n});\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,0BAA0B,cAAc;CACnD,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;EACJ,gBAAgB;GACd,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,SAAS;GACP,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,MAAM,kBAAkB,YAAY;GAClC,MAAM,eAAe,KAAK,IAAI;GAE9B,MAAM,oBAAoB;IACxB,aAAa,QAAQ,KAAK,eAAe;IACzC,SAAS,QAAQ,KAAK,OAAO;GAC/B,CAAC;EACH,CAAC;CACH;AACF,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { listExecutedMigrations } from "../../operations/migrations.mjs";
|
|
2
|
+
import { printExecutedMigrations } from "../printers.mjs";
|
|
3
|
+
import { withCliConnection } from "../with-cli-connection.mjs";
|
|
4
|
+
import { defineCommand } from "citty";
|
|
5
|
+
|
|
6
|
+
//#region ../../@warlock.js/cascade/src/cli/commands/migrate-list.ts
|
|
7
|
+
/**
|
|
8
|
+
* `cascade migrate:list` — print every migration that has been executed
|
|
9
|
+
* against the configured data source. Reads the migrations table directly;
|
|
10
|
+
* does not load files from disk.
|
|
11
|
+
*/
|
|
12
|
+
const migrateListCommand = defineCommand({
|
|
13
|
+
meta: {
|
|
14
|
+
name: "migrate:list",
|
|
15
|
+
description: "List every migration that has been executed against the data source."
|
|
16
|
+
},
|
|
17
|
+
async run() {
|
|
18
|
+
await withCliConnection(async () => {
|
|
19
|
+
printExecutedMigrations(await listExecutedMigrations());
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { migrateListCommand };
|
|
26
|
+
//# sourceMappingURL=migrate-list.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-list.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate-list.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { listExecutedMigrations } from \"../../operations/migrations\";\nimport { printExecutedMigrations } from \"../printers\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate:list` — print every migration that has been executed\n * against the configured data source. Reads the migrations table directly;\n * does not load files from disk.\n */\nexport const migrateListCommand = defineCommand({\n meta: {\n name: \"migrate:list\",\n description: \"List every migration that has been executed against the data source.\",\n },\n async run() {\n await withCliConnection(async () => {\n const executed = await listExecutedMigrations();\n\n printExecutedMigrations(executed);\n });\n },\n});\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,qBAAqB,cAAc;CAC9C,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM,MAAM;EACV,MAAM,kBAAkB,YAAY;GAGlC,wBAAwB,MAFD,uBAAuB,CAEd;EAClC,CAAC;CACH;AACF,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { rollbackMigrations } from "../../operations/migrations.mjs";
|
|
2
|
+
import { loadMigrations } from "../load-migrations.mjs";
|
|
3
|
+
import { printRunSummary } from "../printers.mjs";
|
|
4
|
+
import { withCliConnection } from "../with-cli-connection.mjs";
|
|
5
|
+
import { defineCommand } from "citty";
|
|
6
|
+
|
|
7
|
+
//#region ../../@warlock.js/cascade/src/cli/commands/migrate-rollback.ts
|
|
8
|
+
/**
|
|
9
|
+
* `cascade migrate:rollback` — undo the most recent batch (or every executed
|
|
10
|
+
* migration with `--all`). Migration files are loaded so the runner has the
|
|
11
|
+
* `down()` methods available.
|
|
12
|
+
*/
|
|
13
|
+
const migrateRollbackCommand = defineCommand({
|
|
14
|
+
meta: {
|
|
15
|
+
name: "migrate:rollback",
|
|
16
|
+
description: "Roll back the most recent batch — or everything with --all."
|
|
17
|
+
},
|
|
18
|
+
args: {
|
|
19
|
+
all: {
|
|
20
|
+
type: "boolean",
|
|
21
|
+
alias: "a",
|
|
22
|
+
description: "Roll back every executed migration. Overrides --batches.",
|
|
23
|
+
default: false
|
|
24
|
+
},
|
|
25
|
+
batches: {
|
|
26
|
+
type: "string",
|
|
27
|
+
description: "Roll back the last N batches (ignored when --all is set). Default: 1."
|
|
28
|
+
},
|
|
29
|
+
path: {
|
|
30
|
+
type: "string",
|
|
31
|
+
alias: "p",
|
|
32
|
+
description: "Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}."
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
async run({ args }) {
|
|
36
|
+
await withCliConnection(async () => {
|
|
37
|
+
await loadMigrations(args.path);
|
|
38
|
+
const batches = args.batches ? Number(args.batches) : void 0;
|
|
39
|
+
if (batches !== void 0 && (!Number.isFinite(batches) || batches <= 0)) throw new Error(`Cascade CLI: --batches must be a positive integer, received "${args.batches}".`);
|
|
40
|
+
printRunSummary(await rollbackMigrations({
|
|
41
|
+
all: Boolean(args.all),
|
|
42
|
+
batches
|
|
43
|
+
}));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { migrateRollbackCommand };
|
|
50
|
+
//# sourceMappingURL=migrate-rollback.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-rollback.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate-rollback.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { rollbackMigrations } from \"../../operations/migrations\";\nimport { loadMigrations } from \"../load-migrations\";\nimport { printRunSummary } from \"../printers\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate:rollback` — undo the most recent batch (or every executed\n * migration with `--all`). Migration files are loaded so the runner has the\n * `down()` methods available.\n */\nexport const migrateRollbackCommand = defineCommand({\n meta: {\n name: \"migrate:rollback\",\n description: \"Roll back the most recent batch — or everything with --all.\",\n },\n args: {\n all: {\n type: \"boolean\",\n alias: \"a\",\n description: \"Roll back every executed migration. Overrides --batches.\",\n default: false,\n },\n batches: {\n type: \"string\",\n description: \"Roll back the last N batches (ignored when --all is set). Default: 1.\",\n },\n path: {\n type: \"string\",\n alias: \"p\",\n description: \"Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}.\",\n },\n },\n async run({ args }) {\n await withCliConnection(async () => {\n await loadMigrations(args.path);\n\n const batches = args.batches ? Number(args.batches) : undefined;\n\n if (batches !== undefined && (!Number.isFinite(batches) || batches <= 0)) {\n throw new Error(\n `Cascade CLI: --batches must be a positive integer, received \"${args.batches}\".`,\n );\n }\n\n const results = await rollbackMigrations({\n all: Boolean(args.all),\n batches,\n });\n\n printRunSummary(results);\n });\n },\n});\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,yBAAyB,cAAc;CAClD,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;EACJ,KAAK;GACH,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,SAAS;GACP,MAAM;GACN,aAAa;EACf;EACA,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,MAAM,kBAAkB,YAAY;GAClC,MAAM,eAAe,KAAK,IAAI;GAE9B,MAAM,UAAU,KAAK,UAAU,OAAO,KAAK,OAAO,IAAI;GAEtD,IAAI,YAAY,WAAc,CAAC,OAAO,SAAS,OAAO,KAAK,WAAW,IACpE,MAAM,IAAI,MACR,gEAAgE,KAAK,QAAQ,GAC/E;GAQF,gBAAgB,MALM,mBAAmB;IACvC,KAAK,QAAQ,KAAK,GAAG;IACrB;GACF,CAAC,CAEsB;EACzB,CAAC;CACH;AACF,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { exportMigrationsSQL, freshMigrate, runMigrations } from "../../operations/migrations.mjs";
|
|
2
|
+
import { loadMigrations } from "../load-migrations.mjs";
|
|
3
|
+
import { printRunSummary } from "../printers.mjs";
|
|
4
|
+
import { withCliConnection } from "../with-cli-connection.mjs";
|
|
5
|
+
import { defineCommand } from "citty";
|
|
6
|
+
|
|
7
|
+
//#region ../../@warlock.js/cascade/src/cli/commands/migrate.ts
|
|
8
|
+
/**
|
|
9
|
+
* `cascade migrate` — run all pending migrations against the configured
|
|
10
|
+
* data source. With `--fresh` rolls back everything first and re-runs;
|
|
11
|
+
* with `--sql` writes phase-ordered SQL files instead of executing.
|
|
12
|
+
*/
|
|
13
|
+
const migrateCommand = defineCommand({
|
|
14
|
+
meta: {
|
|
15
|
+
name: "migrate",
|
|
16
|
+
description: "Run all pending migrations against the configured data source."
|
|
17
|
+
},
|
|
18
|
+
args: {
|
|
19
|
+
fresh: {
|
|
20
|
+
type: "boolean",
|
|
21
|
+
alias: "f",
|
|
22
|
+
description: "Roll back every executed migration first, then run them again.",
|
|
23
|
+
default: false
|
|
24
|
+
},
|
|
25
|
+
sql: {
|
|
26
|
+
type: "boolean",
|
|
27
|
+
alias: "s",
|
|
28
|
+
description: "Export migrations to phase-ordered SQL files instead of executing.",
|
|
29
|
+
default: false
|
|
30
|
+
},
|
|
31
|
+
"pending-only": {
|
|
32
|
+
type: "boolean",
|
|
33
|
+
description: "When used with --sql, export only pending migrations.",
|
|
34
|
+
default: false
|
|
35
|
+
},
|
|
36
|
+
compact: {
|
|
37
|
+
type: "boolean",
|
|
38
|
+
alias: "c",
|
|
39
|
+
description: "When used with --sql, strip generated comments and blank lines.",
|
|
40
|
+
default: false
|
|
41
|
+
},
|
|
42
|
+
path: {
|
|
43
|
+
type: "string",
|
|
44
|
+
alias: "p",
|
|
45
|
+
description: "Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}."
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
async run({ args }) {
|
|
49
|
+
await withCliConnection(async () => {
|
|
50
|
+
await loadMigrations(args.path);
|
|
51
|
+
if (args.sql) {
|
|
52
|
+
await exportMigrationsSQL({
|
|
53
|
+
pendingOnly: Boolean(args["pending-only"]),
|
|
54
|
+
compact: Boolean(args.compact)
|
|
55
|
+
});
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
printRunSummary(args.fresh ? await freshMigrate() : await runMigrations());
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
//#endregion
|
|
64
|
+
export { migrateCommand };
|
|
65
|
+
//# sourceMappingURL=migrate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.mjs","names":[],"sources":["../../../../../../../@warlock.js/cascade/src/cli/commands/migrate.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport {\n exportMigrationsSQL,\n freshMigrate,\n runMigrations,\n} from \"../../operations/migrations\";\nimport { loadMigrations } from \"../load-migrations\";\nimport { printRunSummary } from \"../printers\";\nimport { withCliConnection } from \"../with-cli-connection\";\n\n/**\n * `cascade migrate` — run all pending migrations against the configured\n * data source. With `--fresh` rolls back everything first and re-runs;\n * with `--sql` writes phase-ordered SQL files instead of executing.\n */\nexport const migrateCommand = defineCommand({\n meta: {\n name: \"migrate\",\n description: \"Run all pending migrations against the configured data source.\",\n },\n args: {\n fresh: {\n type: \"boolean\",\n alias: \"f\",\n description: \"Roll back every executed migration first, then run them again.\",\n default: false,\n },\n sql: {\n type: \"boolean\",\n alias: \"s\",\n description: \"Export migrations to phase-ordered SQL files instead of executing.\",\n default: false,\n },\n \"pending-only\": {\n type: \"boolean\",\n description: \"When used with --sql, export only pending migrations.\",\n default: false,\n },\n compact: {\n type: \"boolean\",\n alias: \"c\",\n description: \"When used with --sql, strip generated comments and blank lines.\",\n default: false,\n },\n path: {\n type: \"string\",\n alias: \"p\",\n description: \"Glob pattern overriding the default ./migrations/**/*.{ts,js,mjs,cjs}.\",\n },\n },\n async run({ args }) {\n await withCliConnection(async () => {\n await loadMigrations(args.path);\n\n if (args.sql) {\n await exportMigrationsSQL({\n pendingOnly: Boolean(args[\"pending-only\"]),\n compact: Boolean(args.compact),\n });\n\n return;\n }\n\n const results = args.fresh ? await freshMigrate() : await runMigrations();\n\n printRunSummary(results);\n });\n },\n});\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,iBAAiB,cAAc;CAC1C,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,MAAM;EACJ,OAAO;GACL,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,KAAK;GACH,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,gBAAgB;GACd,MAAM;GACN,aAAa;GACb,SAAS;EACX;EACA,SAAS;GACP,MAAM;GACN,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,MAAM;GACJ,MAAM;GACN,OAAO;GACP,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,MAAM,kBAAkB,YAAY;GAClC,MAAM,eAAe,KAAK,IAAI;GAE9B,IAAI,KAAK,KAAK;IACZ,MAAM,oBAAoB;KACxB,aAAa,QAAQ,KAAK,eAAe;KACzC,SAAS,QAAQ,KAAK,OAAO;IAC/B,CAAC;IAED;GACF;GAIA,gBAFgB,KAAK,QAAQ,MAAM,aAAa,IAAI,MAAM,cAAc,CAEjD;EACzB,CAAC;CACH;AACF,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { dataSourceRegistry } from "../data-source/data-source-registry.mjs";
|
|
2
|
+
import { MongoDbDriver } from "../drivers/mongodb/mongodb-driver.mjs";
|
|
3
|
+
import { PostgresDriver } from "../drivers/postgres/postgres-driver.mjs";
|
|
4
|
+
|
|
5
|
+
//#region ../../@warlock.js/cascade/src/cli/connection-from-env.ts
|
|
6
|
+
const VALID_PRIMARY_KEYS = [
|
|
7
|
+
"uuid",
|
|
8
|
+
"int",
|
|
9
|
+
"bigInt"
|
|
10
|
+
];
|
|
11
|
+
const VALID_UUID_STRATEGIES = ["v4", "v7"];
|
|
12
|
+
const POSTGRES_URL_PREFIXES = ["postgres://", "postgresql://"];
|
|
13
|
+
const MONGODB_URL_PREFIXES = ["mongodb://", "mongodb+srv://"];
|
|
14
|
+
/**
|
|
15
|
+
* Validate and normalise the `CASCADE_PRIMARY_KEY` env var. Throws a CLI-
|
|
16
|
+
* shaped error when the value is set but unrecognised.
|
|
17
|
+
*/
|
|
18
|
+
function parsePrimaryKey(raw) {
|
|
19
|
+
if (!raw) return;
|
|
20
|
+
const trimmed = raw.trim();
|
|
21
|
+
const match = VALID_PRIMARY_KEYS.find((value) => value.toLowerCase() === trimmed.toLowerCase());
|
|
22
|
+
if (!match) throw new Error(`Cascade CLI: invalid CASCADE_PRIMARY_KEY="${raw}". Expected one of ${VALID_PRIMARY_KEYS.join(" | ")}.`);
|
|
23
|
+
return match;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Validate and normalise the `CASCADE_UUID_STRATEGY` env var. Throws a CLI-
|
|
27
|
+
* shaped error when the value is set but unrecognised.
|
|
28
|
+
*/
|
|
29
|
+
function parseUuidStrategy(raw) {
|
|
30
|
+
if (!raw) return;
|
|
31
|
+
const trimmed = raw.trim().toLowerCase();
|
|
32
|
+
const match = VALID_UUID_STRATEGIES.find((value) => value === trimmed);
|
|
33
|
+
if (!match) throw new Error(`Cascade CLI: invalid CASCADE_UUID_STRATEGY="${raw}". Expected one of ${VALID_UUID_STRATEGIES.join(" | ")}.`);
|
|
34
|
+
return match;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Read process env and collapse the alias pairs into a single resolved shape.
|
|
38
|
+
*
|
|
39
|
+
* Aliases (canonical → also-accepted):
|
|
40
|
+
* - `DATABASE_URL` → `DB_URL`
|
|
41
|
+
* - `DB_DIALECT` → `DB_DRIVER`
|
|
42
|
+
* - `DB_USER` → `DB_USERNAME`
|
|
43
|
+
*/
|
|
44
|
+
function resolveDbEnv(env) {
|
|
45
|
+
return {
|
|
46
|
+
databaseUrl: env.DATABASE_URL?.trim() || env.DB_URL?.trim() || void 0,
|
|
47
|
+
dialect: env.DB_DIALECT?.trim() || env.DB_DRIVER?.trim() || void 0,
|
|
48
|
+
host: env.DB_HOST?.trim() || void 0,
|
|
49
|
+
port: env.DB_PORT?.toString().trim() || void 0,
|
|
50
|
+
database: env.DB_NAME?.trim() || void 0,
|
|
51
|
+
user: env.DB_USER?.trim() || env.DB_USERNAME?.trim() || void 0,
|
|
52
|
+
password: env.DB_PASSWORD !== void 0 ? String(env.DB_PASSWORD) : void 0,
|
|
53
|
+
primaryKey: parsePrimaryKey(env.CASCADE_PRIMARY_KEY),
|
|
54
|
+
uuidStrategy: parseUuidStrategy(env.CASCADE_UUID_STRATEGY)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build the optional `migrationDefaults` shape passed to the data source.
|
|
59
|
+
* Returns `undefined` when neither env var is set — so consumers get the
|
|
60
|
+
* cascade library defaults (`primaryKey: "int"`, `uuidStrategy: "v4"`).
|
|
61
|
+
*/
|
|
62
|
+
function buildMigrationDefaults(resolved) {
|
|
63
|
+
if (!resolved.primaryKey && !resolved.uuidStrategy) return;
|
|
64
|
+
return {
|
|
65
|
+
primaryKey: resolved.primaryKey,
|
|
66
|
+
uuidStrategy: resolved.uuidStrategy
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Parse the path portion of a database URL as the database name, returning
|
|
71
|
+
* `undefined` when the URL is malformed or carries no database segment.
|
|
72
|
+
*/
|
|
73
|
+
function extractDatabaseFromUrl(url) {
|
|
74
|
+
try {
|
|
75
|
+
return new URL(url).pathname.replace(/^\//, "") || void 0;
|
|
76
|
+
} catch {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Detect the database dialect from env. First inspects the URL scheme, then
|
|
82
|
+
* falls back to an explicit `DB_DIALECT` / `DB_DRIVER` env var.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* const dialect = detectDialect();
|
|
86
|
+
*/
|
|
87
|
+
function detectDialect(env = process.env) {
|
|
88
|
+
const resolved = resolveDbEnv(env);
|
|
89
|
+
if (resolved.databaseUrl) {
|
|
90
|
+
if (POSTGRES_URL_PREFIXES.some((prefix) => resolved.databaseUrl.startsWith(prefix))) return "postgres";
|
|
91
|
+
if (MONGODB_URL_PREFIXES.some((prefix) => resolved.databaseUrl.startsWith(prefix))) return "mongodb";
|
|
92
|
+
}
|
|
93
|
+
const dialect = resolved.dialect?.toLowerCase();
|
|
94
|
+
if (dialect === "postgres" || dialect === "postgresql") return "postgres";
|
|
95
|
+
if (dialect === "mongodb" || dialect === "mongo") return "mongodb";
|
|
96
|
+
throw new Error("Cascade CLI: cannot detect database dialect. Set DATABASE_URL / DB_URL (postgres://… or mongodb://…) or DB_DIALECT / DB_DRIVER = postgres | mongodb.");
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Construct a Postgres driver — prefers a connection URL, otherwise builds
|
|
100
|
+
* from discrete env vars.
|
|
101
|
+
*/
|
|
102
|
+
function buildPostgresDriver(resolved) {
|
|
103
|
+
if (resolved.databaseUrl) {
|
|
104
|
+
const database = extractDatabaseFromUrl(resolved.databaseUrl);
|
|
105
|
+
if (!database) throw new Error("Cascade CLI: DATABASE_URL / DB_URL is missing the database name in its path segment.");
|
|
106
|
+
return new PostgresDriver({
|
|
107
|
+
connectionString: resolved.databaseUrl,
|
|
108
|
+
database
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (!resolved.database) throw new Error("Cascade CLI: missing required env var DB_NAME.");
|
|
112
|
+
return new PostgresDriver({
|
|
113
|
+
host: resolved.host ?? "localhost",
|
|
114
|
+
port: resolved.port ? Number(resolved.port) : 5432,
|
|
115
|
+
database: resolved.database,
|
|
116
|
+
user: resolved.user,
|
|
117
|
+
password: resolved.password
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Construct a MongoDB driver — prefers a connection URI, otherwise builds
|
|
122
|
+
* from discrete env vars.
|
|
123
|
+
*/
|
|
124
|
+
function buildMongoDriver(resolved) {
|
|
125
|
+
if (resolved.databaseUrl) {
|
|
126
|
+
const database = resolved.database ?? extractDatabaseFromUrl(resolved.databaseUrl);
|
|
127
|
+
if (!database) throw new Error("Cascade CLI: cannot resolve MongoDB database name. Either include it in DATABASE_URL / DB_URL or set DB_NAME.");
|
|
128
|
+
return new MongoDbDriver({
|
|
129
|
+
uri: resolved.databaseUrl,
|
|
130
|
+
database
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if (!resolved.database) throw new Error("Cascade CLI: missing required env var DB_NAME.");
|
|
134
|
+
return new MongoDbDriver({
|
|
135
|
+
host: resolved.host ?? "localhost",
|
|
136
|
+
port: resolved.port ? Number(resolved.port) : 27017,
|
|
137
|
+
database: resolved.database,
|
|
138
|
+
username: resolved.user,
|
|
139
|
+
password: resolved.password
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Register a `default` data source on `dataSourceRegistry` derived entirely
|
|
144
|
+
* from environment variables and open the underlying driver connection.
|
|
145
|
+
*
|
|
146
|
+
* Reads (canonical name → accepted aliases):
|
|
147
|
+
* - `DATABASE_URL` → `DB_URL` (preferred when present)
|
|
148
|
+
* - `DB_DIALECT` → `DB_DRIVER` (needed only when no URL)
|
|
149
|
+
* - `DB_HOST` / `DB_PORT` / `DB_NAME` / `DB_PASSWORD` (no aliases)
|
|
150
|
+
* - `DB_USER` → `DB_USERNAME`
|
|
151
|
+
*
|
|
152
|
+
* Optional migration defaults — affect how `Migration.create()` chooses the
|
|
153
|
+
* primary-key column and which UUID function the driver emits. Unset means
|
|
154
|
+
* the cascade library defaults apply (`primaryKey: "int"`, `uuidStrategy:
|
|
155
|
+
* "v4"`).
|
|
156
|
+
* - `CASCADE_PRIMARY_KEY` — `uuid` | `int` | `bigInt`
|
|
157
|
+
* - `CASCADE_UUID_STRATEGY` — `v4` | `v7`
|
|
158
|
+
*
|
|
159
|
+
* The driver's pool/socket is opened before this function returns, so the
|
|
160
|
+
* caller can issue queries immediately. Pair every call with
|
|
161
|
+
* `disconnect()` (or use `withCliConnection`) so the process exits cleanly.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* await connectFromEnv();
|
|
165
|
+
* const results = await runMigrations();
|
|
166
|
+
*/
|
|
167
|
+
async function connectFromEnv(env = process.env) {
|
|
168
|
+
const dialect = detectDialect(env);
|
|
169
|
+
const resolved = resolveDbEnv(env);
|
|
170
|
+
const driver = dialect === "postgres" ? buildPostgresDriver(resolved) : buildMongoDriver(resolved);
|
|
171
|
+
await dataSourceRegistry.register({
|
|
172
|
+
name: "default",
|
|
173
|
+
driver,
|
|
174
|
+
isDefault: true,
|
|
175
|
+
migrationDefaults: buildMigrationDefaults(resolved)
|
|
176
|
+
}).driver.connect();
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
//#endregion
|
|
180
|
+
export { connectFromEnv };
|
|
181
|
+
//# sourceMappingURL=connection-from-env.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-from-env.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/cli/connection-from-env.ts"],"sourcesContent":["import { dataSourceRegistry } from \"../data-source/data-source-registry\";\nimport { MongoDbDriver } from \"../drivers/mongodb/mongodb-driver\";\nimport { PostgresDriver } from \"../drivers/postgres/postgres-driver\";\nimport type { MigrationDefaults, UuidStrategy } from \"../types\";\n\nconst VALID_PRIMARY_KEYS = [\"uuid\", \"int\", \"bigInt\"] as const;\nconst VALID_UUID_STRATEGIES: readonly UuidStrategy[] = [\"v4\", \"v7\"];\n\ntype PrimaryKey = (typeof VALID_PRIMARY_KEYS)[number];\n\n/**\n * Supported database dialects for the standalone Cascade CLI.\n */\nexport type CliDialect = \"postgres\" | \"mongodb\";\n\nconst POSTGRES_URL_PREFIXES = [\"postgres://\", \"postgresql://\"];\nconst MONGODB_URL_PREFIXES = [\"mongodb://\", \"mongodb+srv://\"];\n\n/**\n * Canonical env shape Cascade actually consumes. The CLI accepts two\n * synonymous spellings for every var (canonical + warlock-shaped) so an\n * existing warlock project's `.env` works as-is without duplication.\n */\ntype ResolvedDbEnv = {\n readonly databaseUrl?: string;\n readonly dialect?: string;\n readonly host?: string;\n readonly port?: string;\n readonly database?: string;\n readonly user?: string;\n readonly password?: string;\n readonly primaryKey?: PrimaryKey;\n readonly uuidStrategy?: UuidStrategy;\n};\n\n/**\n * Validate and normalise the `CASCADE_PRIMARY_KEY` env var. Throws a CLI-\n * shaped error when the value is set but unrecognised.\n */\nfunction parsePrimaryKey(raw: string | undefined): PrimaryKey | undefined {\n if (!raw) {\n return undefined;\n }\n\n const trimmed = raw.trim();\n\n // Case-insensitive match — accept \"BIGINT\" / \"bigint\" / \"bigInt\".\n const match = VALID_PRIMARY_KEYS.find((value) => value.toLowerCase() === trimmed.toLowerCase());\n\n if (!match) {\n throw new Error(\n `Cascade CLI: invalid CASCADE_PRIMARY_KEY=\"${raw}\". ` +\n `Expected one of ${VALID_PRIMARY_KEYS.join(\" | \")}.`,\n );\n }\n\n return match;\n}\n\n/**\n * Validate and normalise the `CASCADE_UUID_STRATEGY` env var. Throws a CLI-\n * shaped error when the value is set but unrecognised.\n */\nfunction parseUuidStrategy(raw: string | undefined): UuidStrategy | undefined {\n if (!raw) {\n return undefined;\n }\n\n const trimmed = raw.trim().toLowerCase();\n const match = VALID_UUID_STRATEGIES.find((value) => value === trimmed);\n\n if (!match) {\n throw new Error(\n `Cascade CLI: invalid CASCADE_UUID_STRATEGY=\"${raw}\". ` +\n `Expected one of ${VALID_UUID_STRATEGIES.join(\" | \")}.`,\n );\n }\n\n return match;\n}\n\n/**\n * Read process env and collapse the alias pairs into a single resolved shape.\n *\n * Aliases (canonical → also-accepted):\n * - `DATABASE_URL` → `DB_URL`\n * - `DB_DIALECT` → `DB_DRIVER`\n * - `DB_USER` → `DB_USERNAME`\n */\nfunction resolveDbEnv(env: NodeJS.ProcessEnv): ResolvedDbEnv {\n return {\n databaseUrl: env.DATABASE_URL?.trim() || env.DB_URL?.trim() || undefined,\n dialect: env.DB_DIALECT?.trim() || env.DB_DRIVER?.trim() || undefined,\n host: env.DB_HOST?.trim() || undefined,\n port: env.DB_PORT?.toString().trim() || undefined,\n database: env.DB_NAME?.trim() || undefined,\n user: env.DB_USER?.trim() || env.DB_USERNAME?.trim() || undefined,\n password: env.DB_PASSWORD !== undefined ? String(env.DB_PASSWORD) : undefined,\n primaryKey: parsePrimaryKey(env.CASCADE_PRIMARY_KEY),\n uuidStrategy: parseUuidStrategy(env.CASCADE_UUID_STRATEGY),\n };\n}\n\n/**\n * Build the optional `migrationDefaults` shape passed to the data source.\n * Returns `undefined` when neither env var is set — so consumers get the\n * cascade library defaults (`primaryKey: \"int\"`, `uuidStrategy: \"v4\"`).\n */\nfunction buildMigrationDefaults(resolved: ResolvedDbEnv): MigrationDefaults | undefined {\n if (!resolved.primaryKey && !resolved.uuidStrategy) {\n return undefined;\n }\n\n return {\n primaryKey: resolved.primaryKey,\n uuidStrategy: resolved.uuidStrategy,\n };\n}\n\n/**\n * Parse the path portion of a database URL as the database name, returning\n * `undefined` when the URL is malformed or carries no database segment.\n */\nfunction extractDatabaseFromUrl(url: string): string | undefined {\n try {\n const parsed = new URL(url);\n const segment = parsed.pathname.replace(/^\\//, \"\");\n\n return segment || undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Detect the database dialect from env. First inspects the URL scheme, then\n * falls back to an explicit `DB_DIALECT` / `DB_DRIVER` env var.\n *\n * @example\n * const dialect = detectDialect();\n */\nexport function detectDialect(env: NodeJS.ProcessEnv = process.env): CliDialect {\n const resolved = resolveDbEnv(env);\n\n if (resolved.databaseUrl) {\n if (POSTGRES_URL_PREFIXES.some((prefix) => resolved.databaseUrl!.startsWith(prefix))) {\n return \"postgres\";\n }\n\n if (MONGODB_URL_PREFIXES.some((prefix) => resolved.databaseUrl!.startsWith(prefix))) {\n return \"mongodb\";\n }\n }\n\n const dialect = resolved.dialect?.toLowerCase();\n\n if (dialect === \"postgres\" || dialect === \"postgresql\") {\n return \"postgres\";\n }\n\n if (dialect === \"mongodb\" || dialect === \"mongo\") {\n return \"mongodb\";\n }\n\n throw new Error(\n \"Cascade CLI: cannot detect database dialect. \" +\n \"Set DATABASE_URL / DB_URL (postgres://… or mongodb://…) \" +\n \"or DB_DIALECT / DB_DRIVER = postgres | mongodb.\",\n );\n}\n\n/**\n * Construct a Postgres driver — prefers a connection URL, otherwise builds\n * from discrete env vars.\n */\nfunction buildPostgresDriver(resolved: ResolvedDbEnv): PostgresDriver {\n if (resolved.databaseUrl) {\n const database = extractDatabaseFromUrl(resolved.databaseUrl);\n\n if (!database) {\n throw new Error(\n \"Cascade CLI: DATABASE_URL / DB_URL is missing the database name in its path segment.\",\n );\n }\n\n return new PostgresDriver({\n connectionString: resolved.databaseUrl,\n database,\n });\n }\n\n if (!resolved.database) {\n throw new Error(\"Cascade CLI: missing required env var DB_NAME.\");\n }\n\n return new PostgresDriver({\n host: resolved.host ?? \"localhost\",\n port: resolved.port ? Number(resolved.port) : 5432,\n database: resolved.database,\n user: resolved.user,\n password: resolved.password,\n });\n}\n\n/**\n * Construct a MongoDB driver — prefers a connection URI, otherwise builds\n * from discrete env vars.\n */\nfunction buildMongoDriver(resolved: ResolvedDbEnv): MongoDbDriver {\n if (resolved.databaseUrl) {\n const database = resolved.database ?? extractDatabaseFromUrl(resolved.databaseUrl);\n\n if (!database) {\n throw new Error(\n \"Cascade CLI: cannot resolve MongoDB database name. \" +\n \"Either include it in DATABASE_URL / DB_URL or set DB_NAME.\",\n );\n }\n\n return new MongoDbDriver({\n uri: resolved.databaseUrl,\n database,\n });\n }\n\n if (!resolved.database) {\n throw new Error(\"Cascade CLI: missing required env var DB_NAME.\");\n }\n\n return new MongoDbDriver({\n host: resolved.host ?? \"localhost\",\n port: resolved.port ? Number(resolved.port) : 27017,\n database: resolved.database,\n username: resolved.user,\n password: resolved.password,\n });\n}\n\n/**\n * Register a `default` data source on `dataSourceRegistry` derived entirely\n * from environment variables and open the underlying driver connection.\n *\n * Reads (canonical name → accepted aliases):\n * - `DATABASE_URL` → `DB_URL` (preferred when present)\n * - `DB_DIALECT` → `DB_DRIVER` (needed only when no URL)\n * - `DB_HOST` / `DB_PORT` / `DB_NAME` / `DB_PASSWORD` (no aliases)\n * - `DB_USER` → `DB_USERNAME`\n *\n * Optional migration defaults — affect how `Migration.create()` chooses the\n * primary-key column and which UUID function the driver emits. Unset means\n * the cascade library defaults apply (`primaryKey: \"int\"`, `uuidStrategy:\n * \"v4\"`).\n * - `CASCADE_PRIMARY_KEY` — `uuid` | `int` | `bigInt`\n * - `CASCADE_UUID_STRATEGY` — `v4` | `v7`\n *\n * The driver's pool/socket is opened before this function returns, so the\n * caller can issue queries immediately. Pair every call with\n * `disconnect()` (or use `withCliConnection`) so the process exits cleanly.\n *\n * @example\n * await connectFromEnv();\n * const results = await runMigrations();\n */\nexport async function connectFromEnv(env: NodeJS.ProcessEnv = process.env): Promise<void> {\n const dialect = detectDialect(env);\n const resolved = resolveDbEnv(env);\n\n const driver =\n dialect === \"postgres\" ? buildPostgresDriver(resolved) : buildMongoDriver(resolved);\n\n const dataSource = dataSourceRegistry.register({\n name: \"default\",\n driver,\n isDefault: true,\n migrationDefaults: buildMigrationDefaults(resolved),\n });\n\n await dataSource.driver.connect();\n}\n"],"mappings":";;;;;AAKA,MAAM,qBAAqB;CAAC;CAAQ;CAAO;AAAQ;AACnD,MAAM,wBAAiD,CAAC,MAAM,IAAI;AASlE,MAAM,wBAAwB,CAAC,eAAe,eAAe;AAC7D,MAAM,uBAAuB,CAAC,cAAc,gBAAgB;;;;;AAuB5D,SAAS,gBAAgB,KAAiD;CACxE,IAAI,CAAC,KACH;CAGF,MAAM,UAAU,IAAI,KAAK;CAGzB,MAAM,QAAQ,mBAAmB,MAAM,UAAU,MAAM,YAAY,MAAM,QAAQ,YAAY,CAAC;CAE9F,IAAI,CAAC,OACH,MAAM,IAAI,MACR,6CAA6C,IAAI,qBAC5B,mBAAmB,KAAK,KAAK,EAAE,EACtD;CAGF,OAAO;AACT;;;;;AAMA,SAAS,kBAAkB,KAAmD;CAC5E,IAAI,CAAC,KACH;CAGF,MAAM,UAAU,IAAI,KAAK,EAAE,YAAY;CACvC,MAAM,QAAQ,sBAAsB,MAAM,UAAU,UAAU,OAAO;CAErE,IAAI,CAAC,OACH,MAAM,IAAI,MACR,+CAA+C,IAAI,qBAC9B,sBAAsB,KAAK,KAAK,EAAE,EACzD;CAGF,OAAO;AACT;;;;;;;;;AAUA,SAAS,aAAa,KAAuC;CAC3D,OAAO;EACL,aAAa,IAAI,cAAc,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK;EAC/D,SAAS,IAAI,YAAY,KAAK,KAAK,IAAI,WAAW,KAAK,KAAK;EAC5D,MAAM,IAAI,SAAS,KAAK,KAAK;EAC7B,MAAM,IAAI,SAAS,SAAS,EAAE,KAAK,KAAK;EACxC,UAAU,IAAI,SAAS,KAAK,KAAK;EACjC,MAAM,IAAI,SAAS,KAAK,KAAK,IAAI,aAAa,KAAK,KAAK;EACxD,UAAU,IAAI,gBAAgB,SAAY,OAAO,IAAI,WAAW,IAAI;EACpE,YAAY,gBAAgB,IAAI,mBAAmB;EACnD,cAAc,kBAAkB,IAAI,qBAAqB;CAC3D;AACF;;;;;;AAOA,SAAS,uBAAuB,UAAwD;CACtF,IAAI,CAAC,SAAS,cAAc,CAAC,SAAS,cACpC;CAGF,OAAO;EACL,YAAY,SAAS;EACrB,cAAc,SAAS;CACzB;AACF;;;;;AAMA,SAAS,uBAAuB,KAAiC;CAC/D,IAAI;EAIF,OAFgB,IADG,IAAI,GACF,EAAE,SAAS,QAAQ,OAAO,EAElC,KAAK;CACpB,QAAQ;EACN;CACF;AACF;;;;;;;;AASA,SAAgB,cAAc,MAAyB,QAAQ,KAAiB;CAC9E,MAAM,WAAW,aAAa,GAAG;CAEjC,IAAI,SAAS,aAAa;EACxB,IAAI,sBAAsB,MAAM,WAAW,SAAS,YAAa,WAAW,MAAM,CAAC,GACjF,OAAO;EAGT,IAAI,qBAAqB,MAAM,WAAW,SAAS,YAAa,WAAW,MAAM,CAAC,GAChF,OAAO;CAEX;CAEA,MAAM,UAAU,SAAS,SAAS,YAAY;CAE9C,IAAI,YAAY,cAAc,YAAY,cACxC,OAAO;CAGT,IAAI,YAAY,aAAa,YAAY,SACvC,OAAO;CAGT,MAAM,IAAI,MACR,sJAGF;AACF;;;;;AAMA,SAAS,oBAAoB,UAAyC;CACpE,IAAI,SAAS,aAAa;EACxB,MAAM,WAAW,uBAAuB,SAAS,WAAW;EAE5D,IAAI,CAAC,UACH,MAAM,IAAI,MACR,sFACF;EAGF,OAAO,IAAI,eAAe;GACxB,kBAAkB,SAAS;GAC3B;EACF,CAAC;CACH;CAEA,IAAI,CAAC,SAAS,UACZ,MAAM,IAAI,MAAM,gDAAgD;CAGlE,OAAO,IAAI,eAAe;EACxB,MAAM,SAAS,QAAQ;EACvB,MAAM,SAAS,OAAO,OAAO,SAAS,IAAI,IAAI;EAC9C,UAAU,SAAS;EACnB,MAAM,SAAS;EACf,UAAU,SAAS;CACrB,CAAC;AACH;;;;;AAMA,SAAS,iBAAiB,UAAwC;CAChE,IAAI,SAAS,aAAa;EACxB,MAAM,WAAW,SAAS,YAAY,uBAAuB,SAAS,WAAW;EAEjF,IAAI,CAAC,UACH,MAAM,IAAI,MACR,+GAEF;EAGF,OAAO,IAAI,cAAc;GACvB,KAAK,SAAS;GACd;EACF,CAAC;CACH;CAEA,IAAI,CAAC,SAAS,UACZ,MAAM,IAAI,MAAM,gDAAgD;CAGlE,OAAO,IAAI,cAAc;EACvB,MAAM,SAAS,QAAQ;EACvB,MAAM,SAAS,OAAO,OAAO,SAAS,IAAI,IAAI;EAC9C,UAAU,SAAS;EACnB,UAAU,SAAS;EACnB,UAAU,SAAS;CACrB,CAAC;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,eAAsB,eAAe,MAAyB,QAAQ,KAAoB;CACxF,MAAM,UAAU,cAAc,GAAG;CACjC,MAAM,WAAW,aAAa,GAAG;CAEjC,MAAM,SACJ,YAAY,aAAa,oBAAoB,QAAQ,IAAI,iBAAiB,QAAQ;CASpF,MAPmB,mBAAmB,SAAS;EAC7C,MAAM;EACN;EACA,WAAW;EACX,mBAAmB,uBAAuB,QAAQ;CACpD,CAEe,EAAE,OAAO,QAAQ;AAClC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { migrateCommand } from "./commands/migrate.mjs";
|
|
2
|
+
import { migrateExportSqlCommand } from "./commands/migrate-export-sql.mjs";
|
|
3
|
+
import { migrateListCommand } from "./commands/migrate-list.mjs";
|
|
4
|
+
import { migrateRollbackCommand } from "./commands/migrate-rollback.mjs";
|
|
5
|
+
import { defineCommand } from "citty";
|
|
6
|
+
|
|
7
|
+
//#region ../../@warlock.js/cascade/src/cli/index.ts
|
|
8
|
+
/**
|
|
9
|
+
* Root command for the standalone `cascade` CLI binary. Scope is restricted
|
|
10
|
+
* to migration operations — database management (`db:create` etc.) stays in
|
|
11
|
+
* the warlock-core CLI where the project context is available.
|
|
12
|
+
*
|
|
13
|
+
* Subcommands follow colon-style naming (`cascade migrate:list`) so each
|
|
14
|
+
* verb stays addressable as a single argv token.
|
|
15
|
+
*/
|
|
16
|
+
const main = defineCommand({
|
|
17
|
+
meta: {
|
|
18
|
+
name: "cascade",
|
|
19
|
+
description: "Standalone Cascade ORM migration CLI."
|
|
20
|
+
},
|
|
21
|
+
subCommands: {
|
|
22
|
+
migrate: migrateCommand,
|
|
23
|
+
"migrate:list": migrateListCommand,
|
|
24
|
+
"migrate:rollback": migrateRollbackCommand,
|
|
25
|
+
"migrate:export-sql": migrateExportSqlCommand
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export { main };
|
|
31
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/cli/index.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { migrateCommand } from \"./commands/migrate\";\nimport { migrateExportSqlCommand } from \"./commands/migrate-export-sql\";\nimport { migrateListCommand } from \"./commands/migrate-list\";\nimport { migrateRollbackCommand } from \"./commands/migrate-rollback\";\n\n/**\n * Root command for the standalone `cascade` CLI binary. Scope is restricted\n * to migration operations — database management (`db:create` etc.) stays in\n * the warlock-core CLI where the project context is available.\n *\n * Subcommands follow colon-style naming (`cascade migrate:list`) so each\n * verb stays addressable as a single argv token.\n */\nexport const main = defineCommand({\n meta: {\n name: \"cascade\",\n description: \"Standalone Cascade ORM migration CLI.\",\n },\n subCommands: {\n migrate: migrateCommand,\n \"migrate:list\": migrateListCommand,\n \"migrate:rollback\": migrateRollbackCommand,\n \"migrate:export-sql\": migrateExportSqlCommand,\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAa,OAAO,cAAc;CAChC,MAAM;EACJ,MAAM;EACN,aAAa;CACf;CACA,aAAa;EACX,SAAS;EACT,gBAAgB;EAChB,oBAAoB;EACpB,sBAAsB;CACxB;AACF,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { migrationRunner } from "../migration/migration-runner.mjs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import fastGlob from "fast-glob";
|
|
4
|
+
import { pathToFileURL } from "url";
|
|
5
|
+
|
|
6
|
+
//#region ../../@warlock.js/cascade/src/cli/load-migrations.ts
|
|
7
|
+
const DEFAULT_PATTERN = "./migrations/**/*.{ts,js,mjs,cjs}";
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the migration name from a filename. Mirrors warlock-core's
|
|
10
|
+
* convention: drop the extension, strip a trailing `-migration` /
|
|
11
|
+
* `_migration` suffix.
|
|
12
|
+
*/
|
|
13
|
+
function inferNameFromFile(file) {
|
|
14
|
+
return path.basename(file).split(".")[0].replace(/-migration$/, "").replace(/_migration$/, "");
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Extract a leading `MM-DD-YYYY_HH-MM-SS` (or `DD-MM-YYYY_HH-MM-SS`)
|
|
18
|
+
* timestamp from a migration filename so the runner can sort migrations
|
|
19
|
+
* deterministically. Returns `undefined` when no timestamp is present.
|
|
20
|
+
*/
|
|
21
|
+
function inferCreatedAtFromFile(file) {
|
|
22
|
+
const match = path.basename(file).match(/^(\d{2}-\d{2}-\d{4}_\d{2}-\d{2}-\d{2})/);
|
|
23
|
+
return match ? match[1] : void 0;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Produce a helpful CLI error when Node refuses to import a `.ts` migration
|
|
27
|
+
* file directly — the standalone Cascade CLI ships no TS transpiler, and
|
|
28
|
+
* users hitting this error need to invoke through `tsx`/`tsm` or compile
|
|
29
|
+
* their migrations to JS first.
|
|
30
|
+
*/
|
|
31
|
+
function explainImportFailure(file, error) {
|
|
32
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
33
|
+
if (file.endsWith(".ts") || file.endsWith(".tsx")) return /* @__PURE__ */ new Error(`Cascade CLI: failed to load TypeScript migration ${file}.\nNode cannot import .ts files natively — invoke the CLI through a TS runtime, e.g.:\n npx tsx node_modules/.bin/cascade migrate\nOr pre-compile migrations to JS before running.\nOriginal error: ${message}`);
|
|
34
|
+
return /* @__PURE__ */ new Error(`Cascade CLI: failed to load migration ${file}. ${message}`);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Discover migration files via `fast-glob`, dynamic-import each, and register
|
|
38
|
+
* the default export on `migrationRunner`. Migration name and `createdAt`
|
|
39
|
+
* are inferred from the filename when the class does not declare them.
|
|
40
|
+
*
|
|
41
|
+
* Default glob: `./migrations/**/*.{ts,js,mjs,cjs}` from `process.cwd()`.
|
|
42
|
+
* Pass an explicit pattern to override.
|
|
43
|
+
*
|
|
44
|
+
* @returns Number of migration files registered.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* await loadMigrations();
|
|
48
|
+
* await loadMigrations("./db/schema/*.migration.js");
|
|
49
|
+
*/
|
|
50
|
+
async function loadMigrations(pattern) {
|
|
51
|
+
const files = await fastGlob(pattern ?? DEFAULT_PATTERN, {
|
|
52
|
+
absolute: true,
|
|
53
|
+
cwd: process.cwd(),
|
|
54
|
+
onlyFiles: true
|
|
55
|
+
});
|
|
56
|
+
for (const file of files) {
|
|
57
|
+
const fileUrl = pathToFileURL(file).href;
|
|
58
|
+
let loadedModule;
|
|
59
|
+
try {
|
|
60
|
+
loadedModule = await import(fileUrl);
|
|
61
|
+
} catch (error) {
|
|
62
|
+
throw explainImportFailure(file, error);
|
|
63
|
+
}
|
|
64
|
+
const MigrationClass = loadedModule.default;
|
|
65
|
+
if (!MigrationClass) throw new Error(`Cascade CLI: ${file} must export a default migration class.`);
|
|
66
|
+
if (!MigrationClass.migrationName) MigrationClass.migrationName = inferNameFromFile(file);
|
|
67
|
+
if (!MigrationClass.createdAt) {
|
|
68
|
+
const createdAt = inferCreatedAtFromFile(file);
|
|
69
|
+
if (createdAt) MigrationClass.createdAt = createdAt;
|
|
70
|
+
}
|
|
71
|
+
migrationRunner.register(MigrationClass);
|
|
72
|
+
}
|
|
73
|
+
return files.length;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//#endregion
|
|
77
|
+
export { loadMigrations };
|
|
78
|
+
//# sourceMappingURL=load-migrations.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-migrations.mjs","names":[],"sources":["../../../../../../@warlock.js/cascade/src/cli/load-migrations.ts"],"sourcesContent":["import fastGlob from \"fast-glob\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { migrationRunner } from \"../migration/migration-runner\";\n\nconst DEFAULT_PATTERN = \"./migrations/**/*.{ts,js,mjs,cjs}\";\n\n/**\n * Resolve the migration name from a filename. Mirrors warlock-core's\n * convention: drop the extension, strip a trailing `-migration` /\n * `_migration` suffix.\n */\nfunction inferNameFromFile(file: string): string {\n const basename = path.basename(file).split(\".\")[0];\n\n return basename.replace(/-migration$/, \"\").replace(/_migration$/, \"\");\n}\n\n/**\n * Extract a leading `MM-DD-YYYY_HH-MM-SS` (or `DD-MM-YYYY_HH-MM-SS`)\n * timestamp from a migration filename so the runner can sort migrations\n * deterministically. Returns `undefined` when no timestamp is present.\n */\nfunction inferCreatedAtFromFile(file: string): string | undefined {\n const basename = path.basename(file);\n const match = basename.match(/^(\\d{2}-\\d{2}-\\d{4}_\\d{2}-\\d{2}-\\d{2})/);\n\n return match ? match[1] : undefined;\n}\n\n/**\n * Produce a helpful CLI error when Node refuses to import a `.ts` migration\n * file directly — the standalone Cascade CLI ships no TS transpiler, and\n * users hitting this error need to invoke through `tsx`/`tsm` or compile\n * their migrations to JS first.\n */\nfunction explainImportFailure(file: string, error: unknown): Error {\n const message = error instanceof Error ? error.message : String(error);\n\n if (file.endsWith(\".ts\") || file.endsWith(\".tsx\")) {\n return new Error(\n `Cascade CLI: failed to load TypeScript migration ${file}.\\n` +\n `Node cannot import .ts files natively — invoke the CLI through a TS runtime, e.g.:\\n` +\n ` npx tsx node_modules/.bin/cascade migrate\\n` +\n `Or pre-compile migrations to JS before running.\\n` +\n `Original error: ${message}`,\n );\n }\n\n return new Error(`Cascade CLI: failed to load migration ${file}. ${message}`);\n}\n\n/**\n * Discover migration files via `fast-glob`, dynamic-import each, and register\n * the default export on `migrationRunner`. Migration name and `createdAt`\n * are inferred from the filename when the class does not declare them.\n *\n * Default glob: `./migrations/**/*.{ts,js,mjs,cjs}` from `process.cwd()`.\n * Pass an explicit pattern to override.\n *\n * @returns Number of migration files registered.\n *\n * @example\n * await loadMigrations();\n * await loadMigrations(\"./db/schema/*.migration.js\");\n */\nexport async function loadMigrations(pattern?: string): Promise<number> {\n const resolvedPattern = pattern ?? DEFAULT_PATTERN;\n\n const files = await fastGlob(resolvedPattern, {\n absolute: true,\n cwd: process.cwd(),\n onlyFiles: true,\n });\n\n for (const file of files) {\n const fileUrl = pathToFileURL(file).href;\n\n let loadedModule: { default?: unknown };\n\n try {\n loadedModule = await import(fileUrl);\n } catch (error) {\n throw explainImportFailure(file, error);\n }\n\n const MigrationClass = loadedModule.default as\n | (Function & { migrationName?: string; createdAt?: string })\n | undefined;\n\n if (!MigrationClass) {\n throw new Error(`Cascade CLI: ${file} must export a default migration class.`);\n }\n\n if (!MigrationClass.migrationName) {\n MigrationClass.migrationName = inferNameFromFile(file);\n }\n\n if (!MigrationClass.createdAt) {\n const createdAt = inferCreatedAtFromFile(file);\n\n if (createdAt) {\n MigrationClass.createdAt = createdAt;\n }\n }\n\n // Cast back through the runner's expected shape; the runner validates\n // `migrationName` exists before registration succeeds.\n migrationRunner.register(MigrationClass as never);\n }\n\n return files.length;\n}\n"],"mappings":";;;;;;AAKA,MAAM,kBAAkB;;;;;;AAOxB,SAAS,kBAAkB,MAAsB;CAG/C,OAFiB,KAAK,SAAS,IAAI,EAAE,MAAM,GAAG,EAAE,GAEhC,QAAQ,eAAe,EAAE,EAAE,QAAQ,eAAe,EAAE;AACtE;;;;;;AAOA,SAAS,uBAAuB,MAAkC;CAEhE,MAAM,QADW,KAAK,SAAS,IACV,EAAE,MAAM,wCAAwC;CAErE,OAAO,QAAQ,MAAM,KAAK;AAC5B;;;;;;;AAQA,SAAS,qBAAqB,MAAc,OAAuB;CACjE,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;CAErE,IAAI,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,MAAM,GAC9C,uBAAO,IAAI,MACT,oDAAoD,KAAK,uMAIpC,SACvB;CAGF,uBAAO,IAAI,MAAM,yCAAyC,KAAK,IAAI,SAAS;AAC9E;;;;;;;;;;;;;;;AAgBA,eAAsB,eAAe,SAAmC;CAGtE,MAAM,QAAQ,MAAM,SAFI,WAAW,iBAEW;EAC5C,UAAU;EACV,KAAK,QAAQ,IAAI;EACjB,WAAW;CACb,CAAC;CAED,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,UAAU,cAAc,IAAI,EAAE;EAEpC,IAAI;EAEJ,IAAI;GACF,eAAe,MAAM,OAAO;EAC9B,SAAS,OAAO;GACd,MAAM,qBAAqB,MAAM,KAAK;EACxC;EAEA,MAAM,iBAAiB,aAAa;EAIpC,IAAI,CAAC,gBACH,MAAM,IAAI,MAAM,gBAAgB,KAAK,wCAAwC;EAG/E,IAAI,CAAC,eAAe,eAClB,eAAe,gBAAgB,kBAAkB,IAAI;EAGvD,IAAI,CAAC,eAAe,WAAW;GAC7B,MAAM,YAAY,uBAAuB,IAAI;GAE7C,IAAI,WACF,eAAe,YAAY;EAE/B;EAIA,gBAAgB,SAAS,cAAuB;CAClD;CAEA,OAAO,MAAM;AACf"}
|