velocious 1.0.428 → 1.0.429
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 +2 -0
- package/build/src/application.d.ts +96 -9
- package/build/src/application.d.ts.map +1 -1
- package/build/src/application.js +127 -28
- package/build/src/authorization/ability.d.ts +72 -31
- package/build/src/authorization/ability.d.ts.map +1 -1
- package/build/src/authorization/ability.js +59 -22
- package/build/src/authorization/base-resource.d.ts +47 -20
- package/build/src/authorization/base-resource.d.ts.map +1 -1
- package/build/src/authorization/base-resource.js +43 -14
- package/build/src/background-jobs/client.d.ts +4 -2
- package/build/src/background-jobs/client.d.ts.map +1 -1
- package/build/src/background-jobs/client.js +4 -2
- package/build/src/background-jobs/cron-expression.d.ts +9 -5
- package/build/src/background-jobs/cron-expression.d.ts.map +1 -1
- package/build/src/background-jobs/cron-expression.js +16 -6
- package/build/src/background-jobs/forked-runner-child.js +12 -5
- package/build/src/background-jobs/job-registry.d.ts +7 -1
- package/build/src/background-jobs/job-registry.d.ts.map +1 -1
- package/build/src/background-jobs/job-registry.js +8 -2
- package/build/src/background-jobs/job-runner.d.ts +1 -0
- package/build/src/background-jobs/job-runner.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.js +8 -3
- package/build/src/background-jobs/job.d.ts +12 -8
- package/build/src/background-jobs/job.d.ts.map +1 -1
- package/build/src/background-jobs/job.js +12 -6
- package/build/src/background-jobs/json-socket.d.ts +17 -5
- package/build/src/background-jobs/json-socket.d.ts.map +1 -1
- package/build/src/background-jobs/json-socket.js +18 -6
- package/build/src/background-jobs/main.d.ts +118 -32
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +123 -35
- package/build/src/background-jobs/normalize-error.d.ts +2 -1
- package/build/src/background-jobs/normalize-error.d.ts.map +1 -1
- package/build/src/background-jobs/normalize-error.js +5 -3
- package/build/src/background-jobs/scheduler.d.ts +31 -10
- package/build/src/background-jobs/scheduler.d.ts.map +1 -1
- package/build/src/background-jobs/scheduler.js +33 -11
- package/build/src/background-jobs/socket-request.d.ts +2 -0
- package/build/src/background-jobs/socket-request.d.ts.map +1 -1
- package/build/src/background-jobs/socket-request.js +11 -3
- package/build/src/background-jobs/status-reporter.d.ts +5 -2
- package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
- package/build/src/background-jobs/status-reporter.js +6 -3
- package/build/src/background-jobs/store.d.ts +57 -19
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +70 -20
- package/build/src/background-jobs/types.d.ts +7 -7
- package/build/src/background-jobs/types.d.ts.map +1 -1
- package/build/src/background-jobs/types.js +6 -6
- package/build/src/background-jobs/web/authorization.d.ts.map +1 -1
- package/build/src/background-jobs/web/authorization.js +3 -1
- package/build/src/background-jobs/web/controller.d.ts +40 -14
- package/build/src/background-jobs/web/controller.d.ts.map +1 -1
- package/build/src/background-jobs/web/controller.js +46 -15
- package/build/src/background-jobs/web/registry.d.ts +5 -0
- package/build/src/background-jobs/web/registry.d.ts.map +1 -1
- package/build/src/background-jobs/web/registry.js +4 -1
- package/build/src/background-jobs/worker.d.ts +41 -8
- package/build/src/background-jobs/worker.d.ts.map +1 -1
- package/build/src/background-jobs/worker.js +64 -16
- package/build/src/beacon/client.d.ts +39 -12
- package/build/src/beacon/client.d.ts.map +1 -1
- package/build/src/beacon/client.js +45 -15
- package/build/src/beacon/in-process-broker.d.ts +4 -0
- package/build/src/beacon/in-process-broker.d.ts.map +1 -1
- package/build/src/beacon/in-process-broker.js +8 -3
- package/build/src/beacon/in-process-client.d.ts +28 -9
- package/build/src/beacon/in-process-client.d.ts.map +1 -1
- package/build/src/beacon/in-process-client.js +27 -9
- package/build/src/beacon/server.d.ts +13 -2
- package/build/src/beacon/server.d.ts.map +1 -1
- package/build/src/beacon/server.js +21 -5
- package/build/src/beacon/types.d.ts +3 -3
- package/build/src/beacon/types.d.ts.map +1 -1
- package/build/src/beacon/types.js +2 -2
- package/build/src/cli/base-command.d.ts +18 -4
- package/build/src/cli/base-command.d.ts.map +1 -1
- package/build/src/cli/base-command.js +15 -4
- package/build/src/cli/browser-cli.d.ts +3 -0
- package/build/src/cli/browser-cli.d.ts.map +1 -1
- package/build/src/cli/browser-cli.js +7 -2
- package/build/src/cli/commands/background-jobs-main.d.ts +0 -1
- package/build/src/cli/commands/background-jobs-main.d.ts.map +1 -1
- package/build/src/cli/commands/background-jobs-runner.d.ts +0 -1
- package/build/src/cli/commands/background-jobs-runner.d.ts.map +1 -1
- package/build/src/cli/commands/background-jobs-worker.d.ts +0 -1
- package/build/src/cli/commands/background-jobs-worker.d.ts.map +1 -1
- package/build/src/cli/commands/beacon.d.ts +0 -1
- package/build/src/cli/commands/beacon.d.ts.map +1 -1
- package/build/src/cli/commands/console.d.ts +0 -2
- package/build/src/cli/commands/console.d.ts.map +1 -1
- package/build/src/cli/commands/console.js +5 -2
- package/build/src/cli/commands/db/base-command.d.ts +11 -2
- package/build/src/cli/commands/db/base-command.d.ts.map +1 -1
- package/build/src/cli/commands/db/base-command.js +12 -3
- package/build/src/cli/commands/db/create.d.ts +3 -0
- package/build/src/cli/commands/db/create.d.ts.map +1 -1
- package/build/src/cli/commands/db/create.js +4 -1
- package/build/src/cli/commands/db/drop.d.ts +3 -0
- package/build/src/cli/commands/db/drop.d.ts.map +1 -1
- package/build/src/cli/commands/db/drop.js +4 -1
- package/build/src/cli/commands/db/schema/dump.d.ts +0 -2
- package/build/src/cli/commands/db/schema/dump.d.ts.map +1 -1
- package/build/src/cli/commands/db/schema/dump.js +5 -2
- package/build/src/cli/commands/db/schema/load.d.ts +0 -2
- package/build/src/cli/commands/db/schema/load.d.ts.map +1 -1
- package/build/src/cli/commands/db/schema/load.js +5 -2
- package/build/src/cli/commands/db/seed.d.ts +0 -2
- package/build/src/cli/commands/db/seed.d.ts.map +1 -1
- package/build/src/cli/commands/db/seed.js +5 -2
- package/build/src/cli/commands/db/tenants/check.d.ts +4 -1
- package/build/src/cli/commands/db/tenants/check.d.ts.map +1 -1
- package/build/src/cli/commands/db/tenants/check.js +5 -2
- package/build/src/cli/commands/db/tenants/create.d.ts +4 -1
- package/build/src/cli/commands/db/tenants/create.d.ts.map +1 -1
- package/build/src/cli/commands/db/tenants/create.js +5 -2
- package/build/src/cli/commands/db/tenants/migrate.d.ts +4 -1
- package/build/src/cli/commands/db/tenants/migrate.d.ts.map +1 -1
- package/build/src/cli/commands/db/tenants/migrate.js +5 -2
- package/build/src/cli/commands/destroy/migration.d.ts +0 -1
- package/build/src/cli/commands/destroy/migration.d.ts.map +1 -1
- package/build/src/cli/commands/generate/base-models.d.ts +0 -1
- package/build/src/cli/commands/generate/base-models.d.ts.map +1 -1
- package/build/src/cli/commands/generate/frontend-models.d.ts +0 -2
- package/build/src/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/cli/commands/generate/frontend-models.js +5 -2
- package/build/src/cli/commands/generate/migration.d.ts +0 -1
- package/build/src/cli/commands/generate/migration.d.ts.map +1 -1
- package/build/src/cli/commands/generate/model.d.ts +0 -1
- package/build/src/cli/commands/generate/model.d.ts.map +1 -1
- package/build/src/cli/commands/init.d.ts +0 -1
- package/build/src/cli/commands/init.d.ts.map +1 -1
- package/build/src/cli/commands/routes.d.ts +0 -1
- package/build/src/cli/commands/routes.d.ts.map +1 -1
- package/build/src/cli/commands/run-script.d.ts +0 -2
- package/build/src/cli/commands/run-script.d.ts.map +1 -1
- package/build/src/cli/commands/run-script.js +5 -2
- package/build/src/cli/commands/runner.d.ts +0 -2
- package/build/src/cli/commands/runner.d.ts.map +1 -1
- package/build/src/cli/commands/runner.js +5 -2
- package/build/src/cli/commands/server.d.ts +0 -1
- package/build/src/cli/commands/server.d.ts.map +1 -1
- package/build/src/cli/commands/test.d.ts +0 -1
- package/build/src/cli/commands/test.d.ts.map +1 -1
- package/build/src/cli/index.d.ts +18 -5
- package/build/src/cli/index.d.ts.map +1 -1
- package/build/src/cli/index.js +25 -8
- package/build/src/cli/tenant-database-command-helper.d.ts +24 -9
- package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
- package/build/src/cli/tenant-database-command-helper.js +30 -11
- package/build/src/cli/use-browser-cli.d.ts +1 -0
- package/build/src/cli/use-browser-cli.d.ts.map +1 -1
- package/build/src/cli/use-browser-cli.js +5 -2
- package/build/src/configuration-resolver.d.ts +1 -0
- package/build/src/configuration-resolver.d.ts.map +1 -1
- package/build/src/configuration-resolver.js +2 -1
- package/build/src/configuration-types.d.ts +44 -44
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +27 -27
- package/build/src/configuration.d.ts +350 -114
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +416 -128
- package/build/src/controller.d.ts +67 -18
- package/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +88 -23
- package/build/src/current-configuration.d.ts +2 -0
- package/build/src/current-configuration.d.ts.map +1 -1
- package/build/src/current-configuration.js +6 -2
- package/build/src/current.d.ts +16 -9
- package/build/src/current.d.ts.map +1 -1
- package/build/src/current.js +15 -8
- package/build/src/database/annotations-async-hooks.js +13 -6
- package/build/src/database/annotations.d.ts +7 -1
- package/build/src/database/annotations.d.ts.map +1 -1
- package/build/src/database/annotations.js +12 -5
- package/build/src/database/drivers/base-column.d.ts +21 -3
- package/build/src/database/drivers/base-column.d.ts.map +1 -1
- package/build/src/database/drivers/base-column.js +21 -3
- package/build/src/database/drivers/base-columns-index.d.ts +9 -0
- package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/base-columns-index.js +10 -1
- package/build/src/database/drivers/base-foreign-key.d.ts +15 -3
- package/build/src/database/drivers/base-foreign-key.d.ts.map +1 -1
- package/build/src/database/drivers/base-foreign-key.js +15 -3
- package/build/src/database/drivers/base-table.d.ts +16 -3
- package/build/src/database/drivers/base-table.d.ts.map +1 -1
- package/build/src/database/drivers/base-table.js +16 -3
- package/build/src/database/drivers/base.d.ts +174 -37
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +156 -40
- package/build/src/database/drivers/mssql/column.d.ts +3 -2
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/column.js +3 -2
- package/build/src/database/drivers/mssql/index.d.ts +5 -6
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +38 -7
- package/build/src/database/drivers/mssql/options.d.ts +1 -0
- package/build/src/database/drivers/mssql/options.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/options.js +8 -2
- package/build/src/database/drivers/mssql/sql/create-database.d.ts +1 -0
- package/build/src/database/drivers/mssql/sql/create-database.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/create-database.js +2 -1
- package/build/src/database/drivers/mssql/sql/drop-database.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/sql/drop-database.js +2 -1
- package/build/src/database/drivers/mssql/structure-sql.d.ts +5 -2
- package/build/src/database/drivers/mssql/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/structure-sql.js +5 -2
- package/build/src/database/drivers/mssql/table.d.ts +1 -0
- package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/table.js +9 -4
- package/build/src/database/drivers/mysql/column.d.ts +3 -2
- package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/column.js +4 -3
- package/build/src/database/drivers/mysql/index.d.ts +11 -3
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +54 -10
- package/build/src/database/drivers/mysql/options.d.ts +1 -0
- package/build/src/database/drivers/mysql/options.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/options.js +4 -2
- package/build/src/database/drivers/mysql/query.d.ts +3 -2
- package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/query.js +6 -3
- package/build/src/database/drivers/mysql/sql/create-database.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/sql/create-database.js +3 -1
- package/build/src/database/drivers/mysql/structure-sql.d.ts +7 -2
- package/build/src/database/drivers/mysql/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/structure-sql.js +7 -2
- package/build/src/database/drivers/mysql/table.d.ts +1 -0
- package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/table.js +7 -3
- package/build/src/database/drivers/pgsql/column.d.ts +3 -2
- package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/column.js +3 -2
- package/build/src/database/drivers/pgsql/index.d.ts +1 -1
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +36 -11
- package/build/src/database/drivers/pgsql/options.d.ts +2 -0
- package/build/src/database/drivers/pgsql/options.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/options.js +3 -1
- package/build/src/database/drivers/pgsql/structure-sql.d.ts +5 -2
- package/build/src/database/drivers/pgsql/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/structure-sql.js +5 -2
- package/build/src/database/drivers/pgsql/table.d.ts +1 -0
- package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/table.js +6 -2
- package/build/src/database/drivers/sqlite/base.d.ts +15 -5
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +79 -27
- package/build/src/database/drivers/sqlite/column.d.ts +3 -2
- package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/column.js +3 -2
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +4 -2
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.js +4 -2
- package/build/src/database/drivers/sqlite/foreign-key.d.ts +3 -2
- package/build/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/foreign-key.js +3 -2
- package/build/src/database/drivers/sqlite/index.d.ts +18 -5
- package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.js +40 -16
- package/build/src/database/drivers/sqlite/index.native.d.ts +1 -1
- package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.native.js +6 -3
- package/build/src/database/drivers/sqlite/index.web.d.ts +16 -4
- package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.web.js +17 -7
- package/build/src/database/drivers/sqlite/options.d.ts +2 -0
- package/build/src/database/drivers/sqlite/options.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/options.js +3 -1
- package/build/src/database/drivers/sqlite/query.d.ts +3 -2
- package/build/src/database/drivers/sqlite/query.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query.js +6 -3
- package/build/src/database/drivers/sqlite/query.native.d.ts +2 -2
- package/build/src/database/drivers/sqlite/query.native.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query.native.js +3 -3
- package/build/src/database/drivers/sqlite/query.web.d.ts +3 -2
- package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/query.web.js +6 -3
- package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/sql/alter-table.js +9 -3
- package/build/src/database/drivers/sqlite/structure-sql.d.ts +2 -0
- package/build/src/database/drivers/sqlite/structure-sql.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/structure-sql.js +3 -1
- package/build/src/database/drivers/sqlite/table-rebuilder.d.ts +2 -0
- package/build/src/database/drivers/sqlite/table-rebuilder.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table-rebuilder.js +3 -1
- package/build/src/database/drivers/sqlite/table.d.ts +2 -0
- package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table.js +14 -4
- package/build/src/database/drivers/structure-sql/utils.d.ts +2 -0
- package/build/src/database/drivers/structure-sql/utils.d.ts.map +1 -1
- package/build/src/database/drivers/structure-sql/utils.js +3 -1
- package/build/src/database/handler.d.ts +1 -0
- package/build/src/database/handler.d.ts.map +1 -1
- package/build/src/database/handler.js +2 -1
- package/build/src/database/initializer-from-require-context.d.ts +8 -0
- package/build/src/database/initializer-from-require-context.d.ts.map +1 -1
- package/build/src/database/initializer-from-require-context.js +4 -1
- package/build/src/database/migration/index.d.ts +40 -5
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migration/index.js +34 -6
- package/build/src/database/migrator/files-finder.d.ts +2 -0
- package/build/src/database/migrator/files-finder.d.ts.map +1 -1
- package/build/src/database/migrator/files-finder.js +6 -2
- package/build/src/database/migrator.d.ts +29 -4
- package/build/src/database/migrator.d.ts.map +1 -1
- package/build/src/database/migrator.js +45 -10
- package/build/src/database/pool/async-tracked-multi-connection.d.ts +125 -31
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +189 -52
- package/build/src/database/pool/base-methods-forward.d.ts +1 -0
- package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
- package/build/src/database/pool/base-methods-forward.js +12 -3
- package/build/src/database/pool/base.d.ts +39 -7
- package/build/src/database/pool/base.d.ts.map +1 -1
- package/build/src/database/pool/base.js +59 -18
- package/build/src/database/pool/single-multi-use.d.ts +1 -0
- package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
- package/build/src/database/pool/single-multi-use.js +16 -4
- package/build/src/database/query/alter-table-base.d.ts +1 -0
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +3 -1
- package/build/src/database/query/base.d.ts +3 -0
- package/build/src/database/query/base.d.ts.map +1 -1
- package/build/src/database/query/base.js +4 -1
- package/build/src/database/query/create-database-base.d.ts +5 -0
- package/build/src/database/query/create-database-base.d.ts.map +1 -1
- package/build/src/database/query/create-database-base.js +4 -1
- package/build/src/database/query/create-index-base.d.ts +5 -0
- package/build/src/database/query/create-index-base.d.ts.map +1 -1
- package/build/src/database/query/create-index-base.js +4 -1
- package/build/src/database/query/create-table-base.d.ts +2 -0
- package/build/src/database/query/create-table-base.d.ts.map +1 -1
- package/build/src/database/query/create-table-base.js +3 -1
- package/build/src/database/query/delete-base.d.ts +3 -2
- package/build/src/database/query/delete-base.d.ts.map +1 -1
- package/build/src/database/query/delete-base.js +3 -2
- package/build/src/database/query/drop-database-base.d.ts +5 -0
- package/build/src/database/query/drop-database-base.d.ts.map +1 -1
- package/build/src/database/query/drop-database-base.js +4 -1
- package/build/src/database/query/drop-table-base.d.ts +1 -0
- package/build/src/database/query/drop-table-base.d.ts.map +1 -1
- package/build/src/database/query/drop-table-base.js +3 -1
- package/build/src/database/query/from-base.d.ts +6 -1
- package/build/src/database/query/from-base.d.ts.map +1 -1
- package/build/src/database/query/from-base.js +7 -2
- package/build/src/database/query/from-plain.d.ts +1 -0
- package/build/src/database/query/from-plain.d.ts.map +1 -1
- package/build/src/database/query/from-plain.js +2 -1
- package/build/src/database/query/from-table.d.ts +1 -0
- package/build/src/database/query/from-table.d.ts.map +1 -1
- package/build/src/database/query/from-table.js +2 -1
- package/build/src/database/query/index.d.ts +72 -12
- package/build/src/database/query/index.d.ts.map +1 -1
- package/build/src/database/query/index.js +79 -19
- package/build/src/database/query/insert-base.d.ts +13 -8
- package/build/src/database/query/insert-base.d.ts.map +1 -1
- package/build/src/database/query/insert-base.js +10 -5
- package/build/src/database/query/join-base.d.ts +4 -0
- package/build/src/database/query/join-base.d.ts.map +1 -1
- package/build/src/database/query/join-base.js +5 -1
- package/build/src/database/query/join-object.d.ts +11 -0
- package/build/src/database/query/join-object.d.ts.map +1 -1
- package/build/src/database/query/join-object.js +15 -4
- package/build/src/database/query/join-plain.d.ts +1 -0
- package/build/src/database/query/join-plain.d.ts.map +1 -1
- package/build/src/database/query/join-plain.js +2 -1
- package/build/src/database/query/join-tracker.d.ts +7 -0
- package/build/src/database/query/join-tracker.d.ts.map +1 -1
- package/build/src/database/query/join-tracker.js +8 -1
- package/build/src/database/query/model-class-query.d.ts +92 -26
- package/build/src/database/query/model-class-query.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.js +230 -76
- package/build/src/database/query/order-base.d.ts +3 -0
- package/build/src/database/query/order-base.d.ts.map +1 -1
- package/build/src/database/query/order-base.js +4 -1
- package/build/src/database/query/order-column.d.ts +9 -1
- package/build/src/database/query/order-column.d.ts.map +1 -1
- package/build/src/database/query/order-column.js +10 -2
- package/build/src/database/query/order-plain.d.ts +1 -0
- package/build/src/database/query/order-plain.d.ts.map +1 -1
- package/build/src/database/query/order-plain.js +2 -1
- package/build/src/database/query/preloader/belongs-to.d.ts +1 -0
- package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
- package/build/src/database/query/preloader/belongs-to.js +68 -23
- package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts +1 -0
- package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts.map +1 -1
- package/build/src/database/query/preloader/ensure-model-class-initialized.js +2 -1
- package/build/src/database/query/preloader/has-many.d.ts +5 -3
- package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-many.js +66 -24
- package/build/src/database/query/preloader/has-one.d.ts +1 -0
- package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
- package/build/src/database/query/preloader/has-one.js +26 -9
- package/build/src/database/query/preloader/selection.d.ts +7 -1
- package/build/src/database/query/preloader/selection.d.ts.map +1 -1
- package/build/src/database/query/preloader/selection.js +13 -5
- package/build/src/database/query/preloader.d.ts +1 -0
- package/build/src/database/query/preloader.d.ts.map +1 -1
- package/build/src/database/query/preloader.js +28 -9
- package/build/src/database/query/query-data.d.ts +21 -7
- package/build/src/database/query/query-data.d.ts.map +1 -1
- package/build/src/database/query/query-data.js +37 -18
- package/build/src/database/query/select-base.d.ts +3 -0
- package/build/src/database/query/select-base.d.ts.map +1 -1
- package/build/src/database/query/select-base.js +4 -1
- package/build/src/database/query/select-plain.d.ts +1 -0
- package/build/src/database/query/select-plain.d.ts.map +1 -1
- package/build/src/database/query/select-plain.js +2 -1
- package/build/src/database/query/select-table-and-column.d.ts +1 -0
- package/build/src/database/query/select-table-and-column.d.ts.map +1 -1
- package/build/src/database/query/select-table-and-column.js +2 -1
- package/build/src/database/query/update-base.d.ts +9 -6
- package/build/src/database/query/update-base.d.ts.map +1 -1
- package/build/src/database/query/update-base.js +7 -4
- package/build/src/database/query/upsert-base.d.ts +13 -4
- package/build/src/database/query/upsert-base.d.ts.map +1 -1
- package/build/src/database/query/upsert-base.js +12 -3
- package/build/src/database/query/where-base.d.ts +4 -0
- package/build/src/database/query/where-base.d.ts.map +1 -1
- package/build/src/database/query/where-base.js +5 -1
- package/build/src/database/query/where-combinator.d.ts +1 -0
- package/build/src/database/query/where-combinator.d.ts.map +1 -1
- package/build/src/database/query/where-combinator.js +6 -2
- package/build/src/database/query/where-hash.d.ts +6 -0
- package/build/src/database/query/where-hash.d.ts.map +1 -1
- package/build/src/database/query/where-hash.js +5 -1
- package/build/src/database/query/where-model-class-hash.d.ts +30 -16
- package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.js +55 -20
- package/build/src/database/query/where-not.d.ts +1 -0
- package/build/src/database/query/where-not.d.ts.map +1 -1
- package/build/src/database/query/where-not.js +3 -1
- package/build/src/database/query/where-plain.d.ts +1 -0
- package/build/src/database/query/where-plain.d.ts.map +1 -1
- package/build/src/database/query/where-plain.js +2 -1
- package/build/src/database/query/with-count.d.ts +11 -5
- package/build/src/database/query/with-count.d.ts.map +1 -1
- package/build/src/database/query/with-count.js +36 -15
- package/build/src/database/query-parser/base-query-parser.d.ts +1 -0
- package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/base-query-parser.js +2 -1
- package/build/src/database/query-parser/from-parser.d.ts +5 -1
- package/build/src/database/query-parser/from-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/from-parser.js +6 -2
- package/build/src/database/query-parser/group-parser.d.ts +2 -0
- package/build/src/database/query-parser/group-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/group-parser.js +3 -1
- package/build/src/database/query-parser/joins-parser.d.ts +1 -0
- package/build/src/database/query-parser/joins-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/joins-parser.js +2 -1
- package/build/src/database/query-parser/limit-parser.d.ts +1 -0
- package/build/src/database/query-parser/limit-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/limit-parser.js +2 -1
- package/build/src/database/query-parser/options.d.ts +15 -4
- package/build/src/database/query-parser/options.d.ts.map +1 -1
- package/build/src/database/query-parser/options.js +11 -3
- package/build/src/database/query-parser/order-parser.d.ts +1 -0
- package/build/src/database/query-parser/order-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/order-parser.js +2 -1
- package/build/src/database/query-parser/select-parser.d.ts +1 -0
- package/build/src/database/query-parser/select-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/select-parser.js +2 -1
- package/build/src/database/query-parser/where-parser.d.ts +1 -0
- package/build/src/database/query-parser/where-parser.d.ts.map +1 -1
- package/build/src/database/query-parser/where-parser.js +2 -1
- package/build/src/database/record/acts-as-list.d.ts +0 -1
- package/build/src/database/record/acts-as-list.d.ts.map +1 -1
- package/build/src/database/record/acts-as-list.js +61 -23
- package/build/src/database/record/attachments/download.d.ts +34 -15
- package/build/src/database/record/attachments/download.d.ts.map +1 -1
- package/build/src/database/record/attachments/download.js +34 -22
- package/build/src/database/record/attachments/handle.d.ts +17 -5
- package/build/src/database/record/attachments/handle.d.ts.map +1 -1
- package/build/src/database/record/attachments/handle.js +25 -9
- package/build/src/database/record/attachments/normalize-input.d.ts +6 -1
- package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
- package/build/src/database/record/attachments/normalize-input.js +54 -17
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +7 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.js +10 -2
- package/build/src/database/record/attachments/storage-drivers/native.d.ts +12 -7
- package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/native.js +13 -6
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts +18 -9
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.js +38 -13
- package/build/src/database/record/attachments/store.d.ts +48 -25
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +63 -25
- package/build/src/database/record/index.d.ts +388 -146
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +686 -248
- package/build/src/database/record/instance-relationships/base.d.ts +78 -19
- package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/base.js +98 -26
- package/build/src/database/record/instance-relationships/belongs-to.d.ts +1 -0
- package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/belongs-to.js +13 -5
- package/build/src/database/record/instance-relationships/has-many.d.ts +27 -7
- package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-many.js +50 -16
- package/build/src/database/record/instance-relationships/has-one.d.ts +4 -1
- package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-one.js +28 -10
- package/build/src/database/record/relationships/base.d.ts +61 -14
- package/build/src/database/record/relationships/base.d.ts.map +1 -1
- package/build/src/database/record/relationships/base.js +60 -15
- package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/relationships/belongs-to.js +9 -3
- package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-many.js +9 -3
- package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-one.js +9 -3
- package/build/src/database/record/state-machine.d.ts +9 -1
- package/build/src/database/record/state-machine.d.ts.map +1 -1
- package/build/src/database/record/state-machine.js +35 -14
- package/build/src/database/record/user-module.d.ts +2 -0
- package/build/src/database/record/user-module.d.ts.map +1 -1
- package/build/src/database/record/user-module.js +3 -1
- package/build/src/database/record/validators/base.d.ts +4 -2
- package/build/src/database/record/validators/base.d.ts.map +1 -1
- package/build/src/database/record/validators/base.js +4 -2
- package/build/src/database/record/validators/format.d.ts.map +1 -1
- package/build/src/database/record/validators/format.js +2 -1
- package/build/src/database/record/validators/presence.d.ts.map +1 -1
- package/build/src/database/record/validators/presence.js +5 -2
- package/build/src/database/record/validators/uniqueness.d.ts +0 -2
- package/build/src/database/record/validators/uniqueness.d.ts.map +1 -1
- package/build/src/database/record/validators/uniqueness.js +18 -8
- package/build/src/database/table-data/index.d.ts +40 -4
- package/build/src/database/table-data/index.d.ts.map +1 -1
- package/build/src/database/table-data/index.js +38 -5
- package/build/src/database/table-data/table-column.d.ts +43 -5
- package/build/src/database/table-data/table-column.d.ts.map +1 -1
- package/build/src/database/table-data/table-column.js +37 -4
- package/build/src/database/table-data/table-foreign-key.d.ts +8 -0
- package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
- package/build/src/database/table-data/table-foreign-key.js +9 -1
- package/build/src/database/table-data/table-index.d.ts +8 -0
- package/build/src/database/table-data/table-index.d.ts.map +1 -1
- package/build/src/database/table-data/table-index.js +6 -1
- package/build/src/database/table-data/table-reference.d.ts +1 -0
- package/build/src/database/table-data/table-reference.d.ts.map +1 -1
- package/build/src/database/table-data/table-reference.js +2 -1
- package/build/src/database/use-database.d.ts +1 -0
- package/build/src/database/use-database.d.ts.map +1 -1
- package/build/src/database/use-database.js +2 -1
- package/build/src/environment-handlers/base.d.ts +94 -36
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +90 -36
- package/build/src/environment-handlers/browser.d.ts +33 -3
- package/build/src/environment-handlers/browser.d.ts.map +1 -1
- package/build/src/environment-handlers/browser.js +36 -9
- package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts +5 -0
- package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/cli-command-context.js +6 -2
- package/build/src/environment-handlers/node/cli/commands/console.d.ts +3 -2
- package/build/src/environment-handlers/node/cli/commands/console.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/console.js +23 -9
- package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts +4 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/dump.js +5 -2
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +6 -2
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +11 -5
- package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts +15 -5
- package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/db/seed.js +20 -6
- package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +5 -0
- package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/destroy/migration.js +3 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +2 -0
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +6 -4
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +43 -29
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +99 -40
- package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts +5 -0
- package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/migration.js +3 -1
- package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts +5 -0
- package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/model.js +3 -1
- package/build/src/environment-handlers/node/cli/commands/init.d.ts +5 -0
- package/build/src/environment-handlers/node/cli/commands/init.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/init.js +3 -1
- package/build/src/environment-handlers/node/cli/commands/routes.d.ts +3 -0
- package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/routes.js +4 -1
- package/build/src/environment-handlers/node/cli/commands/run-script.d.ts +15 -5
- package/build/src/environment-handlers/node/cli/commands/run-script.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/run-script.js +20 -6
- package/build/src/environment-handlers/node/cli/commands/runner.d.ts +18 -6
- package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/runner.js +20 -6
- package/build/src/environment-handlers/node/cli/commands/server.d.ts +13 -1
- package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/server.js +23 -6
- package/build/src/environment-handlers/node.d.ts +14 -2
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +107 -39
- package/build/src/error-logger.d.ts +4 -3
- package/build/src/error-logger.d.ts.map +1 -1
- package/build/src/error-logger.js +4 -3
- package/build/src/frontend-model-controller.d.ts +239 -90
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +577 -787
- package/build/src/frontend-model-resource/base-resource.d.ts +118 -66
- package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
- package/build/src/frontend-model-resource/base-resource.js +205 -82
- package/build/src/frontend-models/base.d.ts +319 -163
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +717 -366
- package/build/src/frontend-models/clear-pending-debounced-callback.d.ts +2 -1
- package/build/src/frontend-models/clear-pending-debounced-callback.d.ts.map +1 -1
- package/build/src/frontend-models/clear-pending-debounced-callback.js +6 -3
- package/build/src/frontend-models/event-hook-models.d.ts +5 -0
- package/build/src/frontend-models/event-hook-models.d.ts.map +1 -1
- package/build/src/frontend-models/event-hook-models.js +10 -3
- package/build/src/frontend-models/model-registry.d.ts +5 -5
- package/build/src/frontend-models/model-registry.d.ts.map +1 -1
- package/build/src/frontend-models/model-registry.js +5 -5
- package/build/src/frontend-models/outgoing-event-buffer.d.ts +11 -3
- package/build/src/frontend-models/outgoing-event-buffer.d.ts.map +1 -1
- package/build/src/frontend-models/outgoing-event-buffer.js +13 -5
- package/build/src/frontend-models/preloader.d.ts +9 -6
- package/build/src/frontend-models/preloader.d.ts.map +1 -1
- package/build/src/frontend-models/preloader.js +21 -9
- package/build/src/frontend-models/query.d.ts +283 -73
- package/build/src/frontend-models/query.d.ts.map +1 -1
- package/build/src/frontend-models/query.js +331 -203
- package/build/src/frontend-models/resource-config-validation.d.ts +2 -0
- package/build/src/frontend-models/resource-config-validation.d.ts.map +1 -1
- package/build/src/frontend-models/resource-config-validation.js +3 -1
- package/build/src/frontend-models/resource-definition.d.ts +12 -5
- package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
- package/build/src/frontend-models/resource-definition.js +39 -13
- package/build/src/frontend-models/transport-serialization.d.ts +14 -11
- package/build/src/frontend-models/transport-serialization.d.ts.map +1 -1
- package/build/src/frontend-models/transport-serialization.js +80 -53
- package/build/src/frontend-models/use-destroyed-event.d.ts +21 -0
- package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-destroyed-event.js +34 -11
- package/build/src/frontend-models/use-model-class-event.d.ts +24 -0
- package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-model-class-event.js +39 -12
- package/build/src/frontend-models/use-updated-event.d.ts +21 -0
- package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
- package/build/src/frontend-models/use-updated-event.js +37 -12
- package/build/src/frontend-models/websocket-channel.d.ts +51 -9
- package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-channel.js +96 -26
- package/build/src/frontend-models/websocket-publishers.d.ts +2 -0
- package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
- package/build/src/frontend-models/websocket-publishers.js +33 -11
- package/build/src/http-client/header.d.ts +1 -0
- package/build/src/http-client/header.d.ts.map +1 -1
- package/build/src/http-client/header.js +2 -1
- package/build/src/http-client/index.d.ts +4 -0
- package/build/src/http-client/index.d.ts.map +1 -1
- package/build/src/http-client/index.js +5 -1
- package/build/src/http-client/request.d.ts +5 -0
- package/build/src/http-client/request.d.ts.map +1 -1
- package/build/src/http-client/request.js +6 -1
- package/build/src/http-client/response.d.ts +14 -4
- package/build/src/http-client/response.d.ts.map +1 -1
- package/build/src/http-client/response.js +14 -4
- package/build/src/http-client/websocket-client.d.ts +1 -0
- package/build/src/http-client/websocket-client.d.ts.map +1 -1
- package/build/src/http-client/websocket-client.js +2 -1
- package/build/src/http-server/client/index.d.ts +16 -2
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +44 -13
- package/build/src/http-server/client/params-to-object.d.ts +16 -10
- package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
- package/build/src/http-server/client/params-to-object.js +46 -17
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts +10 -6
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/form-data-part.js +11 -7
- package/build/src/http-server/client/request-buffer/header.d.ts +1 -0
- package/build/src/http-server/client/request-buffer/header.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/header.js +2 -1
- package/build/src/http-server/client/request-buffer/index.d.ts +29 -4
- package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/index.js +43 -9
- package/build/src/http-server/client/request-parser.d.ts +52 -13
- package/build/src/http-server/client/request-parser.d.ts.map +1 -1
- package/build/src/http-server/client/request-parser.js +58 -15
- package/build/src/http-server/client/request-runner.d.ts +5 -1
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +32 -8
- package/build/src/http-server/client/request-timing.d.ts +37 -7
- package/build/src/http-server/client/request-timing.d.ts.map +1 -1
- package/build/src/http-server/client/request-timing.js +32 -8
- package/build/src/http-server/client/request.d.ts +15 -5
- package/build/src/http-server/client/request.d.ts.map +1 -1
- package/build/src/http-server/client/request.js +17 -5
- package/build/src/http-server/client/response.d.ts +22 -4
- package/build/src/http-server/client/response.d.ts.map +1 -1
- package/build/src/http-server/client/response.js +29 -7
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts +1 -0
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/memory-uploaded-file.js +3 -1
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts +1 -0
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.js +3 -1
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +2 -0
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/uploaded-file.js +3 -1
- package/build/src/http-server/client/websocket-request.d.ts +24 -12
- package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-request.js +24 -10
- package/build/src/http-server/client/websocket-session.d.ts +101 -62
- package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-session.js +118 -61
- package/build/src/http-server/cookie.d.ts +36 -8
- package/build/src/http-server/cookie.d.ts.map +1 -1
- package/build/src/http-server/cookie.js +37 -9
- package/build/src/http-server/development-reloader.d.ts +32 -7
- package/build/src/http-server/development-reloader.d.ts.map +1 -1
- package/build/src/http-server/development-reloader.js +39 -10
- package/build/src/http-server/index.d.ts +102 -25
- package/build/src/http-server/index.d.ts.map +1 -1
- package/build/src/http-server/index.js +117 -32
- package/build/src/http-server/remote-address.d.ts +1 -0
- package/build/src/http-server/remote-address.d.ts.map +1 -1
- package/build/src/http-server/remote-address.js +15 -4
- package/build/src/http-server/server-client.d.ts +37 -8
- package/build/src/http-server/server-client.d.ts.map +1 -1
- package/build/src/http-server/server-client.js +48 -12
- package/build/src/http-server/server-lock.d.ts +76 -0
- package/build/src/http-server/server-lock.d.ts.map +1 -0
- package/build/src/http-server/server-lock.js +164 -0
- package/build/src/http-server/websocket-channel-subscribers.d.ts +13 -8
- package/build/src/http-server/websocket-channel-subscribers.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel-subscribers.js +16 -7
- package/build/src/http-server/websocket-channel.d.ts +13 -11
- package/build/src/http-server/websocket-channel.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel.js +8 -12
- package/build/src/http-server/websocket-connection.d.ts +10 -14
- package/build/src/http-server/websocket-connection.d.ts.map +1 -1
- package/build/src/http-server/websocket-connection.js +8 -12
- package/build/src/http-server/websocket-event-log-store.d.ts +48 -10
- package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
- package/build/src/http-server/websocket-event-log-store.js +76 -34
- package/build/src/http-server/websocket-events-host.d.ts +21 -15
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.js +20 -11
- package/build/src/http-server/websocket-events.d.ts +8 -7
- package/build/src/http-server/websocket-events.d.ts.map +1 -1
- package/build/src/http-server/websocket-events.js +6 -5
- package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts +3 -2
- package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/channel-subscriber-dispatch.js +3 -2
- package/build/src/http-server/worker-handler/in-process.d.ts +18 -18
- package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/in-process.js +28 -20
- package/build/src/http-server/worker-handler/index.d.ts +39 -20
- package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/index.js +34 -14
- package/build/src/http-server/worker-handler/worker-thread.d.ts +31 -15
- package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/worker-thread.js +31 -12
- package/build/src/initializer.d.ts +4 -0
- package/build/src/initializer.d.ts.map +1 -1
- package/build/src/initializer.js +5 -1
- package/build/src/jobs/mail-delivery.d.ts +1 -0
- package/build/src/jobs/mail-delivery.d.ts.map +1 -1
- package/build/src/jobs/mail-delivery.js +2 -1
- package/build/src/logger/base-logger.js +2 -2
- package/build/src/logger/console-logger.d.ts +2 -0
- package/build/src/logger/console-logger.d.ts.map +1 -1
- package/build/src/logger/console-logger.js +3 -1
- package/build/src/logger/file-logger.d.ts +2 -0
- package/build/src/logger/file-logger.d.ts.map +1 -1
- package/build/src/logger/file-logger.js +3 -1
- package/build/src/logger/outputs/array-output.d.ts +21 -5
- package/build/src/logger/outputs/array-output.d.ts.map +1 -1
- package/build/src/logger/outputs/array-output.js +19 -6
- package/build/src/logger/outputs/console-output.d.ts +10 -2
- package/build/src/logger/outputs/console-output.d.ts.map +1 -1
- package/build/src/logger/outputs/console-output.js +8 -3
- package/build/src/logger/outputs/file-output.d.ts +20 -5
- package/build/src/logger/outputs/file-output.d.ts.map +1 -1
- package/build/src/logger/outputs/file-output.js +18 -6
- package/build/src/logger/outputs/stdout-output.d.ts +7 -1
- package/build/src/logger/outputs/stdout-output.d.ts.map +1 -1
- package/build/src/logger/outputs/stdout-output.js +9 -3
- package/build/src/logger.d.ts +28 -13
- package/build/src/logger.d.ts.map +1 -1
- package/build/src/logger.js +60 -23
- package/build/src/mailer/backends/smtp.d.ts +5 -0
- package/build/src/mailer/backends/smtp.d.ts.map +1 -1
- package/build/src/mailer/backends/smtp.js +17 -4
- package/build/src/mailer/base.d.ts +33 -17
- package/build/src/mailer/base.d.ts.map +1 -1
- package/build/src/mailer/base.js +54 -18
- package/build/src/mailer/delivery.d.ts +16 -5
- package/build/src/mailer/delivery.d.ts.map +1 -1
- package/build/src/mailer/delivery.js +18 -7
- package/build/src/mailer/index.d.ts +5 -5
- package/build/src/mailer/index.d.ts.map +1 -1
- package/build/src/mailer/index.js +2 -2
- package/build/src/mailer.d.ts +5 -5
- package/build/src/mailer.d.ts.map +1 -1
- package/build/src/mailer.js +2 -2
- package/build/src/plugins/sqljs-wasm-route-controller.d.ts +4 -1
- package/build/src/plugins/sqljs-wasm-route-controller.d.ts.map +1 -1
- package/build/src/plugins/sqljs-wasm-route-controller.js +11 -4
- package/build/src/plugins/sqljs-wasm-route.d.ts +6 -0
- package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
- package/build/src/plugins/sqljs-wasm-route.js +4 -1
- package/build/src/record-payload-values.d.ts +54 -0
- package/build/src/record-payload-values.d.ts.map +1 -0
- package/build/src/record-payload-values.js +80 -0
- package/build/src/routes/app-routes.d.ts +1 -0
- package/build/src/routes/app-routes.d.ts.map +1 -1
- package/build/src/routes/app-routes.js +2 -1
- package/build/src/routes/base-route.d.ts +52 -16
- package/build/src/routes/base-route.d.ts.map +1 -1
- package/build/src/routes/base-route.js +50 -14
- package/build/src/routes/basic-route.d.ts +1 -0
- package/build/src/routes/basic-route.d.ts.map +1 -1
- package/build/src/routes/basic-route.js +13 -4
- package/build/src/routes/built-in/debug/controller.d.ts +4 -1
- package/build/src/routes/built-in/debug/controller.d.ts.map +1 -1
- package/build/src/routes/built-in/debug/controller.js +5 -2
- package/build/src/routes/get-route.d.ts +1 -0
- package/build/src/routes/get-route.d.ts.map +1 -1
- package/build/src/routes/get-route.js +7 -4
- package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts +1 -0
- package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts.map +1 -1
- package/build/src/routes/hooks/frontend-model-command-route-hook.js +6 -2
- package/build/src/routes/index.d.ts +3 -2
- package/build/src/routes/index.d.ts.map +1 -1
- package/build/src/routes/index.js +10 -4
- package/build/src/routes/namespace-route.d.ts +1 -0
- package/build/src/routes/namespace-route.d.ts.map +1 -1
- package/build/src/routes/namespace-route.js +5 -3
- package/build/src/routes/plugin-routes.d.ts +10 -1
- package/build/src/routes/plugin-routes.d.ts.map +1 -1
- package/build/src/routes/plugin-routes.js +11 -3
- package/build/src/routes/post-route.d.ts +1 -0
- package/build/src/routes/post-route.d.ts.map +1 -1
- package/build/src/routes/post-route.js +7 -4
- package/build/src/routes/resolver.d.ts +20 -5
- package/build/src/routes/resolver.d.ts.map +1 -1
- package/build/src/routes/resolver.js +47 -14
- package/build/src/routes/resource-route.d.ts +6 -1
- package/build/src/routes/resource-route.d.ts.map +1 -1
- package/build/src/routes/resource-route.js +10 -4
- package/build/src/testing/base-expect.d.ts +2 -0
- package/build/src/testing/base-expect.d.ts.map +1 -1
- package/build/src/testing/base-expect.js +3 -1
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +33 -5
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -1
- package/build/src/testing/browser-frontend-model-event-hook-scenarios.js +95 -23
- package/build/src/testing/expect-to-change.d.ts +3 -0
- package/build/src/testing/expect-to-change.d.ts.map +1 -1
- package/build/src/testing/expect-to-change.js +4 -1
- package/build/src/testing/expect-utils.d.ts +22 -16
- package/build/src/testing/expect-utils.d.ts.map +1 -1
- package/build/src/testing/expect-utils.js +62 -30
- package/build/src/testing/expect.d.ts +50 -21
- package/build/src/testing/expect.d.ts.map +1 -1
- package/build/src/testing/expect.js +58 -17
- package/build/src/testing/request-client.d.ts +16 -3
- package/build/src/testing/request-client.d.ts.map +1 -1
- package/build/src/testing/request-client.js +17 -4
- package/build/src/testing/test-files-finder.d.ts +41 -9
- package/build/src/testing/test-files-finder.d.ts.map +1 -1
- package/build/src/testing/test-files-finder.js +42 -10
- package/build/src/testing/test-filter-parser.d.ts +6 -0
- package/build/src/testing/test-filter-parser.d.ts.map +1 -1
- package/build/src/testing/test-filter-parser.js +12 -3
- package/build/src/testing/test-runner.d.ts +102 -6
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +115 -23
- package/build/src/testing/test-suite-splitter.d.ts +7 -0
- package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
- package/build/src/testing/test-suite-splitter.js +7 -2
- package/build/src/testing/test.d.ts +20 -4
- package/build/src/testing/test.d.ts.map +1 -1
- package/build/src/testing/test.js +67 -20
- package/build/src/utils/backtrace-cleaner-node.d.ts.map +1 -1
- package/build/src/utils/backtrace-cleaner-node.js +6 -1
- package/build/src/utils/backtrace-cleaner.d.ts +16 -1
- package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
- package/build/src/utils/backtrace-cleaner.js +20 -2
- package/build/src/utils/ensure-error.d.ts +3 -2
- package/build/src/utils/ensure-error.d.ts.map +1 -1
- package/build/src/utils/ensure-error.js +3 -2
- package/build/src/utils/event-emitter.d.ts.map +1 -1
- package/build/src/utils/event-emitter.js +2 -2
- package/build/src/utils/file-exists.d.ts +1 -0
- package/build/src/utils/file-exists.d.ts.map +1 -1
- package/build/src/utils/file-exists.js +2 -1
- package/build/src/utils/format-value.d.ts +5 -4
- package/build/src/utils/format-value.d.ts.map +1 -1
- package/build/src/utils/format-value.js +12 -7
- package/build/src/utils/model-scope.d.ts +18 -12
- package/build/src/utils/model-scope.d.ts.map +1 -1
- package/build/src/utils/model-scope.js +19 -11
- package/build/src/utils/nest-callbacks.d.ts +1 -0
- package/build/src/utils/nest-callbacks.d.ts.map +1 -1
- package/build/src/utils/nest-callbacks.js +2 -1
- package/build/src/utils/plain-object.d.ts +7 -0
- package/build/src/utils/plain-object.d.ts.map +1 -0
- package/build/src/utils/plain-object.js +13 -0
- package/build/src/utils/ransack.d.ts +29 -5
- package/build/src/utils/ransack.d.ts.map +1 -1
- package/build/src/utils/ransack.js +136 -49
- package/build/src/utils/rest-args-error.d.ts +1 -0
- package/build/src/utils/rest-args-error.d.ts.map +1 -1
- package/build/src/utils/rest-args-error.js +2 -1
- package/build/src/utils/singularize-model-name.d.ts +1 -0
- package/build/src/utils/singularize-model-name.d.ts.map +1 -1
- package/build/src/utils/singularize-model-name.js +2 -1
- package/build/src/utils/to-import-specifier.d.ts.map +1 -1
- package/build/src/utils/to-import-specifier.js +3 -1
- package/build/src/utils/with-tracked-stack-async-hooks.d.ts +8 -5
- package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack-async-hooks.js +32 -13
- package/build/src/utils/with-tracked-stack.d.ts +9 -5
- package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack.js +19 -8
- package/build/src/velocious-error.d.ts +4 -2
- package/build/src/velocious-error.d.ts.map +1 -1
- package/build/src/velocious-error.js +5 -3
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
export default class VelociousDatabaseQueryOrderBase {
|
|
2
2
|
/**
|
|
3
|
+
* Runs constructor.
|
|
3
4
|
* @param {import("./index.js").default} query - Query instance.
|
|
4
5
|
*/
|
|
5
6
|
constructor(query: import("./index.js").default);
|
|
6
7
|
query: import("./index.js").default;
|
|
7
8
|
/**
|
|
9
|
+
* Runs get options.
|
|
8
10
|
* @returns {import("../query-parser/options.js").default} - The options options.
|
|
9
11
|
*/
|
|
10
12
|
getOptions(): import("../query-parser/options.js").default;
|
|
11
13
|
/**
|
|
14
|
+
* Runs set reverse order.
|
|
12
15
|
* @abstract
|
|
13
16
|
* @param {boolean} _reverseOrder - Whether reverse order.
|
|
14
17
|
* @returns {void} - No return value.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-base.d.ts","sourceRoot":"","sources":["../../../../src/database/query/order-base.js"],"names":[],"mappings":"AAEA;IACE
|
|
1
|
+
{"version":3,"file":"order-base.d.ts","sourceRoot":"","sources":["../../../../src/database/query/order-base.js"],"names":[],"mappings":"AAEA;IACE;;;OAGG;IACH,mBAFW,OAAO,YAAY,EAAE,OAAO,EAItC;IADC,oCAAkB;IAGpB;;;OAGG;IACH,cAFa,OAAO,4BAA4B,EAAE,OAAO,CAIxD;IAED;;;;;OAKG;IACH,+BAHW,OAAO,GACL,IAAI,CAIhB;IAED,cAEC;CACF"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
export default class VelociousDatabaseQueryOrderBase {
|
|
3
3
|
/**
|
|
4
|
+
* Runs constructor.
|
|
4
5
|
* @param {import("./index.js").default} query - Query instance.
|
|
5
6
|
*/
|
|
6
7
|
constructor(query) {
|
|
7
8
|
this.query = query;
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
11
|
+
* Runs get options.
|
|
10
12
|
* @returns {import("../query-parser/options.js").default} - The options options.
|
|
11
13
|
*/
|
|
12
14
|
getOptions() {
|
|
13
15
|
return this.query.driver.options();
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
18
|
+
* Runs set reverse order.
|
|
16
19
|
* @abstract
|
|
17
20
|
* @param {boolean} _reverseOrder - Whether reverse order.
|
|
18
21
|
* @returns {void} - No return value.
|
|
@@ -24,4 +27,4 @@ export default class VelociousDatabaseQueryOrderBase {
|
|
|
24
27
|
throw new Error("'toSql' wasn't implemented");
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9xdWVyeS9vcmRlci1iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixNQUFNLENBQUMsT0FBTyxPQUFPLCtCQUErQjtJQUNsRDs7O09BR0c7SUFDSCxZQUFZLEtBQUs7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFDLGFBQWE7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRCxLQUFLO1FBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZVF1ZXJ5T3JkZXJCYXNlIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBxdWVyeSAtIFF1ZXJ5IGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3RydWN0b3IocXVlcnkpIHtcbiAgICB0aGlzLnF1ZXJ5ID0gcXVlcnlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBvcHRpb25zLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vcXVlcnktcGFyc2VyL29wdGlvbnMuanNcIikuZGVmYXVsdH0gLSBUaGUgb3B0aW9ucyBvcHRpb25zLlxuICAgKi9cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeS5kcml2ZXIub3B0aW9ucygpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzZXQgcmV2ZXJzZSBvcmRlci5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gX3JldmVyc2VPcmRlciAtIFdoZXRoZXIgcmV2ZXJzZSBvcmRlci5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0UmV2ZXJzZU9yZGVyKF9yZXZlcnNlT3JkZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZXRSZXZlcnNlT3JkZXIgbm90IGltcGxlbWVudGVkXCIpXG4gIH1cblxuICB0b1NxbCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCIndG9TcWwnIHdhc24ndCBpbXBsZW1lbnRlZFwiKVxuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export default class VelociousDatabaseQueryOrderColumn extends OrderBase {
|
|
2
2
|
/**
|
|
3
|
+
* Runs constructor.
|
|
3
4
|
* @param {import("./index.js").default} query - Query instance.
|
|
4
5
|
* @param {OrderColumnInput} input - Column order input.
|
|
5
6
|
*/
|
|
@@ -9,13 +10,20 @@ export default class VelociousDatabaseQueryOrderColumn extends OrderBase {
|
|
|
9
10
|
reverseOrder: boolean;
|
|
10
11
|
tableName: string | undefined;
|
|
11
12
|
/**
|
|
13
|
+
* Runs set reverse order.
|
|
12
14
|
* @param {boolean} [reverseOrder] - Whether to reverse the order.
|
|
13
15
|
* @returns {void}
|
|
14
16
|
*/
|
|
15
17
|
setReverseOrder(reverseOrder?: boolean): void;
|
|
16
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Runs to sql.
|
|
20
|
+
* @returns {string} - SQL string.
|
|
21
|
+
*/
|
|
17
22
|
toSql(): string;
|
|
18
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* OrderColumnInput type.
|
|
26
|
+
*/
|
|
19
27
|
export type OrderColumnInput = {
|
|
20
28
|
/**
|
|
21
29
|
* - Column name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-column.d.ts","sourceRoot":"","sources":["../../../../src/database/query/order-column.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"order-column.d.ts","sourceRoot":"","sources":["../../../../src/database/query/order-column.js"],"names":[],"mappings":"AAmCA;IACE;;;;OAIG;IACH,mBAHW,OAAO,YAAY,EAAE,OAAO,SAC5B,gBAAgB,EAW1B;IAJC,eAA0B;IAC1B,0BAAoD;IACpD,sBAAyB;IACzB,8BAAgC;IAGlC;;;;OAIG;IACH,+BAHW,OAAO,GACL,IAAI,CAIhB;IAED;;;OAGG;IACH,SAFa,MAAM,CAYlB;CACF;;;;;;;;YArEa,MAAM;;;;;;;;;;sBALE,iBAAiB"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import OrderBase from "./order-base.js";
|
|
3
3
|
/**
|
|
4
|
+
* OrderColumnInput type.
|
|
4
5
|
* @typedef {object} OrderColumnInput
|
|
5
6
|
* @property {string} column - Column name.
|
|
6
7
|
* @property {"ASC" | "DESC" | "asc" | "desc"} [direction] - Sort direction.
|
|
7
8
|
* @property {string} [tableName] - Optional table or alias name.
|
|
8
9
|
*/
|
|
9
10
|
/**
|
|
11
|
+
* Runs normalize direction.
|
|
10
12
|
* @param {string | undefined} direction - Direction input.
|
|
11
13
|
* @returns {"ASC" | "DESC"} - Normalized direction.
|
|
12
14
|
*/
|
|
@@ -19,6 +21,7 @@ function normalizeDirection(direction) {
|
|
|
19
21
|
throw new Error(`Invalid order direction: ${direction}`);
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
24
|
+
* Runs reverse direction.
|
|
22
25
|
* @param {"ASC" | "DESC"} direction - Direction.
|
|
23
26
|
* @returns {"ASC" | "DESC"} - Reversed direction.
|
|
24
27
|
*/
|
|
@@ -27,6 +30,7 @@ function reverseDirection(direction) {
|
|
|
27
30
|
}
|
|
28
31
|
export default class VelociousDatabaseQueryOrderColumn extends OrderBase {
|
|
29
32
|
/**
|
|
33
|
+
* Runs constructor.
|
|
30
34
|
* @param {import("./index.js").default} query - Query instance.
|
|
31
35
|
* @param {OrderColumnInput} input - Column order input.
|
|
32
36
|
*/
|
|
@@ -40,13 +44,17 @@ export default class VelociousDatabaseQueryOrderColumn extends OrderBase {
|
|
|
40
44
|
this.tableName = input.tableName;
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
47
|
+
* Runs set reverse order.
|
|
43
48
|
* @param {boolean} [reverseOrder] - Whether to reverse the order.
|
|
44
49
|
* @returns {void}
|
|
45
50
|
*/
|
|
46
51
|
setReverseOrder(reverseOrder = true) {
|
|
47
52
|
this.reverseOrder = reverseOrder;
|
|
48
53
|
}
|
|
49
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Runs to sql.
|
|
56
|
+
* @returns {string} - SQL string.
|
|
57
|
+
*/
|
|
50
58
|
toSql() {
|
|
51
59
|
const options = this.getOptions();
|
|
52
60
|
const direction = this.reverseOrder ? reverseDirection(this.direction) : this.direction;
|
|
@@ -57,4 +65,4 @@ export default class VelociousDatabaseQueryOrderColumn extends OrderBase {
|
|
|
57
65
|
return sql;
|
|
58
66
|
}
|
|
59
67
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3F1ZXJ5L29yZGVyLWNvbHVtbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxTQUFTLE1BQU0saUJBQWlCLENBQUE7QUFFdkM7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILFNBQVMsa0JBQWtCLENBQUMsU0FBUztJQUNuQyxJQUFJLE9BQU8sU0FBUyxJQUFJLFdBQVc7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUVqRCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDMUMsSUFBSSxVQUFVLElBQUksS0FBSyxJQUFJLFVBQVUsSUFBSSxNQUFNO1FBQUUsT0FBTyxVQUFVLENBQUE7SUFFbEUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsU0FBUyxFQUFFLENBQUMsQ0FBQTtBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsU0FBUztJQUNqQyxPQUFPLFNBQVMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQzVDLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLGlDQUFrQyxTQUFRLFNBQVM7SUFDdEU7Ozs7T0FJRztJQUNILFlBQVksS0FBSyxFQUFFLEtBQUs7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRVosSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1FBRTlELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQTtRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsWUFBWSxHQUFHLElBQUk7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUs7UUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ3ZGLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQTtRQUVaLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFBO1FBRXZFLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFBO1FBRTdELE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBPcmRlckJhc2UgZnJvbSBcIi4vb3JkZXItYmFzZS5qc1wiXG5cbi8qKlxuICogT3JkZXJDb2x1bW5JbnB1dCB0eXBlLlxuICogQHR5cGVkZWYge29iamVjdH0gT3JkZXJDb2x1bW5JbnB1dFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbHVtbiAtIENvbHVtbiBuYW1lLlxuICogQHByb3BlcnR5IHtcIkFTQ1wiIHwgXCJERVNDXCIgfCBcImFzY1wiIHwgXCJkZXNjXCJ9IFtkaXJlY3Rpb25dIC0gU29ydCBkaXJlY3Rpb24uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3RhYmxlTmFtZV0gLSBPcHRpb25hbCB0YWJsZSBvciBhbGlhcyBuYW1lLlxuICovXG5cbi8qKlxuICogUnVucyBub3JtYWxpemUgZGlyZWN0aW9uLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IGRpcmVjdGlvbiAtIERpcmVjdGlvbiBpbnB1dC5cbiAqIEByZXR1cm5zIHtcIkFTQ1wiIHwgXCJERVNDXCJ9IC0gTm9ybWFsaXplZCBkaXJlY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURpcmVjdGlvbihkaXJlY3Rpb24pIHtcbiAgaWYgKHR5cGVvZiBkaXJlY3Rpb24gPT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIFwiQVNDXCJcblxuICBjb25zdCBub3JtYWxpemVkID0gZGlyZWN0aW9uLnRvVXBwZXJDYXNlKClcbiAgaWYgKG5vcm1hbGl6ZWQgPT0gXCJBU0NcIiB8fCBub3JtYWxpemVkID09IFwiREVTQ1wiKSByZXR1cm4gbm9ybWFsaXplZFxuXG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBvcmRlciBkaXJlY3Rpb246ICR7ZGlyZWN0aW9ufWApXG59XG5cbi8qKlxuICogUnVucyByZXZlcnNlIGRpcmVjdGlvbi5cbiAqIEBwYXJhbSB7XCJBU0NcIiB8IFwiREVTQ1wifSBkaXJlY3Rpb24gLSBEaXJlY3Rpb24uXG4gKiBAcmV0dXJucyB7XCJBU0NcIiB8IFwiREVTQ1wifSAtIFJldmVyc2VkIGRpcmVjdGlvbi5cbiAqL1xuZnVuY3Rpb24gcmV2ZXJzZURpcmVjdGlvbihkaXJlY3Rpb24pIHtcbiAgcmV0dXJuIGRpcmVjdGlvbiA9PSBcIkFTQ1wiID8gXCJERVNDXCIgOiBcIkFTQ1wiXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUXVlcnlPcmRlckNvbHVtbiBleHRlbmRzIE9yZGVyQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vaW5kZXguanNcIikuZGVmYXVsdH0gcXVlcnkgLSBRdWVyeSBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtPcmRlckNvbHVtbklucHV0fSBpbnB1dCAtIENvbHVtbiBvcmRlciBpbnB1dC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHF1ZXJ5LCBpbnB1dCkge1xuICAgIHN1cGVyKHF1ZXJ5KVxuXG4gICAgaWYgKCFpbnB1dC5jb2x1bW4pIHRocm93IG5ldyBFcnJvcihcIk9yZGVyIGNvbHVtbiBpcyByZXF1aXJlZFwiKVxuXG4gICAgdGhpcy5jb2x1bW4gPSBpbnB1dC5jb2x1bW5cbiAgICB0aGlzLmRpcmVjdGlvbiA9IG5vcm1hbGl6ZURpcmVjdGlvbihpbnB1dC5kaXJlY3Rpb24pXG4gICAgdGhpcy5yZXZlcnNlT3JkZXIgPSBmYWxzZVxuICAgIHRoaXMudGFibGVOYW1lID0gaW5wdXQudGFibGVOYW1lXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzZXQgcmV2ZXJzZSBvcmRlci5cbiAgICogQHBhcmFtIHtib29sZWFufSBbcmV2ZXJzZU9yZGVyXSAtIFdoZXRoZXIgdG8gcmV2ZXJzZSB0aGUgb3JkZXIuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0UmV2ZXJzZU9yZGVyKHJldmVyc2VPcmRlciA9IHRydWUpIHtcbiAgICB0aGlzLnJldmVyc2VPcmRlciA9IHJldmVyc2VPcmRlclxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdG8gc3FsLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFNRTCBzdHJpbmcuXG4gICAqL1xuICB0b1NxbCgpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRPcHRpb25zKClcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnJldmVyc2VPcmRlciA/IHJldmVyc2VEaXJlY3Rpb24odGhpcy5kaXJlY3Rpb24pIDogdGhpcy5kaXJlY3Rpb25cbiAgICBsZXQgc3FsID0gXCJcIlxuXG4gICAgaWYgKHRoaXMudGFibGVOYW1lKSBzcWwgKz0gYCR7b3B0aW9ucy5xdW90ZVRhYmxlTmFtZSh0aGlzLnRhYmxlTmFtZSl9LmBcblxuICAgIHNxbCArPSBgJHtvcHRpb25zLnF1b3RlQ29sdW1uTmFtZSh0aGlzLmNvbHVtbil9ICR7ZGlyZWN0aW9ufWBcblxuICAgIHJldHVybiBzcWxcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-plain.d.ts","sourceRoot":"","sources":["../../../../src/database/query/order-plain.js"],"names":[],"mappings":"AAIA;IACE
|
|
1
|
+
{"version":3,"file":"order-plain.d.ts","sourceRoot":"","sources":["../../../../src/database/query/order-plain.js"],"names":[],"mappings":"AAIA;IACE;;;;OAIG;IACH,mBAHW,OAAO,YAAY,EAAE,OAAO,SAC5B,MAAM,EAMhB;IAFC,cAAkB;IAClB,sBAAyB;IAG3B,wBAEC;IAED,gBAMC;CACF;sBAzBqB,iBAAiB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import OrderBase from "./order-base.js";
|
|
3
3
|
export default class VelociousDatabaseQueryOrderPlain extends OrderBase {
|
|
4
4
|
/**
|
|
5
|
+
* Runs constructor.
|
|
5
6
|
* @param {import("./index.js").default} query - Query instance.
|
|
6
7
|
* @param {string} plain - Plain.
|
|
7
8
|
*/
|
|
@@ -20,4 +21,4 @@ export default class VelociousDatabaseQueryOrderPlain extends OrderBase {
|
|
|
20
21
|
return this.plain;
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGxhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcXVlcnkvb3JkZXItcGxhaW4uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFBO0FBRXZDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0NBQWlDLFNBQVEsU0FBUztJQUNyRTs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsS0FBSztRQUN0QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQzFCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLE9BQU8sQ0FBQTtRQUM3QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgT3JkZXJCYXNlIGZyb20gXCIuL29yZGVyLWJhc2UuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZVF1ZXJ5T3JkZXJQbGFpbiBleHRlbmRzIE9yZGVyQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vaW5kZXguanNcIikuZGVmYXVsdH0gcXVlcnkgLSBRdWVyeSBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBsYWluIC0gUGxhaW4uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihxdWVyeSwgcGxhaW4pIHtcbiAgICBzdXBlcihxdWVyeSlcbiAgICB0aGlzLnBsYWluID0gcGxhaW5cbiAgICB0aGlzLnJldmVyc2VPcmRlciA9IGZhbHNlXG4gIH1cblxuICBzZXRSZXZlcnNlT3JkZXIoKSB7XG4gICAgdGhpcy5yZXZlcnNlT3JkZXIgPSB0cnVlXG4gIH1cblxuICB0b1NxbCgpIHtcbiAgICBpZiAodGhpcy5yZXZlcnNlT3JkZXIpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnBsYWlufSBERVNDYFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBsYWluXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
2
2
|
/**
|
|
3
|
+
* Runs constructor.
|
|
3
4
|
* @param {object} args - Options object.
|
|
4
5
|
* @param {import("../../record/index.js").default[]} args.models - Model instances.
|
|
5
6
|
* @param {import("../../record/relationships/belongs-to.js").default} args.relationship - Relationship.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/query/preloader/belongs-to.js"],"names":[],"mappings":"AAMA;IACE
|
|
1
|
+
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/query/preloader/belongs-to.js"],"names":[],"mappings":"AAMA;IACE;;;;;;OAMG;IACH,8DAJG;QAAwD,MAAM,EAAtD,OAAO,uBAAuB,EAAE,OAAO,EAAE;QACwB,YAAY,EAA7E,OAAO,0CAA0C,EAAE,OAAO;QAChC,SAAS;KAC7C,EAOA;IAHC,kDAAoB;IACpB,yEAAgC;IAChC,8BAAsD;IAGxD;sBAoHoC,OAAO,uBAAuB,EAAE,OAAO,EAAE;iCAA2B,MAAM,CAAC,MAAM,EAAE,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAC;OAThK;IAED;;;;;;;;OAQG;IACH,8DALG;QAAqB,UAAU,EAAvB,MAAM;QACO,UAAU,EAAvB,MAAM;QACO,gBAAgB,EAA7B,MAAM;KACd,GAAU,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAC;QAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAC,CAAA;KAAC,CAAC,CA+HlK;CACF;+BAvQ8B,gBAAgB"}
|
|
@@ -4,6 +4,7 @@ import PreloaderSelection from "./selection.js";
|
|
|
4
4
|
import restArgsError from "../../../utils/rest-args-error.js";
|
|
5
5
|
export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
6
6
|
/**
|
|
7
|
+
* Runs constructor.
|
|
7
8
|
* @param {object} args - Options object.
|
|
8
9
|
* @param {import("../../record/index.js").default[]} args.models - Model instances.
|
|
9
10
|
* @param {import("../../record/relationships/belongs-to.js").default} args.relationship - Relationship.
|
|
@@ -25,14 +26,20 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
25
26
|
const targetModelClass = this.relationship.getTargetModelClass();
|
|
26
27
|
if (!targetModelClass)
|
|
27
28
|
throw new Error("No target model class could be gotten from relationship");
|
|
28
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Satisfied targets.
|
|
31
|
+
@type {import("../../record/index.js").default[]} */
|
|
29
32
|
const satisfiedTargets = [];
|
|
30
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Models to load.
|
|
35
|
+
@type {import("../../record/index.js").default[]} */
|
|
31
36
|
const modelsToLoad = [];
|
|
32
37
|
for (const model of this.models) {
|
|
33
38
|
const instanceRelationship = model.getRelationshipByName(relationshipName);
|
|
34
39
|
if (this.selection.isSatisfied({ instanceRelationship, targetModelClass, mappingColumns: [primaryKey] })) {
|
|
35
|
-
const loaded = /**
|
|
40
|
+
const loaded = /**
|
|
41
|
+
* Narrows the runtime value to the documented type.
|
|
42
|
+
@type {import("../../record/index.js").default | undefined} */ (instanceRelationship.getLoadedOrUndefined());
|
|
36
43
|
if (loaded)
|
|
37
44
|
satisfiedTargets.push(loaded);
|
|
38
45
|
}
|
|
@@ -42,10 +49,14 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
42
49
|
}
|
|
43
50
|
if (modelsToLoad.length == 0)
|
|
44
51
|
return satisfiedTargets;
|
|
45
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Foreign key values.
|
|
54
|
+
@type {Array<number | string>} */
|
|
46
55
|
const foreignKeyValues = [];
|
|
47
56
|
for (const model of modelsToLoad) {
|
|
48
|
-
const foreignKeyValue = /**
|
|
57
|
+
const foreignKeyValue = /**
|
|
58
|
+
* Narrows the runtime value to the documented type.
|
|
59
|
+
@type {string | number | null | undefined} */ (model.readColumn(foreignKey));
|
|
49
60
|
// Skip null/undefined foreign keys: a belongsTo with no foreign key has no
|
|
50
61
|
// target, and including them would serialize to e.g. `IN (null)` which
|
|
51
62
|
// throws on non-string primary-key columns.
|
|
@@ -54,14 +65,20 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
54
65
|
if (!foreignKeyValues.includes(foreignKeyValue))
|
|
55
66
|
foreignKeyValues.push(foreignKeyValue);
|
|
56
67
|
}
|
|
57
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* Target models by id.
|
|
70
|
+
@type {Record<string, import("../../record/index.js").default>} */
|
|
58
71
|
const targetModelsById = {};
|
|
59
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Target models.
|
|
74
|
+
@type {import("../../record/index.js").default[]} */
|
|
60
75
|
let targetModels = [];
|
|
61
76
|
// Only query when at least one model has a non-null foreign key.
|
|
62
77
|
if (foreignKeyValues.length > 0) {
|
|
63
78
|
await ensureModelClassInitialized(targetModelClass, this.relationship.getConfiguration());
|
|
64
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* Where args.
|
|
81
|
+
@type {Record<string, string | number | Array<string | number>>} */
|
|
65
82
|
const whereArgs = {};
|
|
66
83
|
whereArgs[primaryKey] = foreignKeyValues;
|
|
67
84
|
// Load target models to be preloaded on the given models
|
|
@@ -70,13 +87,17 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
70
87
|
query = this.selection.applyToQuery({ query, targetModelClass, mappingColumns: [primaryKey] });
|
|
71
88
|
targetModels = await query.toArray();
|
|
72
89
|
for (const targetModel of targetModels) {
|
|
73
|
-
const primaryKeyValue = /**
|
|
90
|
+
const primaryKeyValue = /**
|
|
91
|
+
* Narrows the runtime value to the documented type.
|
|
92
|
+
@type {string | number} */ (targetModel.readColumn(primaryKey));
|
|
74
93
|
targetModelsById[primaryKeyValue] = targetModel;
|
|
75
94
|
}
|
|
76
95
|
}
|
|
77
96
|
// Set the target preloaded models on the given models
|
|
78
97
|
for (const model of modelsToLoad) {
|
|
79
|
-
const foreignKeyValue = /**
|
|
98
|
+
const foreignKeyValue = /**
|
|
99
|
+
* Narrows the runtime value to the documented type.
|
|
100
|
+
@type {string | number} */ (model.readColumn(foreignKey));
|
|
80
101
|
const targetModel = targetModelsById[foreignKeyValue];
|
|
81
102
|
const modelRelationship = model.getRelationshipByName(relationshipName);
|
|
82
103
|
modelRelationship.setPreloaded(true);
|
|
@@ -96,21 +117,33 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
96
117
|
async _runPolymorphic({ foreignKey, primaryKey, relationshipName }) {
|
|
97
118
|
const typeColumn = this.relationship.getPolymorphicTypeColumn();
|
|
98
119
|
const configuration = this.relationship.getConfiguration();
|
|
99
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* Model meta.
|
|
122
|
+
@type {{foreignKeyValue: number | string | undefined, model: import("../../record/index.js").default, targetType: string | undefined}[]} */
|
|
100
123
|
const modelMeta = [];
|
|
101
|
-
/**
|
|
124
|
+
/**
|
|
125
|
+
* Satisfied targets.
|
|
126
|
+
@type {import("../../record/index.js").default[]} */
|
|
102
127
|
const satisfiedTargets = [];
|
|
103
|
-
/**
|
|
128
|
+
/**
|
|
129
|
+
* Target models by class name.
|
|
130
|
+
@type {Record<string, import("../../record/index.js").default[]>} */
|
|
104
131
|
const targetModelsByClassName = {};
|
|
105
132
|
for (const model of this.models) {
|
|
106
|
-
const targetType = /**
|
|
133
|
+
const targetType = /**
|
|
134
|
+
* Narrows the runtime value to the documented type.
|
|
135
|
+
@type {string | undefined} */ (model.readColumn(typeColumn));
|
|
107
136
|
const instanceRelationship = model.getRelationshipByName(relationshipName);
|
|
108
137
|
const targetModelClass = targetType ? configuration.getModelClass(targetType) : undefined;
|
|
109
138
|
if (targetModelClass && this.selection.isSatisfied({ instanceRelationship, targetModelClass, mappingColumns: [primaryKey] })) {
|
|
110
|
-
const loaded = /**
|
|
139
|
+
const loaded = /**
|
|
140
|
+
* Narrows the runtime value to the documented type.
|
|
141
|
+
@type {import("../../record/index.js").default | undefined} */ (instanceRelationship.getLoadedOrUndefined());
|
|
111
142
|
if (loaded) {
|
|
112
143
|
satisfiedTargets.push(loaded);
|
|
113
|
-
const className = /**
|
|
144
|
+
const className = /**
|
|
145
|
+
* Narrows the runtime value to the documented type.
|
|
146
|
+
@type {typeof import("../../record/index.js").default} */ (loaded.constructor).getModelName();
|
|
114
147
|
if (!targetModelsByClassName[className])
|
|
115
148
|
targetModelsByClassName[className] = [];
|
|
116
149
|
targetModelsByClassName[className].push(loaded);
|
|
@@ -118,12 +151,16 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
118
151
|
continue;
|
|
119
152
|
}
|
|
120
153
|
modelMeta.push({
|
|
121
|
-
foreignKeyValue: /**
|
|
154
|
+
foreignKeyValue: /**
|
|
155
|
+
* Narrows the runtime value to the documented type.
|
|
156
|
+
@type {string | number | undefined} */ (model.readColumn(foreignKey)),
|
|
122
157
|
model,
|
|
123
158
|
targetType
|
|
124
159
|
});
|
|
125
160
|
}
|
|
126
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* Foreign key values by type.
|
|
163
|
+
@type {Record<string, Array<number | string>>} */
|
|
127
164
|
const foreignKeyValuesByType = {};
|
|
128
165
|
for (const meta of modelMeta) {
|
|
129
166
|
if (meta.targetType === undefined || meta.targetType === null)
|
|
@@ -135,14 +172,20 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
135
172
|
if (!foreignKeyValuesByType[meta.targetType].includes(meta.foreignKeyValue))
|
|
136
173
|
foreignKeyValuesByType[meta.targetType].push(meta.foreignKeyValue);
|
|
137
174
|
}
|
|
138
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* Target models by type and id.
|
|
177
|
+
@type {Record<string, Record<number | string, import("../../record/index.js").default>>} */
|
|
139
178
|
const targetModelsByTypeAndId = {};
|
|
140
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* Target models.
|
|
181
|
+
@type {import("../../record/index.js").default[]} */
|
|
141
182
|
const targetModels = [];
|
|
142
183
|
for (const targetType in foreignKeyValuesByType) {
|
|
143
184
|
const targetModelClass = configuration.getModelClass(targetType);
|
|
144
185
|
await ensureModelClassInitialized(targetModelClass, configuration);
|
|
145
|
-
/**
|
|
186
|
+
/**
|
|
187
|
+
* Where args.
|
|
188
|
+
@type {Record<string, string | number | Array<string | number>>} */
|
|
146
189
|
const whereArgs = {};
|
|
147
190
|
whereArgs[primaryKey] = foreignKeyValuesByType[targetType];
|
|
148
191
|
let query = targetModelClass.where(whereArgs);
|
|
@@ -156,7 +199,9 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
156
199
|
targetModelsByClassName[className].push(...foundTargetModels);
|
|
157
200
|
targetModelsByTypeAndId[targetType] = {};
|
|
158
201
|
for (const targetModel of foundTargetModels) {
|
|
159
|
-
const primaryKeyValue = /**
|
|
202
|
+
const primaryKeyValue = /**
|
|
203
|
+
* Narrows the runtime value to the documented type.
|
|
204
|
+
@type {string | number} */ (targetModel.readColumn(primaryKey));
|
|
160
205
|
targetModelsByTypeAndId[targetType][primaryKeyValue] = targetModel;
|
|
161
206
|
}
|
|
162
207
|
}
|
|
@@ -171,4 +216,4 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
|
|
|
171
216
|
return { targetModels: [...satisfiedTargets, ...targetModels], targetModelsByClassName };
|
|
172
217
|
}
|
|
173
218
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVsb25ncy10by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9xdWVyeS9wcmVsb2FkZXIvYmVsb25ncy10by5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTywyQkFBMkIsTUFBTSxxQ0FBcUMsQ0FBQTtBQUM3RSxPQUFPLGtCQUFrQixNQUFNLGdCQUFnQixDQUFBO0FBQy9DLE9BQU8sYUFBYSxNQUFNLG1DQUFtQyxDQUFBO0FBRTdELE1BQU0sQ0FBQyxPQUFPLE9BQU8sd0NBQXdDO0lBQzNEOzs7OztPQUtHO0lBQ0gsWUFBWSxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEdBQUcsUUFBUSxFQUFDO1FBQ3hELGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUV2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsSUFBSSxJQUFJLGtCQUFrQixFQUFFLENBQUE7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3BELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBRWhFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUE7UUFDL0UsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFB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QUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDbEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtZQUViLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNwQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDMUMsQ0FBQztRQUVELE9BQU8sRUFBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsWUFBWSxDQUFDLEVBQUUsdUJBQXVCLEVBQUMsQ0FBQTtJQUN4RixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IGVuc3VyZU1vZGVsQ2xhc3NJbml0aWFsaXplZCBmcm9tIFwiLi9lbnN1cmUtbW9kZWwtY2xhc3MtaW5pdGlhbGl6ZWQuanNcIlxuaW1wb3J0IFByZWxvYWRlclNlbGVjdGlvbiBmcm9tIFwiLi9zZWxlY3Rpb24uanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUXVlcnlQcmVsb2FkZXJCZWxvbmdzVG8ge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdFtdfSBhcmdzLm1vZGVscyAtIE1vZGVsIGluc3RhbmNlcy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi9yZWNvcmQvcmVsYXRpb25zaGlwcy9iZWxvbmdzLXRvLmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVsYXRpb25zaGlwIC0gUmVsYXRpb25zaGlwLlxuICAgKiBAcGFyYW0ge1ByZWxvYWRlclNlbGVjdGlvbn0gW2FyZ3Muc2VsZWN0aW9uXSAtIENvbHVtbiBzZWxlY3Rpb24gYW5kIGlkZW1wb3RlbmN5IHJ1bGVzLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe21vZGVscywgcmVsYXRpb25zaGlwLCBzZWxlY3Rpb24sIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICB0aGlzLm1vZGVscyA9IG1vZGVsc1xuICAgIHRoaXMucmVsYXRpb25zaGlwID0gcmVsYXRpb25zaGlwXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBzZWxlY3Rpb24gfHwgbmV3IFByZWxvYWRlclNlbGVjdGlvbigpXG4gIH1cblxuICBhc3luYyBydW4oKSB7XG4gICAgY29uc3QgZm9yZWlnbktleSA9IHRoaXMucmVsYXRpb25zaGlwLmdldEZvcmVpZ25LZXkoKVxuICAgIGNvbnN0IHByaW1hcnlLZXkgPSB0aGlzLnJlbGF0aW9uc2hpcC5nZXRQcmltYXJ5S2V5KClcbiAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gdGhpcy5yZWxhdGlvbnNoaXAuZ2V0UmVsYXRpb25zaGlwTmFtZSgpXG5cbiAgICBpZiAodGhpcy5yZWxhdGlvbnNoaXAuZ2V0UG9seW1vcnBoaWMoKSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3J1blBvbHltb3JwaGljKHtmb3JlaWduS2V5LCBwcmltYXJ5S2V5LCByZWxhdGlvbnNoaXBOYW1lfSlcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRNb2RlbENsYXNzID0gdGhpcy5yZWxhdGlvbnNoaXAuZ2V0VGFyZ2V0TW9kZWxDbGFzcygpXG5cbiAgICBpZiAoIXRhcmdldE1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihcIk5vIHRhcmdldCBtb2RlbCBjbGFzcyBjb3VsZCBiZSBnb3R0ZW4gZnJvbSByZWxhdGlvbnNoaXBcIilcblxuICAgIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXX0gKi9cbiAgICBjb25zdCBzYXRpc2ZpZWRUYXJnZXRzID0gW11cbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0W119ICovXG4gICAgY29uc3QgbW9kZWxzVG9Mb2FkID0gW11cblxuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgdGhpcy5tb2RlbHMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlUmVsYXRpb25zaGlwID0gbW9kZWwuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKHJlbGF0aW9uc2hpcE5hbWUpXG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5pc1NhdGlzZmllZCh7aW5zdGFuY2VSZWxhdGlvbnNoaXAsIHRhcmdldE1vZGVsQ2xhc3MsIG1hcHBpbmdDb2x1bW5zOiBbcHJpbWFyeUtleV19KSkge1xuICAgICAgICBjb25zdCBsb2FkZWQgPSAvKiogQHR5cGUge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqLyAoaW5zdGFuY2VSZWxhdGlvbnNoaXAuZ2V0TG9hZGVkT3JVbmRlZmluZWQoKSlcblxuICAgICAgICBpZiAobG9hZGVkKSBzYXRpc2ZpZWRUYXJnZXRzLnB1c2gobG9hZGVkKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9kZWxzVG9Mb2FkLnB1c2gobW9kZWwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGVsc1RvTG9hZC5sZW5ndGggPT0gMCkgcmV0dXJuIHNhdGlzZmllZFRhcmdldHNcblxuICAgIC8qKiBAdHlwZSB7QXJyYXk8bnVtYmVyIHwgc3RyaW5nPn0gKi9cbiAgICBjb25zdCBmb3JlaWduS2V5VmFsdWVzID0gW11cblxuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzVG9Mb2FkKSB7XG4gICAgICBjb25zdCBmb3JlaWduS2V5VmFsdWUgPSAvKiogQHR5cGUge3N0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWR9ICovIChtb2RlbC5yZWFkQ29sdW1uKGZvcmVpZ25LZXkpKVxuXG4gICAgICAvLyBTa2lwIG51bGwvdW5kZWZpbmVkIGZvcmVpZ24ga2V5czogYSBiZWxvbmdzVG8gd2l0aCBubyBmb3JlaWduIGtleSBoYXMgbm9cbiAgICAgIC8vIHRhcmdldCwgYW5kIGluY2x1ZGluZyB0aGVtIHdvdWxkIHNlcmlhbGl6ZSB0byBlLmcuIGBJTiAobnVsbClgIHdoaWNoXG4gICAgICAvLyB0aHJvd3Mgb24gbm9uLXN0cmluZyBwcmltYXJ5LWtleSBjb2x1bW5zLlxuICAgICAgaWYgKGZvcmVpZ25LZXlWYWx1ZSA9PT0gbnVsbCB8fCBmb3JlaWduS2V5VmFsdWUgPT09IHVuZGVmaW5lZCkgY29udGludWVcblxuICAgICAgaWYgKCFmb3JlaWduS2V5VmFsdWVzLmluY2x1ZGVzKGZvcmVpZ25LZXlWYWx1ZSkpIGZvcmVpZ25LZXlWYWx1ZXMucHVzaChmb3JlaWduS2V5VmFsdWUpXG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdD59ICovXG4gICAgY29uc3QgdGFyZ2V0TW9kZWxzQnlJZCA9IHt9XG5cbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0W119ICovXG4gICAgbGV0IHRhcmdldE1vZGVscyA9IFtdXG5cbiAgICAvLyBPbmx5IHF1ZXJ5IHdoZW4gYXQgbGVhc3Qgb25lIG1vZGVsIGhhcyBhIG5vbi1udWxsIGZvcmVpZ24ga2V5LlxuICAgIGlmIChmb3JlaWduS2V5VmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IGVuc3VyZU1vZGVsQ2xhc3NJbml0aWFsaXplZCh0YXJnZXRNb2RlbENsYXNzLCB0aGlzLnJlbGF0aW9uc2hpcC5nZXRDb25maWd1cmF0aW9uKCkpXG5cbiAgICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPj59ICovXG4gICAgICBjb25zdCB3aGVyZUFyZ3MgPSB7fVxuXG4gICAgICB3aGVyZUFyZ3NbcHJpbWFyeUtleV0gPSBmb3JlaWduS2V5VmFsdWVzXG5cbiAgICAgIC8vIExvYWQgdGFyZ2V0IG1vZGVscyB0byBiZSBwcmVsb2FkZWQgb24gdGhlIGdpdmVuIG1vZGVsc1xuICAgICAgbGV0IHF1ZXJ5ID0gdGFyZ2V0TW9kZWxDbGFzcy53aGVyZSh3aGVyZUFyZ3MpXG5cbiAgICAgIHF1ZXJ5ID0gdGhpcy5yZWxhdGlvbnNoaXAuYXBwbHlTY29wZShxdWVyeSlcbiAgICAgIHF1ZXJ5ID0gdGhpcy5zZWxlY3Rpb24uYXBwbHlUb1F1ZXJ5KHtxdWVyeSwgdGFyZ2V0TW9kZWxDbGFzcywgbWFwcGluZ0NvbHVtbnM6IFtwcmltYXJ5S2V5XX0pXG5cbiAgICAgIHRhcmdldE1vZGVscyA9IGF3YWl0IHF1ZXJ5LnRvQXJyYXkoKVxuXG4gICAgICBmb3IgKGNvbnN0IHRhcmdldE1vZGVsIG9mIHRhcmdldE1vZGVscykge1xuICAgICAgICBjb25zdCBwcmltYXJ5S2V5VmFsdWUgPSAvKiogQHR5cGUge3N0cmluZyB8IG51bWJlcn0gKi8gKHRhcmdldE1vZGVsLnJlYWRDb2x1bW4ocHJpbWFyeUtleSkpXG5cbiAgICAgICAgdGFyZ2V0TW9kZWxzQnlJZFtwcmltYXJ5S2V5VmFsdWVdID0gdGFyZ2V0TW9kZWxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIHRhcmdldCBwcmVsb2FkZWQgbW9kZWxzIG9uIHRoZSBnaXZlbiBtb2RlbHNcbiAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIG1vZGVsc1RvTG9hZCkge1xuICAgICAgY29uc3QgZm9yZWlnbktleVZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9ICovIChtb2RlbC5yZWFkQ29sdW1uKGZvcmVpZ25LZXkpKVxuICAgICAgY29uc3QgdGFyZ2V0TW9kZWwgPSB0YXJnZXRNb2RlbHNCeUlkW2ZvcmVpZ25LZXlWYWx1ZV1cbiAgICAgIGNvbnN0IG1vZGVsUmVsYXRpb25zaGlwID0gbW9kZWwuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKHJlbGF0aW9uc2hpcE5hbWUpXG5cbiAgICAgIG1vZGVsUmVsYXRpb25zaGlwLnNldFByZWxvYWRlZCh0cnVlKVxuICAgICAgbW9kZWxSZWxhdGlvbnNoaXAuc2V0TG9hZGVkKHRhcmdldE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiBbLi4uc2F0aXNmaWVkVGFyZ2V0cywgLi4udGFyZ2V0TW9kZWxzXVxuICB9XG5cbiAgLyoqXG4gICAqIFByZWxvYWQgYSBwb2x5bW9ycGhpYyBiZWxvbmdzVG8sIGdyb3VwaW5nIG1vZGVscyBieSB0aGVpciB0YXJnZXQgdHlwZSBzb1xuICAgKiBlYWNoIGNvbmNyZXRlIHRhcmdldCBtb2RlbCBjbGFzcyBpcyBxdWVyaWVkIHNlcGFyYXRlbHkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmZvcmVpZ25LZXkgLSBGb3JlaWduIGtleSBjb2x1bW4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnByaW1hcnlLZXkgLSBQcmltYXJ5IGtleSBjb2x1bW4gb24gdGhlIHRhcmdldC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MucmVsYXRpb25zaGlwTmFtZSAtIFJlbGF0aW9uc2hpcCBuYW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7dGFyZ2V0TW9kZWxzOiBpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdFtdLCB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZTogUmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXT59Pn0gLSBMb2FkZWQgdGFyZ2V0cyBhbmQgYSBwZXItY2xhc3MtbmFtZSBncm91cGluZy5cbiAgICovXG4gIGFzeW5jIF9ydW5Qb2x5bW9ycGhpYyh7Zm9yZWlnbktleSwgcHJpbWFyeUtleSwgcmVsYXRpb25zaGlwTmFtZX0pIHtcbiAgICBjb25zdCB0eXBlQ29sdW1uID0gdGhpcy5yZWxhdGlvbnNoaXAuZ2V0UG9seW1vcnBoaWNUeXBlQ29sdW1uKClcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5yZWxhdGlvbnNoaXAuZ2V0Q29uZmlndXJhdGlvbigpXG5cbiAgICAvKiogQHR5cGUge3tmb3JlaWduS2V5VmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCwgbW9kZWw6IGltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0LCB0YXJnZXRUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWR9W119ICovXG4gICAgY29uc3QgbW9kZWxNZXRhID0gW11cblxuICAgIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXX0gKi9cbiAgICBjb25zdCBzYXRpc2ZpZWRUYXJnZXRzID0gW11cblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXT59ICovXG4gICAgY29uc3QgdGFyZ2V0TW9kZWxzQnlDbGFzc05hbWUgPSB7fVxuXG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiB0aGlzLm1vZGVscykge1xuICAgICAgY29uc3QgdGFyZ2V0VHlwZSA9IC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqLyAobW9kZWwucmVhZENvbHVtbih0eXBlQ29sdW1uKSlcbiAgICAgIGNvbnN0IGluc3RhbmNlUmVsYXRpb25zaGlwID0gbW9kZWwuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKHJlbGF0aW9uc2hpcE5hbWUpXG4gICAgICBjb25zdCB0YXJnZXRNb2RlbENsYXNzID0gdGFyZ2V0VHlwZSA/IGNvbmZpZ3VyYXRpb24uZ2V0TW9kZWxDbGFzcyh0YXJnZXRUeXBlKSA6IHVuZGVmaW5lZFxuXG4gICAgICBpZiAodGFyZ2V0TW9kZWxDbGFzcyAmJiB0aGlzLnNlbGVjdGlvbi5pc1NhdGlzZmllZCh7aW5zdGFuY2VSZWxhdGlvbnNoaXAsIHRhcmdldE1vZGVsQ2xhc3MsIG1hcHBpbmdDb2x1bW5zOiBbcHJpbWFyeUtleV19KSkge1xuICAgICAgICBjb25zdCBsb2FkZWQgPSAvKiogQHR5cGUge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqLyAoaW5zdGFuY2VSZWxhdGlvbnNoaXAuZ2V0TG9hZGVkT3JVbmRlZmluZWQoKSlcblxuICAgICAgICBpZiAobG9hZGVkKSB7XG4gICAgICAgICAgc2F0aXNmaWVkVGFyZ2V0cy5wdXNoKGxvYWRlZClcblxuICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IC8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSAqLyAobG9hZGVkLmNvbnN0cnVjdG9yKS5nZXRNb2RlbE5hbWUoKVxuXG4gICAgICAgICAgaWYgKCF0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZVtjbGFzc05hbWVdKSB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZVtjbGFzc05hbWVdID0gW11cbiAgICAgICAgICB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZVtjbGFzc05hbWVdLnB1c2gobG9hZGVkKVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgbW9kZWxNZXRhLnB1c2goe1xuICAgICAgICBmb3JlaWduS2V5VmFsdWU6IC8qKiBAdHlwZSB7c3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkfSAqLyAobW9kZWwucmVhZENvbHVtbihmb3JlaWduS2V5KSksXG4gICAgICAgIG1vZGVsLFxuICAgICAgICB0YXJnZXRUeXBlXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgQXJyYXk8bnVtYmVyIHwgc3RyaW5nPj59ICovXG4gICAgY29uc3QgZm9yZWlnbktleVZhbHVlc0J5VHlwZSA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IG1ldGEgb2YgbW9kZWxNZXRhKSB7XG4gICAgICBpZiAobWV0YS50YXJnZXRUeXBlID09PSB1bmRlZmluZWQgfHwgbWV0YS50YXJnZXRUeXBlID09PSBudWxsKSBjb250aW51ZVxuICAgICAgaWYgKG1ldGEuZm9yZWlnbktleVZhbHVlID09PSB1bmRlZmluZWQgfHwgbWV0YS5mb3JlaWduS2V5VmFsdWUgPT09IG51bGwpIGNvbnRpbnVlXG5cbiAgICAgIGlmICghZm9yZWlnbktleVZhbHVlc0J5VHlwZVttZXRhLnRhcmdldFR5cGVdKSBmb3JlaWduS2V5VmFsdWVzQnlUeXBlW21ldGEudGFyZ2V0VHlwZV0gPSBbXVxuICAgICAgaWYgKCFmb3JlaWduS2V5VmFsdWVzQnlUeXBlW21ldGEudGFyZ2V0VHlwZV0uaW5jbHVkZXMobWV0YS5mb3JlaWduS2V5VmFsdWUpKSBmb3JlaWduS2V5VmFsdWVzQnlUeXBlW21ldGEudGFyZ2V0VHlwZV0ucHVzaChtZXRhLmZvcmVpZ25LZXlWYWx1ZSlcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIGltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0Pj59ICovXG4gICAgY29uc3QgdGFyZ2V0TW9kZWxzQnlUeXBlQW5kSWQgPSB7fVxuXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdFtdfSAqL1xuICAgIGNvbnN0IHRhcmdldE1vZGVscyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IHRhcmdldFR5cGUgaW4gZm9yZWlnbktleVZhbHVlc0J5VHlwZSkge1xuICAgICAgY29uc3QgdGFyZ2V0TW9kZWxDbGFzcyA9IGNvbmZpZ3VyYXRpb24uZ2V0TW9kZWxDbGFzcyh0YXJnZXRUeXBlKVxuXG4gICAgICBhd2FpdCBlbnN1cmVNb2RlbENsYXNzSW5pdGlhbGl6ZWQodGFyZ2V0TW9kZWxDbGFzcywgY29uZmlndXJhdGlvbilcblxuICAgICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+Pn0gKi9cbiAgICAgIGNvbnN0IHdoZXJlQXJncyA9IHt9XG5cbiAgICAgIHdoZXJlQXJnc1twcmltYXJ5S2V5XSA9IGZvcmVpZ25LZXlWYWx1ZXNCeVR5cGVbdGFyZ2V0VHlwZV1cblxuICAgICAgbGV0IHF1ZXJ5ID0gdGFyZ2V0TW9kZWxDbGFzcy53aGVyZSh3aGVyZUFyZ3MpXG5cbiAgICAgIHF1ZXJ5ID0gdGhpcy5yZWxhdGlvbnNoaXAuYXBwbHlTY29wZShxdWVyeSlcbiAgICAgIHF1ZXJ5ID0gdGhpcy5zZWxlY3Rpb24uYXBwbHlUb1F1ZXJ5KHtxdWVyeSwgdGFyZ2V0TW9kZWxDbGFzcywgbWFwcGluZ0NvbHVtbnM6IFtwcmltYXJ5S2V5XX0pXG5cbiAgICAgIGNvbnN0IGZvdW5kVGFyZ2V0TW9kZWxzID0gYXdhaXQgcXVlcnkudG9BcnJheSgpXG5cbiAgICAgIHRhcmdldE1vZGVscy5wdXNoKC4uLmZvdW5kVGFyZ2V0TW9kZWxzKVxuXG4gICAgICBjb25zdCBjbGFzc05hbWUgPSB0YXJnZXRNb2RlbENsYXNzLmdldE1vZGVsTmFtZSgpXG5cbiAgICAgIGlmICghdGFyZ2V0TW9kZWxzQnlDbGFzc05hbWVbY2xhc3NOYW1lXSkgdGFyZ2V0TW9kZWxzQnlDbGFzc05hbWVbY2xhc3NOYW1lXSA9IFtdXG4gICAgICB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZVtjbGFzc05hbWVdLnB1c2goLi4uZm91bmRUYXJnZXRNb2RlbHMpXG5cbiAgICAgIHRhcmdldE1vZGVsc0J5VHlwZUFuZElkW3RhcmdldFR5cGVdID0ge31cblxuICAgICAgZm9yIChjb25zdCB0YXJnZXRNb2RlbCBvZiBmb3VuZFRhcmdldE1vZGVscykge1xuICAgICAgICBjb25zdCBwcmltYXJ5S2V5VmFsdWUgPSAvKiogQHR5cGUge3N0cmluZyB8IG51bWJlcn0gKi8gKHRhcmdldE1vZGVsLnJlYWRDb2x1bW4ocHJpbWFyeUtleSkpXG5cbiAgICAgICAgdGFyZ2V0TW9kZWxzQnlUeXBlQW5kSWRbdGFyZ2V0VHlwZV1bcHJpbWFyeUtleVZhbHVlXSA9IHRhcmdldE1vZGVsXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBtZXRhIG9mIG1vZGVsTWV0YSkge1xuICAgICAgY29uc3QgbW9kZWxSZWxhdGlvbnNoaXAgPSBtZXRhLm1vZGVsLmdldFJlbGF0aW9uc2hpcEJ5TmFtZShyZWxhdGlvbnNoaXBOYW1lKVxuICAgICAgY29uc3QgdGFyZ2V0TW9kZWwgPSAobWV0YS50YXJnZXRUeXBlICYmIG1ldGEuZm9yZWlnbktleVZhbHVlICE9PSB1bmRlZmluZWQgJiYgbWV0YS5mb3JlaWduS2V5VmFsdWUgIT09IG51bGwpXG4gICAgICAgID8gdGFyZ2V0TW9kZWxzQnlUeXBlQW5kSWRbbWV0YS50YXJnZXRUeXBlXT8uW21ldGEuZm9yZWlnbktleVZhbHVlXVxuICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgICBtb2RlbFJlbGF0aW9uc2hpcC5zZXRQcmVsb2FkZWQodHJ1ZSlcbiAgICAgIG1vZGVsUmVsYXRpb25zaGlwLnNldExvYWRlZCh0YXJnZXRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4ge3RhcmdldE1vZGVsczogWy4uLnNhdGlzZmllZFRhcmdldHMsIC4uLnRhcmdldE1vZGVsc10sIHRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lfVxuICB9XG59XG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVsb25ncy10by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9xdWVyeS9wcmVsb2FkZXIvYmVsb25ncy10by5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTywyQkFBMkIsTUFBTSxxQ0FBcUMsQ0FBQTtBQUM3RSxPQUFPLGtCQUFrQixNQUFNLGdCQUFnQixDQUFBO0FBQy9DLE9BQU8sYUFBYSxNQUFNLG1DQUFtQyxDQUFBO0FBRTdELE1BQU0sQ0FBQyxPQUFPLE9BQU8sd0NBQXdDO0lBQzNEOzs7Ozs7T0FNRztJQUNILFlBQVksRUFBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUN4RCxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSxrQkFBa0IsRUFBRSxDQUFBO0lBQ3hELENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNwRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtRQUVoRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUN2QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO1FBQy9FLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLElB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QzFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUNsRSxDQUFDLENBQUMsU0FBUyxDQUFBO1lBRWIsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3BDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUMxQyxDQUFDO1FBRUQsT0FBTyxFQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxZQUFZLENBQUMsRUFBRSx1QkFBdUIsRUFBQyxDQUFBO0lBQ3hGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZW5zdXJlTW9kZWxDbGFzc0luaXRpYWxpemVkIGZyb20gXCIuL2Vuc3VyZS1tb2RlbC1jbGFzcy1pbml0aWFsaXplZC5qc1wiXG5pbXBvcnQgUHJlbG9hZGVyU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvbi5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VRdWVyeVByZWxvYWRlckJlbG9uZ3NUbyB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0W119IGFyZ3MubW9kZWxzIC0gTW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL3JlY29yZC9yZWxhdGlvbnNoaXBzL2JlbG9uZ3MtdG8uanNcIikuZGVmYXVsdH0gYXJncy5yZWxhdGlvbnNoaXAgLSBSZWxhdGlvbnNoaXAuXG4gICAqIEBwYXJhbSB7UHJlbG9hZGVyU2VsZWN0aW9ufSBbYXJncy5zZWxlY3Rpb25dIC0gQ29sdW1uIHNlbGVjdGlvbiBhbmQgaWRlbXBvdGVuY3kgcnVsZXMuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7bW9kZWxzLCByZWxhdGlvbnNoaXAsIHNlbGVjdGlvbiwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIHRoaXMubW9kZWxzID0gbW9kZWxzXG4gICAgdGhpcy5yZWxhdGlvbnNoaXAgPSByZWxhdGlvbnNoaXBcbiAgICB0aGlzLnNlbGVjdGlvbiA9IHNlbGVjdGlvbiB8fCBuZXcgUHJlbG9hZGVyU2VsZWN0aW9uKClcbiAgfVxuXG4gIGFzeW5jIHJ1bigpIHtcbiAgICBjb25zdCBmb3JlaWduS2V5ID0gdGhpcy5yZWxhdGlvbnNoaXAuZ2V0Rm9yZWlnbktleSgpXG4gICAgY29uc3QgcHJpbWFyeUtleSA9IHRoaXMucmVsYXRpb25zaGlwLmdldFByaW1hcnlLZXkoKVxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcE5hbWUgPSB0aGlzLnJlbGF0aW9uc2hpcC5nZXRSZWxhdGlvbnNoaXBOYW1lKClcblxuICAgIGlmICh0aGlzLnJlbGF0aW9uc2hpcC5nZXRQb2x5bW9ycGhpYygpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5fcnVuUG9seW1vcnBoaWMoe2ZvcmVpZ25LZXksIHByaW1hcnlLZXksIHJlbGF0aW9uc2hpcE5hbWV9KVxuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldE1vZGVsQ2xhc3MgPSB0aGlzLnJlbGF0aW9uc2hpcC5nZXRUYXJnZXRNb2RlbENsYXNzKClcblxuICAgIGlmICghdGFyZ2V0TW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKFwiTm8gdGFyZ2V0IG1vZGVsIGNsYXNzIGNvdWxkIGJlIGdvdHRlbiBmcm9tIHJlbGF0aW9uc2hpcFwiKVxuXG4gICAgLyoqXG4gICAgICogU2F0aXNmaWVkIHRhcmdldHMuXG4gICAgICBAdHlwZSB7aW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXX0gKi9cbiAgICBjb25zdCBzYXRpc2ZpZWRUYXJnZXRzID0gW11cbiAgICAvKipcbiAgICAgKiBNb2RlbHMgdG8gbG9hZC5cbiAgICAgIEB0eXBlIHtpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdFtdfSAqL1xuICAgIGNvbnN0IG1vZGVsc1RvTG9hZCA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIHRoaXMubW9kZWxzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZVJlbGF0aW9uc2hpcCA9IG1vZGVsLmdldFJlbGF0aW9uc2hpcEJ5TmFtZShyZWxhdGlvbnNoaXBOYW1lKVxuXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb24uaXNTYXRpc2ZpZWQoe2luc3RhbmNlUmVsYXRpb25zaGlwLCB0YXJnZXRNb2RlbENsYXNzLCBtYXBwaW5nQ29sdW1uczogW3ByaW1hcnlLZXldfSkpIHtcbiAgICAgICAgY29uc3QgbG9hZGVkID0gLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICBAdHlwZSB7aW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9ICovIChpbnN0YW5jZVJlbGF0aW9uc2hpcC5nZXRMb2FkZWRPclVuZGVmaW5lZCgpKVxuXG4gICAgICAgIGlmIChsb2FkZWQpIHNhdGlzZmllZFRhcmdldHMucHVzaChsb2FkZWQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb2RlbHNUb0xvYWQucHVzaChtb2RlbClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZWxzVG9Mb2FkLmxlbmd0aCA9PSAwKSByZXR1cm4gc2F0aXNmaWVkVGFyZ2V0c1xuXG4gICAgLyoqXG4gICAgICogRm9yZWlnbiBrZXkgdmFsdWVzLlxuICAgICAgQHR5cGUge0FycmF5PG51bWJlciB8IHN0cmluZz59ICovXG4gICAgY29uc3QgZm9yZWlnbktleVZhbHVlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIG1vZGVsc1RvTG9hZCkge1xuICAgICAgY29uc3QgZm9yZWlnbktleVZhbHVlID0gLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHtzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfSAqLyAobW9kZWwucmVhZENvbHVtbihmb3JlaWduS2V5KSlcblxuICAgICAgLy8gU2tpcCBudWxsL3VuZGVmaW5lZCBmb3JlaWduIGtleXM6IGEgYmVsb25nc1RvIHdpdGggbm8gZm9yZWlnbiBrZXkgaGFzIG5vXG4gICAgICAvLyB0YXJnZXQsIGFuZCBpbmNsdWRpbmcgdGhlbSB3b3VsZCBzZXJpYWxpemUgdG8gZS5nLiBgSU4gKG51bGwpYCB3aGljaFxuICAgICAgLy8gdGhyb3dzIG9uIG5vbi1zdHJpbmcgcHJpbWFyeS1rZXkgY29sdW1ucy5cbiAgICAgIGlmIChmb3JlaWduS2V5VmFsdWUgPT09IG51bGwgfHwgZm9yZWlnbktleVZhbHVlID09PSB1bmRlZmluZWQpIGNvbnRpbnVlXG5cbiAgICAgIGlmICghZm9yZWlnbktleVZhbHVlcy5pbmNsdWRlcyhmb3JlaWduS2V5VmFsdWUpKSBmb3JlaWduS2V5VmFsdWVzLnB1c2goZm9yZWlnbktleVZhbHVlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRhcmdldCBtb2RlbHMgYnkgaWQuXG4gICAgICBAdHlwZSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHQ+fSAqL1xuICAgIGNvbnN0IHRhcmdldE1vZGVsc0J5SWQgPSB7fVxuXG4gICAgLyoqXG4gICAgICogVGFyZ2V0IG1vZGVscy5cbiAgICAgIEB0eXBlIHtpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdFtdfSAqL1xuICAgIGxldCB0YXJnZXRNb2RlbHMgPSBbXVxuXG4gICAgLy8gT25seSBxdWVyeSB3aGVuIGF0IGxlYXN0IG9uZSBtb2RlbCBoYXMgYSBub24tbnVsbCBmb3JlaWduIGtleS5cbiAgICBpZiAoZm9yZWlnbktleVZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBlbnN1cmVNb2RlbENsYXNzSW5pdGlhbGl6ZWQodGFyZ2V0TW9kZWxDbGFzcywgdGhpcy5yZWxhdGlvbnNoaXAuZ2V0Q29uZmlndXJhdGlvbigpKVxuXG4gICAgICAvKipcbiAgICAgICAqIFdoZXJlIGFyZ3MuXG4gICAgICAgIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+Pn0gKi9cbiAgICAgIGNvbnN0IHdoZXJlQXJncyA9IHt9XG5cbiAgICAgIHdoZXJlQXJnc1twcmltYXJ5S2V5XSA9IGZvcmVpZ25LZXlWYWx1ZXNcblxuICAgICAgLy8gTG9hZCB0YXJnZXQgbW9kZWxzIHRvIGJlIHByZWxvYWRlZCBvbiB0aGUgZ2l2ZW4gbW9kZWxzXG4gICAgICBsZXQgcXVlcnkgPSB0YXJnZXRNb2RlbENsYXNzLndoZXJlKHdoZXJlQXJncylcblxuICAgICAgcXVlcnkgPSB0aGlzLnJlbGF0aW9uc2hpcC5hcHBseVNjb3BlKHF1ZXJ5KVxuICAgICAgcXVlcnkgPSB0aGlzLnNlbGVjdGlvbi5hcHBseVRvUXVlcnkoe3F1ZXJ5LCB0YXJnZXRNb2RlbENsYXNzLCBtYXBwaW5nQ29sdW1uczogW3ByaW1hcnlLZXldfSlcblxuICAgICAgdGFyZ2V0TW9kZWxzID0gYXdhaXQgcXVlcnkudG9BcnJheSgpXG5cbiAgICAgIGZvciAoY29uc3QgdGFyZ2V0TW9kZWwgb2YgdGFyZ2V0TW9kZWxzKSB7XG4gICAgICAgIGNvbnN0IHByaW1hcnlLZXlWYWx1ZSA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGUge3N0cmluZyB8IG51bWJlcn0gKi8gKHRhcmdldE1vZGVsLnJlYWRDb2x1bW4ocHJpbWFyeUtleSkpXG5cbiAgICAgICAgdGFyZ2V0TW9kZWxzQnlJZFtwcmltYXJ5S2V5VmFsdWVdID0gdGFyZ2V0TW9kZWxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgdGhlIHRhcmdldCBwcmVsb2FkZWQgbW9kZWxzIG9uIHRoZSBnaXZlbiBtb2RlbHNcbiAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIG1vZGVsc1RvTG9hZCkge1xuICAgICAgY29uc3QgZm9yZWlnbktleVZhbHVlID0gLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9ICovIChtb2RlbC5yZWFkQ29sdW1uKGZvcmVpZ25LZXkpKVxuICAgICAgY29uc3QgdGFyZ2V0TW9kZWwgPSB0YXJnZXRNb2RlbHNCeUlkW2ZvcmVpZ25LZXlWYWx1ZV1cbiAgICAgIGNvbnN0IG1vZGVsUmVsYXRpb25zaGlwID0gbW9kZWwuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKHJlbGF0aW9uc2hpcE5hbWUpXG5cbiAgICAgIG1vZGVsUmVsYXRpb25zaGlwLnNldFByZWxvYWRlZCh0cnVlKVxuICAgICAgbW9kZWxSZWxhdGlvbnNoaXAuc2V0TG9hZGVkKHRhcmdldE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiBbLi4uc2F0aXNmaWVkVGFyZ2V0cywgLi4udGFyZ2V0TW9kZWxzXVxuICB9XG5cbiAgLyoqXG4gICAqIFByZWxvYWQgYSBwb2x5bW9ycGhpYyBiZWxvbmdzVG8sIGdyb3VwaW5nIG1vZGVscyBieSB0aGVpciB0YXJnZXQgdHlwZSBzb1xuICAgKiBlYWNoIGNvbmNyZXRlIHRhcmdldCBtb2RlbCBjbGFzcyBpcyBxdWVyaWVkIHNlcGFyYXRlbHkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmZvcmVpZ25LZXkgLSBGb3JlaWduIGtleSBjb2x1bW4uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnByaW1hcnlLZXkgLSBQcmltYXJ5IGtleSBjb2x1bW4gb24gdGhlIHRhcmdldC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MucmVsYXRpb25zaGlwTmFtZSAtIFJlbGF0aW9uc2hpcCBuYW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7dGFyZ2V0TW9kZWxzOiBpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdFtdLCB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZTogUmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXT59Pn0gLSBMb2FkZWQgdGFyZ2V0cyBhbmQgYSBwZXItY2xhc3MtbmFtZSBncm91cGluZy5cbiAgICovXG4gIGFzeW5jIF9ydW5Qb2x5bW9ycGhpYyh7Zm9yZWlnbktleSwgcHJpbWFyeUtleSwgcmVsYXRpb25zaGlwTmFtZX0pIHtcbiAgICBjb25zdCB0eXBlQ29sdW1uID0gdGhpcy5yZWxhdGlvbnNoaXAuZ2V0UG9seW1vcnBoaWNUeXBlQ29sdW1uKClcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5yZWxhdGlvbnNoaXAuZ2V0Q29uZmlndXJhdGlvbigpXG5cbiAgICAvKipcbiAgICAgKiBNb2RlbCBtZXRhLlxuICAgICAgQHR5cGUge3tmb3JlaWduS2V5VmFsdWU6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCwgbW9kZWw6IGltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0LCB0YXJnZXRUeXBlOiBzdHJpbmcgfCB1bmRlZmluZWR9W119ICovXG4gICAgY29uc3QgbW9kZWxNZXRhID0gW11cblxuICAgIC8qKlxuICAgICAqIFNhdGlzZmllZCB0YXJnZXRzLlxuICAgICAgQHR5cGUge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0W119ICovXG4gICAgY29uc3Qgc2F0aXNmaWVkVGFyZ2V0cyA9IFtdXG5cbiAgICAvKipcbiAgICAgKiBUYXJnZXQgbW9kZWxzIGJ5IGNsYXNzIG5hbWUuXG4gICAgICBAdHlwZSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXT59ICovXG4gICAgY29uc3QgdGFyZ2V0TW9kZWxzQnlDbGFzc05hbWUgPSB7fVxuXG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiB0aGlzLm1vZGVscykge1xuICAgICAgY29uc3QgdGFyZ2V0VHlwZSA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovIChtb2RlbC5yZWFkQ29sdW1uKHR5cGVDb2x1bW4pKVxuICAgICAgY29uc3QgaW5zdGFuY2VSZWxhdGlvbnNoaXAgPSBtb2RlbC5nZXRSZWxhdGlvbnNoaXBCeU5hbWUocmVsYXRpb25zaGlwTmFtZSlcbiAgICAgIGNvbnN0IHRhcmdldE1vZGVsQ2xhc3MgPSB0YXJnZXRUeXBlID8gY29uZmlndXJhdGlvbi5nZXRNb2RlbENsYXNzKHRhcmdldFR5cGUpIDogdW5kZWZpbmVkXG5cbiAgICAgIGlmICh0YXJnZXRNb2RlbENsYXNzICYmIHRoaXMuc2VsZWN0aW9uLmlzU2F0aXNmaWVkKHtpbnN0YW5jZVJlbGF0aW9uc2hpcCwgdGFyZ2V0TW9kZWxDbGFzcywgbWFwcGluZ0NvbHVtbnM6IFtwcmltYXJ5S2V5XX0pKSB7XG4gICAgICAgIGNvbnN0IGxvYWRlZCA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGUge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqLyAoaW5zdGFuY2VSZWxhdGlvbnNoaXAuZ2V0TG9hZGVkT3JVbmRlZmluZWQoKSlcblxuICAgICAgICBpZiAobG9hZGVkKSB7XG4gICAgICAgICAgc2F0aXNmaWVkVGFyZ2V0cy5wdXNoKGxvYWRlZClcblxuICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHt0eXBlb2YgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9ICovIChsb2FkZWQuY29uc3RydWN0b3IpLmdldE1vZGVsTmFtZSgpXG5cbiAgICAgICAgICBpZiAoIXRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lW2NsYXNzTmFtZV0pIHRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lW2NsYXNzTmFtZV0gPSBbXVxuICAgICAgICAgIHRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lW2NsYXNzTmFtZV0ucHVzaChsb2FkZWQpXG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBtb2RlbE1ldGEucHVzaCh7XG4gICAgICAgIGZvcmVpZ25LZXlWYWx1ZTogLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGUge3N0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZH0gKi8gKG1vZGVsLnJlYWRDb2x1bW4oZm9yZWlnbktleSkpLFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgdGFyZ2V0VHlwZVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JlaWduIGtleSB2YWx1ZXMgYnkgdHlwZS5cbiAgICAgIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBBcnJheTxudW1iZXIgfCBzdHJpbmc+Pn0gKi9cbiAgICBjb25zdCBmb3JlaWduS2V5VmFsdWVzQnlUeXBlID0ge31cblxuICAgIGZvciAoY29uc3QgbWV0YSBvZiBtb2RlbE1ldGEpIHtcbiAgICAgIGlmIChtZXRhLnRhcmdldFR5cGUgPT09IHVuZGVmaW5lZCB8fCBtZXRhLnRhcmdldFR5cGUgPT09IG51bGwpIGNvbnRpbnVlXG4gICAgICBpZiAobWV0YS5mb3JlaWduS2V5VmFsdWUgPT09IHVuZGVmaW5lZCB8fCBtZXRhLmZvcmVpZ25LZXlWYWx1ZSA9PT0gbnVsbCkgY29udGludWVcblxuICAgICAgaWYgKCFmb3JlaWduS2V5VmFsdWVzQnlUeXBlW21ldGEudGFyZ2V0VHlwZV0pIGZvcmVpZ25LZXlWYWx1ZXNCeVR5cGVbbWV0YS50YXJnZXRUeXBlXSA9IFtdXG4gICAgICBpZiAoIWZvcmVpZ25LZXlWYWx1ZXNCeVR5cGVbbWV0YS50YXJnZXRUeXBlXS5pbmNsdWRlcyhtZXRhLmZvcmVpZ25LZXlWYWx1ZSkpIGZvcmVpZ25LZXlWYWx1ZXNCeVR5cGVbbWV0YS50YXJnZXRUeXBlXS5wdXNoKG1ldGEuZm9yZWlnbktleVZhbHVlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRhcmdldCBtb2RlbHMgYnkgdHlwZSBhbmQgaWQuXG4gICAgICBAdHlwZSB7UmVjb3JkPHN0cmluZywgUmVjb3JkPG51bWJlciB8IHN0cmluZywgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHQ+Pn0gKi9cbiAgICBjb25zdCB0YXJnZXRNb2RlbHNCeVR5cGVBbmRJZCA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBUYXJnZXQgbW9kZWxzLlxuICAgICAgQHR5cGUge2ltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0W119ICovXG4gICAgY29uc3QgdGFyZ2V0TW9kZWxzID0gW11cblxuICAgIGZvciAoY29uc3QgdGFyZ2V0VHlwZSBpbiBmb3JlaWduS2V5VmFsdWVzQnlUeXBlKSB7XG4gICAgICBjb25zdCB0YXJnZXRNb2RlbENsYXNzID0gY29uZmlndXJhdGlvbi5nZXRNb2RlbENsYXNzKHRhcmdldFR5cGUpXG5cbiAgICAgIGF3YWl0IGVuc3VyZU1vZGVsQ2xhc3NJbml0aWFsaXplZCh0YXJnZXRNb2RlbENsYXNzLCBjb25maWd1cmF0aW9uKVxuXG4gICAgICAvKipcbiAgICAgICAqIFdoZXJlIGFyZ3MuXG4gICAgICAgIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+Pn0gKi9cbiAgICAgIGNvbnN0IHdoZXJlQXJncyA9IHt9XG5cbiAgICAgIHdoZXJlQXJnc1twcmltYXJ5S2V5XSA9IGZvcmVpZ25LZXlWYWx1ZXNCeVR5cGVbdGFyZ2V0VHlwZV1cblxuICAgICAgbGV0IHF1ZXJ5ID0gdGFyZ2V0TW9kZWxDbGFzcy53aGVyZSh3aGVyZUFyZ3MpXG5cbiAgICAgIHF1ZXJ5ID0gdGhpcy5yZWxhdGlvbnNoaXAuYXBwbHlTY29wZShxdWVyeSlcbiAgICAgIHF1ZXJ5ID0gdGhpcy5zZWxlY3Rpb24uYXBwbHlUb1F1ZXJ5KHtxdWVyeSwgdGFyZ2V0TW9kZWxDbGFzcywgbWFwcGluZ0NvbHVtbnM6IFtwcmltYXJ5S2V5XX0pXG5cbiAgICAgIGNvbnN0IGZvdW5kVGFyZ2V0TW9kZWxzID0gYXdhaXQgcXVlcnkudG9BcnJheSgpXG5cbiAgICAgIHRhcmdldE1vZGVscy5wdXNoKC4uLmZvdW5kVGFyZ2V0TW9kZWxzKVxuXG4gICAgICBjb25zdCBjbGFzc05hbWUgPSB0YXJnZXRNb2RlbENsYXNzLmdldE1vZGVsTmFtZSgpXG5cbiAgICAgIGlmICghdGFyZ2V0TW9kZWxzQnlDbGFzc05hbWVbY2xhc3NOYW1lXSkgdGFyZ2V0TW9kZWxzQnlDbGFzc05hbWVbY2xhc3NOYW1lXSA9IFtdXG4gICAgICB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZVtjbGFzc05hbWVdLnB1c2goLi4uZm91bmRUYXJnZXRNb2RlbHMpXG5cbiAgICAgIHRhcmdldE1vZGVsc0J5VHlwZUFuZElkW3RhcmdldFR5cGVdID0ge31cblxuICAgICAgZm9yIChjb25zdCB0YXJnZXRNb2RlbCBvZiBmb3VuZFRhcmdldE1vZGVscykge1xuICAgICAgICBjb25zdCBwcmltYXJ5S2V5VmFsdWUgPSAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9ICovICh0YXJnZXRNb2RlbC5yZWFkQ29sdW1uKHByaW1hcnlLZXkpKVxuXG4gICAgICAgIHRhcmdldE1vZGVsc0J5VHlwZUFuZElkW3RhcmdldFR5cGVdW3ByaW1hcnlLZXlWYWx1ZV0gPSB0YXJnZXRNb2RlbFxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbWV0YSBvZiBtb2RlbE1ldGEpIHtcbiAgICAgIGNvbnN0IG1vZGVsUmVsYXRpb25zaGlwID0gbWV0YS5tb2RlbC5nZXRSZWxhdGlvbnNoaXBCeU5hbWUocmVsYXRpb25zaGlwTmFtZSlcbiAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gKG1ldGEudGFyZ2V0VHlwZSAmJiBtZXRhLmZvcmVpZ25LZXlWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIG1ldGEuZm9yZWlnbktleVZhbHVlICE9PSBudWxsKVxuICAgICAgICA/IHRhcmdldE1vZGVsc0J5VHlwZUFuZElkW21ldGEudGFyZ2V0VHlwZV0/LlttZXRhLmZvcmVpZ25LZXlWYWx1ZV1cbiAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgbW9kZWxSZWxhdGlvbnNoaXAuc2V0UHJlbG9hZGVkKHRydWUpXG4gICAgICBtb2RlbFJlbGF0aW9uc2hpcC5zZXRMb2FkZWQodGFyZ2V0TW9kZWwpXG4gICAgfVxuXG4gICAgcmV0dXJuIHt0YXJnZXRNb2RlbHM6IFsuLi5zYXRpc2ZpZWRUYXJnZXRzLCAuLi50YXJnZXRNb2RlbHNdLCB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZX1cbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Runs ensure model class initialized.
|
|
2
3
|
* @param {typeof import("../../record/index.js").default} modelClass - Model class to initialize.
|
|
3
4
|
* @param {import("../../../configuration.js").default} configuration - Current configuration.
|
|
4
5
|
* @returns {Promise<void>} - Resolves when the model class is initialized.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-model-class-initialized.d.ts","sourceRoot":"","sources":["../../../../../src/database/query/preloader/ensure-model-class-initialized.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"ensure-model-class-initialized.d.ts","sourceRoot":"","sources":["../../../../../src/database/query/preloader/ensure-model-class-initialized.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,gEAJW,cAAc,uBAAuB,EAAE,OAAO,iBAC9C,OAAO,2BAA2B,EAAE,OAAO,GACzC,OAAO,CAAC,IAAI,CAAC,CAWzB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
/**
|
|
3
|
+
* Runs ensure model class initialized.
|
|
3
4
|
* @param {typeof import("../../record/index.js").default} modelClass - Model class to initialize.
|
|
4
5
|
* @param {import("../../../configuration.js").default} configuration - Current configuration.
|
|
5
6
|
* @returns {Promise<void>} - Resolves when the model class is initialized.
|
|
@@ -13,4 +14,4 @@ export default async function ensureModelClassInitialized(modelClass, configurat
|
|
|
13
14
|
}
|
|
14
15
|
await modelClass.initializeRecord({ configuration });
|
|
15
16
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLW1vZGVsLWNsYXNzLWluaXRpYWxpemVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3F1ZXJ5L3ByZWxvYWRlci9lbnN1cmUtbW9kZWwtY2xhc3MtaW5pdGlhbGl6ZWQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsMkJBQTJCLENBQUMsVUFBVSxFQUFFLGFBQWE7SUFDakYsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFO1FBQUUsT0FBTTtJQUV0QyxJQUFJLE9BQU8sVUFBVSxDQUFDLGlCQUFpQixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtRQUNuRCxPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogUnVucyBlbnN1cmUgbW9kZWwgY2xhc3MgaW5pdGlhbGl6ZWQuXG4gKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gbW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzIHRvIGluaXRpYWxpemUuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uLy4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIEN1cnJlbnQgY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gdGhlIG1vZGVsIGNsYXNzIGlzIGluaXRpYWxpemVkLlxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBlbnN1cmVNb2RlbENsYXNzSW5pdGlhbGl6ZWQobW9kZWxDbGFzcywgY29uZmlndXJhdGlvbikge1xuICBpZiAobW9kZWxDbGFzcy5pc0luaXRpYWxpemVkKCkpIHJldHVyblxuXG4gIGlmICh0eXBlb2YgbW9kZWxDbGFzcy5lbnN1cmVJbml0aWFsaXplZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYXdhaXQgbW9kZWxDbGFzcy5lbnN1cmVJbml0aWFsaXplZCh7Y29uZmlndXJhdGlvbn0pXG4gICAgcmV0dXJuXG4gIH1cblxuICBhd2FpdCBtb2RlbENsYXNzLmluaXRpYWxpemVSZWNvcmQoe2NvbmZpZ3VyYXRpb259KVxufVxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export default class VelociousDatabaseQueryPreloaderHasMany {
|
|
2
2
|
/**
|
|
3
|
+
* Runs constructor.
|
|
3
4
|
* @param {object} args - Options object.
|
|
4
5
|
* @param {import("../../record/index.js").default[]} args.models - Model instances.
|
|
5
6
|
* @param {import("../../record/relationships/has-many.js").default} args.relationship - Relationship.
|
|
@@ -13,7 +14,10 @@ export default class VelociousDatabaseQueryPreloaderHasMany {
|
|
|
13
14
|
models: import("../../record/index.js").default[];
|
|
14
15
|
relationship: import("../../record/relationships/has-many.js").default;
|
|
15
16
|
selection: PreloaderSelection;
|
|
16
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Runs run.
|
|
19
|
+
* @returns {Promise<import("../../record/index.js").default[]>} - Loaded target models.
|
|
20
|
+
*/
|
|
17
21
|
run(): Promise<import("../../record/index.js").default[]>;
|
|
18
22
|
/**
|
|
19
23
|
* Partitions `this.models` into those already satisfied by the current
|
|
@@ -29,13 +33,11 @@ export default class VelociousDatabaseQueryPreloaderHasMany {
|
|
|
29
33
|
};
|
|
30
34
|
/**
|
|
31
35
|
* Preload through a join table (e.g. hasMany("invoiceGroups", {through: "invoiceGroupLinks"})).
|
|
32
|
-
*
|
|
33
36
|
* @returns {Promise<import("../../record/index.js").default[]>} - Loaded target models.
|
|
34
37
|
*/
|
|
35
38
|
_runThrough(): Promise<import("../../record/index.js").default[]>;
|
|
36
39
|
/**
|
|
37
40
|
* Preload direct has-many relationships.
|
|
38
|
-
*
|
|
39
41
|
* @returns {Promise<import("../../record/index.js").default[]>} - Loaded target models.
|
|
40
42
|
*/
|
|
41
43
|
_runDirect(): Promise<import("../../record/index.js").default[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-many.d.ts","sourceRoot":"","sources":["../../../../../src/database/query/preloader/has-many.js"],"names":[],"mappings":"AAMA;IACE
|
|
1
|
+
{"version":3,"file":"has-many.d.ts","sourceRoot":"","sources":["../../../../../src/database/query/preloader/has-many.js"],"names":[],"mappings":"AAMA;IACE;;;;;;OAMG;IACH,8DAJG;QAAwD,MAAM,EAAtD,OAAO,uBAAuB,EAAE,OAAO,EAAE;QACsB,YAAY,EAA3E,OAAO,wCAAwC,EAAE,OAAO;QAC9B,SAAS;KAC7C,EAOA;IAHC,kDAAoB;IACpB,uEAAgC;IAChC,8BAAsD;IAGxD;;;OAGG;IACH,OAFa,OAAO,CAAC,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAC,CAQ9D;IAED;;;;;;;OAOG;IACH,6BAJW,cAAc,uBAAuB,EAAE,OAAO,kBAC9C,MAAM,EAAE,GACN;QAAC,YAAY,EAAE,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAC;QAAC,gBAAgB,EAAE,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAA;KAAC,CA0BlI;IAED;;;OAGG;IACH,eAFa,OAAO,CAAC,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAC,CAsJ9D;IAED;;;OAGG;IACH,cAFa,OAAO,CAAC,OAAO,uBAAuB,EAAE,OAAO,EAAE,CAAC,CA0F9D;CACF;+BAxT8B,gBAAgB"}
|