velocious 1.0.108 → 1.0.110
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 +221 -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 +10 -5
- 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 -19
- 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/api/controller.js +0 -9
- 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/namespace-spec.js +0 -17
- 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
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { digg } from "diggerize";
|
|
3
|
+
import { EventEmitter } from "events";
|
|
4
|
+
import { incorporate } from "incorporator";
|
|
5
|
+
import ParamsToObject from "./params-to-object.js";
|
|
6
|
+
import RequestBuffer from "./request-buffer/index.js";
|
|
7
|
+
export default class VelociousHttpServerClientRequestParser {
|
|
8
|
+
/**
|
|
9
|
+
* @param {object} args
|
|
10
|
+
* @param {import("../../configuration.js").default} args.configuration
|
|
11
|
+
*/
|
|
12
|
+
constructor({ configuration }) {
|
|
13
|
+
if (!configuration)
|
|
14
|
+
throw new Error("No configuration given");
|
|
15
|
+
this.configuration = configuration;
|
|
16
|
+
this.data = [];
|
|
17
|
+
this.events = new EventEmitter();
|
|
18
|
+
this.params = {};
|
|
19
|
+
this.requestBuffer = new RequestBuffer({ configuration });
|
|
20
|
+
this.requestBuffer.events.on("completed", this.requestDone);
|
|
21
|
+
this.requestBuffer.events.on("form-data-part", this.onFormDataPart);
|
|
22
|
+
this.requestBuffer.events.on("request-done", this.requestDone);
|
|
23
|
+
}
|
|
24
|
+
destroy() {
|
|
25
|
+
this.requestBuffer.events.off("completed", this.requestDone);
|
|
26
|
+
this.requestBuffer.events.off("form-data-part", this.onFormDataPart);
|
|
27
|
+
this.requestBuffer.events.off("request-done", this.requestDone);
|
|
28
|
+
this.requestBuffer.destroy();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @param {import("./request-buffer/form-data-part.js").default} formDataPart
|
|
32
|
+
* @returns {void}
|
|
33
|
+
*/
|
|
34
|
+
onFormDataPart = (formDataPart) => {
|
|
35
|
+
/** @type {Record<string, string>} */
|
|
36
|
+
const unorderedParams = {};
|
|
37
|
+
unorderedParams[formDataPart.getName()] = formDataPart.getValue();
|
|
38
|
+
const paramsToObject = new ParamsToObject(unorderedParams);
|
|
39
|
+
const newParams = paramsToObject.toObject();
|
|
40
|
+
incorporate(this.params, newParams);
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* @param {Buffer} data
|
|
44
|
+
*/
|
|
45
|
+
feed = (data) => this.requestBuffer.feed(data);
|
|
46
|
+
/**
|
|
47
|
+
* @param {string} name
|
|
48
|
+
*/
|
|
49
|
+
getHeader(name) { return this.requestBuffer.getHeader(name)?.value; }
|
|
50
|
+
getHeaders() { return this.requestBuffer.getHeadersHash(); }
|
|
51
|
+
/**
|
|
52
|
+
* @returns {string}
|
|
53
|
+
*/
|
|
54
|
+
getHttpMethod() { return digg(this, "requestBuffer", "httpMethod"); }
|
|
55
|
+
/**
|
|
56
|
+
* @returns {string}
|
|
57
|
+
*/
|
|
58
|
+
getHttpVersion() { return digg(this, "requestBuffer", "httpVersion"); }
|
|
59
|
+
_getHostMatch() {
|
|
60
|
+
const rawHost = this.requestBuffer.getHeader("origin")?.value;
|
|
61
|
+
if (!rawHost)
|
|
62
|
+
return null;
|
|
63
|
+
const match = rawHost.match(/^(.+):\/\/(.+)(|:(\d+))/);
|
|
64
|
+
if (!match)
|
|
65
|
+
throw new Error(`Couldn't match host: ${rawHost}`);
|
|
66
|
+
return {
|
|
67
|
+
protocol: match[1],
|
|
68
|
+
host: match[2],
|
|
69
|
+
port: match[4]
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
getHost() {
|
|
73
|
+
const rawHostSplit = this.requestBuffer.getHeader("host")?.value?.split(":");
|
|
74
|
+
if (rawHostSplit && rawHostSplit[0])
|
|
75
|
+
return rawHostSplit[0];
|
|
76
|
+
}
|
|
77
|
+
getPath() { return digg(this, "requestBuffer", "path"); }
|
|
78
|
+
getPort() {
|
|
79
|
+
const rawHostSplit = this.requestBuffer.getHeader("host")?.value?.split(":");
|
|
80
|
+
const httpMethod = this.getHttpMethod();
|
|
81
|
+
if (rawHostSplit && rawHostSplit[1]) {
|
|
82
|
+
return parseInt(rawHostSplit[1]);
|
|
83
|
+
}
|
|
84
|
+
else if (httpMethod == "http") {
|
|
85
|
+
return 80;
|
|
86
|
+
}
|
|
87
|
+
else if (httpMethod == "https") {
|
|
88
|
+
return 443;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
getProtocol() { return this._getHostMatch()?.protocol; }
|
|
92
|
+
getRequestBuffer() { return this.requestBuffer; }
|
|
93
|
+
requestDone = () => {
|
|
94
|
+
incorporate(this.params, this.requestBuffer.params);
|
|
95
|
+
this.state = "done";
|
|
96
|
+
this.events.emit("done");
|
|
97
|
+
};
|
|
98
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export default class VelociousHttpServerClientRequestRunner {
|
|
2
|
+
/**
|
|
3
|
+
* @param {object} args
|
|
4
|
+
* @param {import("../../configuration.js").default} args.configuration
|
|
5
|
+
* @param {import("./request.js").default} args.request
|
|
6
|
+
*/
|
|
7
|
+
constructor({ configuration, request }: {
|
|
8
|
+
configuration: import("../../configuration.js").default;
|
|
9
|
+
request: import("./request.js").default;
|
|
10
|
+
});
|
|
11
|
+
events: EventEmitter<[never]>;
|
|
12
|
+
logger: Logger;
|
|
13
|
+
configuration: import("../../configuration.js").default;
|
|
14
|
+
request: import("./request.js").default;
|
|
15
|
+
response: Response;
|
|
16
|
+
state: string;
|
|
17
|
+
getRequest(): import("./request.js").default;
|
|
18
|
+
getState(): string;
|
|
19
|
+
run(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
import EventEmitter from "events";
|
|
22
|
+
import { Logger } from "../../logger.js";
|
|
23
|
+
import Response from "./response.js";
|
|
24
|
+
//# sourceMappingURL=request-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-runner.d.ts","sourceRoot":"","sources":["../../../../src/http-server/client/request-runner.js"],"names":[],"mappings":"AASA;IAGE;;;;OAIG;IACH,wCAHG;QAAuD,aAAa,EAA5D,OAAO,wBAAwB,EAAE,OAAO;QACH,OAAO,EAA5C,OAAO,cAAc,EAAE,OAAO;KACxC,EAUA;IAhBD,8BAA2B;IAWzB,eAA8B;IAC9B,wDAAkC;IAClC,wCAAsB;IACtB,mBAA6C;IAC7C,cAAsB;IAGxB,6CAAoC;IACpC,mBAAgC;IAEhC,qBAmCC;CACF;yBA/DwB,QAAQ;uBACZ,iBAAiB;qBACjB,eAAe"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import BacktraceCleaner from "../../utils/backtrace-cleaner.js";
|
|
3
|
+
import ensureError from "../../utils/ensure-error.js";
|
|
4
|
+
import EventEmitter from "events";
|
|
5
|
+
import { Logger } from "../../logger.js";
|
|
6
|
+
import Response from "./response.js";
|
|
7
|
+
import RoutesResolver from "../../routes/resolver.js";
|
|
8
|
+
export default class VelociousHttpServerClientRequestRunner {
|
|
9
|
+
events = new EventEmitter();
|
|
10
|
+
/**
|
|
11
|
+
* @param {object} args
|
|
12
|
+
* @param {import("../../configuration.js").default} args.configuration
|
|
13
|
+
* @param {import("./request.js").default} args.request
|
|
14
|
+
*/
|
|
15
|
+
constructor({ configuration, request }) {
|
|
16
|
+
if (!configuration)
|
|
17
|
+
throw new Error("No configuration given");
|
|
18
|
+
if (!request)
|
|
19
|
+
throw new Error("No request given");
|
|
20
|
+
this.logger = new Logger(this);
|
|
21
|
+
this.configuration = configuration;
|
|
22
|
+
this.request = request;
|
|
23
|
+
this.response = new Response({ configuration });
|
|
24
|
+
this.state = "running";
|
|
25
|
+
}
|
|
26
|
+
getRequest() { return this.request; }
|
|
27
|
+
getState() { return this.state; }
|
|
28
|
+
async run() {
|
|
29
|
+
const { configuration, request, response } = this;
|
|
30
|
+
if (!request)
|
|
31
|
+
throw new Error("No request?");
|
|
32
|
+
try {
|
|
33
|
+
// Before we checked if the sec-fetch-mode was "cors", but it seems the sec-fetch-mode isn't always present
|
|
34
|
+
await this.logger.debug(() => ["Run CORS", { httpMethod: request.httpMethod(), secFetchMode: request.header("sec-fetch-mode") }]);
|
|
35
|
+
const cors = configuration.getCors();
|
|
36
|
+
if (cors) {
|
|
37
|
+
await cors({ request, response });
|
|
38
|
+
}
|
|
39
|
+
if (request.httpMethod() == "OPTIONS" && request.header("sec-fetch-mode") == "cors") {
|
|
40
|
+
response.setStatus(200);
|
|
41
|
+
response.setBody("");
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
await this.logger.debug("Run request");
|
|
45
|
+
const routesResolver = new RoutesResolver({ configuration, request, response });
|
|
46
|
+
await routesResolver.resolve();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
const error = ensureError(e);
|
|
51
|
+
await this.logger.error(() => [`Error while running request: ${BacktraceCleaner.getCleanedStack(error)}`]);
|
|
52
|
+
response.setStatus(500);
|
|
53
|
+
response.setErrorBody(error);
|
|
54
|
+
}
|
|
55
|
+
this.state = "done";
|
|
56
|
+
this.events.emit("done", this);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export default class VelociousHttpServerClientRequest {
|
|
2
|
+
/**
|
|
3
|
+
* @param {object} args
|
|
4
|
+
* @param {import("./index.js").default} args.client
|
|
5
|
+
* @param {import("../../configuration.js").default} args.configuration
|
|
6
|
+
*/
|
|
7
|
+
constructor({ client, configuration, ...restArgs }: {
|
|
8
|
+
client: import("./index.js").default;
|
|
9
|
+
configuration: import("../../configuration.js").default;
|
|
10
|
+
});
|
|
11
|
+
client: import("./index.js").default;
|
|
12
|
+
configuration: import("../../configuration.js").default;
|
|
13
|
+
requestParser: RequestParser;
|
|
14
|
+
baseURL(): string;
|
|
15
|
+
/**
|
|
16
|
+
* @param {Buffer} data
|
|
17
|
+
* @returns {void}
|
|
18
|
+
*/
|
|
19
|
+
feed(data: Buffer): void;
|
|
20
|
+
/**
|
|
21
|
+
* @param {string} headerName
|
|
22
|
+
* @returns {string | null}
|
|
23
|
+
*/
|
|
24
|
+
header(headerName: string): string | null;
|
|
25
|
+
headers(): Record<string, string>;
|
|
26
|
+
httpMethod(): string;
|
|
27
|
+
httpVersion(): string;
|
|
28
|
+
host(): string;
|
|
29
|
+
hostWithPort(): string;
|
|
30
|
+
origin(): string;
|
|
31
|
+
path(): any;
|
|
32
|
+
params(): any;
|
|
33
|
+
port(): number;
|
|
34
|
+
protocol(): string;
|
|
35
|
+
getRequestBuffer(): import("./request-buffer/index.js").default;
|
|
36
|
+
getRequestParser(): RequestParser;
|
|
37
|
+
}
|
|
38
|
+
import RequestParser from "./request-parser.js";
|
|
39
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../src/http-server/client/request.js"],"names":[],"mappings":"AAMA;IACE;;;;OAIG;IACH,oDAHG;QAA2C,MAAM,EAAzC,OAAO,YAAY,EAAE,OAAO;QACmB,aAAa,EAA5D,OAAO,wBAAwB,EAAE,OAAO;KAClD,EAOA;IAHC,qCAAoB;IACpB,wDAAkC;IAClC,6BAAuD;IAGzD,kBAAkE;IAElE;;;OAGG;IACH,WAHW,MAAM,GACJ,IAAI,CAEkC;IAEnD;;;OAGG;IACH,mBAHW,MAAM,GACJ,MAAM,GAAG,IAAI,CAE6D;IACvF,kCAA6D;IAC7D,qBAA0D;IAC1D,sBAA4D;IAC5D,eAA8C;IAE9C,uBAcC;IAED,iBAAyC;IACzC,YAA8C;IAC9C,cAAyD;IACzD,eAA8C;IAC9C,mBAAsD;IAEtD,gEAAwE;IACxE,kCAAgD;CACjD;0BA3DyB,qBAAqB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { digg } from "diggerize";
|
|
3
|
+
import RequestParser from "./request-parser.js";
|
|
4
|
+
import restArgsError from "../../utils/rest-args-error.js";
|
|
5
|
+
export default class VelociousHttpServerClientRequest {
|
|
6
|
+
/**
|
|
7
|
+
* @param {object} args
|
|
8
|
+
* @param {import("./index.js").default} args.client
|
|
9
|
+
* @param {import("../../configuration.js").default} args.configuration
|
|
10
|
+
*/
|
|
11
|
+
constructor({ client, configuration, ...restArgs }) {
|
|
12
|
+
restArgsError(restArgs);
|
|
13
|
+
this.client = client;
|
|
14
|
+
this.configuration = configuration;
|
|
15
|
+
this.requestParser = new RequestParser({ configuration });
|
|
16
|
+
}
|
|
17
|
+
baseURL() { return `${this.protocol()}://${this.hostWithPort()}`; }
|
|
18
|
+
/**
|
|
19
|
+
* @param {Buffer} data
|
|
20
|
+
* @returns {void}
|
|
21
|
+
*/
|
|
22
|
+
feed(data) { return this.requestParser.feed(data); }
|
|
23
|
+
/**
|
|
24
|
+
* @param {string} headerName
|
|
25
|
+
* @returns {string | null}
|
|
26
|
+
*/
|
|
27
|
+
header(headerName) { return this.getRequestBuffer().getHeader(headerName)?.getValue(); }
|
|
28
|
+
headers() { return this.getRequestBuffer().getHeadersHash(); }
|
|
29
|
+
httpMethod() { return this.requestParser.getHttpMethod(); }
|
|
30
|
+
httpVersion() { return this.requestParser.getHttpVersion(); }
|
|
31
|
+
host() { return this.requestParser.getHost(); }
|
|
32
|
+
hostWithPort() {
|
|
33
|
+
const port = this.port();
|
|
34
|
+
const protocol = this.protocol();
|
|
35
|
+
let hostWithPort = `${this.host()}`;
|
|
36
|
+
if (port == 80 && protocol == "http") {
|
|
37
|
+
// Do nothing
|
|
38
|
+
}
|
|
39
|
+
else if (port == 443 && protocol == "https") {
|
|
40
|
+
// Do nothing
|
|
41
|
+
}
|
|
42
|
+
else if (port) {
|
|
43
|
+
hostWithPort += `:${port}`;
|
|
44
|
+
}
|
|
45
|
+
return hostWithPort;
|
|
46
|
+
}
|
|
47
|
+
origin() { return this.header("origin"); }
|
|
48
|
+
path() { return this.requestParser.getPath(); }
|
|
49
|
+
params() { return digg(this, "requestParser", "params"); }
|
|
50
|
+
port() { return this.requestParser.getPort(); }
|
|
51
|
+
protocol() { return this.requestParser.getProtocol(); }
|
|
52
|
+
getRequestBuffer() { return this.getRequestParser().getRequestBuffer(); }
|
|
53
|
+
getRequestParser() { return this.requestParser; }
|
|
54
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export default class VelociousHttpServerClientResponse {
|
|
2
|
+
/**
|
|
3
|
+
* @param {object} args
|
|
4
|
+
* @param {import("../../configuration.js").default} args.configuration
|
|
5
|
+
*/
|
|
6
|
+
constructor({ configuration }: {
|
|
7
|
+
configuration: import("../../configuration.js").default;
|
|
8
|
+
});
|
|
9
|
+
/** @type {string | null} */
|
|
10
|
+
body: string | null;
|
|
11
|
+
/** @type {Record<string, string[]>} */
|
|
12
|
+
headers: Record<string, string[]>;
|
|
13
|
+
configuration: import("../../configuration.js").default;
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} key
|
|
16
|
+
* @param {string} value
|
|
17
|
+
* @returns {void}
|
|
18
|
+
*/
|
|
19
|
+
addHeader(key: string, value: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* @param {string} key
|
|
22
|
+
* @param {string} value
|
|
23
|
+
* @returns {void}
|
|
24
|
+
*/
|
|
25
|
+
setHeader(key: string, value: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* @returns {string | null}
|
|
28
|
+
*/
|
|
29
|
+
getBody(): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* @returns {number}
|
|
32
|
+
*/
|
|
33
|
+
getStatusCode(): number;
|
|
34
|
+
/**
|
|
35
|
+
* @returns {string}
|
|
36
|
+
*/
|
|
37
|
+
getStatusMessage(): string;
|
|
38
|
+
/**
|
|
39
|
+
* @param {string} value
|
|
40
|
+
* @returns {void}
|
|
41
|
+
*/
|
|
42
|
+
setBody(value: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* @param {Error} error
|
|
45
|
+
* @returns {void}
|
|
46
|
+
*/
|
|
47
|
+
setErrorBody(error: Error): void;
|
|
48
|
+
/**
|
|
49
|
+
* @param {number | string} status
|
|
50
|
+
* @returns {void}
|
|
51
|
+
*/
|
|
52
|
+
setStatus(status: number | string): void;
|
|
53
|
+
statusCode: number;
|
|
54
|
+
statusMessage: string;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/http-server/client/response.js"],"names":[],"mappings":"AAEA;IAOE;;;OAGG;IACH,+BAFG;QAAuD,aAAa,EAA5D,OAAO,wBAAwB,EAAE,OAAO;KAClD,EAGA;IAZD,4BAA4B;IAC5B,MADW,MAAM,GAAG,IAAI,CACb;IAEX,uCAAuC;IACvC,SADW,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CACvB;IAOV,wDAAkC;IAGpC;;;;OAIG;IACH,eAJW,MAAM,SACN,MAAM,GACJ,IAAI,CAQhB;IAED;;;;OAIG;IACH,eAJW,MAAM,SACN,MAAM,GACJ,IAAI,CAIhB;IAED;;OAEG;IACH,WAFa,MAAM,GAAG,IAAI,CAQzB;IAED;;OAEG;IACH,iBAFa,MAAM,CAIlB;IAED;;OAEG;IACH,oBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,eAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;OAGG;IACH,oBAHW,KAAK,GACH,IAAI,CAKhB;IAED;;;OAGG;IACH,kBAHW,MAAM,GAAG,MAAM,GACb,IAAI,CAehB;IAXG,mBAAqB;IACrB,sBAAyB;CAW9B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
export default class VelociousHttpServerClientResponse {
|
|
3
|
+
/** @type {string | null} */
|
|
4
|
+
body = null;
|
|
5
|
+
/** @type {Record<string, string[]>} */
|
|
6
|
+
headers = {};
|
|
7
|
+
/**
|
|
8
|
+
* @param {object} args
|
|
9
|
+
* @param {import("../../configuration.js").default} args.configuration
|
|
10
|
+
*/
|
|
11
|
+
constructor({ configuration }) {
|
|
12
|
+
this.configuration = configuration;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} key
|
|
16
|
+
* @param {string} value
|
|
17
|
+
* @returns {void}
|
|
18
|
+
*/
|
|
19
|
+
addHeader(key, value) {
|
|
20
|
+
if (!(key in this.headers)) {
|
|
21
|
+
this.headers[key] = [];
|
|
22
|
+
}
|
|
23
|
+
this.headers[key].push(value);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @param {string} key
|
|
27
|
+
* @param {string} value
|
|
28
|
+
* @returns {void}
|
|
29
|
+
*/
|
|
30
|
+
setHeader(key, value) {
|
|
31
|
+
this.headers[key] = [value];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @returns {string | null}
|
|
35
|
+
*/
|
|
36
|
+
getBody() {
|
|
37
|
+
if (this.body !== undefined) {
|
|
38
|
+
return this.body;
|
|
39
|
+
}
|
|
40
|
+
throw new Error("No body has been set");
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @returns {number}
|
|
44
|
+
*/
|
|
45
|
+
getStatusCode() {
|
|
46
|
+
return this.statusCode || 200;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @returns {string}
|
|
50
|
+
*/
|
|
51
|
+
getStatusMessage() {
|
|
52
|
+
return this.statusMessage || "OK";
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @param {string} value
|
|
56
|
+
* @returns {void}
|
|
57
|
+
*/
|
|
58
|
+
setBody(value) {
|
|
59
|
+
this.body = value;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @param {Error} error
|
|
63
|
+
* @returns {void}
|
|
64
|
+
*/
|
|
65
|
+
setErrorBody(error) {
|
|
66
|
+
this.setHeader("Content-Type", "text/plain; charset=UTF-8");
|
|
67
|
+
this.setBody(`${error.message}\n\n${error.stack}`);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @param {number | string} status
|
|
71
|
+
* @returns {void}
|
|
72
|
+
*/
|
|
73
|
+
setStatus(status) {
|
|
74
|
+
if (status == "success" || status == 200) {
|
|
75
|
+
this.statusCode = 200;
|
|
76
|
+
this.statusMessage = "OK";
|
|
77
|
+
}
|
|
78
|
+
else if (status == "not-found" || status == 404) {
|
|
79
|
+
this.statusCode = 404;
|
|
80
|
+
this.statusMessage = "Not Found";
|
|
81
|
+
}
|
|
82
|
+
else if (status == "internal-server-error" || status == 500) {
|
|
83
|
+
this.statusCode = 500;
|
|
84
|
+
this.statusMessage = "Internal server error";
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
throw new Error(`Unhandled status: ${status}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export default class VelociousHttpServer {
|
|
2
|
+
/**
|
|
3
|
+
* @param {object} args
|
|
4
|
+
* @param {import("../configuration.js").default} args.configuration
|
|
5
|
+
* @param {string} [args.host]
|
|
6
|
+
* @param {number} [args.port]
|
|
7
|
+
* @param {number} [args.maxWorkers]
|
|
8
|
+
*/
|
|
9
|
+
constructor({ configuration, host, maxWorkers, port }: {
|
|
10
|
+
configuration: import("../configuration.js").default;
|
|
11
|
+
host?: string;
|
|
12
|
+
port?: number;
|
|
13
|
+
maxWorkers?: number;
|
|
14
|
+
});
|
|
15
|
+
clientCount: number;
|
|
16
|
+
/** @type {Record<string, ServerClient>} */
|
|
17
|
+
clients: Record<string, ServerClient>;
|
|
18
|
+
events: EventEmitter<[never]>;
|
|
19
|
+
workerCount: number;
|
|
20
|
+
/** @type {WorkerHandler[]} */
|
|
21
|
+
workerHandlers: WorkerHandler[];
|
|
22
|
+
configuration: import("../configuration.js").default;
|
|
23
|
+
logger: Logger;
|
|
24
|
+
host: string;
|
|
25
|
+
port: number;
|
|
26
|
+
maxWorkers: number;
|
|
27
|
+
/**
|
|
28
|
+
* @returns {Promise<void>}
|
|
29
|
+
*/
|
|
30
|
+
start(): Promise<void>;
|
|
31
|
+
netServer: Net.Server;
|
|
32
|
+
_netServerListen(): Promise<any>;
|
|
33
|
+
_ensureAtLeastOneWorker(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* @returns {boolean}
|
|
36
|
+
*/
|
|
37
|
+
isActive(): boolean;
|
|
38
|
+
stopClients(): Promise<void>;
|
|
39
|
+
stopServer(): Promise<any>;
|
|
40
|
+
stop(): Promise<void>;
|
|
41
|
+
onClose: () => void;
|
|
42
|
+
/**
|
|
43
|
+
* @param {import("net").Socket} socket
|
|
44
|
+
*/
|
|
45
|
+
onConnection: (socket: import("net").Socket) => void;
|
|
46
|
+
/**
|
|
47
|
+
* @param {ServerClient} client
|
|
48
|
+
*/
|
|
49
|
+
onClientClose: (client: ServerClient) => void;
|
|
50
|
+
spawnWorker(): Promise<void>;
|
|
51
|
+
workerHandlerToUse(): WorkerHandler;
|
|
52
|
+
}
|
|
53
|
+
import ServerClient from "./server-client.js";
|
|
54
|
+
import EventEmitter from "events";
|
|
55
|
+
import WorkerHandler from "./worker-handler/index.js";
|
|
56
|
+
import { Logger } from "../logger.js";
|
|
57
|
+
import Net from "net";
|
|
58
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http-server/index.js"],"names":[],"mappings":"AASA;IAYE;;;;;;OAMG;IACH,uDALG;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;QACvB,IAAI,GAAlB,MAAM;QACQ,IAAI,GAAlB,MAAM;QACQ,UAAU,GAAxB,MAAM;KAAmB,EAQnC;IAxBD,oBAAe;IAEf,4CAA4C;IAC5C,SADW,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAC3B;IAEZ,8BAA2B;IAC3B,oBAAe;IAEf,8BAA8B;IAC9B,gBADW,aAAa,EAAE,CACP;IAUjB,qDAAkC;IAClC,eAA8B;IAC9B,aAA6B;IAC7B,aAAwB;IACxB,mBAAkC;IAGpC;;OAEG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAQzB;IAJC,sBAAiC;IAMnC,iCAaC;IAED,yCAIC;IAED;;OAEG;IACH,YAFa,OAAO,CAQnB;IAED,6BAUC;IAED,2BAYC;IAED,sBAGC;IAED,oBAEC;IAED;;OAEG;IACH,eAAgB,QAFL,OAAO,KAAK,EAAE,MAEH,UAkBrB;IAED;;OAEG;IACH,gBAAiB,QAFN,YAEY,UAWtB;IAED,6BAYC;IAED,oCAWC;CACF;yBA7KwB,oBAAoB;yBAHpB,QAAQ;0BAIP,2BAA2B;uBAHhC,cAAc;gBACnB,KAAK"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { digg } from "diggerize";
|
|
3
|
+
import EventEmitter from "events";
|
|
4
|
+
import { Logger } from "../logger.js";
|
|
5
|
+
import Net from "net";
|
|
6
|
+
import ServerClient from "./server-client.js";
|
|
7
|
+
import WorkerHandler from "./worker-handler/index.js";
|
|
8
|
+
export default class VelociousHttpServer {
|
|
9
|
+
clientCount = 0;
|
|
10
|
+
/** @type {Record<string, ServerClient>} */
|
|
11
|
+
clients = {};
|
|
12
|
+
events = new EventEmitter();
|
|
13
|
+
workerCount = 0;
|
|
14
|
+
/** @type {WorkerHandler[]} */
|
|
15
|
+
workerHandlers = [];
|
|
16
|
+
/**
|
|
17
|
+
* @param {object} args
|
|
18
|
+
* @param {import("../configuration.js").default} args.configuration
|
|
19
|
+
* @param {string} [args.host]
|
|
20
|
+
* @param {number} [args.port]
|
|
21
|
+
* @param {number} [args.maxWorkers]
|
|
22
|
+
*/
|
|
23
|
+
constructor({ configuration, host, maxWorkers, port }) {
|
|
24
|
+
this.configuration = configuration;
|
|
25
|
+
this.logger = new Logger(this);
|
|
26
|
+
this.host = host || "0.0.0.0";
|
|
27
|
+
this.port = port || 3006;
|
|
28
|
+
this.maxWorkers = maxWorkers || 16;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @returns {Promise<void>}
|
|
32
|
+
*/
|
|
33
|
+
async start() {
|
|
34
|
+
await this._ensureAtLeastOneWorker();
|
|
35
|
+
this.netServer = new Net.Server();
|
|
36
|
+
this.netServer.on("close", this.onClose);
|
|
37
|
+
this.netServer.on("connection", this.onConnection);
|
|
38
|
+
await this._netServerListen();
|
|
39
|
+
}
|
|
40
|
+
_netServerListen() {
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
if (!this.netServer)
|
|
43
|
+
throw new Error("No netServer");
|
|
44
|
+
try {
|
|
45
|
+
this.netServer.listen(this.port, this.host, () => {
|
|
46
|
+
this.logger.debug(`Velocious listening on ${this.host}:${this.port}`);
|
|
47
|
+
resolve(null);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
reject(error);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async _ensureAtLeastOneWorker() {
|
|
56
|
+
if (this.workerHandlers.length == 0) {
|
|
57
|
+
await this.spawnWorker();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @returns {boolean}
|
|
62
|
+
*/
|
|
63
|
+
isActive() {
|
|
64
|
+
if (this.netServer) {
|
|
65
|
+
return this.netServer.listening;
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
async stopClients() {
|
|
70
|
+
const promises = [];
|
|
71
|
+
for (const clientCount in this.clients) {
|
|
72
|
+
const client = this.clients[clientCount];
|
|
73
|
+
promises.push(client.end());
|
|
74
|
+
}
|
|
75
|
+
await Promise.all(promises);
|
|
76
|
+
}
|
|
77
|
+
stopServer() {
|
|
78
|
+
return new Promise((resolve, reject) => {
|
|
79
|
+
if (!this.netServer)
|
|
80
|
+
throw new Error("No netServer to stop");
|
|
81
|
+
this.netServer.close((error) => {
|
|
82
|
+
if (error) {
|
|
83
|
+
reject(error);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
resolve(null);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
async stop() {
|
|
92
|
+
await this.stopClients();
|
|
93
|
+
await this.stopServer();
|
|
94
|
+
}
|
|
95
|
+
onClose = () => {
|
|
96
|
+
this.events.emit("close");
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* @param {import("net").Socket} socket
|
|
100
|
+
*/
|
|
101
|
+
onConnection = (socket) => {
|
|
102
|
+
const clientCount = this.clientCount;
|
|
103
|
+
this.logger.debug(`New client ${clientCount}`);
|
|
104
|
+
this.clientCount++;
|
|
105
|
+
const workerHandler = this.workerHandlerToUse();
|
|
106
|
+
const client = new ServerClient({
|
|
107
|
+
clientCount,
|
|
108
|
+
configuration: this.configuration,
|
|
109
|
+
socket
|
|
110
|
+
});
|
|
111
|
+
client.events.on("close", this.onClientClose);
|
|
112
|
+
this.logger.debug(`Gave client ${clientCount} to worker ${workerHandler.workerCount}`);
|
|
113
|
+
workerHandler.addSocketConnection(client);
|
|
114
|
+
this.clients[clientCount] = client;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* @param {ServerClient} client
|
|
118
|
+
*/
|
|
119
|
+
onClientClose = (client) => {
|
|
120
|
+
const clientCount = digg(client, "clientCount");
|
|
121
|
+
const oldClientsLength = Object.keys(this.clients).length;
|
|
122
|
+
delete this.clients[clientCount];
|
|
123
|
+
const newClientsLength = Object.keys(this.clients).length;
|
|
124
|
+
if (newClientsLength != (oldClientsLength - 1)) {
|
|
125
|
+
console.error(`Expected client to have been removed but length didn't change from ${oldClientsLength} to ${oldClientsLength - 1}`);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
async spawnWorker() {
|
|
129
|
+
const workerCount = this.workerCount;
|
|
130
|
+
this.workerCount++;
|
|
131
|
+
const workerHandler = new WorkerHandler({
|
|
132
|
+
configuration: this.configuration,
|
|
133
|
+
workerCount
|
|
134
|
+
});
|
|
135
|
+
await workerHandler.start();
|
|
136
|
+
this.workerHandlers.push(workerHandler);
|
|
137
|
+
}
|
|
138
|
+
workerHandlerToUse() {
|
|
139
|
+
this.logger.debug(`Worker handlers length: ${this.workerHandlers.length}`);
|
|
140
|
+
const randomWorkerNumber = Math.floor(Math.random() * this.workerHandlers.length);
|
|
141
|
+
const workerHandler = this.workerHandlers[randomWorkerNumber];
|
|
142
|
+
if (!workerHandler) {
|
|
143
|
+
throw new Error(`No workerHandler by that number: ${randomWorkerNumber}`);
|
|
144
|
+
}
|
|
145
|
+
return workerHandler;
|
|
146
|
+
}
|
|
147
|
+
}
|