velocious 1.0.107 → 1.0.109
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 +5 -5
- package/dist/bin/velocious.d.ts +3 -0
- package/dist/bin/velocious.d.ts.map +1 -0
- package/dist/bin/velocious.js +27 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/src/application.d.ts +67 -0
- package/dist/src/application.d.ts.map +1 -0
- package/dist/src/application.js +101 -0
- package/dist/src/cli/base-command.d.ts +32 -0
- package/dist/src/cli/base-command.d.ts.map +1 -0
- package/dist/src/cli/base-command.js +34 -0
- package/dist/src/cli/browser-cli.d.ts +22 -0
- package/dist/src/cli/browser-cli.d.ts.map +1 -0
- package/dist/src/cli/browser-cli.js +32 -0
- package/dist/src/cli/commands/db/create.d.ts +9 -0
- package/dist/src/cli/commands/db/create.d.ts.map +1 -0
- package/dist/src/cli/commands/db/create.js +62 -0
- package/dist/src/cli/commands/db/drop.d.ts +5 -0
- package/dist/src/cli/commands/db/drop.d.ts.map +1 -0
- package/dist/src/cli/commands/db/drop.js +14 -0
- package/dist/src/cli/commands/db/migrate.d.ts +5 -0
- package/dist/src/cli/commands/db/migrate.d.ts.map +1 -0
- package/dist/src/cli/commands/db/migrate.js +14 -0
- package/dist/src/cli/commands/db/reset.d.ts +5 -0
- package/dist/src/cli/commands/db/reset.d.ts.map +1 -0
- package/dist/src/cli/commands/db/reset.js +18 -0
- package/dist/src/cli/commands/db/rollback.d.ts +5 -0
- package/dist/src/cli/commands/db/rollback.d.ts.map +1 -0
- package/dist/src/cli/commands/db/rollback.js +13 -0
- package/dist/src/cli/commands/destroy/migration.d.ts +5 -0
- package/dist/src/cli/commands/destroy/migration.d.ts.map +1 -0
- package/dist/src/cli/commands/destroy/migration.js +6 -0
- package/dist/src/cli/commands/generate/base-models.d.ts +5 -0
- package/dist/src/cli/commands/generate/base-models.d.ts.map +1 -0
- package/dist/src/cli/commands/generate/base-models.js +6 -0
- package/dist/src/cli/commands/generate/migration.d.ts +5 -0
- package/dist/src/cli/commands/generate/migration.d.ts.map +1 -0
- package/dist/src/cli/commands/generate/migration.js +6 -0
- package/dist/src/cli/commands/generate/model.d.ts +5 -0
- package/dist/src/cli/commands/generate/model.d.ts.map +1 -0
- package/dist/src/cli/commands/generate/model.js +6 -0
- package/dist/src/cli/commands/init.d.ts +6 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +8 -0
- package/dist/src/cli/commands/server.d.ts +5 -0
- package/dist/src/cli/commands/server.d.ts.map +1 -0
- package/dist/src/cli/commands/server.js +6 -0
- package/dist/src/cli/commands/test.d.ts +5 -0
- package/dist/src/cli/commands/test.d.ts.map +1 -0
- package/dist/src/cli/commands/test.js +6 -0
- package/dist/src/cli/index.d.ts +12 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +34 -0
- package/dist/src/cli/use-browser-cli.d.ts +10 -0
- package/dist/src/cli/use-browser-cli.d.ts.map +1 -0
- package/dist/src/cli/use-browser-cli.js +21 -0
- package/dist/src/configuration-resolver.d.ts +7 -0
- package/dist/src/configuration-resolver.d.ts.map +1 -0
- package/dist/src/configuration-resolver.js +55 -0
- package/dist/src/configuration-types.d.ts +112 -0
- package/dist/src/configuration-types.d.ts.map +1 -0
- package/dist/src/configuration-types.js +54 -0
- package/dist/src/configuration.d.ts +193 -0
- package/dist/src/configuration.d.ts.map +1 -0
- package/dist/src/configuration.js +335 -0
- package/dist/src/controller.d.ts +73 -0
- package/dist/src/controller.d.ts.map +1 -0
- package/dist/src/controller.js +141 -0
- package/dist/src/database/drivers/base-column.d.ts +72 -0
- package/dist/src/database/drivers/base-column.d.ts.map +1 -0
- package/dist/src/database/drivers/base-column.js +120 -0
- package/dist/src/database/drivers/base-columns-index.d.ts +44 -0
- package/dist/src/database/drivers/base-columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/base-columns-index.js +62 -0
- package/dist/src/database/drivers/base-foreign-key.d.ts +52 -0
- package/dist/src/database/drivers/base-foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/base-foreign-key.js +79 -0
- package/dist/src/database/drivers/base-table.d.ts +54 -0
- package/dist/src/database/drivers/base-table.d.ts.map +1 -0
- package/dist/src/database/drivers/base-table.js +106 -0
- package/dist/src/database/drivers/base.d.ts +365 -0
- package/dist/src/database/drivers/base.d.ts.map +1 -0
- package/dist/src/database/drivers/base.js +654 -0
- package/dist/src/database/drivers/mssql/column.d.ts +13 -0
- package/dist/src/database/drivers/mssql/column.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/column.js +61 -0
- package/dist/src/database/drivers/mssql/columns-index.d.ts +4 -0
- package/dist/src/database/drivers/mssql/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/columns-index.js +4 -0
- package/dist/src/database/drivers/mssql/connect-connection.d.ts +2 -0
- package/dist/src/database/drivers/mssql/connect-connection.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/connect-connection.js +13 -0
- package/dist/src/database/drivers/mssql/foreign-key.d.ts +9 -0
- package/dist/src/database/drivers/mssql/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/foreign-key.js +10 -0
- package/dist/src/database/drivers/mssql/index.d.ts +33 -0
- package/dist/src/database/drivers/mssql/index.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/index.js +304 -0
- package/dist/src/database/drivers/mssql/options.d.ts +11 -0
- package/dist/src/database/drivers/mssql/options.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/options.js +65 -0
- package/dist/src/database/drivers/mssql/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/mssql/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/query-parser.js +4 -0
- package/dist/src/database/drivers/mssql/sql/alter-table.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/alter-table.js +3 -0
- package/dist/src/database/drivers/mssql/sql/create-database.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/create-database.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/create-database.js +27 -0
- package/dist/src/database/drivers/mssql/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/create-index.js +3 -0
- package/dist/src/database/drivers/mssql/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/create-table.js +3 -0
- package/dist/src/database/drivers/mssql/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/mssql/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/delete.js +16 -0
- package/dist/src/database/drivers/mssql/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/drop-table.js +3 -0
- package/dist/src/database/drivers/mssql/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/mssql/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/insert.js +3 -0
- package/dist/src/database/drivers/mssql/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/mssql/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/sql/update.js +26 -0
- package/dist/src/database/drivers/mssql/table.d.ts +15 -0
- package/dist/src/database/drivers/mssql/table.d.ts.map +1 -0
- package/dist/src/database/drivers/mssql/table.js +116 -0
- package/dist/src/database/drivers/mysql/column.d.ts +13 -0
- package/dist/src/database/drivers/mysql/column.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/column.js +87 -0
- package/dist/src/database/drivers/mysql/columns-index.d.ts +4 -0
- package/dist/src/database/drivers/mysql/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/columns-index.js +4 -0
- package/dist/src/database/drivers/mysql/foreign-key.d.ts +9 -0
- package/dist/src/database/drivers/mysql/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/foreign-key.js +10 -0
- package/dist/src/database/drivers/mysql/index.d.ts +30 -0
- package/dist/src/database/drivers/mysql/index.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/index.js +234 -0
- package/dist/src/database/drivers/mysql/options.d.ts +11 -0
- package/dist/src/database/drivers/mysql/options.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/options.js +27 -0
- package/dist/src/database/drivers/mysql/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/mysql/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/query-parser.js +4 -0
- package/dist/src/database/drivers/mysql/query.d.ts +6 -0
- package/dist/src/database/drivers/mysql/query.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/query.js +27 -0
- package/dist/src/database/drivers/mysql/sql/alter-table.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/alter-table.js +4 -0
- package/dist/src/database/drivers/mysql/sql/create-database.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/create-database.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/create-database.js +4 -0
- package/dist/src/database/drivers/mysql/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/create-index.js +4 -0
- package/dist/src/database/drivers/mysql/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/create-table.js +4 -0
- package/dist/src/database/drivers/mysql/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/mysql/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/delete.js +17 -0
- package/dist/src/database/drivers/mysql/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/drop-table.js +4 -0
- package/dist/src/database/drivers/mysql/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/mysql/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/insert.js +4 -0
- package/dist/src/database/drivers/mysql/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/mysql/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/sql/update.js +27 -0
- package/dist/src/database/drivers/mysql/table.d.ts +15 -0
- package/dist/src/database/drivers/mysql/table.d.ts.map +1 -0
- package/dist/src/database/drivers/mysql/table.js +80 -0
- package/dist/src/database/drivers/pgsql/column.d.ts +13 -0
- package/dist/src/database/drivers/pgsql/column.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/column.js +66 -0
- package/dist/src/database/drivers/pgsql/columns-index.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/columns-index.js +4 -0
- package/dist/src/database/drivers/pgsql/foreign-key.d.ts +9 -0
- package/dist/src/database/drivers/pgsql/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/foreign-key.js +10 -0
- package/dist/src/database/drivers/pgsql/index.d.ts +21 -0
- package/dist/src/database/drivers/pgsql/index.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/index.js +211 -0
- package/dist/src/database/drivers/pgsql/options.d.ts +13 -0
- package/dist/src/database/drivers/pgsql/options.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/options.js +26 -0
- package/dist/src/database/drivers/pgsql/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/query-parser.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/alter-table.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/alter-table.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-database.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-database.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/create-database.js +33 -0
- package/dist/src/database/drivers/pgsql/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/create-index.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/create-table.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/pgsql/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/delete.js +17 -0
- package/dist/src/database/drivers/pgsql/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/drop-table.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/pgsql/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/insert.js +4 -0
- package/dist/src/database/drivers/pgsql/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/pgsql/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/sql/update.js +27 -0
- package/dist/src/database/drivers/pgsql/table.d.ts +15 -0
- package/dist/src/database/drivers/pgsql/table.d.ts.map +1 -0
- package/dist/src/database/drivers/pgsql/table.js +105 -0
- package/dist/src/database/drivers/sqlite/base.d.ts +41 -0
- package/dist/src/database/drivers/sqlite/base.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/base.js +253 -0
- package/dist/src/database/drivers/sqlite/column.d.ts +19 -0
- package/dist/src/database/drivers/sqlite/column.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/column.js +55 -0
- package/dist/src/database/drivers/sqlite/columns-index.d.ts +6 -0
- package/dist/src/database/drivers/sqlite/columns-index.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/columns-index.js +24 -0
- package/dist/src/database/drivers/sqlite/connection-remote.d.ts +9 -0
- package/dist/src/database/drivers/sqlite/connection-remote.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/connection-remote.js +11 -0
- package/dist/src/database/drivers/sqlite/connection-sql-js.d.ts +19 -0
- package/dist/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/connection-sql-js.js +38 -0
- package/dist/src/database/drivers/sqlite/foreign-key.d.ts +17 -0
- package/dist/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/foreign-key.js +19 -0
- package/dist/src/database/drivers/sqlite/index.d.ts +8 -0
- package/dist/src/database/drivers/sqlite/index.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/index.js +42 -0
- package/dist/src/database/drivers/sqlite/index.native.d.ts +9 -0
- package/dist/src/database/drivers/sqlite/index.native.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/index.native.js +57 -0
- package/dist/src/database/drivers/sqlite/index.web.d.ts +14 -0
- package/dist/src/database/drivers/sqlite/index.web.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/index.web.js +50 -0
- package/dist/src/database/drivers/sqlite/options.d.ts +13 -0
- package/dist/src/database/drivers/sqlite/options.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/options.js +26 -0
- package/dist/src/database/drivers/sqlite/query-parser.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/query-parser.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query-parser.js +4 -0
- package/dist/src/database/drivers/sqlite/query.d.ts +7 -0
- package/dist/src/database/drivers/sqlite/query.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query.js +28 -0
- package/dist/src/database/drivers/sqlite/query.native.d.ts +2 -0
- package/dist/src/database/drivers/sqlite/query.native.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query.native.js +20 -0
- package/dist/src/database/drivers/sqlite/query.web.d.ts +7 -0
- package/dist/src/database/drivers/sqlite/query.web.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/query.web.js +38 -0
- package/dist/src/database/drivers/sqlite/sql/alter-table.d.ts +6 -0
- package/dist/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/alter-table.js +122 -0
- package/dist/src/database/drivers/sqlite/sql/create-index.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/create-index.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/create-index.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/create-table.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/create-table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/create-table.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/delete.d.ts +5 -0
- package/dist/src/database/drivers/sqlite/sql/delete.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/delete.js +20 -0
- package/dist/src/database/drivers/sqlite/sql/drop-table.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/drop-table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/drop-table.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/insert.d.ts +4 -0
- package/dist/src/database/drivers/sqlite/sql/insert.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/insert.js +4 -0
- package/dist/src/database/drivers/sqlite/sql/update.d.ts +5 -0
- package/dist/src/database/drivers/sqlite/sql/update.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/sql/update.js +27 -0
- package/dist/src/database/drivers/sqlite/table.d.ts +21 -0
- package/dist/src/database/drivers/sqlite/table.d.ts.map +1 -0
- package/dist/src/database/drivers/sqlite/table.js +76 -0
- package/dist/src/database/handler.d.ts +7 -0
- package/dist/src/database/handler.d.ts.map +1 -0
- package/dist/src/database/handler.js +10 -0
- package/dist/src/database/initializer-from-require-context.d.ts +26 -0
- package/dist/src/database/initializer-from-require-context.d.ts.map +1 -0
- package/dist/src/database/initializer-from-require-context.js +40 -0
- package/dist/src/database/migration/index.d.ts +152 -0
- package/dist/src/database/migration/index.d.ts.map +1 -0
- package/dist/src/database/migration/index.js +286 -0
- package/dist/src/database/migrator/files-finder.d.ts +15 -0
- package/dist/src/database/migrator/files-finder.d.ts.map +1 -0
- package/dist/src/database/migrator/files-finder.js +40 -0
- package/dist/src/database/migrator/types.d.ts +17 -0
- package/dist/src/database/migrator/types.d.ts.map +1 -0
- package/dist/src/database/migrator/types.js +2 -0
- package/dist/src/database/migrator.d.ts +79 -0
- package/dist/src/database/migrator.d.ts.map +1 -0
- package/dist/src/database/migrator.js +377 -0
- package/dist/src/database/pool/async-tracked-multi-connection.d.ts +11 -0
- package/dist/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -0
- package/dist/src/database/pool/async-tracked-multi-connection.js +80 -0
- package/dist/src/database/pool/base-methods-forward.d.ts +6 -0
- package/dist/src/database/pool/base-methods-forward.d.ts.map +1 -0
- package/dist/src/database/pool/base-methods-forward.js +37 -0
- package/dist/src/database/pool/base.d.ts +76 -0
- package/dist/src/database/pool/base.d.ts.map +1 -0
- package/dist/src/database/pool/base.js +111 -0
- package/dist/src/database/pool/single-multi-use.d.ts +5 -0
- package/dist/src/database/pool/single-multi-use.d.ts.map +1 -0
- package/dist/src/database/pool/single-multi-use.js +35 -0
- package/dist/src/database/query/alter-table-base.d.ts +15 -0
- package/dist/src/database/query/alter-table-base.d.ts.map +1 -0
- package/dist/src/database/query/alter-table-base.js +55 -0
- package/dist/src/database/query/base.d.ts +26 -0
- package/dist/src/database/query/base.d.ts.map +1 -0
- package/dist/src/database/query/base.js +38 -0
- package/dist/src/database/query/create-database-base.d.ts +19 -0
- package/dist/src/database/query/create-database-base.d.ts.map +1 -0
- package/dist/src/database/query/create-database-base.js +29 -0
- package/dist/src/database/query/create-index-base.d.ts +31 -0
- package/dist/src/database/query/create-index-base.d.ts.map +1 -0
- package/dist/src/database/query/create-index-base.js +94 -0
- package/dist/src/database/query/create-table-base.d.ts +25 -0
- package/dist/src/database/query/create-table-base.d.ts.map +1 -0
- package/dist/src/database/query/create-table-base.js +136 -0
- package/dist/src/database/query/delete-base.d.ts +17 -0
- package/dist/src/database/query/delete-base.d.ts.map +1 -0
- package/dist/src/database/query/delete-base.js +15 -0
- package/dist/src/database/query/drop-table-base.d.ts +20 -0
- package/dist/src/database/query/drop-table-base.d.ts.map +1 -0
- package/dist/src/database/query/drop-table-base.js +44 -0
- package/dist/src/database/query/from-base.d.ts +19 -0
- package/dist/src/database/query/from-base.d.ts.map +1 -0
- package/dist/src/database/query/from-base.js +27 -0
- package/dist/src/database/query/from-plain.d.ts +9 -0
- package/dist/src/database/query/from-plain.d.ts.map +1 -0
- package/dist/src/database/query/from-plain.js +12 -0
- package/dist/src/database/query/from-table.d.ts +9 -0
- package/dist/src/database/query/from-table.d.ts.map +1 -0
- package/dist/src/database/query/from-table.js +14 -0
- package/dist/src/database/query/index.d.ts +219 -0
- package/dist/src/database/query/index.d.ts.map +1 -0
- package/dist/src/database/query/index.js +437 -0
- package/dist/src/database/query/insert-base.d.ts +41 -0
- package/dist/src/database/query/insert-base.d.ts.map +1 -0
- package/dist/src/database/query/insert-base.js +135 -0
- package/dist/src/database/query/join-base.d.ts +22 -0
- package/dist/src/database/query/join-base.d.ts.map +1 -0
- package/dist/src/database/query/join-base.js +33 -0
- package/dist/src/database/query/join-object.d.ts +24 -0
- package/dist/src/database/query/join-object.d.ts.map +1 -0
- package/dist/src/database/query/join-object.js +58 -0
- package/dist/src/database/query/join-plain.d.ts +10 -0
- package/dist/src/database/query/join-plain.d.ts.map +1 -0
- package/dist/src/database/query/join-plain.js +14 -0
- package/dist/src/database/query/order-base.d.ts +19 -0
- package/dist/src/database/query/order-base.d.ts.map +1 -0
- package/dist/src/database/query/order-base.js +26 -0
- package/dist/src/database/query/order-plain.d.ts +13 -0
- package/dist/src/database/query/order-plain.d.ts.map +1 -0
- package/dist/src/database/query/order-plain.js +22 -0
- package/dist/src/database/query/preloader/belongs-to.d.ts +15 -0
- package/dist/src/database/query/preloader/belongs-to.d.ts.map +1 -0
- package/dist/src/database/query/preloader/belongs-to.js +48 -0
- package/dist/src/database/query/preloader/has-many.d.ts +15 -0
- package/dist/src/database/query/preloader/has-many.d.ts.map +1 -0
- package/dist/src/database/query/preloader/has-many.js +63 -0
- package/dist/src/database/query/preloader/has-one.d.ts +15 -0
- package/dist/src/database/query/preloader/has-one.d.ts.map +1 -0
- package/dist/src/database/query/preloader/has-one.js +55 -0
- package/dist/src/database/query/preloader.d.ts +18 -0
- package/dist/src/database/query/preloader.d.ts.map +1 -0
- package/dist/src/database/query/preloader.js +52 -0
- package/dist/src/database/query/select-base.d.ts +17 -0
- package/dist/src/database/query/select-base.d.ts.map +1 -0
- package/dist/src/database/query/select-base.js +24 -0
- package/dist/src/database/query/select-plain.d.ts +9 -0
- package/dist/src/database/query/select-plain.d.ts.map +1 -0
- package/dist/src/database/query/select-plain.js +14 -0
- package/dist/src/database/query/select-table-and-column.d.ts +13 -0
- package/dist/src/database/query/select-table-and-column.d.ts.map +1 -0
- package/dist/src/database/query/select-table-and-column.js +22 -0
- package/dist/src/database/query/update-base.d.ts +25 -0
- package/dist/src/database/query/update-base.d.ts.map +1 -0
- package/dist/src/database/query/update-base.js +25 -0
- package/dist/src/database/query/where-base.d.ts +21 -0
- package/dist/src/database/query/where-base.d.ts.map +1 -0
- package/dist/src/database/query/where-base.js +30 -0
- package/dist/src/database/query/where-hash.d.ts +22 -0
- package/dist/src/database/query/where-hash.d.ts.map +1 -0
- package/dist/src/database/query/where-hash.js +56 -0
- package/dist/src/database/query/where-plain.d.ts +10 -0
- package/dist/src/database/query/where-plain.d.ts.map +1 -0
- package/dist/src/database/query/where-plain.js +16 -0
- package/dist/src/database/query-parser/base-query-parser.d.ts +15 -0
- package/dist/src/database/query-parser/base-query-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/base-query-parser.js +33 -0
- package/dist/src/database/query-parser/from-parser.d.ts +16 -0
- package/dist/src/database/query-parser/from-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/from-parser.js +35 -0
- package/dist/src/database/query-parser/group-parser.d.ts +18 -0
- package/dist/src/database/query-parser/group-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/group-parser.js +44 -0
- package/dist/src/database/query-parser/joins-parser.d.ts +16 -0
- package/dist/src/database/query-parser/joins-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/joins-parser.js +30 -0
- package/dist/src/database/query-parser/limit-parser.d.ts +15 -0
- package/dist/src/database/query-parser/limit-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/limit-parser.js +56 -0
- package/dist/src/database/query-parser/options.d.ts +58 -0
- package/dist/src/database/query-parser/options.d.ts.map +1 -0
- package/dist/src/database/query-parser/options.js +78 -0
- package/dist/src/database/query-parser/order-parser.d.ts +15 -0
- package/dist/src/database/query-parser/order-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/order-parser.js +39 -0
- package/dist/src/database/query-parser/select-parser.d.ts +15 -0
- package/dist/src/database/query-parser/select-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/select-parser.js +49 -0
- package/dist/src/database/query-parser/where-parser.d.ts +15 -0
- package/dist/src/database/query-parser/where-parser.d.ts.map +1 -0
- package/dist/src/database/query-parser/where-parser.js +39 -0
- package/dist/src/database/record/index.d.ts +495 -0
- package/dist/src/database/record/index.d.ts.map +1 -0
- package/dist/src/database/record/index.js +1408 -0
- package/dist/src/database/record/instance-relationships/base.d.ts +74 -0
- package/dist/src/database/record/instance-relationships/base.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/base.js +81 -0
- package/dist/src/database/record/instance-relationships/belongs-to.d.ts +4 -0
- package/dist/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/belongs-to.js +28 -0
- package/dist/src/database/record/instance-relationships/has-many.d.ts +8 -0
- package/dist/src/database/record/instance-relationships/has-many.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/has-many.js +103 -0
- package/dist/src/database/record/instance-relationships/has-one.d.ts +7 -0
- package/dist/src/database/record/instance-relationships/has-one.d.ts.map +1 -0
- package/dist/src/database/record/instance-relationships/has-one.js +50 -0
- package/dist/src/database/record/record-not-found-error.d.ts +3 -0
- package/dist/src/database/record/record-not-found-error.d.ts.map +1 -0
- package/dist/src/database/record/record-not-found-error.js +3 -0
- package/dist/src/database/record/relationships/base.d.ts +68 -0
- package/dist/src/database/record/relationships/base.d.ts.map +1 -0
- package/dist/src/database/record/relationships/base.js +79 -0
- package/dist/src/database/record/relationships/belongs-to.d.ts +5 -0
- package/dist/src/database/record/relationships/belongs-to.d.ts.map +1 -0
- package/dist/src/database/record/relationships/belongs-to.js +37 -0
- package/dist/src/database/record/relationships/has-many.d.ts +5 -0
- package/dist/src/database/record/relationships/has-many.d.ts.map +1 -0
- package/dist/src/database/record/relationships/has-many.js +30 -0
- package/dist/src/database/record/relationships/has-one.d.ts +5 -0
- package/dist/src/database/record/relationships/has-one.d.ts.map +1 -0
- package/dist/src/database/record/relationships/has-one.js +30 -0
- package/dist/src/database/record/user-module.d.ts +15 -0
- package/dist/src/database/record/user-module.d.ts.map +1 -0
- package/dist/src/database/record/user-module.js +34 -0
- package/dist/src/database/record/validators/base.d.ts +25 -0
- package/dist/src/database/record/validators/base.d.ts.map +1 -0
- package/dist/src/database/record/validators/base.js +22 -0
- package/dist/src/database/record/validators/presence.d.ts +4 -0
- package/dist/src/database/record/validators/presence.d.ts.map +1 -0
- package/dist/src/database/record/validators/presence.js +17 -0
- package/dist/src/database/record/validators/uniqueness.d.ts +4 -0
- package/dist/src/database/record/validators/uniqueness.d.ts.map +1 -0
- package/dist/src/database/record/validators/uniqueness.js +33 -0
- package/dist/src/database/table-data/index.d.ts +141 -0
- package/dist/src/database/table-data/index.d.ts.map +1 -0
- package/dist/src/database/table-data/index.js +167 -0
- package/dist/src/database/table-data/table-column.d.ts +153 -0
- package/dist/src/database/table-data/table-column.d.ts.map +1 -0
- package/dist/src/database/table-data/table-column.js +246 -0
- package/dist/src/database/table-data/table-foreign-key.d.ts +55 -0
- package/dist/src/database/table-data/table-foreign-key.d.ts.map +1 -0
- package/dist/src/database/table-data/table-foreign-key.js +51 -0
- package/dist/src/database/table-data/table-index.d.ts +31 -0
- package/dist/src/database/table-data/table-index.d.ts.map +1 -0
- package/dist/src/database/table-data/table-index.js +33 -0
- package/dist/src/database/table-data/table-reference.d.ts +10 -0
- package/dist/src/database/table-data/table-reference.d.ts.map +1 -0
- package/dist/src/database/table-data/table-reference.js +11 -0
- package/dist/src/database/use-database.d.ts +11 -0
- package/dist/src/database/use-database.d.ts.map +1 -0
- package/dist/src/database/use-database.js +39 -0
- package/dist/src/environment-handlers/base.d.ts +128 -0
- package/dist/src/environment-handlers/base.d.ts.map +1 -0
- package/dist/src/environment-handlers/base.js +136 -0
- package/dist/src/environment-handlers/browser.d.ts +65 -0
- package/dist/src/environment-handlers/browser.d.ts.map +1 -0
- package/dist/src/environment-handlers/browser.js +160 -0
- package/dist/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +14 -0
- package/dist/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/destroy/migration.js +34 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +10 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.js +219 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/migration.d.ts +19 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/migration.js +36 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/model.d.ts +18 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/generate/model.js +36 -0
- package/dist/src/environment-handlers/node/cli/commands/init.d.ts +18 -0
- package/dist/src/environment-handlers/node/cli/commands/init.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/init.js +60 -0
- package/dist/src/environment-handlers/node/cli/commands/server.d.ts +11 -0
- package/dist/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/server.js +26 -0
- package/dist/src/environment-handlers/node/cli/commands/test.d.ts +5 -0
- package/dist/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -0
- package/dist/src/environment-handlers/node/cli/commands/test.js +41 -0
- package/dist/src/environment-handlers/node.d.ts +47 -0
- package/dist/src/environment-handlers/node.d.ts.map +1 -0
- package/dist/src/environment-handlers/node.js +188 -0
- package/dist/src/error-logger.d.ts +5 -0
- package/dist/src/error-logger.d.ts.map +1 -0
- package/dist/src/error-logger.js +32 -0
- package/dist/src/http-client/header.d.ts +13 -0
- package/dist/src/http-client/header.d.ts.map +1 -0
- package/dist/src/http-client/header.js +14 -0
- package/dist/src/http-client/index.d.ts +57 -0
- package/dist/src/http-client/index.d.ts.map +1 -0
- package/dist/src/http-client/index.js +118 -0
- package/dist/src/http-client/request.d.ts +39 -0
- package/dist/src/http-client/request.d.ts.map +1 -0
- package/dist/src/http-client/request.js +66 -0
- package/dist/src/http-client/response.d.ts +31 -0
- package/dist/src/http-client/response.d.ts.map +1 -0
- package/dist/src/http-client/response.js +119 -0
- package/dist/src/http-server/client/index.d.ts +37 -0
- package/dist/src/http-server/client/index.d.ts.map +1 -0
- package/dist/src/http-server/client/index.js +116 -0
- package/dist/src/http-server/client/params-to-object.d.ts +21 -0
- package/dist/src/http-server/client/params-to-object.d.ts.map +1 -0
- package/dist/src/http-server/client/params-to-object.js +80 -0
- package/dist/src/http-server/client/request-buffer/form-data-part.d.ts +21 -0
- package/dist/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -0
- package/dist/src/http-server/client/request-buffer/form-data-part.js +45 -0
- package/dist/src/http-server/client/request-buffer/header.d.ts +15 -0
- package/dist/src/http-server/client/request-buffer/header.d.ts.map +1 -0
- package/dist/src/http-server/client/request-buffer/header.js +16 -0
- package/dist/src/http-server/client/request-buffer/index.d.ts +95 -0
- package/dist/src/http-server/client/request-buffer/index.d.ts.map +1 -0
- package/dist/src/http-server/client/request-buffer/index.js +305 -0
- package/dist/src/http-server/client/request-parser.d.ts +52 -0
- package/dist/src/http-server/client/request-parser.d.ts.map +1 -0
- package/dist/src/http-server/client/request-parser.js +98 -0
- package/dist/src/http-server/client/request-runner.d.ts +24 -0
- package/dist/src/http-server/client/request-runner.d.ts.map +1 -0
- package/dist/src/http-server/client/request-runner.js +58 -0
- package/dist/src/http-server/client/request.d.ts +39 -0
- package/dist/src/http-server/client/request.d.ts.map +1 -0
- package/dist/src/http-server/client/request.js +54 -0
- package/dist/src/http-server/client/response.d.ts +56 -0
- package/dist/src/http-server/client/response.d.ts.map +1 -0
- package/dist/src/http-server/client/response.js +90 -0
- package/dist/src/http-server/index.d.ts +58 -0
- package/dist/src/http-server/index.d.ts.map +1 -0
- package/dist/src/http-server/index.js +147 -0
- package/dist/src/http-server/server-client.d.ts +43 -0
- package/dist/src/http-server/server-client.d.ts.map +1 -0
- package/dist/src/http-server/server-client.js +70 -0
- package/dist/src/http-server/worker-handler/index.d.ts +49 -0
- package/dist/src/http-server/worker-handler/index.d.ts.map +1 -0
- package/dist/src/http-server/worker-handler/index.js +104 -0
- package/dist/src/http-server/worker-handler/worker-script.d.ts +2 -0
- package/dist/src/http-server/worker-handler/worker-script.d.ts.map +1 -0
- package/dist/src/http-server/worker-handler/worker-script.js +4 -0
- package/dist/src/http-server/worker-handler/worker-thread.d.ts +47 -0
- package/dist/src/http-server/worker-handler/worker-thread.d.ts.map +1 -0
- package/dist/src/http-server/worker-handler/worker-thread.js +88 -0
- package/dist/src/initializer.d.ts +27 -0
- package/dist/src/initializer.d.ts.map +1 -0
- package/dist/src/initializer.js +29 -0
- package/dist/src/logger.d.ts +39 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +154 -0
- package/dist/src/routes/app-routes.d.ts +8 -0
- package/dist/src/routes/app-routes.d.ts.map +1 -0
- package/dist/src/routes/app-routes.js +13 -0
- package/dist/src/routes/base-route.d.ts +60 -0
- package/dist/src/routes/base-route.d.ts.map +1 -0
- package/dist/src/routes/base-route.js +67 -0
- package/dist/src/routes/basic-route.d.ts +10 -0
- package/dist/src/routes/basic-route.d.ts.map +1 -0
- package/dist/src/routes/basic-route.js +61 -0
- package/dist/src/routes/built-in/errors/controller.d.ts +5 -0
- package/dist/src/routes/built-in/errors/controller.d.ts.map +1 -0
- package/dist/src/routes/built-in/errors/controller.js +6 -0
- package/dist/src/routes/get-route.d.ts +14 -0
- package/dist/src/routes/get-route.d.ts.map +1 -0
- package/dist/src/routes/get-route.js +33 -0
- package/dist/src/routes/index.d.ts +10 -0
- package/dist/src/routes/index.d.ts.map +1 -0
- package/dist/src/routes/index.js +16 -0
- package/dist/src/routes/namespace-route.d.ts +14 -0
- package/dist/src/routes/namespace-route.d.ts.map +1 -0
- package/dist/src/routes/namespace-route.js +34 -0
- package/dist/src/routes/post-route.d.ts +14 -0
- package/dist/src/routes/post-route.d.ts.map +1 -0
- package/dist/src/routes/post-route.js +33 -0
- package/dist/src/routes/resolver.d.ts +27 -0
- package/dist/src/routes/resolver.d.ts.map +1 -0
- package/dist/src/routes/resolver.js +92 -0
- package/dist/src/routes/resource-route.d.ts +14 -0
- package/dist/src/routes/resource-route.d.ts.map +1 -0
- package/dist/src/routes/resource-route.js +51 -0
- package/dist/src/routes/root-route.d.ts +4 -0
- package/dist/src/routes/root-route.d.ts.map +1 -0
- package/dist/src/routes/root-route.js +4 -0
- package/dist/src/testing/request-client.d.ts +35 -0
- package/dist/src/testing/request-client.d.ts.map +1 -0
- package/dist/src/testing/request-client.js +61 -0
- package/dist/src/testing/test-files-finder.d.ts +64 -0
- package/dist/src/testing/test-files-finder.d.ts.map +1 -0
- package/dist/src/testing/test-files-finder.js +159 -0
- package/dist/src/testing/test-runner.d.ts +163 -0
- package/dist/src/testing/test-runner.d.ts.map +1 -0
- package/dist/src/testing/test-runner.js +257 -0
- package/dist/src/testing/test.d.ts +157 -0
- package/dist/src/testing/test.d.ts.map +1 -0
- package/dist/src/testing/test.js +408 -0
- package/dist/src/utils/backtrace-cleaner.d.ts +17 -0
- package/dist/src/utils/backtrace-cleaner.d.ts.map +1 -0
- package/dist/src/utils/backtrace-cleaner.js +23 -0
- package/dist/src/utils/ensure-error.d.ts +6 -0
- package/dist/src/utils/ensure-error.d.ts.map +1 -0
- package/dist/src/utils/ensure-error.js +13 -0
- package/dist/src/utils/file-exists.d.ts +6 -0
- package/dist/src/utils/file-exists.d.ts.map +1 -0
- package/dist/src/utils/file-exists.js +15 -0
- package/dist/src/utils/nest-callbacks.d.ts +2 -0
- package/dist/src/utils/nest-callbacks.d.ts.map +1 -0
- package/dist/src/utils/nest-callbacks.js +11 -0
- package/dist/src/utils/rest-args-error.d.ts +6 -0
- package/dist/src/utils/rest-args-error.d.ts.map +1 -0
- package/dist/src/utils/rest-args-error.js +11 -0
- package/dist/src/utils/with-tracked-stack-async-hooks.d.ts +10 -0
- package/dist/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -0
- package/dist/src/utils/with-tracked-stack-async-hooks.js +69 -0
- package/dist/src/utils/with-tracked-stack.d.ts +8 -0
- package/dist/src/utils/with-tracked-stack.d.ts.map +1 -0
- package/dist/src/utils/with-tracked-stack.js +26 -0
- package/package.json +7 -3
- package/.github/dependabot.yml +0 -9
- package/bin/velocious.js +0 -34
- package/eslint.config.js +0 -34
- package/index.js +0 -1
- package/peak_flow.yml +0 -89
- package/run-tests.sh +0 -4
- package/spec/cli/commands/db/create-spec.js +0 -58
- package/spec/cli/commands/db/migrate-spec.js +0 -160
- package/spec/cli/commands/db/rollback-spec.js +0 -179
- package/spec/cli/commands/destroy/migration-spec.js +0 -19
- package/spec/cli/commands/generate/migration-spec.js +0 -22
- package/spec/cli/commands/init-spec.js +0 -23
- package/spec/cli/commands/test/test-files-finder-spec.js +0 -15
- package/spec/database/connection/drivers/mysql/query-parser-spec.js +0 -41
- package/spec/database/drivers/columns-spec.js +0 -27
- package/spec/database/drivers/create-sql/create-index-sql-spec.js +0 -24
- package/spec/database/drivers/mysql/connection-spec.js +0 -22
- package/spec/database/migration/column-exists-spec.js +0 -28
- package/spec/database/record/create-spec.js +0 -140
- package/spec/database/record/destroy-spec.js +0 -35
- package/spec/database/record/find-or-create-spec.js +0 -59
- package/spec/database/record/find-spec.js +0 -32
- package/spec/database/record/instance-relationships/belongs-to-relationship-spec.js +0 -21
- package/spec/database/record/instance-relationships/has-many-relationship-spec.js +0 -24
- package/spec/database/record/instance-relationships/has-one-relationship-spec.js +0 -24
- package/spec/database/record/last-spec.js +0 -29
- package/spec/database/record/preloader/belongs-to-spec.js +0 -15
- package/spec/database/record/preloader/has-many-spec.js +0 -29
- package/spec/database/record/preloader/has-one-spec.js +0 -15
- package/spec/database/record/query-spec.js +0 -120
- package/spec/database/record/translation-fallbacks-spec.js +0 -24
- package/spec/database/record/translations-spec.js +0 -10
- package/spec/database/record/update-spec.js +0 -31
- package/spec/database/record/validations-spec.js +0 -42
- package/spec/database/transactions-spec.js +0 -47
- package/spec/dummy/db/.keep +0 -0
- package/spec/dummy/dummy-directory.js +0 -13
- package/spec/dummy/index.js +0 -83
- package/spec/dummy/src/config/configuration.example.js +0 -70
- package/spec/dummy/src/config/configuration.peakflow.mariadb.js +0 -65
- package/spec/dummy/src/config/configuration.peakflow.mssql.js +0 -71
- package/spec/dummy/src/config/configuration.peakflow.pgsql.js +0 -65
- package/spec/dummy/src/config/configuration.peakflow.sqlite.js +0 -62
- package/spec/dummy/src/config/routes.js +0 -15
- package/spec/dummy/src/config/testing.js +0 -34
- package/spec/dummy/src/database/migrations/20230728075328-create-projects.js +0 -10
- package/spec/dummy/src/database/migrations/20230728075329-create-tasks.js +0 -12
- package/spec/dummy/src/database/migrations/20250605133926-create-project-translations.js +0 -16
- package/spec/dummy/src/database/migrations/20250903112845-create-accounts.js +0 -18
- package/spec/dummy/src/database/migrations/20250912183605-create-users.js +0 -16
- package/spec/dummy/src/database/migrations/20250912183606-create-authentication-tokens.js +0 -15
- package/spec/dummy/src/database/migrations/20250915085450-change-authentication-tokens-user-id-nullable.js +0 -11
- package/spec/dummy/src/database/migrations/20250916111330-rename_authentication_tokens_token_to_user_token.js +0 -11
- package/spec/dummy/src/database/migrations/20250921121002-create-project-details.js +0 -17
- package/spec/dummy/src/model-bases/account.js +0 -67
- package/spec/dummy/src/model-bases/authentication-token.js +0 -108
- package/spec/dummy/src/model-bases/project-detail.js +0 -101
- package/spec/dummy/src/model-bases/project-translation.js +0 -124
- package/spec/dummy/src/model-bases/project.js +0 -196
- package/spec/dummy/src/model-bases/task.js +0 -117
- package/spec/dummy/src/model-bases/user.js +0 -170
- package/spec/dummy/src/models/account.js +0 -8
- package/spec/dummy/src/models/authentication-token.js +0 -8
- package/spec/dummy/src/models/project-detail.js +0 -8
- package/spec/dummy/src/models/project.js +0 -11
- package/spec/dummy/src/models/task.js +0 -9
- package/spec/dummy/src/models/user.js +0 -18
- package/spec/dummy/src/routes/_root/controller.js +0 -11
- package/spec/dummy/src/routes/projects/controller.js +0 -33
- package/spec/dummy/src/routes/tasks/controller.js +0 -25
- package/spec/dummy/src/routes/tasks/index.ejs +0 -1
- package/spec/dummy/src/routes/tasks/show.ejs +0 -0
- package/spec/http-server/client-spec.js +0 -37
- package/spec/http-server/get-spec.js +0 -86
- package/spec/http-server/post-spec.js +0 -93
- package/spec/http-server/root-get-spec.js +0 -31
- package/src/application.js +0 -123
- package/src/cli/base-command.js +0 -40
- package/src/cli/browser-cli.js +0 -37
- package/src/cli/commands/db/create.js +0 -72
- package/src/cli/commands/db/drop.js +0 -18
- package/src/cli/commands/db/migrate.js +0 -17
- package/src/cli/commands/db/reset.js +0 -22
- package/src/cli/commands/db/rollback.js +0 -15
- package/src/cli/commands/destroy/migration.js +0 -7
- package/src/cli/commands/generate/base-models.js +0 -7
- package/src/cli/commands/generate/migration.js +0 -7
- package/src/cli/commands/generate/model.js +0 -7
- package/src/cli/commands/init.js +0 -11
- package/src/cli/commands/server.js +0 -7
- package/src/cli/commands/test.js +0 -7
- package/src/cli/index.js +0 -39
- package/src/cli/use-browser-cli.js +0 -27
- package/src/configuration-resolver.js +0 -61
- package/src/configuration-types.js +0 -61
- package/src/configuration.js +0 -395
- package/src/controller.js +0 -166
- package/src/database/drivers/base-column.js +0 -141
- package/src/database/drivers/base-columns-index.js +0 -72
- package/src/database/drivers/base-foreign-key.js +0 -91
- package/src/database/drivers/base-table.js +0 -129
- package/src/database/drivers/base.js +0 -751
- package/src/database/drivers/mssql/column.js +0 -72
- package/src/database/drivers/mssql/columns-index.js +0 -6
- package/src/database/drivers/mssql/connect-connection.js +0 -12
- package/src/database/drivers/mssql/foreign-key.js +0 -12
- package/src/database/drivers/mssql/index.js +0 -357
- package/src/database/drivers/mssql/options.js +0 -72
- package/src/database/drivers/mssql/query-parser.js +0 -6
- package/src/database/drivers/mssql/sql/alter-table.js +0 -4
- package/src/database/drivers/mssql/sql/create-database.js +0 -35
- package/src/database/drivers/mssql/sql/create-index.js +0 -4
- package/src/database/drivers/mssql/sql/create-table.js +0 -4
- package/src/database/drivers/mssql/sql/delete.js +0 -19
- package/src/database/drivers/mssql/sql/drop-table.js +0 -4
- package/src/database/drivers/mssql/sql/insert.js +0 -4
- package/src/database/drivers/mssql/sql/update.js +0 -31
- package/src/database/drivers/mssql/table.js +0 -132
- package/src/database/drivers/mysql/column.js +0 -105
- package/src/database/drivers/mysql/columns-index.js +0 -6
- package/src/database/drivers/mysql/foreign-key.js +0 -12
- package/src/database/drivers/mysql/index.js +0 -275
- package/src/database/drivers/mysql/options.js +0 -31
- package/src/database/drivers/mysql/query-parser.js +0 -6
- package/src/database/drivers/mysql/query.js +0 -31
- package/src/database/drivers/mysql/sql/alter-table.js +0 -6
- package/src/database/drivers/mysql/sql/create-database.js +0 -6
- package/src/database/drivers/mysql/sql/create-index.js +0 -6
- package/src/database/drivers/mysql/sql/create-table.js +0 -6
- package/src/database/drivers/mysql/sql/delete.js +0 -21
- package/src/database/drivers/mysql/sql/drop-table.js +0 -6
- package/src/database/drivers/mysql/sql/insert.js +0 -6
- package/src/database/drivers/mysql/sql/update.js +0 -33
- package/src/database/drivers/mysql/table.js +0 -96
- package/src/database/drivers/pgsql/column.js +0 -81
- package/src/database/drivers/pgsql/columns-index.js +0 -6
- package/src/database/drivers/pgsql/foreign-key.js +0 -12
- package/src/database/drivers/pgsql/index.js +0 -250
- package/src/database/drivers/pgsql/options.js +0 -30
- package/src/database/drivers/pgsql/query-parser.js +0 -6
- package/src/database/drivers/pgsql/sql/alter-table.js +0 -6
- package/src/database/drivers/pgsql/sql/create-database.js +0 -38
- package/src/database/drivers/pgsql/sql/create-index.js +0 -6
- package/src/database/drivers/pgsql/sql/create-table.js +0 -6
- package/src/database/drivers/pgsql/sql/delete.js +0 -21
- package/src/database/drivers/pgsql/sql/drop-table.js +0 -6
- package/src/database/drivers/pgsql/sql/insert.js +0 -6
- package/src/database/drivers/pgsql/sql/update.js +0 -33
- package/src/database/drivers/pgsql/table.js +0 -123
- package/src/database/drivers/sqlite/base.js +0 -303
- package/src/database/drivers/sqlite/column.js +0 -70
- package/src/database/drivers/sqlite/columns-index.js +0 -30
- package/src/database/drivers/sqlite/connection-remote.js +0 -12
- package/src/database/drivers/sqlite/connection-sql-js.js +0 -49
- package/src/database/drivers/sqlite/foreign-key.js +0 -22
- package/src/database/drivers/sqlite/index.js +0 -52
- package/src/database/drivers/sqlite/index.native.js +0 -68
- package/src/database/drivers/sqlite/index.web.js +0 -63
- package/src/database/drivers/sqlite/options.js +0 -30
- package/src/database/drivers/sqlite/query-parser.js +0 -6
- package/src/database/drivers/sqlite/query.js +0 -32
- package/src/database/drivers/sqlite/query.native.js +0 -25
- package/src/database/drivers/sqlite/query.web.js +0 -46
- package/src/database/drivers/sqlite/sql/alter-table.js +0 -153
- package/src/database/drivers/sqlite/sql/create-index.js +0 -6
- package/src/database/drivers/sqlite/sql/create-table.js +0 -6
- package/src/database/drivers/sqlite/sql/delete.js +0 -26
- package/src/database/drivers/sqlite/sql/drop-table.js +0 -6
- package/src/database/drivers/sqlite/sql/insert.js +0 -6
- package/src/database/drivers/sqlite/sql/update.js +0 -33
- package/src/database/drivers/sqlite/table.js +0 -97
- package/src/database/handler.js +0 -12
- package/src/database/initializer-from-require-context.js +0 -50
- package/src/database/migration/index.js +0 -345
- package/src/database/migrator/files-finder.js +0 -51
- package/src/database/migrator/types.js +0 -31
- package/src/database/migrator.js +0 -434
- package/src/database/pool/async-tracked-multi-connection.js +0 -103
- package/src/database/pool/base-methods-forward.js +0 -40
- package/src/database/pool/base.js +0 -133
- package/src/database/pool/single-multi-use.js +0 -43
- package/src/database/query/alter-table-base.js +0 -62
- package/src/database/query/base.js +0 -46
- package/src/database/query/create-database-base.js +0 -35
- package/src/database/query/create-index-base.js +0 -114
- package/src/database/query/create-table-base.js +0 -169
- package/src/database/query/delete-base.js +0 -17
- package/src/database/query/drop-table-base.js +0 -56
- package/src/database/query/from-base.js +0 -31
- package/src/database/query/from-plain.js +0 -15
- package/src/database/query/from-table.js +0 -17
- package/src/database/query/index.js +0 -530
- package/src/database/query/insert-base.js +0 -156
- package/src/database/query/join-base.js +0 -39
- package/src/database/query/join-object.js +0 -67
- package/src/database/query/join-plain.js +0 -17
- package/src/database/query/order-base.js +0 -30
- package/src/database/query/order-plain.js +0 -27
- package/src/database/query/preloader/belongs-to.js +0 -63
- package/src/database/query/preloader/has-many.js +0 -83
- package/src/database/query/preloader/has-one.js +0 -74
- package/src/database/query/preloader.js +0 -61
- package/src/database/query/select-base.js +0 -27
- package/src/database/query/select-plain.js +0 -17
- package/src/database/query/select-table-and-column.js +0 -27
- package/src/database/query/update-base.js +0 -28
- package/src/database/query/where-base.js +0 -34
- package/src/database/query/where-hash.js +0 -66
- package/src/database/query/where-plain.js +0 -19
- package/src/database/query-parser/base-query-parser.js +0 -39
- package/src/database/query-parser/from-parser.js +0 -45
- package/src/database/query-parser/group-parser.js +0 -53
- package/src/database/query-parser/joins-parser.js +0 -36
- package/src/database/query-parser/limit-parser.js +0 -61
- package/src/database/query-parser/options.js +0 -85
- package/src/database/query-parser/order-parser.js +0 -44
- package/src/database/query-parser/select-parser.js +0 -60
- package/src/database/query-parser/where-parser.js +0 -45
- package/src/database/record/index.js +0 -1682
- package/src/database/record/instance-relationships/base.js +0 -103
- package/src/database/record/instance-relationships/belongs-to.js +0 -37
- package/src/database/record/instance-relationships/has-many.js +0 -116
- package/src/database/record/instance-relationships/has-one.js +0 -66
- package/src/database/record/record-not-found-error.js +0 -3
- package/src/database/record/relationships/base.js +0 -91
- package/src/database/record/relationships/belongs-to.js +0 -46
- package/src/database/record/relationships/has-many.js +0 -39
- package/src/database/record/relationships/has-one.js +0 -39
- package/src/database/record/user-module.js +0 -41
- package/src/database/record/validators/base.js +0 -24
- package/src/database/record/validators/presence.js +0 -20
- package/src/database/record/validators/uniqueness.js +0 -42
- package/src/database/table-data/index.js +0 -199
- package/src/database/table-data/table-column.js +0 -283
- package/src/database/table-data/table-foreign-key.js +0 -61
- package/src/database/table-data/table-index.js +0 -41
- package/src/database/table-data/table-reference.js +0 -12
- package/src/database/use-database.js +0 -48
- package/src/environment-handlers/base.js +0 -158
- package/src/environment-handlers/browser.js +0 -193
- package/src/environment-handlers/node/cli/commands/destroy/migration.js +0 -42
- package/src/environment-handlers/node/cli/commands/generate/base-models.js +0 -258
- package/src/environment-handlers/node/cli/commands/generate/migration.js +0 -40
- package/src/environment-handlers/node/cli/commands/generate/model.js +0 -40
- package/src/environment-handlers/node/cli/commands/init.js +0 -66
- package/src/environment-handlers/node/cli/commands/server.js +0 -30
- package/src/environment-handlers/node/cli/commands/test.js +0 -47
- package/src/environment-handlers/node.js +0 -227
- package/src/error-logger.js +0 -32
- package/src/http-client/header.js +0 -16
- package/src/http-client/index.js +0 -135
- package/src/http-client/request.js +0 -83
- package/src/http-client/response.js +0 -136
- package/src/http-server/client/index.js +0 -137
- package/src/http-server/client/params-to-object.js +0 -88
- package/src/http-server/client/request-buffer/form-data-part.js +0 -53
- package/src/http-server/client/request-buffer/header.js +0 -18
- package/src/http-server/client/request-buffer/index.js +0 -345
- package/src/http-server/client/request-parser.js +0 -118
- package/src/http-server/client/request-runner.js +0 -68
- package/src/http-server/client/request.js +0 -63
- package/src/http-server/client/response.js +0 -100
- package/src/http-server/index.js +0 -180
- package/src/http-server/server-client.js +0 -81
- package/src/http-server/worker-handler/index.js +0 -120
- package/src/http-server/worker-handler/worker-script.js +0 -6
- package/src/http-server/worker-handler/worker-thread.js +0 -106
- package/src/initializer.js +0 -35
- package/src/logger.js +0 -174
- package/src/routes/app-routes.js +0 -16
- package/src/routes/base-route.js +0 -82
- package/src/routes/basic-route.js +0 -76
- package/src/routes/built-in/errors/controller.js +0 -7
- package/src/routes/built-in/errors/not-found.ejs +0 -1
- package/src/routes/get-route.js +0 -42
- package/src/routes/index.js +0 -19
- package/src/routes/namespace-route.js +0 -42
- package/src/routes/post-route.js +0 -41
- package/src/routes/resolver.js +0 -102
- package/src/routes/resource-route.js +0 -61
- package/src/routes/root-route.js +0 -6
- package/src/templates/configuration.js +0 -60
- package/src/templates/generate-migration.js +0 -11
- package/src/templates/generate-model.js +0 -6
- package/src/templates/routes.js +0 -11
- package/src/testing/request-client.js +0 -77
- package/src/testing/test-files-finder.js +0 -191
- package/src/testing/test-runner.js +0 -301
- package/src/testing/test.js +0 -462
- package/src/utils/backtrace-cleaner.js +0 -27
- package/src/utils/ensure-error.js +0 -13
- package/src/utils/file-exists.js +0 -17
- package/src/utils/nest-callbacks.js +0 -15
- package/src/utils/rest-args-error.js +0 -13
- package/src/utils/with-tracked-stack-async-hooks.js +0 -85
- package/src/utils/with-tracked-stack.js +0 -30
- package/tsconfig.json +0 -15
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
4
|
-
/** @type {boolean | undefined} */
|
|
5
|
-
_autoSave = undefined
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @param {object} args
|
|
9
|
-
* @param {import("../index.js").default} args.model
|
|
10
|
-
* @param {import("../relationships/base.js").default} args.relationship
|
|
11
|
-
*/
|
|
12
|
-
constructor({model, relationship}) {
|
|
13
|
-
this._dirty = false
|
|
14
|
-
this.model = model
|
|
15
|
-
this.relationship = relationship
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @abstract
|
|
20
|
-
* @param {import("../index.js").default[] | import("../index.js").default} models
|
|
21
|
-
* @returns {void}
|
|
22
|
-
*/
|
|
23
|
-
addToLoaded(models) { // eslint-disable-line no-unused-vars
|
|
24
|
-
throw new Error("addToLoaded not implemented")
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @abstract
|
|
29
|
-
* @param {Record<string, any>} attributes
|
|
30
|
-
* @returns {import("../index.js").default}
|
|
31
|
-
*/
|
|
32
|
-
build(attributes) { // eslint-disable-line no-unused-vars
|
|
33
|
-
throw new Error("'build' not implemented")
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** @returns {boolean | undefined} Whether the relationship should be auto-saved before saving the parent model */
|
|
37
|
-
getAutoSave() { return this._autoSave }
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* @param {boolean} newAutoSaveValue Whether the relationship should be auto-saved before saving the parent model
|
|
41
|
-
* @returns {void}
|
|
42
|
-
*/
|
|
43
|
-
setAutoSave(newAutoSaveValue) { this._autoSave = newAutoSaveValue }
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @param {boolean} newValue Whether the relationship is dirty (has been modified)
|
|
47
|
-
* @returns {void}
|
|
48
|
-
*/
|
|
49
|
-
setDirty(newValue) { this._dirty = newValue }
|
|
50
|
-
|
|
51
|
-
/** @returns {boolean} Whether the relationship is dirty (has been modified) */
|
|
52
|
-
getDirty() { return this._dirty }
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @abstract
|
|
56
|
-
* @returns {Promise<void>}
|
|
57
|
-
*/
|
|
58
|
-
load() {
|
|
59
|
-
throw new Error("'load' not implemented")
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/** @returns {boolean} Whether the relationship has been preloaded */
|
|
63
|
-
isLoaded() { return Boolean(this._loaded) }
|
|
64
|
-
|
|
65
|
-
/** @returns {import("../index.js").default | Array<import("../index.js").default> | undefined} The loaded model or models (depending on relationship type) */
|
|
66
|
-
loaded() {
|
|
67
|
-
if (!this._preloaded && this.model.isPersisted()) {
|
|
68
|
-
throw new Error(`${this.model.constructor.name}#${this.relationship.getRelationshipName()} hasn't been preloaded`)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return this._loaded
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** @param {import("../index.js").default|Array<import("../index.js").default>|undefined} model */
|
|
75
|
-
setLoaded(model) { this._loaded = model }
|
|
76
|
-
|
|
77
|
-
/** @returns {import("../index.js").default | import("../index.js").default[] | undefined} */
|
|
78
|
-
getLoadedOrUndefined() { return this._loaded }
|
|
79
|
-
|
|
80
|
-
/** @returns {boolean} The loaded model or models (depending on relationship type) */
|
|
81
|
-
getPreloaded() { return this._preloaded || false }
|
|
82
|
-
|
|
83
|
-
/** @param {boolean} isPreloaded */
|
|
84
|
-
setPreloaded(isPreloaded) { this._preloaded = isPreloaded }
|
|
85
|
-
|
|
86
|
-
/** @returns {string} The foreign key for this relationship */
|
|
87
|
-
getForeignKey() { return this.getRelationship().getForeignKey() }
|
|
88
|
-
|
|
89
|
-
/** @returns {import("../index.js").default} model */
|
|
90
|
-
getModel() { return this.model }
|
|
91
|
-
|
|
92
|
-
/** @returns {string} The primary key for this relationship's model */
|
|
93
|
-
getPrimaryKey() { return this.getRelationship().getPrimaryKey() }
|
|
94
|
-
|
|
95
|
-
/** @returns {import("../relationships/base.js").default} The relationship object that this instance relationship is based on */
|
|
96
|
-
getRelationship() { return this.relationship }
|
|
97
|
-
|
|
98
|
-
/** @returns {typeof import("../index.js").default | undefined} The model class that this instance relationship */
|
|
99
|
-
getTargetModelClass() { return this.getRelationship().getTargetModelClass() }
|
|
100
|
-
|
|
101
|
-
/** @returns {string} The type of relationship (e.g. "has_many", "belongs_to", etc.) */
|
|
102
|
-
getType() { return this.getRelationship().getType() }
|
|
103
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import BaseInstanceRelationship from "./base.js"
|
|
4
|
-
|
|
5
|
-
export default class VelociousDatabaseRecordBelongsToInstanceRelationship extends BaseInstanceRelationship {
|
|
6
|
-
/**
|
|
7
|
-
* @param {Record<string, any>} data
|
|
8
|
-
* @returns {import("../index.js").default}
|
|
9
|
-
*/
|
|
10
|
-
build(data) {
|
|
11
|
-
const TargetModelClass = this.getTargetModelClass()
|
|
12
|
-
|
|
13
|
-
if (!TargetModelClass) throw new Error("Can't build a new record without a target model")
|
|
14
|
-
|
|
15
|
-
const newInstance = new TargetModelClass(data)
|
|
16
|
-
|
|
17
|
-
this._loaded = newInstance
|
|
18
|
-
|
|
19
|
-
return newInstance
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getLoadedOrUndefined() { return this._loaded }
|
|
23
|
-
|
|
24
|
-
async load() {
|
|
25
|
-
const foreignKey = this.getForeignKey()
|
|
26
|
-
const foreignModelID = this.getModel().readColumn(foreignKey)
|
|
27
|
-
const TargetModelClass = this.getTargetModelClass()
|
|
28
|
-
|
|
29
|
-
if (!TargetModelClass) throw new Error("Can't load without a target model")
|
|
30
|
-
|
|
31
|
-
const foreignModel = await TargetModelClass.find(foreignModelID)
|
|
32
|
-
|
|
33
|
-
this.setLoaded(foreignModel)
|
|
34
|
-
this.setDirty(false)
|
|
35
|
-
this.setPreloaded(true)
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import BaseInstanceRelationship from "./base.js"
|
|
4
|
-
|
|
5
|
-
export default class VelociousDatabaseRecordHasManyInstanceRelationship extends BaseInstanceRelationship {
|
|
6
|
-
/**
|
|
7
|
-
* @param {Record<string, any>} data
|
|
8
|
-
* @returns {import("../index.js").default}
|
|
9
|
-
*/
|
|
10
|
-
build(data) {
|
|
11
|
-
// Spawn new model of the targeted class
|
|
12
|
-
const targetModelClass = this.getTargetModelClass()
|
|
13
|
-
|
|
14
|
-
if (!targetModelClass) throw new Error("Can't build a new record without a taget model class")
|
|
15
|
-
|
|
16
|
-
const newInstance = new targetModelClass(data)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// Add it to the loaded models of this relationship
|
|
20
|
-
if (this._loaded === undefined) {
|
|
21
|
-
/** @type {import("../index.js").default[]} */
|
|
22
|
-
this._loaded = [newInstance]
|
|
23
|
-
} else if (Array.isArray(this._loaded)) {
|
|
24
|
-
this._loaded.push(newInstance)
|
|
25
|
-
} else {
|
|
26
|
-
throw new Error(`Loaded had an unexpected type: ${typeof this._loaded}`)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Set loaded on the models inversed relationship
|
|
31
|
-
const inverseOf = this.getRelationship().getInverseOf()
|
|
32
|
-
|
|
33
|
-
if (inverseOf) {
|
|
34
|
-
const inverseInstanceRelationship = newInstance.getRelationshipByName(inverseOf)
|
|
35
|
-
|
|
36
|
-
inverseInstanceRelationship.setAutoSave(false)
|
|
37
|
-
inverseInstanceRelationship.setLoaded(this.getModel())
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
// Return the new contructed model
|
|
42
|
-
return newInstance
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
async load() {
|
|
46
|
-
const foreignKey = this.getForeignKey()
|
|
47
|
-
const primaryKey = this.getPrimaryKey()
|
|
48
|
-
const primaryModelID = this.getModel().readColumn(primaryKey)
|
|
49
|
-
const TargetModelClass = this.getTargetModelClass()
|
|
50
|
-
|
|
51
|
-
if (!TargetModelClass) throw new Error("Cannot load without a target model class")
|
|
52
|
-
|
|
53
|
-
/** @type {Record<string, any>} */
|
|
54
|
-
const whereArgs = {}
|
|
55
|
-
|
|
56
|
-
whereArgs[foreignKey] = primaryModelID
|
|
57
|
-
|
|
58
|
-
const foreignModels = await TargetModelClass.where(whereArgs).toArray()
|
|
59
|
-
|
|
60
|
-
this.setLoaded(foreignModels)
|
|
61
|
-
this.setDirty(false)
|
|
62
|
-
this.setPreloaded(true)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @returns {import("../index.js").default | Array<import("../index.js").default> | undefined} The loaded model or models (depending on relationship type)
|
|
67
|
-
*/
|
|
68
|
-
loaded() {
|
|
69
|
-
if (!this._preloaded && this.model.isPersisted()) {
|
|
70
|
-
throw new Error(`${this.model.constructor.name}#${this.relationship.getRelationshipName()} hasn't been preloaded`)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (this._loaded === undefined && this.model.isNewRecord()) {
|
|
74
|
-
return []
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return this._loaded
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* @param {import("../index.js").default[] | import("../index.js").default} models
|
|
82
|
-
* @returns {void}
|
|
83
|
-
*/
|
|
84
|
-
addToLoaded(models) {
|
|
85
|
-
if (!models) {
|
|
86
|
-
throw new Error("Need to give something")
|
|
87
|
-
} else if (Array.isArray(models)) {
|
|
88
|
-
for (const model of models) {
|
|
89
|
-
if (this._loaded === undefined) {
|
|
90
|
-
this._loaded = [model]
|
|
91
|
-
} else if (Array.isArray(this._loaded)) {
|
|
92
|
-
this._loaded.push(model)
|
|
93
|
-
} else {
|
|
94
|
-
throw new Error(`Unexpected loaded type: ${typeof this._loaded}`)
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
} else {
|
|
98
|
-
if (this._loaded === undefined) {
|
|
99
|
-
this._loaded = [models]
|
|
100
|
-
} else if (Array.isArray(this._loaded)) {
|
|
101
|
-
this._loaded.push(models)
|
|
102
|
-
} else {
|
|
103
|
-
throw new Error(`Unexpected loaded type: ${typeof this._loaded}`)
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* @param {import("../index.js").default[]} models
|
|
110
|
-
*/
|
|
111
|
-
setLoaded(models) {
|
|
112
|
-
if (!Array.isArray(models)) throw new Error(`Argument given to setLoaded wasn't an array: ${typeof models}`)
|
|
113
|
-
|
|
114
|
-
this._loaded = models
|
|
115
|
-
}
|
|
116
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import BaseInstanceRelationship from "./base.js"
|
|
4
|
-
|
|
5
|
-
export default class VelociousDatabaseRecordHasOneInstanceRelationship extends BaseInstanceRelationship {
|
|
6
|
-
/** @type {import("../index.js").default | undefined} */
|
|
7
|
-
_loaded = undefined
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @param {Record<string, any>} data
|
|
11
|
-
* @returns {import("../index.js").default}
|
|
12
|
-
*/
|
|
13
|
-
build(data) {
|
|
14
|
-
const TargetModelClass = this.getTargetModelClass()
|
|
15
|
-
|
|
16
|
-
if (!TargetModelClass) throw new Error("Can't build a new record without a target model class")
|
|
17
|
-
|
|
18
|
-
const newInstance = new TargetModelClass(data)
|
|
19
|
-
|
|
20
|
-
this._loaded = newInstance
|
|
21
|
-
|
|
22
|
-
return newInstance
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async load() {
|
|
26
|
-
const foreignKey = this.getForeignKey()
|
|
27
|
-
const primaryKey = this.getPrimaryKey()
|
|
28
|
-
const primaryModelID = this.getModel().readColumn(primaryKey)
|
|
29
|
-
const TargetModelClass = this.getTargetModelClass()
|
|
30
|
-
|
|
31
|
-
if (!TargetModelClass) throw new Error("Can't load without a target model class")
|
|
32
|
-
|
|
33
|
-
/** @type {Record<string, any>} */
|
|
34
|
-
const whereArgs = {}
|
|
35
|
-
|
|
36
|
-
whereArgs[foreignKey] = primaryModelID
|
|
37
|
-
|
|
38
|
-
const foreignModel = await TargetModelClass.where(whereArgs).first()
|
|
39
|
-
|
|
40
|
-
this.setLoaded(foreignModel)
|
|
41
|
-
this.setDirty(false)
|
|
42
|
-
this.setPreloaded(true)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @returns {import("../index.js").default | Array<import("../index.js").default> | undefined} The loaded model or models (depending on relationship type)
|
|
47
|
-
*/
|
|
48
|
-
loaded() {
|
|
49
|
-
if (!this._preloaded && this.model.isPersisted()) {
|
|
50
|
-
throw new Error(`${this.model.constructor.name}#${this.relationship.getRelationshipName()} hasn't been preloaded`)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return this._loaded
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
getLoadedOrUndefined() { return this._loaded }
|
|
57
|
-
|
|
58
|
-
/** @param {import("../index.js").default|Array<import("../index.js").default>} model */
|
|
59
|
-
setLoaded(model) {
|
|
60
|
-
if (Array.isArray(model)) throw new Error(`Argument given to setLoaded was an array: ${typeof model}`)
|
|
61
|
-
|
|
62
|
-
this._loaded = model
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
getTargetModelClass() { return this.relationship.getTargetModelClass() }
|
|
66
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import restArgsError from "../../../utils/rest-args-error.js"
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @typedef {object} RelationshipBaseArgsType
|
|
7
|
-
* @property {string} [className]
|
|
8
|
-
* @property {string} [dependent]
|
|
9
|
-
* @property {string | undefined} [foreignKey]
|
|
10
|
-
* @property {string} [inverseOf]
|
|
11
|
-
* @property {typeof import("../index.js").default} [klass]
|
|
12
|
-
* @property {typeof import("../index.js").default} modelClass
|
|
13
|
-
* @property {string} [primaryKey]
|
|
14
|
-
* @property {boolean} [polymorphic]
|
|
15
|
-
* @property {string} relationshipName
|
|
16
|
-
* @property {string} [through]
|
|
17
|
-
* @property {string} type
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
export default class VelociousDatabaseRecordBaseRelationship {
|
|
21
|
-
/** @param {RelationshipBaseArgsType} args */
|
|
22
|
-
constructor({className, dependent, foreignKey, inverseOf, klass, modelClass, primaryKey = "id", polymorphic, relationshipName, through, type, ...restArgs}) {
|
|
23
|
-
restArgsError(restArgs)
|
|
24
|
-
|
|
25
|
-
if (!modelClass) throw new Error(`'modelClass' wasn't given for ${relationshipName}`)
|
|
26
|
-
if (!className && !klass) throw new Error(`Neither 'className' or 'klass' was given for ${modelClass.name}#${relationshipName}`)
|
|
27
|
-
|
|
28
|
-
this.className = className
|
|
29
|
-
this._dependent = dependent
|
|
30
|
-
this.foreignKey = foreignKey
|
|
31
|
-
this._inverseOf = inverseOf
|
|
32
|
-
this.klass = klass
|
|
33
|
-
this.modelClass = modelClass
|
|
34
|
-
this._polymorphic = polymorphic
|
|
35
|
-
this._primaryKey = primaryKey
|
|
36
|
-
this.relationshipName = relationshipName
|
|
37
|
-
this.through = through
|
|
38
|
-
this.type = type
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
getConfiguration() { return this.modelClass._getConfiguration() }
|
|
42
|
-
|
|
43
|
-
/** @returns {string | undefined} What will be done when the parent record is destroyed. E.g. "destroy", "nullify", "restrict" etc. */
|
|
44
|
-
getDependent() { return this._dependent }
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* @abstract
|
|
48
|
-
* @returns {string} The name of the foreign key, e.g. "user_id", "post_id" etc.
|
|
49
|
-
*/
|
|
50
|
-
getForeignKey() {
|
|
51
|
-
throw new Error("getForeignKey not implemented")
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @abstract
|
|
56
|
-
* @returns {string | undefined} The name of the inverse relationship, e.g. "posts", "comments" etc.
|
|
57
|
-
*/
|
|
58
|
-
getInverseOf() {
|
|
59
|
-
throw new Error("getInverseOf not implemented")
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/** @returns {typeof import("../index.js").default} */
|
|
63
|
-
getModelClass() { return this.modelClass }
|
|
64
|
-
|
|
65
|
-
/** @returns {string} The name of the relationship, e.g. "posts", "user", "comments" etc. */
|
|
66
|
-
getRelationshipName() { return this.relationshipName }
|
|
67
|
-
|
|
68
|
-
/** @returns {boolean} */
|
|
69
|
-
getPolymorphic() {
|
|
70
|
-
return this._polymorphic || false
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/** @returns {string} The name of the foreign key, e.g. "id" etc. */
|
|
74
|
-
getPrimaryKey() { return this._primaryKey }
|
|
75
|
-
|
|
76
|
-
/** @returns {string} The type of the relationship, e.g. "has_many", "belongs_to", "has_one", "has_and_belongs_to_many" etc. */
|
|
77
|
-
getType() { return this.type }
|
|
78
|
-
|
|
79
|
-
/** @returns {typeof import("../index.js").default | undefined} The target model class for this relationship, e.g. if the relationship is "posts" then the target model class is the Post class. */
|
|
80
|
-
getTargetModelClass() {
|
|
81
|
-
if (this.getPolymorphic()) {
|
|
82
|
-
return undefined
|
|
83
|
-
} else if (this.className) {
|
|
84
|
-
return this.getConfiguration().getModelClass(this.className)
|
|
85
|
-
} else if (this.klass) {
|
|
86
|
-
return this.klass
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
throw new Error("Couldn't figure out the target model class")
|
|
90
|
-
}
|
|
91
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import BaseRelationship from "./base.js"
|
|
4
|
-
import * as inflection from "inflection"
|
|
5
|
-
|
|
6
|
-
export default class VelociousDatabaseRecordBelongsToRelationship extends BaseRelationship {
|
|
7
|
-
/** @returns {string} */
|
|
8
|
-
getForeignKey() {
|
|
9
|
-
if (!this.foreignKey) {
|
|
10
|
-
const targetModelClass = this.getTargetModelClass()
|
|
11
|
-
|
|
12
|
-
if (!targetModelClass) throw new Error("Can't calculate foreign key without a target model class")
|
|
13
|
-
|
|
14
|
-
this.foreignKey = `${inflection.underscore(targetModelClass.name)}_id`
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return this.foreignKey
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** @returns {string | undefined} */
|
|
21
|
-
getInverseOf() {
|
|
22
|
-
if (!this._inverseOf && !this._autoGenerateInverseOfAttempted) {
|
|
23
|
-
this._autoGenerateInverseOfAttempted = true
|
|
24
|
-
|
|
25
|
-
// Only make auto-inverse-of if the relationships name matches the target model class's name
|
|
26
|
-
const targetClassSimpleName = `${this.getRelationshipName().substring(0, 1).toUpperCase()}${this.getRelationshipName().substring(1, this.getRelationshipName().length)}`
|
|
27
|
-
|
|
28
|
-
const targetModelClass = this.getTargetModelClass()
|
|
29
|
-
|
|
30
|
-
if (targetModelClass && targetClassSimpleName == targetModelClass.name) {
|
|
31
|
-
// Only make auto-inverse-of if the expected relationship exist in a has-one or has-many form
|
|
32
|
-
const targetClassRelationshipNames = targetModelClass.getRelationshipNames()
|
|
33
|
-
const autoGeneratedHasOneInverseOfName = `${this.modelClass.name.substring(0, 1).toLowerCase()}${this.modelClass.name.substring(1, this.modelClass.name.length)}`
|
|
34
|
-
const autoGeneratedHasManyInverseOfName = inflection.pluralize(autoGeneratedHasOneInverseOfName)
|
|
35
|
-
|
|
36
|
-
if (targetClassRelationshipNames.includes(autoGeneratedHasOneInverseOfName)) {
|
|
37
|
-
this._inverseOf = autoGeneratedHasOneInverseOfName
|
|
38
|
-
} else if (targetClassRelationshipNames.includes(autoGeneratedHasManyInverseOfName)) {
|
|
39
|
-
this._inverseOf = autoGeneratedHasManyInverseOfName
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return this._inverseOf
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import BaseRelationship from "./base.js"
|
|
4
|
-
import * as inflection from "inflection"
|
|
5
|
-
|
|
6
|
-
export default class VelociousDatabaseRecordHasManyRelationship extends BaseRelationship {
|
|
7
|
-
/** @returns {string} */
|
|
8
|
-
getForeignKey() {
|
|
9
|
-
if (!this.foreignKey) {
|
|
10
|
-
this.foreignKey = `${inflection.underscore(this.modelClass.name)}_id`
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return this.foreignKey
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/** @returns {string | undefined} */
|
|
17
|
-
getInverseOf() {
|
|
18
|
-
if (!this._inverseOf && !this._autoGenerateInverseOfAttempted) {
|
|
19
|
-
this._autoGenerateInverseOfAttempted = true
|
|
20
|
-
|
|
21
|
-
// Only make auto-inverse-of if the relationships name matches the target model class's name
|
|
22
|
-
const targetClassSimpleName = inflection.singularize(`${this.getRelationshipName().substring(0, 1).toUpperCase()}${this.getRelationshipName().substring(1, this.getRelationshipName().length)}`)
|
|
23
|
-
|
|
24
|
-
const targetModelClass = this.getTargetModelClass()
|
|
25
|
-
|
|
26
|
-
if (targetModelClass && targetClassSimpleName == targetModelClass.name) {
|
|
27
|
-
// Only make auto-inverse-of if the expected relationship exist in a has-one or has-many form
|
|
28
|
-
const targetClassRelationshipNames = targetModelClass.getRelationshipNames()
|
|
29
|
-
const autoGeneratedBelongsToInverseOfName = `${this.modelClass.name.substring(0, 1).toLowerCase()}${this.modelClass.name.substring(1, this.modelClass.name.length)}`
|
|
30
|
-
|
|
31
|
-
if (targetClassRelationshipNames.includes(autoGeneratedBelongsToInverseOfName)) {
|
|
32
|
-
this._inverseOf = autoGeneratedBelongsToInverseOfName
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return this._inverseOf
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import BaseRelationship from "./base.js"
|
|
4
|
-
import * as inflection from "inflection"
|
|
5
|
-
|
|
6
|
-
export default class VelociousDatabaseRecordHasOneRelationship extends BaseRelationship {
|
|
7
|
-
/** @returns {string} */
|
|
8
|
-
getForeignKey() {
|
|
9
|
-
if (!this.foreignKey) {
|
|
10
|
-
this.foreignKey = `${inflection.underscore(this.modelClass.name)}_id`
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return this.foreignKey
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/** @returns {string | undefined} */
|
|
17
|
-
getInverseOf() {
|
|
18
|
-
if (!this._inverseOf && !this._autoGenerateInverseOfAttempted) {
|
|
19
|
-
this._autoGenerateInverseOfAttempted = true
|
|
20
|
-
|
|
21
|
-
// Only make auto-inverse-of if the relationships name matches the target model class's name
|
|
22
|
-
const targetClassSimpleName = `${this.getRelationshipName().substring(0, 1).toUpperCase()}${this.getRelationshipName().substring(1, this.getRelationshipName().length)}`
|
|
23
|
-
|
|
24
|
-
const targetModelClass = this.getTargetModelClass()
|
|
25
|
-
|
|
26
|
-
if (targetModelClass && targetClassSimpleName == targetModelClass.name) {
|
|
27
|
-
// Only make auto-inverse-of if the expected relationship exist in a has-one or has-many form
|
|
28
|
-
const targetClassRelationshipNames = targetModelClass.getRelationshipNames()
|
|
29
|
-
const autoGeneratedBelongsToInverseOfName = `${this.modelClass.name.substring(0, 1).toLowerCase()}${this.modelClass.name.substring(1, this.modelClass.name.length)}`
|
|
30
|
-
|
|
31
|
-
if (targetClassRelationshipNames.includes(autoGeneratedBelongsToInverseOfName)) {
|
|
32
|
-
this._inverseOf = autoGeneratedBelongsToInverseOfName
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return this._inverseOf
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import bcryptjs from "bcryptjs"
|
|
4
|
-
import restArgsError from "../../utils/rest-args-error.js"
|
|
5
|
-
|
|
6
|
-
export default class UserModule {
|
|
7
|
-
/**
|
|
8
|
-
* @param {object} args
|
|
9
|
-
* @param {string} args.secretKey
|
|
10
|
-
*/
|
|
11
|
-
constructor({secretKey, ...restArgs}) {
|
|
12
|
-
restArgsError(restArgs)
|
|
13
|
-
|
|
14
|
-
if (!secretKey) throw new Error(`Invalid secret key given: ${secretKey}`)
|
|
15
|
-
|
|
16
|
-
this.secretKey = secretKey
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @param {typeof import("./index.js").default} UserClass
|
|
21
|
-
*/
|
|
22
|
-
attachTo(UserClass) {
|
|
23
|
-
// @ts-expect-error
|
|
24
|
-
UserClass.prototype.setPassword = function(newPassword) {
|
|
25
|
-
const salt = bcryptjs.genSaltSync(10)
|
|
26
|
-
const encryptedPassword = bcryptjs.hashSync(newPassword, salt)
|
|
27
|
-
|
|
28
|
-
// @ts-expect-error
|
|
29
|
-
this.setEncryptedPassword(encryptedPassword)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// @ts-expect-error
|
|
33
|
-
UserClass.prototype.setPasswordConfirmation = function(newPasswordConfirmation) {
|
|
34
|
-
const salt = bcryptjs.genSaltSync(10)
|
|
35
|
-
const encryptedPassword = bcryptjs.hashSync(newPasswordConfirmation, salt)
|
|
36
|
-
|
|
37
|
-
// @ts-expect-error
|
|
38
|
-
this._encryptedPasswordConfirmation = encryptedPassword
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
export default class VelociousDatabaseRecordValidatorsBase {
|
|
4
|
-
/**
|
|
5
|
-
* @param {object} args
|
|
6
|
-
* @param {string} args.attributeName
|
|
7
|
-
* @param {Record<string, any>} args.args
|
|
8
|
-
*/
|
|
9
|
-
constructor({attributeName, args}) {
|
|
10
|
-
this.attributeName = attributeName
|
|
11
|
-
this.args = args
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @abstract
|
|
16
|
-
* @param {object} args
|
|
17
|
-
* @param {import("../index.js").default} args.model
|
|
18
|
-
* @param {string} args.attributeName
|
|
19
|
-
* @returns {Promise<void>}
|
|
20
|
-
*/
|
|
21
|
-
async validate({model, attributeName}) { // eslint-disable-line no-unused-vars
|
|
22
|
-
throw new Error("validate not implemented")
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import Base from "./base.js"
|
|
4
|
-
|
|
5
|
-
export default class VelociousDatabaseRecordValidatorsPresence extends Base {
|
|
6
|
-
/**
|
|
7
|
-
* @param {object} args
|
|
8
|
-
* @param {import("../index.js").default} args.model
|
|
9
|
-
* @param {string} args.attributeName
|
|
10
|
-
*/
|
|
11
|
-
async validate({model, attributeName}) {
|
|
12
|
-
const attributeValue = model.readAttribute(attributeName)?.trim()
|
|
13
|
-
|
|
14
|
-
if (!attributeValue) {
|
|
15
|
-
if (!(attributeName in model._validationErrors)) model._validationErrors[attributeName] = []
|
|
16
|
-
|
|
17
|
-
model._validationErrors[attributeName].push({type: "presence", message: "can't be blank"})
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
|
|
3
|
-
import Base from "./base.js"
|
|
4
|
-
import * as inflection from "inflection"
|
|
5
|
-
|
|
6
|
-
export default class VelociousDatabaseRecordValidatorsUniqueness extends Base {
|
|
7
|
-
/**
|
|
8
|
-
* @param {object} args
|
|
9
|
-
* @param {import("../index.js").default} args.model
|
|
10
|
-
* @param {string} args.attributeName
|
|
11
|
-
* @returns {Promise<void>}
|
|
12
|
-
*/
|
|
13
|
-
async validate({model, attributeName}) {
|
|
14
|
-
const modelClass = /** @type {typeof import("../index.js").default} */ (model.constructor)
|
|
15
|
-
|
|
16
|
-
const connection = modelClass.connection()
|
|
17
|
-
const tableName = modelClass._getTable().getName()
|
|
18
|
-
const attributeValue = model.readAttribute(attributeName)
|
|
19
|
-
const attributeNameUnderscore = inflection.underscore(attributeName)
|
|
20
|
-
|
|
21
|
-
/** @type {Record<string, any>} */
|
|
22
|
-
const whereArgs = {}
|
|
23
|
-
|
|
24
|
-
whereArgs[attributeNameUnderscore] = attributeValue
|
|
25
|
-
|
|
26
|
-
let existingRecordQuery = modelClass
|
|
27
|
-
.select(modelClass.primaryKey())
|
|
28
|
-
.where(whereArgs)
|
|
29
|
-
|
|
30
|
-
if (model.isPersisted()) {
|
|
31
|
-
existingRecordQuery.where(`${connection.quoteTable(tableName)}.${connection.quoteColumn(modelClass.primaryKey())} != ${connection.quote(model.id())}`)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const existingRecord = await existingRecordQuery.first()
|
|
35
|
-
|
|
36
|
-
if (existingRecord) {
|
|
37
|
-
if (!(attributeName in model._validationErrors)) model._validationErrors[attributeName] = []
|
|
38
|
-
|
|
39
|
-
model._validationErrors[attributeName].push({type: "uniqueness", message: "has already been taken"})
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|