velocious 1.0.428 → 1.0.430
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 +89 -45
- 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 +394 -146
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +697 -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,4 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* InstanceRelationshipsBaseArgs type.
|
|
2
3
|
* @template {typeof import("../index.js").default} [MC=typeof import("../index.js").default]
|
|
3
4
|
* @template {typeof import("../index.js").default} [TMC=typeof import("../index.js").default]
|
|
4
5
|
* @typedef {object} InstanceRelationshipsBaseArgs
|
|
@@ -12,45 +13,63 @@
|
|
|
12
13
|
*/
|
|
13
14
|
export default class VelociousDatabaseRecordBaseInstanceRelationship<MC extends typeof import("../index.js").default = typeof import("../index.js").default, TMC extends typeof import("../index.js").default = typeof import("../index.js").default> {
|
|
14
15
|
/**
|
|
16
|
+
* Runs constructor.
|
|
15
17
|
* @param {InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
16
18
|
*/
|
|
17
19
|
constructor({ model, relationship }: InstanceRelationshipsBaseArgs<MC, TMC>);
|
|
18
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Auto save.
|
|
22
|
+
@type {boolean | undefined} */
|
|
19
23
|
_autoSave: boolean | undefined;
|
|
20
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Preloaded.
|
|
26
|
+
@type {boolean | undefined} */
|
|
21
27
|
_preloaded: boolean | undefined;
|
|
22
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Loaded.
|
|
30
|
+
@type {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} */
|
|
23
31
|
_loaded: InstanceType<TMC> | Array<InstanceType<TMC>> | undefined;
|
|
24
32
|
_dirty: boolean;
|
|
25
33
|
model: InstanceType<MC>;
|
|
26
34
|
relationship: import("../relationships/base.js").default;
|
|
27
35
|
/**
|
|
36
|
+
* Runs add to loaded.
|
|
28
37
|
* @abstract
|
|
29
38
|
* @param {InstanceType<TMC>[] | InstanceType<TMC>} models - Model instances.
|
|
30
39
|
* @returns {void} - No return value.
|
|
31
40
|
*/
|
|
32
41
|
addToLoaded(models: InstanceType<TMC>[] | InstanceType<TMC>): void;
|
|
33
42
|
/**
|
|
43
|
+
* Runs build.
|
|
34
44
|
* @abstract
|
|
35
|
-
* @param {Record<string,
|
|
45
|
+
* @param {Record<string, ?>} attributes - Attributes.
|
|
36
46
|
* @returns {InstanceType<TMC>} - The build.
|
|
37
47
|
*/
|
|
38
|
-
build(attributes: Record<string,
|
|
39
|
-
/**
|
|
48
|
+
build(attributes: Record<string, unknown>): InstanceType<TMC>;
|
|
49
|
+
/**
|
|
50
|
+
* Runs get auto save.
|
|
51
|
+
* @returns {boolean | undefined} Whether the relationship should be auto-saved before saving the parent model
|
|
52
|
+
*/
|
|
40
53
|
getAutoSave(): boolean | undefined;
|
|
41
54
|
/**
|
|
55
|
+
* Runs set auto save.
|
|
42
56
|
* @param {boolean} newAutoSaveValue Whether the relationship should be auto-saved before saving the parent model
|
|
43
57
|
* @returns {void} - No return value.
|
|
44
58
|
*/
|
|
45
59
|
setAutoSave(newAutoSaveValue: boolean): void;
|
|
46
60
|
/**
|
|
61
|
+
* Runs set dirty.
|
|
47
62
|
* @param {boolean} newValue Whether the relationship is dirty (has been modified)
|
|
48
63
|
* @returns {void} - No return value.
|
|
49
64
|
*/
|
|
50
65
|
setDirty(newValue: boolean): void;
|
|
51
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* Runs get dirty.
|
|
68
|
+
* @returns {boolean} Whether the relationship is dirty (has been modified)
|
|
69
|
+
*/
|
|
52
70
|
getDirty(): boolean;
|
|
53
71
|
/**
|
|
72
|
+
* Runs load.
|
|
54
73
|
* @abstract
|
|
55
74
|
* @returns {Promise<InstanceType<TMC> | Array<InstanceType<TMC>> | undefined>} - Resolves with loaded relationship value.
|
|
56
75
|
*/
|
|
@@ -73,37 +92,77 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship<MC extends
|
|
|
73
92
|
* @returns {Promise<boolean>} - Whether a cohort batch preload ran.
|
|
74
93
|
*/
|
|
75
94
|
_tryCohortPreload(): Promise<boolean>;
|
|
76
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Runs is loaded.
|
|
97
|
+
* @returns {boolean} Whether the relationship has been preloaded
|
|
98
|
+
*/
|
|
77
99
|
isLoaded(): boolean;
|
|
78
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* Runs loaded.
|
|
102
|
+
* @returns {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} The loaded model or models (depending on relationship type)
|
|
103
|
+
*/
|
|
79
104
|
loaded(): InstanceType<TMC> | Array<InstanceType<TMC>> | undefined;
|
|
80
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* Runs set loaded.
|
|
107
|
+
* @param {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} model - Related model(s) to mark as loaded.
|
|
108
|
+
*/
|
|
81
109
|
setLoaded(model: InstanceType<TMC> | Array<InstanceType<TMC>> | undefined): void;
|
|
82
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* Runs get loaded or undefined.
|
|
112
|
+
* @returns {InstanceType<TMC> | InstanceType<TMC>[] | undefined} - The loaded or undefined.
|
|
113
|
+
*/
|
|
83
114
|
getLoadedOrUndefined(): InstanceType<TMC> | InstanceType<TMC>[] | undefined;
|
|
84
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Runs get preloaded.
|
|
117
|
+
* @returns {boolean} The loaded model or models (depending on relationship type)
|
|
118
|
+
*/
|
|
85
119
|
getPreloaded(): boolean;
|
|
86
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* Runs set preloaded.
|
|
122
|
+
* @param {boolean} isPreloaded - Whether the relationship is preloaded.
|
|
123
|
+
*/
|
|
87
124
|
setPreloaded(isPreloaded: boolean): void;
|
|
88
|
-
/**
|
|
125
|
+
/**
|
|
126
|
+
* Runs get foreign key.
|
|
127
|
+
* @returns {string} The foreign key for this relationship
|
|
128
|
+
*/
|
|
89
129
|
getForeignKey(): string;
|
|
90
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* Runs get model.
|
|
132
|
+
* @returns {InstanceType<MC>} - The model.
|
|
133
|
+
*/
|
|
91
134
|
getModel(): InstanceType<MC>;
|
|
92
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* Runs get primary key.
|
|
137
|
+
* @returns {string} The primary key for this relationship's model
|
|
138
|
+
*/
|
|
93
139
|
getPrimaryKey(): string;
|
|
94
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* Runs get relationship.
|
|
142
|
+
* @returns {import("../relationships/base.js").default} The relationship object that this instance relationship is based on
|
|
143
|
+
*/
|
|
95
144
|
getRelationship(): import("../relationships/base.js").default;
|
|
96
145
|
/**
|
|
146
|
+
* Runs apply scope.
|
|
97
147
|
* @template T
|
|
98
148
|
* @param {T} query - Query instance.
|
|
99
149
|
* @returns {T} - Scoped query.
|
|
100
150
|
*/
|
|
101
151
|
applyScope<T>(query: T): T;
|
|
102
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* Runs get target model class.
|
|
154
|
+
* @returns {TMC | undefined} The model class that this instance relationship
|
|
155
|
+
*/
|
|
103
156
|
getTargetModelClass(): TMC | undefined;
|
|
104
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Runs get type.
|
|
159
|
+
* @returns {string} The type of relationship (e.g. "has_many", "belongs_to", etc.)
|
|
160
|
+
*/
|
|
105
161
|
getType(): string;
|
|
106
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* InstanceRelationshipsBaseArgs type.
|
|
165
|
+
*/
|
|
107
166
|
export type InstanceRelationshipsBaseArgs<MC extends typeof import("../index.js").default = typeof import("../index.js").default, TMC extends typeof import("../index.js").default = typeof import("../index.js").default> = {
|
|
108
167
|
/**
|
|
109
168
|
* - Parent model instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/base.js"],"names":[],"mappings":"AAMA
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/base.js"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,qEAHqD,EAAE,SAA1C,cAAe,aAAa,EAAE,OAAQ,yCACE,GAAG,SAA3C,cAAe,aAAa,EAAE,OAAQ;IAgBjD;;;OAGG;IACH,qCAFW,6BAA6B,CAAC,EAAE,EAAE,GAAG,CAAC,EAMhD;IArBD;;oCAEgC;IAChC,WADS,OAAO,GAAG,SAAS,CACP;IACrB;;oCAEgC;IAChC,YADS,OAAO,GAAG,SAAS,CACN;IACtB;;yEAEqE;IACrE,SADS,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAC9C;IAOjB,gBAAmB;IACnB,wBAAkB;IAClB,yDAAgC;IAGlC;;;;;OAKG;IACH,oBAHW,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,GACrC,IAAI,CAIhB;IAED;;;;;OAKG;IACH,kBAHW,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,GACf,YAAY,CAAC,GAAG,CAAC,CAI7B;IAED;;;OAGG;IACH,eAFa,OAAO,GAAG,SAAS,CAEO;IAEvC;;;;OAIG;IACH,8BAHW,OAAO,GACL,IAAI,CAEkD;IAEnE;;;;OAIG;IACH,mBAHW,OAAO,GACL,IAAI,CAE4B;IAE7C;;;OAGG;IACH,YAFa,OAAO,CAEa;IAEjC;;;;OAIG;IACH,QAFa,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAI7E;IAED;;;;;;OAMG;IACH,kBAFa,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAU7E;IAED;;;;;;;;OAQG;IACH,qBAFa,OAAO,CAAC,OAAO,CAAC,CAsE5B;IAED;;;OAGG;IACH,YAFa,OAAO,CAEuB;IAE3C;;;OAGG;IACH,UAFa,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAQpE;IAED;;;OAGG;IACH,iBAFW,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,QAE1B;IAEzC;;;OAGG;IACH,wBAFa,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAElB;IAE9C;;;OAGG;IACH,gBAFa,OAAO,CAE8B;IAElD;;;OAGG;IACH,0BAFW,OAAO,QAEyC;IAE3D;;;OAGG;IACH,iBAFa,MAAM,CAE8C;IAEjE;;;OAGG;IACH,YAFa,YAAY,CAAC,EAAE,CAAC,CAEG;IAEhC;;;OAGG;IACH,iBAFa,MAAM,CAE8C;IAEjE;;;OAGG;IACH,mBAFa,OAAO,0BAA0B,EAAE,OAAO,CAET;IAE9C;;;;;OAKG;IACH,WAJa,CAAC,SACH,CAAC,GACC,CAAC,CAIb;IAED;;;OAGG;IACH,uBAFa,GAAG,GAAG,SAAS,CAQ3B;IAED;;;OAGG;IACH,WAFa,MAAM,CAEkC;CACtD;;;;0CAxRoD,EAAE,SAA1C,cAAe,aAAa,EAAE,OAAQ,yCACE,GAAG,SAA3C,cAAe,aAAa,EAAE,OAAQ;;;;WAErC,YAAY,CAAC,EAAE,CAAC;;;;kBAChB,OAAO,0BAA0B,EAAE,OAAO"}
|
|
@@ -3,6 +3,7 @@ import BelongsToPreloader from "../../query/preloader/belongs-to.js";
|
|
|
3
3
|
import HasManyPreloader from "../../query/preloader/has-many.js";
|
|
4
4
|
import HasOnePreloader from "../../query/preloader/has-one.js";
|
|
5
5
|
/**
|
|
6
|
+
* InstanceRelationshipsBaseArgs type.
|
|
6
7
|
* @template {typeof import("../index.js").default} [MC=typeof import("../index.js").default]
|
|
7
8
|
* @template {typeof import("../index.js").default} [TMC=typeof import("../index.js").default]
|
|
8
9
|
* @typedef {object} InstanceRelationshipsBaseArgs
|
|
@@ -15,13 +16,20 @@ import HasOnePreloader from "../../query/preloader/has-one.js";
|
|
|
15
16
|
* @template {typeof import("../index.js").default} [TMC=typeof import("../index.js").default]
|
|
16
17
|
*/
|
|
17
18
|
export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
18
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Auto save.
|
|
21
|
+
@type {boolean | undefined} */
|
|
19
22
|
_autoSave = undefined;
|
|
20
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Preloaded.
|
|
25
|
+
@type {boolean | undefined} */
|
|
21
26
|
_preloaded = undefined;
|
|
22
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Loaded.
|
|
29
|
+
@type {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} */
|
|
23
30
|
_loaded = undefined;
|
|
24
31
|
/**
|
|
32
|
+
* Runs constructor.
|
|
25
33
|
* @param {InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
26
34
|
*/
|
|
27
35
|
constructor({ model, relationship }) {
|
|
@@ -30,6 +38,7 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
|
30
38
|
this.relationship = relationship;
|
|
31
39
|
}
|
|
32
40
|
/**
|
|
41
|
+
* Runs add to loaded.
|
|
33
42
|
* @abstract
|
|
34
43
|
* @param {InstanceType<TMC>[] | InstanceType<TMC>} models - Model instances.
|
|
35
44
|
* @returns {void} - No return value.
|
|
@@ -38,28 +47,38 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
|
38
47
|
throw new Error("addToLoaded not implemented");
|
|
39
48
|
}
|
|
40
49
|
/**
|
|
50
|
+
* Runs build.
|
|
41
51
|
* @abstract
|
|
42
|
-
* @param {Record<string,
|
|
52
|
+
* @param {Record<string, ?>} attributes - Attributes.
|
|
43
53
|
* @returns {InstanceType<TMC>} - The build.
|
|
44
54
|
*/
|
|
45
55
|
build(attributes) {
|
|
46
56
|
throw new Error("'build' not implemented");
|
|
47
57
|
}
|
|
48
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Runs get auto save.
|
|
60
|
+
* @returns {boolean | undefined} Whether the relationship should be auto-saved before saving the parent model
|
|
61
|
+
*/
|
|
49
62
|
getAutoSave() { return this._autoSave; }
|
|
50
63
|
/**
|
|
64
|
+
* Runs set auto save.
|
|
51
65
|
* @param {boolean} newAutoSaveValue Whether the relationship should be auto-saved before saving the parent model
|
|
52
66
|
* @returns {void} - No return value.
|
|
53
67
|
*/
|
|
54
68
|
setAutoSave(newAutoSaveValue) { this._autoSave = newAutoSaveValue; }
|
|
55
69
|
/**
|
|
70
|
+
* Runs set dirty.
|
|
56
71
|
* @param {boolean} newValue Whether the relationship is dirty (has been modified)
|
|
57
72
|
* @returns {void} - No return value.
|
|
58
73
|
*/
|
|
59
74
|
setDirty(newValue) { this._dirty = newValue; }
|
|
60
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Runs get dirty.
|
|
77
|
+
* @returns {boolean} Whether the relationship is dirty (has been modified)
|
|
78
|
+
*/
|
|
61
79
|
getDirty() { return this._dirty; }
|
|
62
80
|
/**
|
|
81
|
+
* Runs load.
|
|
63
82
|
* @abstract
|
|
64
83
|
* @returns {Promise<InstanceType<TMC> | Array<InstanceType<TMC>> | undefined>} - Resolves with loaded relationship value.
|
|
65
84
|
*/
|
|
@@ -93,13 +112,21 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
|
93
112
|
async _tryCohortPreload() {
|
|
94
113
|
const relationshipDef = this.getRelationship();
|
|
95
114
|
const configuration = relationshipDef.getConfiguration();
|
|
96
|
-
const cohort = /**
|
|
115
|
+
const cohort = /**
|
|
116
|
+
* Narrows the runtime value to the documented type.
|
|
117
|
+
@type {Array<import("../index.js").default> | undefined} */ ( /**
|
|
118
|
+
* Narrows the runtime value to the documented type.
|
|
119
|
+
@type {?} */(this.model)._loadCohort);
|
|
97
120
|
if (!configuration.getAutoload() || !relationshipDef.getAutoload() || !cohort || cohort.length <= 1) {
|
|
98
121
|
return false;
|
|
99
122
|
}
|
|
100
123
|
const relationshipName = relationshipDef.getRelationshipName();
|
|
101
|
-
const OwnerModelClass = /**
|
|
102
|
-
|
|
124
|
+
const OwnerModelClass = /**
|
|
125
|
+
* Narrows the runtime value to the documented type.
|
|
126
|
+
@type {?} */ (this.model).constructor;
|
|
127
|
+
/**
|
|
128
|
+
* Batch.
|
|
129
|
+
@type {Array<import("../index.js").default>} */
|
|
103
130
|
const batch = [];
|
|
104
131
|
// Exact same class, persisted, no existing in-memory relationship state.
|
|
105
132
|
// Skip siblings where `_loaded` is already set — they may have been
|
|
@@ -120,17 +147,23 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
|
120
147
|
return false;
|
|
121
148
|
const type = relationshipDef.getType();
|
|
122
149
|
if (type == "belongsTo") {
|
|
123
|
-
const belongsToRelationship = /**
|
|
150
|
+
const belongsToRelationship = /**
|
|
151
|
+
* Narrows the runtime value to the documented type.
|
|
152
|
+
@type {import("../relationships/belongs-to.js").default} */ (relationshipDef);
|
|
124
153
|
const preloader = new BelongsToPreloader({ models: batch, relationship: belongsToRelationship });
|
|
125
154
|
await preloader.run();
|
|
126
155
|
}
|
|
127
156
|
else if (type == "hasMany") {
|
|
128
|
-
const hasManyRelationship = /**
|
|
157
|
+
const hasManyRelationship = /**
|
|
158
|
+
* Narrows the runtime value to the documented type.
|
|
159
|
+
@type {import("../relationships/has-many.js").default} */ (relationshipDef);
|
|
129
160
|
const preloader = new HasManyPreloader({ models: batch, relationship: hasManyRelationship });
|
|
130
161
|
await preloader.run();
|
|
131
162
|
}
|
|
132
163
|
else if (type == "hasOne") {
|
|
133
|
-
const hasOneRelationship = /**
|
|
164
|
+
const hasOneRelationship = /**
|
|
165
|
+
* Narrows the runtime value to the documented type.
|
|
166
|
+
@type {import("../relationships/has-one.js").default} */ (relationshipDef);
|
|
134
167
|
const preloader = new HasOnePreloader({ models: batch, relationship: hasOneRelationship });
|
|
135
168
|
await preloader.run();
|
|
136
169
|
}
|
|
@@ -139,32 +172,63 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
|
139
172
|
}
|
|
140
173
|
return true;
|
|
141
174
|
}
|
|
142
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* Runs is loaded.
|
|
177
|
+
* @returns {boolean} Whether the relationship has been preloaded
|
|
178
|
+
*/
|
|
143
179
|
isLoaded() { return Boolean(this._loaded); }
|
|
144
|
-
/**
|
|
180
|
+
/**
|
|
181
|
+
* Runs loaded.
|
|
182
|
+
* @returns {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} The loaded model or models (depending on relationship type)
|
|
183
|
+
*/
|
|
145
184
|
loaded() {
|
|
146
185
|
if (!this._preloaded && this.model.isPersisted()) {
|
|
147
186
|
throw new Error(`${this.model.constructor.name}#${this.relationship.getRelationshipName()} hasn't been preloaded`);
|
|
148
187
|
}
|
|
149
188
|
return this._loaded;
|
|
150
189
|
}
|
|
151
|
-
/**
|
|
190
|
+
/**
|
|
191
|
+
* Runs set loaded.
|
|
192
|
+
* @param {InstanceType<TMC> | Array<InstanceType<TMC>> | undefined} model - Related model(s) to mark as loaded.
|
|
193
|
+
*/
|
|
152
194
|
setLoaded(model) { this._loaded = model; }
|
|
153
|
-
/**
|
|
195
|
+
/**
|
|
196
|
+
* Runs get loaded or undefined.
|
|
197
|
+
* @returns {InstanceType<TMC> | InstanceType<TMC>[] | undefined} - The loaded or undefined.
|
|
198
|
+
*/
|
|
154
199
|
getLoadedOrUndefined() { return this._loaded; }
|
|
155
|
-
/**
|
|
200
|
+
/**
|
|
201
|
+
* Runs get preloaded.
|
|
202
|
+
* @returns {boolean} The loaded model or models (depending on relationship type)
|
|
203
|
+
*/
|
|
156
204
|
getPreloaded() { return this._preloaded || false; }
|
|
157
|
-
/**
|
|
205
|
+
/**
|
|
206
|
+
* Runs set preloaded.
|
|
207
|
+
* @param {boolean} isPreloaded - Whether the relationship is preloaded.
|
|
208
|
+
*/
|
|
158
209
|
setPreloaded(isPreloaded) { this._preloaded = isPreloaded; }
|
|
159
|
-
/**
|
|
210
|
+
/**
|
|
211
|
+
* Runs get foreign key.
|
|
212
|
+
* @returns {string} The foreign key for this relationship
|
|
213
|
+
*/
|
|
160
214
|
getForeignKey() { return this.getRelationship().getForeignKey(); }
|
|
161
|
-
/**
|
|
215
|
+
/**
|
|
216
|
+
* Runs get model.
|
|
217
|
+
* @returns {InstanceType<MC>} - The model.
|
|
218
|
+
*/
|
|
162
219
|
getModel() { return this.model; }
|
|
163
|
-
/**
|
|
220
|
+
/**
|
|
221
|
+
* Runs get primary key.
|
|
222
|
+
* @returns {string} The primary key for this relationship's model
|
|
223
|
+
*/
|
|
164
224
|
getPrimaryKey() { return this.getRelationship().getPrimaryKey(); }
|
|
165
|
-
/**
|
|
225
|
+
/**
|
|
226
|
+
* Runs get relationship.
|
|
227
|
+
* @returns {import("../relationships/base.js").default} The relationship object that this instance relationship is based on
|
|
228
|
+
*/
|
|
166
229
|
getRelationship() { return this.relationship; }
|
|
167
230
|
/**
|
|
231
|
+
* Runs apply scope.
|
|
168
232
|
* @template T
|
|
169
233
|
* @param {T} query - Query instance.
|
|
170
234
|
* @returns {T} - Scoped query.
|
|
@@ -172,12 +236,20 @@ export default class VelociousDatabaseRecordBaseInstanceRelationship {
|
|
|
172
236
|
applyScope(query) {
|
|
173
237
|
return this.getRelationship().applyScope(query);
|
|
174
238
|
}
|
|
175
|
-
/**
|
|
239
|
+
/**
|
|
240
|
+
* Runs get target model class.
|
|
241
|
+
* @returns {TMC | undefined} The model class that this instance relationship
|
|
242
|
+
*/
|
|
176
243
|
getTargetModelClass() {
|
|
177
|
-
const TargetModelClass = /**
|
|
244
|
+
const TargetModelClass = /**
|
|
245
|
+
* Narrows the runtime value to the documented type.
|
|
246
|
+
@type {TMC} */ (this.getRelationship().getTargetModelClass());
|
|
178
247
|
return TargetModelClass;
|
|
179
248
|
}
|
|
180
|
-
/**
|
|
249
|
+
/**
|
|
250
|
+
* Runs get type.
|
|
251
|
+
* @returns {string} The type of relationship (e.g. "has_many", "belongs_to", etc.)
|
|
252
|
+
*/
|
|
181
253
|
getType() { return this.getRelationship().getType(); }
|
|
182
254
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvaW5zdGFuY2UtcmVsYXRpb25zaGlwcy9iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGtCQUFrQixNQUFNLHFDQUFxQyxDQUFBO0FBQ3BFLE9BQU8sZ0JBQWdCLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxlQUFlLE1BQU0sa0NBQWtDLENBQUE7QUFFOUQ7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sK0NBQStDO0lBQ2xFLGtDQUFrQztJQUNsQyxTQUFTLEdBQUcsU0FBUyxDQUFBO0lBQ3JCLGtDQUFrQztJQUNsQyxVQUFVLEdBQUcsU0FBUyxDQUFBO0lBQ3RCLHVFQUF1RTtJQUN2RSxPQUFPLEdBQUcsU0FBUyxDQUFBO0lBRW5COztPQUVHO0lBQ0gsWUFBWSxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsTUFBTTtRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsa0hBQWtIO0lBQ2xILFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFDO0lBRXZDOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFH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dCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJlbG9uZ3NUb1ByZWxvYWRlciBmcm9tIFwiLi4vLi4vcXVlcnkvcHJlbG9hZGVyL2JlbG9uZ3MtdG8uanNcIlxuaW1wb3J0IEhhc01hbnlQcmVsb2FkZXIgZnJvbSBcIi4uLy4uL3F1ZXJ5L3ByZWxvYWRlci9oYXMtbWFueS5qc1wiXG5pbXBvcnQgSGFzT25lUHJlbG9hZGVyIGZyb20gXCIuLi8uLi9xdWVyeS9wcmVsb2FkZXIvaGFzLW9uZS5qc1wiXG5cbi8qKlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gW01DPXR5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0XVxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gW1RNQz10eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdF1cbiAqIEB0eXBlZGVmIHtvYmplY3R9IEluc3RhbmNlUmVsYXRpb25zaGlwc0Jhc2VBcmdzXG4gKiBAcHJvcGVydHkge0luc3RhbmNlVHlwZTxNQz59IG1vZGVsIC0gUGFyZW50IG1vZGVsIGluc3RhbmNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9yZWxhdGlvbnNoaXBzL2Jhc2UuanNcIikuZGVmYXVsdH0gcmVsYXRpb25zaGlwIC0gUmVsYXRpb25zaGlwIG1ldGFkYXRhIGRlZmluaXRpb24uXG4gKi9cblxuLyoqXG4gKiBBIGdlbmVyaWMgcXVlcnkgb3ZlciBzb21lIG1vZGVsIHR5cGUuXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBbTUM9dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHRdXG4gKiBAdGVtcGxhdGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBbVE1DPXR5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0XVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZVJlY29yZEJhc2VJbnN0YW5jZVJlbGF0aW9uc2hpcCB7XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgX2F1dG9TYXZlID0gdW5kZWZpbmVkXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgX3ByZWxvYWRlZCA9IHVuZGVmaW5lZFxuICAvKiogQHR5cGUge0luc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkfSAqL1xuICBfbG9hZGVkID0gdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7SW5zdGFuY2VSZWxhdGlvbnNoaXBzQmFzZUFyZ3M8TUMsIFRNQz59IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHttb2RlbCwgcmVsYXRpb25zaGlwfSkge1xuICAgIHRoaXMuX2RpcnR5ID0gZmFsc2VcbiAgICB0aGlzLm1vZGVsID0gbW9kZWxcbiAgICB0aGlzLnJlbGF0aW9uc2hpcCA9IHJlbGF0aW9uc2hpcFxuICB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxUTUM+W10gfCBJbnN0YW5jZVR5cGU8VE1DPn0gbW9kZWxzIC0gTW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBhZGRUb0xvYWRlZChtb2RlbHMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHRocm93IG5ldyBFcnJvcihcImFkZFRvTG9hZGVkIG5vdCBpbXBsZW1lbnRlZFwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGF0dHJpYnV0ZXMgLSBBdHRyaWJ1dGVzLlxuICAgKiBAcmV0dXJucyB7SW5zdGFuY2VUeXBlPFRNQz59IC0gVGhlIGJ1aWxkLlxuICAgKi9cbiAgYnVpbGQoYXR0cmlidXRlcykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiJ2J1aWxkJyBub3QgaW1wbGVtZW50ZWRcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gV2hldGhlciB0aGUgcmVsYXRpb25zaGlwIHNob3VsZCBiZSBhdXRvLXNhdmVkIGJlZm9yZSBzYXZpbmcgdGhlIHBhcmVudCBtb2RlbCAqL1xuICBnZXRBdXRvU2F2ZSgpIHsgcmV0dXJuIHRoaXMuX2F1dG9TYXZlIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBuZXdBdXRvU2F2ZVZhbHVlIFdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcCBzaG91bGQgYmUgYXV0by1zYXZlZCBiZWZvcmUgc2F2aW5nIHRoZSBwYXJlbnQgbW9kZWxcbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0QXV0b1NhdmUobmV3QXV0b1NhdmVWYWx1ZSkgeyB0aGlzLl9hdXRvU2F2ZSA9IG5ld0F1dG9TYXZlVmFsdWUgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5ld1ZhbHVlIFdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcCBpcyBkaXJ0eSAoaGFzIGJlZW4gbW9kaWZpZWQpXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldERpcnR5KG5ld1ZhbHVlKSB7IHRoaXMuX2RpcnR5ID0gbmV3VmFsdWUgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgcmVsYXRpb25zaGlwIGlzIGRpcnR5IChoYXMgYmVlbiBtb2RpZmllZCkgKi9cbiAgZ2V0RGlydHkoKSB7IHJldHVybiB0aGlzLl9kaXJ0eSB9XG5cbiAgLyoqXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxJbnN0YW5jZVR5cGU8VE1DPiB8IEFycmF5PEluc3RhbmNlVHlwZTxUTUM+PiB8IHVuZGVmaW5lZD59IC0gUmVzb2x2ZXMgd2l0aCBsb2FkZWQgcmVsYXRpb25zaGlwIHZhbHVlLlxuICAgKi9cbiAgbG9hZCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCInbG9hZCcgbm90IGltcGxlbWVudGVkXCIpXG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHJlbGF0aW9uc2hpcCBpZiBub3QgYWxyZWFkeSBsb2FkZWQuIFdoZW4gdGhlIHBhcmVudCByZWNvcmQgd2FzXG4gICAqIGxvYWRlZCBhcyBwYXJ0IG9mIGEgYmF0Y2ggKGNvaG9ydCkgYW5kIGF1dG9sb2FkIGlzIGVuYWJsZWQsIHNpYmxpbmdzIGluXG4gICAqIHRoZSBjb2hvcnQgdGhhdCBzaGFyZSB0aGlzIHJlbGF0aW9uc2hpcCBhbmQgaGF2ZSBub3QgcHJlbG9hZGVkIGl0IHlldFxuICAgKiBhcmUgYmF0Y2hlZCBpbnRvIGEgc2luZ2xlIHF1ZXJ5IHZpYSB0aGUgZXhpc3RpbmcgcHJlbG9hZGVyIHBhdGguXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEluc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkPn0gLSBSZXNvbHZlcyB3aXRoIGxvYWRlZCByZWxhdGlvbnNoaXAgdmFsdWUuXG4gICAqL1xuICBhc3luYyBhdXRvbG9hZE9yTG9hZCgpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkICE9PSB1bmRlZmluZWQpIHJldHVybiB0aGlzLl9sb2FkZWRcblxuICAgIGNvbnN0IGJhdGNoZWQgPSBhd2FpdCB0aGlzLl90cnlDb2hvcnRQcmVsb2FkKClcblxuICAgIGlmICghYmF0Y2hlZCkgYXdhaXQgdGhpcy5sb2FkKClcblxuICAgIHJldHVybiB0aGlzLl9sb2FkZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBiYXRjaC1sb2FkIHRoaXMgcmVsYXRpb25zaGlwIGFjcm9zcyBjb2hvcnQgc2libGluZ3MgdmlhIHRoZVxuICAgKiBleGlzdGluZyBwcmVsb2FkZXIgcGF0aC4gUmV0dXJucyB0cnVlIHdoZW4gYSBiYXRjaCByYW4gKHNlbGYgaXMgYWx3YXlzXG4gICAqIGluY2x1ZGVkIGJlY2F1c2UgY2FsbGVycyByZXNldCB0aGVpciBvd24gYF9wcmVsb2FkZWRgIHN0YXRlIGJlZm9yZVxuICAgKiBjYWxsaW5nKSwgZmFsc2Ugd2hlbiBhdXRvbG9hZCBpcyBvZmYsIHRoZXJlIGlzIG5vIGNvaG9ydCwgb3Igbm8gYmF0Y2hcbiAgICogY2FuZGlkYXRlcyByZW1haW4uIFNpYmxpbmdzIHRoYXQgaGF2ZSBhbHJlYWR5IHByZWxvYWRlZCB0aGlzIHJlbGF0aW9uc2hpcFxuICAgKiBhcmUgc2tpcHBlZCBzbyB0aGVpciBjYWNoZWQgdmFsdWUgaXMgcHJlc2VydmVkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIGEgY29ob3J0IGJhdGNoIHByZWxvYWQgcmFuLlxuICAgKi9cbiAgYXN5bmMgX3RyeUNvaG9ydFByZWxvYWQoKSB7XG4gICAgY29uc3QgcmVsYXRpb25zaGlwRGVmID0gdGhpcy5nZXRSZWxhdGlvbnNoaXAoKVxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSByZWxhdGlvbnNoaXBEZWYuZ2V0Q29uZmlndXJhdGlvbigpXG4gICAgY29uc3QgY29ob3J0ID0gLyoqIEB0eXBlIHtBcnJheTxpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0PiB8IHVuZGVmaW5lZH0gKi8gKC8qKiBAdHlwZSB7YW55fSAqLyAodGhpcy5tb2RlbCkuX2xvYWRDb2hvcnQpXG5cbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24uZ2V0QXV0b2xvYWQoKSB8fCAhcmVsYXRpb25zaGlwRGVmLmdldEF1dG9sb2FkKCkgfHwgIWNvaG9ydCB8fCBjb2hvcnQubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcE5hbWUgPSByZWxhdGlvbnNoaXBEZWYuZ2V0UmVsYXRpb25zaGlwTmFtZSgpXG4gICAgY29uc3QgT3duZXJNb2RlbENsYXNzID0gLyoqIEB0eXBlIHthbnl9ICovICh0aGlzLm1vZGVsKS5jb25zdHJ1Y3RvclxuICAgIC8qKiBAdHlwZSB7QXJyYXk8aW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdD59ICovXG4gICAgY29uc3QgYmF0Y2ggPSBbXVxuXG4gICAgLy8gRXhhY3Qgc2FtZSBjbGFzcywgcGVyc2lzdGVkLCBubyBleGlzdGluZyBpbi1tZW1vcnkgcmVsYXRpb25zaGlwIHN0YXRlLlxuICAgIC8vIFNraXAgc2libGluZ3Mgd2hlcmUgYF9sb2FkZWRgIGlzIGFscmVhZHkgc2V0IOKAlCB0aGV5IG1heSBoYXZlIGJlZW5cbiAgICAvLyBwcmVsb2FkZWQgKHByZXNlcnZlIGNhY2hlKSBPUiBsb2NhbGx5IG1hbmlwdWxhdGVkIHZpYSBgYnVpbGQuLi5gIC9cbiAgICAvLyBgc2V0Li4uYCAocHJlc2VydmUgdW5zYXZlZCBlZGl0cykuIEVpdGhlciB3YXkgdGhlIHByZWxvYWRlciB3b3VsZFxuICAgIC8vIG92ZXJ3cml0ZSB0aGF0IHN0YXRlLlxuICAgIGZvciAoY29uc3Qgc2libGluZyBvZiBjb2hvcnQpIHtcbiAgICAgIGlmIChzaWJsaW5nLmNvbnN0cnVjdG9yICE9PSBPd25lck1vZGVsQ2xhc3MpIGNvbnRpbnVlXG4gICAgICBpZiAoIXNpYmxpbmcuaXNQZXJzaXN0ZWQoKSkgY29udGludWVcblxuICAgICAgY29uc3Qgc2libGluZ0luc3RhbmNlUmVsYXRpb25zaGlwID0gc2libGluZy5nZXRSZWxhdGlvbnNoaXBCeU5hbWUocmVsYXRpb25zaGlwTmFtZSlcblxuICAgICAgaWYgKHNpYmxpbmdJbnN0YW5jZVJlbGF0aW9uc2hpcC5nZXRMb2FkZWRPclVuZGVmaW5lZCgpICE9PSB1bmRlZmluZWQpIGNvbnRpbnVlXG5cbiAgICAgIGJhdGNoLnB1c2goc2libGluZylcbiAgICB9XG5cbiAgICBpZiAoYmF0Y2gubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICAgIGNvbnN0IHR5cGUgPSByZWxhdGlvbnNoaXBEZWYuZ2V0VHlwZSgpXG5cbiAgICBpZiAodHlwZSA9PSBcImJlbG9uZ3NUb1wiKSB7XG4gICAgICBjb25zdCBiZWxvbmdzVG9SZWxhdGlvbnNoaXAgPSAvKiogQHR5cGUge2ltcG9ydChcIi4uL3JlbGF0aW9uc2hpcHMvYmVsb25ncy10by5qc1wiKS5kZWZhdWx0fSAqLyAocmVsYXRpb25zaGlwRGVmKVxuICAgICAgY29uc3QgcHJlbG9hZGVyID0gbmV3IEJlbG9uZ3NUb1ByZWxvYWRlcih7bW9kZWxzOiBiYXRjaCwgcmVsYXRpb25zaGlwOiBiZWxvbmdzVG9SZWxhdGlvbnNoaXB9KVxuXG4gICAgICBhd2FpdCBwcmVsb2FkZXIucnVuKClcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJoYXNNYW55XCIpIHtcbiAgICAgIGNvbnN0IGhhc01hbnlSZWxhdGlvbnNoaXAgPSAvKiogQHR5cGUge2ltcG9ydChcIi4uL3JlbGF0aW9uc2hpcHMvaGFzLW1hbnkuanNcIikuZGVmYXVsdH0gKi8gKHJlbGF0aW9uc2hpcERlZilcbiAgICAgIGNvbnN0IHByZWxvYWRlciA9IG5ldyBIYXNNYW55UHJlbG9hZGVyKHttb2RlbHM6IGJhdGNoLCByZWxhdGlvbnNoaXA6IGhhc01hbnlSZWxhdGlvbnNoaXB9KVxuXG4gICAgICBhd2FpdCBwcmVsb2FkZXIucnVuKClcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJoYXNPbmVcIikge1xuICAgICAgY29uc3QgaGFzT25lUmVsYXRpb25zaGlwID0gLyoqIEB0eXBlIHtpbXBvcnQoXCIuLi9yZWxhdGlvbnNoaXBzL2hhcy1vbmUuanNcIikuZGVmYXVsdH0gKi8gKHJlbGF0aW9uc2hpcERlZilcbiAgICAgIGNvbnN0IHByZWxvYWRlciA9IG5ldyBIYXNPbmVQcmVsb2FkZXIoe21vZGVsczogYmF0Y2gsIHJlbGF0aW9uc2hpcDogaGFzT25lUmVsYXRpb25zaGlwfSlcblxuICAgICAgYXdhaXQgcHJlbG9hZGVyLnJ1bigpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biByZWxhdGlvbnNoaXAgdHlwZTogJHt0eXBlfWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKiAgQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcCBoYXMgYmVlbiBwcmVsb2FkZWQgKi9cbiAgaXNMb2FkZWQoKSB7IHJldHVybiBCb29sZWFuKHRoaXMuX2xvYWRlZCkgfVxuXG4gIC8qKiBAcmV0dXJucyB7SW5zdGFuY2VUeXBlPFRNQz4gfCBBcnJheTxJbnN0YW5jZVR5cGU8VE1DPj4gfCB1bmRlZmluZWR9IFRoZSBsb2FkZWQgbW9kZWwgb3IgbW9kZWxzIChkZXBlbmRpbmcgb24gcmVsYXRpb25zaGlwIHR5cGUpICovXG4gIGxvYWRlZCgpIHtcbiAgICBpZiAoIXRoaXMuX3ByZWxvYWRlZCAmJiB0aGlzLm1vZGVsLmlzUGVyc2lzdGVkKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm1vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpcy5yZWxhdGlvbnNoaXAuZ2V0UmVsYXRpb25zaGlwTmFtZSgpfSBoYXNuJ3QgYmVlbiBwcmVsb2FkZWRgKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9sb2FkZWRcbiAgfVxuXG4gIC8qKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkfSBtb2RlbCAtIFJlbGF0ZWQgbW9kZWwocykgdG8gbWFyayBhcyBsb2FkZWQuICovXG4gIHNldExvYWRlZChtb2RlbCkgeyB0aGlzLl9sb2FkZWQgPSBtb2RlbCB9XG5cbiAgLyoqIEByZXR1cm5zIHtJbnN0YW5jZVR5cGU8VE1DPiB8IEluc3RhbmNlVHlwZTxUTUM+W10gfCB1bmRlZmluZWR9IC0gVGhlIGxvYWRlZCBvciB1bmRlZmluZWQuICAqL1xuICBnZXRMb2FkZWRPclVuZGVmaW5lZCgpIHsgcmV0dXJuIHRoaXMuX2xvYWRlZCB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSBUaGUgbG9hZGVkIG1vZGVsIG9yIG1vZGVscyAoZGVwZW5kaW5nIG9uIHJlbGF0aW9uc2hpcCB0eXBlKSAqL1xuICBnZXRQcmVsb2FkZWQoKSB7IHJldHVybiB0aGlzLl9wcmVsb2FkZWQgfHwgZmFsc2UgfVxuXG4gIC8qKiBAcGFyYW0ge2Jvb2xlYW59IGlzUHJlbG9hZGVkIC0gV2hldGhlciB0aGUgcmVsYXRpb25zaGlwIGlzIHByZWxvYWRlZC4gKi9cbiAgc2V0UHJlbG9hZGVkKGlzUHJlbG9hZGVkKSB7IHRoaXMuX3ByZWxvYWRlZCA9IGlzUHJlbG9hZGVkIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ30gVGhlIGZvcmVpZ24ga2V5IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAqL1xuICBnZXRGb3JlaWduS2V5KCkgeyByZXR1cm4gdGhpcy5nZXRSZWxhdGlvbnNoaXAoKS5nZXRGb3JlaWduS2V5KCkgfVxuXG4gIC8qKiBAcmV0dXJucyB7SW5zdGFuY2VUeXBlPE1DPn0gLSBUaGUgbW9kZWwuICAqL1xuICBnZXRNb2RlbCgpIHsgcmV0dXJuIHRoaXMubW9kZWwgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcHJpbWFyeSBrZXkgZm9yIHRoaXMgcmVsYXRpb25zaGlwJ3MgbW9kZWwgKi9cbiAgZ2V0UHJpbWFyeUtleSgpIHsgcmV0dXJuIHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuZ2V0UHJpbWFyeUtleSgpIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcIi4uL3JlbGF0aW9uc2hpcHMvYmFzZS5qc1wiKS5kZWZhdWx0fSBUaGUgcmVsYXRpb25zaGlwIG9iamVjdCB0aGF0IHRoaXMgaW5zdGFuY2UgcmVsYXRpb25zaGlwIGlzIGJhc2VkIG9uICovXG4gIGdldFJlbGF0aW9uc2hpcCgpIHsgcmV0dXJuIHRoaXMucmVsYXRpb25zaGlwIH1cblxuICAvKipcbiAgICogQHRlbXBsYXRlIFRcbiAgICogQHBhcmFtIHtUfSBxdWVyeSAtIFF1ZXJ5IGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7VH0gLSBTY29wZWQgcXVlcnkuXG4gICAqL1xuICBhcHBseVNjb3BlKHF1ZXJ5KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuYXBwbHlTY29wZShxdWVyeSlcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7VE1DIHwgdW5kZWZpbmVkfSBUaGUgbW9kZWwgY2xhc3MgdGhhdCB0aGlzIGluc3RhbmNlIHJlbGF0aW9uc2hpcCAqL1xuICBnZXRUYXJnZXRNb2RlbENsYXNzKCkge1xuICAgIGNvbnN0IFRhcmdldE1vZGVsQ2xhc3MgPSAvKiogQHR5cGUge1RNQ30gKi8gKHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuZ2V0VGFyZ2V0TW9kZWxDbGFzcygpKVxuXG4gICAgcmV0dXJuIFRhcmdldE1vZGVsQ2xhc3NcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgdHlwZSBvZiByZWxhdGlvbnNoaXAgKGUuZy4gXCJoYXNfbWFueVwiLCBcImJlbG9uZ3NfdG9cIiwgZXRjLikgKi9cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuZ2V0VHlwZSgpIH1cbn1cbiJdfQ==
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvaW5zdGFuY2UtcmVsYXRpb25zaGlwcy9iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLGtCQUFrQixNQUFNLHFDQUFxQyxDQUFBO0FBQ3BFLE9BQU8sZ0JBQWdCLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxlQUFlLE1BQU0sa0NBQWtDLENBQUE7QUFFOUQ7Ozs7Ozs7R0FPRztBQUVIOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLCtDQUErQztJQUNsRTs7b0NBRWdDO0lBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDckI7O29DQUVnQztJQUNoQyxVQUFVLEdBQUcsU0FBUyxDQUFBO0lBQ3RCOzt5RUFFcUU7SUFDckUsT0FBTyxHQUFHLFNBQVMsQ0FBQTtJQUVuQjs7O09BR0c7SUFDSCxZQUFZLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsTUFBTTtRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFDO0lBRXZDOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFNB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dGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJlbG9uZ3NUb1ByZWxvYWRlciBmcm9tIFwiLi4vLi4vcXVlcnkvcHJlbG9hZGVyL2JlbG9uZ3MtdG8uanNcIlxuaW1wb3J0IEhhc01hbnlQcmVsb2FkZXIgZnJvbSBcIi4uLy4uL3F1ZXJ5L3ByZWxvYWRlci9oYXMtbWFueS5qc1wiXG5pbXBvcnQgSGFzT25lUHJlbG9hZGVyIGZyb20gXCIuLi8uLi9xdWVyeS9wcmVsb2FkZXIvaGFzLW9uZS5qc1wiXG5cbi8qKlxuICogSW5zdGFuY2VSZWxhdGlvbnNoaXBzQmFzZUFyZ3MgdHlwZS5cbiAqIEB0ZW1wbGF0ZSB7dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IFtNQz10eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdF1cbiAqIEB0ZW1wbGF0ZSB7dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IFtUTUM9dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHRdXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBJbnN0YW5jZVJlbGF0aW9uc2hpcHNCYXNlQXJnc1xuICogQHByb3BlcnR5IHtJbnN0YW5jZVR5cGU8TUM+fSBtb2RlbCAtIFBhcmVudCBtb2RlbCBpbnN0YW5jZS5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vcmVsYXRpb25zaGlwcy9iYXNlLmpzXCIpLmRlZmF1bHR9IHJlbGF0aW9uc2hpcCAtIFJlbGF0aW9uc2hpcCBtZXRhZGF0YSBkZWZpbml0aW9uLlxuICovXG5cbi8qKlxuICogQSBnZW5lcmljIHF1ZXJ5IG92ZXIgc29tZSBtb2RlbCB0eXBlLlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gW01DPXR5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0XVxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gW1RNQz10eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdF1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VSZWNvcmRCYXNlSW5zdGFuY2VSZWxhdGlvbnNoaXAge1xuICAvKipcbiAgICogQXV0byBzYXZlLlxuICAgIEB0eXBlIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBfYXV0b1NhdmUgPSB1bmRlZmluZWRcbiAgLyoqXG4gICAqIFByZWxvYWRlZC5cbiAgICBAdHlwZSB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gKi9cbiAgX3ByZWxvYWRlZCA9IHVuZGVmaW5lZFxuICAvKipcbiAgICogTG9hZGVkLlxuICAgIEB0eXBlIHtJbnN0YW5jZVR5cGU8VE1DPiB8IEFycmF5PEluc3RhbmNlVHlwZTxUTUM+PiB8IHVuZGVmaW5lZH0gKi9cbiAgX2xvYWRlZCA9IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge0luc3RhbmNlUmVsYXRpb25zaGlwc0Jhc2VBcmdzPE1DLCBUTUM+fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7bW9kZWwsIHJlbGF0aW9uc2hpcH0pIHtcbiAgICB0aGlzLl9kaXJ0eSA9IGZhbHNlXG4gICAgdGhpcy5tb2RlbCA9IG1vZGVsXG4gICAgdGhpcy5yZWxhdGlvbnNoaXAgPSByZWxhdGlvbnNoaXBcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGFkZCB0byBsb2FkZWQuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxUTUM+W10gfCBJbnN0YW5jZVR5cGU8VE1DPn0gbW9kZWxzIC0gTW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBhZGRUb0xvYWRlZChtb2RlbHMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHRocm93IG5ldyBFcnJvcihcImFkZFRvTG9hZGVkIG5vdCBpbXBsZW1lbnRlZFwiKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYnVpbGQuXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsID8+fSBhdHRyaWJ1dGVzIC0gQXR0cmlidXRlcy5cbiAgICogQHJldHVybnMge0luc3RhbmNlVHlwZTxUTUM+fSAtIFRoZSBidWlsZC5cbiAgICovXG4gIGJ1aWxkKGF0dHJpYnV0ZXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHRocm93IG5ldyBFcnJvcihcIididWlsZCcgbm90IGltcGxlbWVudGVkXCIpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgYXV0byBzYXZlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gV2hldGhlciB0aGUgcmVsYXRpb25zaGlwIHNob3VsZCBiZSBhdXRvLXNhdmVkIGJlZm9yZSBzYXZpbmcgdGhlIHBhcmVudCBtb2RlbFxuICAgKi9cbiAgZ2V0QXV0b1NhdmUoKSB7IHJldHVybiB0aGlzLl9hdXRvU2F2ZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IGF1dG8gc2F2ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBuZXdBdXRvU2F2ZVZhbHVlIFdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcCBzaG91bGQgYmUgYXV0by1zYXZlZCBiZWZvcmUgc2F2aW5nIHRoZSBwYXJlbnQgbW9kZWxcbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0QXV0b1NhdmUobmV3QXV0b1NhdmVWYWx1ZSkgeyB0aGlzLl9hdXRvU2F2ZSA9IG5ld0F1dG9TYXZlVmFsdWUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNldCBkaXJ0eS5cbiAgICogQHBhcmFtIHtib29sZWFufSBuZXdWYWx1ZSBXaGV0aGVyIHRoZSByZWxhdGlvbnNoaXAgaXMgZGlydHkgKGhhcyBiZWVuIG1vZGlmaWVkKVxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXREaXJ0eShuZXdWYWx1ZSkgeyB0aGlzLl9kaXJ0eSA9IG5ld1ZhbHVlIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgZGlydHkuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSByZWxhdGlvbnNoaXAgaXMgZGlydHkgKGhhcyBiZWVuIG1vZGlmaWVkKVxuICAgKi9cbiAgZ2V0RGlydHkoKSB7IHJldHVybiB0aGlzLl9kaXJ0eSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgbG9hZC5cbiAgICogQGFic3RyYWN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEluc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkPn0gLSBSZXNvbHZlcyB3aXRoIGxvYWRlZCByZWxhdGlvbnNoaXAgdmFsdWUuXG4gICAqL1xuICBsb2FkKCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIidsb2FkJyBub3QgaW1wbGVtZW50ZWRcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgcmVsYXRpb25zaGlwIGlmIG5vdCBhbHJlYWR5IGxvYWRlZC4gV2hlbiB0aGUgcGFyZW50IHJlY29yZCB3YXNcbiAgICogbG9hZGVkIGFzIHBhcnQgb2YgYSBiYXRjaCAoY29ob3J0KSBhbmQgYXV0b2xvYWQgaXMgZW5hYmxlZCwgc2libGluZ3MgaW5cbiAgICogdGhlIGNvaG9ydCB0aGF0IHNoYXJlIHRoaXMgcmVsYXRpb25zaGlwIGFuZCBoYXZlIG5vdCBwcmVsb2FkZWQgaXQgeWV0XG4gICAqIGFyZSBiYXRjaGVkIGludG8gYSBzaW5nbGUgcXVlcnkgdmlhIHRoZSBleGlzdGluZyBwcmVsb2FkZXIgcGF0aC5cbiAgICogQHJldHVybnMge1Byb21pc2U8SW5zdGFuY2VUeXBlPFRNQz4gfCBBcnJheTxJbnN0YW5jZVR5cGU8VE1DPj4gfCB1bmRlZmluZWQ+fSAtIFJlc29sdmVzIHdpdGggbG9hZGVkIHJlbGF0aW9uc2hpcCB2YWx1ZS5cbiAgICovXG4gIGFzeW5jIGF1dG9sb2FkT3JMb2FkKCkge1xuICAgIGlmICh0aGlzLl9sb2FkZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHRoaXMuX2xvYWRlZFxuXG4gICAgY29uc3QgYmF0Y2hlZCA9IGF3YWl0IHRoaXMuX3RyeUNvaG9ydFByZWxvYWQoKVxuXG4gICAgaWYgKCFiYXRjaGVkKSBhd2FpdCB0aGlzLmxvYWQoKVxuXG4gICAgcmV0dXJuIHRoaXMuX2xvYWRlZFxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGJhdGNoLWxvYWQgdGhpcyByZWxhdGlvbnNoaXAgYWNyb3NzIGNvaG9ydCBzaWJsaW5ncyB2aWEgdGhlXG4gICAqIGV4aXN0aW5nIHByZWxvYWRlciBwYXRoLiBSZXR1cm5zIHRydWUgd2hlbiBhIGJhdGNoIHJhbiAoc2VsZiBpcyBhbHdheXNcbiAgICogaW5jbHVkZWQgYmVjYXVzZSBjYWxsZXJzIHJlc2V0IHRoZWlyIG93biBgX3ByZWxvYWRlZGAgc3RhdGUgYmVmb3JlXG4gICAqIGNhbGxpbmcpLCBmYWxzZSB3aGVuIGF1dG9sb2FkIGlzIG9mZiwgdGhlcmUgaXMgbm8gY29ob3J0LCBvciBubyBiYXRjaFxuICAgKiBjYW5kaWRhdGVzIHJlbWFpbi4gU2libGluZ3MgdGhhdCBoYXZlIGFscmVhZHkgcHJlbG9hZGVkIHRoaXMgcmVsYXRpb25zaGlwXG4gICAqIGFyZSBza2lwcGVkIHNvIHRoZWlyIGNhY2hlZCB2YWx1ZSBpcyBwcmVzZXJ2ZWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIFdoZXRoZXIgYSBjb2hvcnQgYmF0Y2ggcHJlbG9hZCByYW4uXG4gICAqL1xuICBhc3luYyBfdHJ5Q29ob3J0UHJlbG9hZCgpIHtcbiAgICBjb25zdCByZWxhdGlvbnNoaXBEZWYgPSB0aGlzLmdldFJlbGF0aW9uc2hpcCgpXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHJlbGF0aW9uc2hpcERlZi5nZXRDb25maWd1cmF0aW9uKClcbiAgICBjb25zdCBjb2hvcnQgPSAvKipcbiAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICBAdHlwZSB7QXJyYXk8aW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdD4gfCB1bmRlZmluZWR9ICovICgvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAdHlwZSB7P30gKi8gKHRoaXMubW9kZWwpLl9sb2FkQ29ob3J0KVxuXG4gICAgaWYgKCFjb25maWd1cmF0aW9uLmdldEF1dG9sb2FkKCkgfHwgIXJlbGF0aW9uc2hpcERlZi5nZXRBdXRvbG9hZCgpIHx8ICFjb2hvcnQgfHwgY29ob3J0Lmxlbmd0aCA8PSAxKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gcmVsYXRpb25zaGlwRGVmLmdldFJlbGF0aW9uc2hpcE5hbWUoKVxuICAgIGNvbnN0IE93bmVyTW9kZWxDbGFzcyA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHs/fSAqLyAodGhpcy5tb2RlbCkuY29uc3RydWN0b3JcbiAgICAvKipcbiAgICAgKiBCYXRjaC5cbiAgICAgIEB0eXBlIHtBcnJheTxpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0Pn0gKi9cbiAgICBjb25zdCBiYXRjaCA9IFtdXG5cbiAgICAvLyBFeGFjdCBzYW1lIGNsYXNzLCBwZXJzaXN0ZWQsIG5vIGV4aXN0aW5nIGluLW1lbW9yeSByZWxhdGlvbnNoaXAgc3RhdGUuXG4gICAgLy8gU2tpcCBzaWJsaW5ncyB3aGVyZSBgX2xvYWRlZGAgaXMgYWxyZWFkeSBzZXQg4oCUIHRoZXkgbWF5IGhhdmUgYmVlblxuICAgIC8vIHByZWxvYWRlZCAocHJlc2VydmUgY2FjaGUpIE9SIGxvY2FsbHkgbWFuaXB1bGF0ZWQgdmlhIGBidWlsZC4uLmAgL1xuICAgIC8vIGBzZXQuLi5gIChwcmVzZXJ2ZSB1bnNhdmVkIGVkaXRzKS4gRWl0aGVyIHdheSB0aGUgcHJlbG9hZGVyIHdvdWxkXG4gICAgLy8gb3ZlcndyaXRlIHRoYXQgc3RhdGUuXG4gICAgZm9yIChjb25zdCBzaWJsaW5nIG9mIGNvaG9ydCkge1xuICAgICAgaWYgKHNpYmxpbmcuY29uc3RydWN0b3IgIT09IE93bmVyTW9kZWxDbGFzcykgY29udGludWVcbiAgICAgIGlmICghc2libGluZy5pc1BlcnNpc3RlZCgpKSBjb250aW51ZVxuXG4gICAgICBjb25zdCBzaWJsaW5nSW5zdGFuY2VSZWxhdGlvbnNoaXAgPSBzaWJsaW5nLmdldFJlbGF0aW9uc2hpcEJ5TmFtZShyZWxhdGlvbnNoaXBOYW1lKVxuXG4gICAgICBpZiAoc2libGluZ0luc3RhbmNlUmVsYXRpb25zaGlwLmdldExvYWRlZE9yVW5kZWZpbmVkKCkgIT09IHVuZGVmaW5lZCkgY29udGludWVcblxuICAgICAgYmF0Y2gucHVzaChzaWJsaW5nKVxuICAgIH1cblxuICAgIGlmIChiYXRjaC5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3QgdHlwZSA9IHJlbGF0aW9uc2hpcERlZi5nZXRUeXBlKClcblxuICAgIGlmICh0eXBlID09IFwiYmVsb25nc1RvXCIpIHtcbiAgICAgIGNvbnN0IGJlbG9uZ3NUb1JlbGF0aW9uc2hpcCA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAdHlwZSB7aW1wb3J0KFwiLi4vcmVsYXRpb25zaGlwcy9iZWxvbmdzLXRvLmpzXCIpLmRlZmF1bHR9ICovIChyZWxhdGlvbnNoaXBEZWYpXG4gICAgICBjb25zdCBwcmVsb2FkZXIgPSBuZXcgQmVsb25nc1RvUHJlbG9hZGVyKHttb2RlbHM6IGJhdGNoLCByZWxhdGlvbnNoaXA6IGJlbG9uZ3NUb1JlbGF0aW9uc2hpcH0pXG5cbiAgICAgIGF3YWl0IHByZWxvYWRlci5ydW4oKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcImhhc01hbnlcIikge1xuICAgICAgY29uc3QgaGFzTWFueVJlbGF0aW9uc2hpcCA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHtpbXBvcnQoXCIuLi9yZWxhdGlvbnNoaXBzL2hhcy1tYW55LmpzXCIpLmRlZmF1bHR9ICovIChyZWxhdGlvbnNoaXBEZWYpXG4gICAgICBjb25zdCBwcmVsb2FkZXIgPSBuZXcgSGFzTWFueVByZWxvYWRlcih7bW9kZWxzOiBiYXRjaCwgcmVsYXRpb25zaGlwOiBoYXNNYW55UmVsYXRpb25zaGlwfSlcblxuICAgICAgYXdhaXQgcHJlbG9hZGVyLnJ1bigpXG4gICAgfSBlbHNlIGlmICh0eXBlID09IFwiaGFzT25lXCIpIHtcbiAgICAgIGNvbnN0IGhhc09uZVJlbGF0aW9uc2hpcCA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAdHlwZSB7aW1wb3J0KFwiLi4vcmVsYXRpb25zaGlwcy9oYXMtb25lLmpzXCIpLmRlZmF1bHR9ICovIChyZWxhdGlvbnNoaXBEZWYpXG4gICAgICBjb25zdCBwcmVsb2FkZXIgPSBuZXcgSGFzT25lUHJlbG9hZGVyKHttb2RlbHM6IGJhdGNoLCByZWxhdGlvbnNoaXA6IGhhc09uZVJlbGF0aW9uc2hpcH0pXG5cbiAgICAgIGF3YWl0IHByZWxvYWRlci5ydW4oKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcmVsYXRpb25zaGlwIHR5cGU6ICR7dHlwZX1gKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogUnVucyBpcyBsb2FkZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSByZWxhdGlvbnNoaXAgaGFzIGJlZW4gcHJlbG9hZGVkXG4gICAqL1xuICBpc0xvYWRlZCgpIHsgcmV0dXJuIEJvb2xlYW4odGhpcy5fbG9hZGVkKSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgbG9hZGVkLlxuICAgKiBAcmV0dXJucyB7SW5zdGFuY2VUeXBlPFRNQz4gfCBBcnJheTxJbnN0YW5jZVR5cGU8VE1DPj4gfCB1bmRlZmluZWR9IFRoZSBsb2FkZWQgbW9kZWwgb3IgbW9kZWxzIChkZXBlbmRpbmcgb24gcmVsYXRpb25zaGlwIHR5cGUpXG4gICAqL1xuICBsb2FkZWQoKSB7XG4gICAgaWYgKCF0aGlzLl9wcmVsb2FkZWQgJiYgdGhpcy5tb2RlbC5pc1BlcnNpc3RlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5tb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfSMke3RoaXMucmVsYXRpb25zaGlwLmdldFJlbGF0aW9uc2hpcE5hbWUoKX0gaGFzbid0IGJlZW4gcHJlbG9hZGVkYClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbG9hZGVkXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzZXQgbG9hZGVkLlxuICAgKiBAcGFyYW0ge0luc3RhbmNlVHlwZTxUTUM+IHwgQXJyYXk8SW5zdGFuY2VUeXBlPFRNQz4+IHwgdW5kZWZpbmVkfSBtb2RlbCAtIFJlbGF0ZWQgbW9kZWwocykgdG8gbWFyayBhcyBsb2FkZWQuXG4gICAqL1xuICBzZXRMb2FkZWQobW9kZWwpIHsgdGhpcy5fbG9hZGVkID0gbW9kZWwgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBsb2FkZWQgb3IgdW5kZWZpbmVkLlxuICAgKiBAcmV0dXJucyB7SW5zdGFuY2VUeXBlPFRNQz4gfCBJbnN0YW5jZVR5cGU8VE1DPltdIHwgdW5kZWZpbmVkfSAtIFRoZSBsb2FkZWQgb3IgdW5kZWZpbmVkLlxuICAgKi9cbiAgZ2V0TG9hZGVkT3JVbmRlZmluZWQoKSB7IHJldHVybiB0aGlzLl9sb2FkZWQgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBwcmVsb2FkZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUaGUgbG9hZGVkIG1vZGVsIG9yIG1vZGVscyAoZGVwZW5kaW5nIG9uIHJlbGF0aW9uc2hpcCB0eXBlKVxuICAgKi9cbiAgZ2V0UHJlbG9hZGVkKCkgeyByZXR1cm4gdGhpcy5fcHJlbG9hZGVkIHx8IGZhbHNlIH1cblxuICAvKipcbiAgICogUnVucyBzZXQgcHJlbG9hZGVkLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUHJlbG9hZGVkIC0gV2hldGhlciB0aGUgcmVsYXRpb25zaGlwIGlzIHByZWxvYWRlZC5cbiAgICovXG4gIHNldFByZWxvYWRlZChpc1ByZWxvYWRlZCkgeyB0aGlzLl9wcmVsb2FkZWQgPSBpc1ByZWxvYWRlZCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGZvcmVpZ24ga2V5LlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZm9yZWlnbiBrZXkgZm9yIHRoaXMgcmVsYXRpb25zaGlwXG4gICAqL1xuICBnZXRGb3JlaWduS2V5KCkgeyByZXR1cm4gdGhpcy5nZXRSZWxhdGlvbnNoaXAoKS5nZXRGb3JlaWduS2V5KCkgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBtb2RlbC5cbiAgICogQHJldHVybnMge0luc3RhbmNlVHlwZTxNQz59IC0gVGhlIG1vZGVsLlxuICAgKi9cbiAgZ2V0TW9kZWwoKSB7IHJldHVybiB0aGlzLm1vZGVsIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgcHJpbWFyeSBrZXkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBwcmltYXJ5IGtleSBmb3IgdGhpcyByZWxhdGlvbnNoaXAncyBtb2RlbFxuICAgKi9cbiAgZ2V0UHJpbWFyeUtleSgpIHsgcmV0dXJuIHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuZ2V0UHJpbWFyeUtleSgpIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgcmVsYXRpb25zaGlwLlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vcmVsYXRpb25zaGlwcy9iYXNlLmpzXCIpLmRlZmF1bHR9IFRoZSByZWxhdGlvbnNoaXAgb2JqZWN0IHRoYXQgdGhpcyBpbnN0YW5jZSByZWxhdGlvbnNoaXAgaXMgYmFzZWQgb25cbiAgICovXG4gIGdldFJlbGF0aW9uc2hpcCgpIHsgcmV0dXJuIHRoaXMucmVsYXRpb25zaGlwIH1cblxuICAvKipcbiAgICogUnVucyBhcHBseSBzY29wZS5cbiAgICogQHRlbXBsYXRlIFRcbiAgICogQHBhcmFtIHtUfSBxdWVyeSAtIFF1ZXJ5IGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7VH0gLSBTY29wZWQgcXVlcnkuXG4gICAqL1xuICBhcHBseVNjb3BlKHF1ZXJ5KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVsYXRpb25zaGlwKCkuYXBwbHlTY29wZShxdWVyeSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCB0YXJnZXQgbW9kZWwgY2xhc3MuXG4gICAqIEByZXR1cm5zIHtUTUMgfCB1bmRlZmluZWR9IFRoZSBtb2RlbCBjbGFzcyB0aGF0IHRoaXMgaW5zdGFuY2UgcmVsYXRpb25zaGlwXG4gICAqL1xuICBnZXRUYXJnZXRNb2RlbENsYXNzKCkge1xuICAgIGNvbnN0IFRhcmdldE1vZGVsQ2xhc3MgPSAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEB0eXBlIHtUTUN9ICovICh0aGlzLmdldFJlbGF0aW9uc2hpcCgpLmdldFRhcmdldE1vZGVsQ2xhc3MoKSlcblxuICAgIHJldHVybiBUYXJnZXRNb2RlbENsYXNzXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgdHlwZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHR5cGUgb2YgcmVsYXRpb25zaGlwIChlLmcuIFwiaGFzX21hbnlcIiwgXCJiZWxvbmdzX3RvXCIsIGV0Yy4pXG4gICAqL1xuICBnZXRUeXBlKCkgeyByZXR1cm4gdGhpcy5nZXRSZWxhdGlvbnNoaXAoKS5nZXRUeXBlKCkgfVxufVxuIl19
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export default class VelociousDatabaseRecordBelongsToInstanceRelationship<MC extends typeof import("../index.js").default, TMC extends typeof import("../index.js").default> extends BaseInstanceRelationship<MC, TMC> {
|
|
8
8
|
/**
|
|
9
|
+
* Runs constructor.
|
|
9
10
|
* @param {import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
10
11
|
*/
|
|
11
12
|
constructor(args: import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/belongs-to.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,0EAJoD,EAAE,SAAzC,cAAe,aAAa,EAAE,OAAQ,EACC,GAAG,SAA1C,cAAe,aAAa,EAAE,OAAQ;IAIjD
|
|
1
|
+
{"version":3,"file":"belongs-to.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/instance-relationships/belongs-to.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,0EAJoD,EAAE,SAAzC,cAAe,aAAa,EAAE,OAAQ,EACC,GAAG,SAA1C,cAAe,aAAa,EAAE,OAAQ;IAIjD;;;OAGG;IACH,kBAFW,OAAO,WAAW,EAAE,6BAA6B,CAAC,EAAE,EAAE,GAAG,CAAC,EAIpE;CAkEF;qCAjFoC,WAAW"}
|
|
@@ -8,20 +8,26 @@ import BaseInstanceRelationship from "./base.js";
|
|
|
8
8
|
*/
|
|
9
9
|
export default class VelociousDatabaseRecordBelongsToInstanceRelationship extends BaseInstanceRelationship {
|
|
10
10
|
/**
|
|
11
|
+
* Runs constructor.
|
|
11
12
|
* @param {import("./base.js").InstanceRelationshipsBaseArgs<MC, TMC>} args - Options object.
|
|
12
13
|
*/
|
|
13
14
|
constructor(args) {
|
|
14
15
|
super(args);
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
|
-
*
|
|
18
|
+
* Runs build.
|
|
19
|
+
* @param {Record<string, ?>} data - Data payload.
|
|
18
20
|
* @returns {InstanceType<TMC>} - The build.
|
|
19
21
|
*/
|
|
20
22
|
build(data) {
|
|
21
|
-
const TargetModelClass = /**
|
|
23
|
+
const TargetModelClass = /**
|
|
24
|
+
* Narrows the runtime value to the documented type.
|
|
25
|
+
@type {TMC} */ (this.getTargetModelClass());
|
|
22
26
|
if (!TargetModelClass)
|
|
23
27
|
throw new Error("Can't build a new record without a target model");
|
|
24
|
-
const newInstance = /**
|
|
28
|
+
const newInstance = /**
|
|
29
|
+
* Narrows the runtime value to the documented type.
|
|
30
|
+
@type {InstanceType<TMC>} */ (new TargetModelClass(data));
|
|
25
31
|
this._loaded = newInstance;
|
|
26
32
|
return newInstance;
|
|
27
33
|
}
|
|
@@ -41,7 +47,9 @@ export default class VelociousDatabaseRecordBelongsToInstanceRelationship extend
|
|
|
41
47
|
if (!TargetModelClass)
|
|
42
48
|
throw new Error("Can't load without a target model");
|
|
43
49
|
const primaryKey = TargetModelClass.primaryKey();
|
|
44
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Where args.
|
|
52
|
+
@type {Record<string, string | number | null | undefined>} */
|
|
45
53
|
const whereArgs = {};
|
|
46
54
|
whereArgs[primaryKey] = foreignModelID;
|
|
47
55
|
let query = TargetModelClass.where(whereArgs);
|
|
@@ -58,4 +66,4 @@ export default class VelociousDatabaseRecordBelongsToInstanceRelationship extend
|
|
|
58
66
|
return this.loaded();
|
|
59
67
|
}
|
|
60
68
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVsb25ncy10by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvaW5zdGFuY2UtcmVsYXRpb25zaGlwcy9iZWxvbmdzLXRvLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLHdCQUF3QixNQUFNLFdBQVcsQ0FBQTtBQUVoRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0RBQXFELFNBQVEsd0JBQXdCO0lBQ3hHOzs7T0FHRztJQUNILFlBQVksSUFBSTtRQUNkLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNiLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLGdCQUFnQixHQUFHOztpREFFZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUFFdEUsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQTtRQUV6RixNQUFNLFdBQVcsR0FBRzs7MERBRThCLENBQUMsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFFL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUE7UUFFMUIsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztJQUVELG9CQUFvQixLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQSxDQUFDLENBQUM7SUFFOUMsS0FBSyxDQUFDLElBQUk7UUFDUiwwRUFBMEU7UUFDMUUsMkVBQTJFO1FBQzNFLGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQTtRQUV4QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRTlDLElBQUksT0FBTztZQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBRWpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUN2QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzdELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFFbkQsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUUzRSxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNoRDs7dUVBRStEO1FBQy9ELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVwQixTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsY0FBYyxDQUFBO1FBRXRDLElBQUksS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUU3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUU5QixNQUFNLFlBQVksR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUV4QyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlSW5zdGFuY2VSZWxhdGlvbnNoaXAgZnJvbSBcIi4vYmFzZS5qc1wiXG5cbi8qKlxuICogQSBnZW5lcmljIHF1ZXJ5IG92ZXIgc29tZSBtb2RlbCB0eXBlLlxuICogQHRlbXBsYXRlIHt0eXBlb2YgaW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gTUNcbiAqIEB0ZW1wbGF0ZSB7dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IFRNQ1xuICogQGF1Z21lbnRzIHtCYXNlSW5zdGFuY2VSZWxhdGlvbnNoaXA8TUMsIFRNQz59XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUmVjb3JkQmVsb25nc1RvSW5zdGFuY2VSZWxhdGlvbnNoaXAgZXh0ZW5kcyBCYXNlSW5zdGFuY2VSZWxhdGlvbnNoaXAge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jhc2UuanNcIikuSW5zdGFuY2VSZWxhdGlvbnNoaXBzQmFzZUFyZ3M8TUMsIFRNQz59IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFyZ3MpIHtcbiAgICBzdXBlcihhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYnVpbGQuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqIEByZXR1cm5zIHtJbnN0YW5jZVR5cGU8VE1DPn0gLSBUaGUgYnVpbGQuXG4gICAqL1xuICBidWlsZChkYXRhKSB7XG4gICAgY29uc3QgVGFyZ2V0TW9kZWxDbGFzcyA9IC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGUge1RNQ30gKi8gKHRoaXMuZ2V0VGFyZ2V0TW9kZWxDbGFzcygpKVxuXG4gICAgaWYgKCFUYXJnZXRNb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBidWlsZCBhIG5ldyByZWNvcmQgd2l0aG91dCBhIHRhcmdldCBtb2RlbFwiKVxuXG4gICAgY29uc3QgbmV3SW5zdGFuY2UgPSAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQHR5cGUge0luc3RhbmNlVHlwZTxUTUM+fSAqLyAobmV3IFRhcmdldE1vZGVsQ2xhc3MoZGF0YSkpXG5cbiAgICB0aGlzLl9sb2FkZWQgPSBuZXdJbnN0YW5jZVxuXG4gICAgcmV0dXJuIG5ld0luc3RhbmNlXG4gIH1cblxuICBnZXRMb2FkZWRPclVuZGVmaW5lZCgpIHsgcmV0dXJuIHRoaXMuX2xvYWRlZCB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICAvLyBGb3JjZS1yZWxvYWQ6IGRpc2NhcmQgdGhlIGNhY2hlZCB2YWx1ZSBhbmQgZmV0Y2ggZnJlc2guIFdoZW4gdGhlIHBhcmVudFxuICAgIC8vIHJlY29yZCB3YXMgbG9hZGVkIGFzIHBhcnQgb2YgYSBiYXRjaCwgYmF0Y2ggdGhlIGJlbG9uZ3MtdG8gbG9va3VwIGFjcm9zc1xuICAgIC8vIGNvaG9ydCBzaWJsaW5ncyB0aGF0IGhhdmUgbm90IHByZWxvYWRlZCB0aGlzIHJlbGF0aW9uc2hpcCB5ZXQuXG4gICAgdGhpcy5fcHJlbG9hZGVkID0gZmFsc2VcbiAgICB0aGlzLl9sb2FkZWQgPSB1bmRlZmluZWRcblxuICAgIGNvbnN0IGJhdGNoZWQgPSBhd2FpdCB0aGlzLl90cnlDb2hvcnRQcmVsb2FkKClcblxuICAgIGlmIChiYXRjaGVkKSByZXR1cm4gdGhpcy5sb2FkZWQoKVxuXG4gICAgY29uc3QgZm9yZWlnbktleSA9IHRoaXMuZ2V0Rm9yZWlnbktleSgpXG4gICAgY29uc3QgZm9yZWlnbk1vZGVsSUQgPSB0aGlzLmdldE1vZGVsKCkucmVhZENvbHVtbihmb3JlaWduS2V5KVxuICAgIGNvbnN0IFRhcmdldE1vZGVsQ2xhc3MgPSB0aGlzLmdldFRhcmdldE1vZGVsQ2xhc3MoKVxuXG4gICAgaWYgKCFUYXJnZXRNb2RlbENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBsb2FkIHdpdGhvdXQgYSB0YXJnZXQgbW9kZWxcIilcblxuICAgIGNvbnN0IHByaW1hcnlLZXkgPSBUYXJnZXRNb2RlbENsYXNzLnByaW1hcnlLZXkoKVxuICAgIC8qKlxuICAgICAqIFdoZXJlIGFyZ3MuXG4gICAgICBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZD59ICovXG4gICAgY29uc3Qgd2hlcmVBcmdzID0ge31cblxuICAgIHdoZXJlQXJnc1twcmltYXJ5S2V5XSA9IGZvcmVpZ25Nb2RlbElEXG5cbiAgICBsZXQgcXVlcnkgPSBUYXJnZXRNb2RlbENsYXNzLndoZXJlKHdoZXJlQXJncylcblxuICAgIHF1ZXJ5ID0gdGhpcy5hcHBseVNjb3BlKHF1ZXJ5KVxuXG4gICAgY29uc3QgZm9yZWlnbk1vZGVsID0gYXdhaXQgcXVlcnkuZmlyc3QoKVxuXG4gICAgaWYgKGZvcmVpZ25Nb2RlbCkge1xuICAgICAgdGhpcy5zZXRMb2FkZWQoZm9yZWlnbk1vZGVsKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldExvYWRlZCh1bmRlZmluZWQpXG4gICAgfVxuICAgIHRoaXMuc2V0RGlydHkoZmFsc2UpXG4gICAgdGhpcy5zZXRQcmVsb2FkZWQodHJ1ZSlcblxuICAgIHJldHVybiB0aGlzLmxvYWRlZCgpXG4gIH1cbn1cbiJdfQ==
|