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,14 +1,16 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
/**
|
|
3
|
+
* Defines this typedef.
|
|
3
4
|
* @typedef {{unique: boolean}} IndexArgType
|
|
4
5
|
*/
|
|
5
6
|
import * as inflection from "inflection";
|
|
6
7
|
import restArgsError from "../../utils/rest-args-error.js";
|
|
7
8
|
import TableForeignKey from "./table-foreign-key.js";
|
|
8
9
|
/**
|
|
10
|
+
* TableColumnArgsType type.
|
|
9
11
|
* @typedef {object} TableColumnArgsType
|
|
10
12
|
* @property {boolean} [autoIncrement] - Whether the column auto-increments.
|
|
11
|
-
* @property {
|
|
13
|
+
* @property {?} [default] - Default value for the column.
|
|
12
14
|
* @property {boolean} [dropColumn] - Whether the column should be dropped.
|
|
13
15
|
* @property {boolean|object} [foreignKey] - Foreign key options or flag.
|
|
14
16
|
* @property {boolean|IndexArgType} [index] - Whether the column should be indexed.
|
|
@@ -25,6 +27,7 @@ import TableForeignKey from "./table-foreign-key.js";
|
|
|
25
27
|
*/
|
|
26
28
|
export default class TableColumn {
|
|
27
29
|
/**
|
|
30
|
+
* Runs constructor.
|
|
28
31
|
* @param {string} name - Name.
|
|
29
32
|
* @param {TableColumnArgsType} [args] - Options object.
|
|
30
33
|
*/
|
|
@@ -47,58 +50,71 @@ export default class TableColumn {
|
|
|
47
50
|
this.name = name;
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
53
|
+
* Runs get name.
|
|
50
54
|
* @returns {string} name
|
|
51
55
|
*/
|
|
52
56
|
getName() { return this.name; }
|
|
53
57
|
/**
|
|
58
|
+
* Runs get new name.
|
|
54
59
|
* @returns {string | undefined} - The new name.
|
|
55
60
|
*/
|
|
56
61
|
getNewName() { return this._newName; }
|
|
57
62
|
/**
|
|
63
|
+
* Runs set new name.
|
|
58
64
|
* @param {string} newName - New name.
|
|
59
65
|
* @returns {void} - No return value.
|
|
60
66
|
*/
|
|
61
67
|
setNewName(newName) { this._newName = newName; }
|
|
62
68
|
/**
|
|
69
|
+
* Runs get actual name.
|
|
63
70
|
* @returns {string} - The actual name.
|
|
64
71
|
*/
|
|
65
72
|
getActualName() { return this.getNewName() || this.getName(); }
|
|
66
73
|
/**
|
|
74
|
+
* Runs get auto increment.
|
|
67
75
|
* @returns {boolean} - Whether auto increment.
|
|
68
76
|
*/
|
|
69
77
|
getAutoIncrement() { return this.args?.autoIncrement || false; }
|
|
70
78
|
/**
|
|
79
|
+
* Runs set auto increment.
|
|
71
80
|
* @param {boolean} newAutoIncrement - New auto increment.
|
|
72
81
|
* @returns {void} - No return value.
|
|
73
82
|
*/
|
|
74
83
|
setAutoIncrement(newAutoIncrement) { this.args.autoIncrement = newAutoIncrement; }
|
|
75
84
|
/**
|
|
76
|
-
*
|
|
85
|
+
* Runs get default.
|
|
86
|
+
* @returns {? | (() => ?)} - The default value or factory.
|
|
77
87
|
*/
|
|
78
88
|
getDefault() { return this.args?.default; }
|
|
79
89
|
/**
|
|
80
|
-
*
|
|
90
|
+
* Runs set default.
|
|
91
|
+
* @param {?} newDefault - New default.
|
|
81
92
|
* @returns {void} - No return value.
|
|
82
93
|
*/
|
|
83
94
|
setDefault(newDefault) { this.args.default = newDefault; }
|
|
84
95
|
/**
|
|
96
|
+
* Runs get drop column.
|
|
85
97
|
* @returns {boolean} - Whether drop column.
|
|
86
98
|
*/
|
|
87
99
|
getDropColumn() { return this.args?.dropColumn || false; }
|
|
88
100
|
/**
|
|
101
|
+
* Runs get foreign key.
|
|
89
102
|
* @returns {boolean | object | undefined} - Whether foreign key.
|
|
90
103
|
*/
|
|
91
104
|
getForeignKey() { return this.args?.foreignKey; }
|
|
92
105
|
/**
|
|
106
|
+
* Runs set foreign key.
|
|
93
107
|
* @param {boolean | object | undefined} newForeignKey - New foreign key.
|
|
94
108
|
* @returns {void} - No return value.
|
|
95
109
|
*/
|
|
96
110
|
setForeignKey(newForeignKey) { this.args.foreignKey = newForeignKey; }
|
|
97
111
|
/**
|
|
112
|
+
* Runs get index.
|
|
98
113
|
* @returns {boolean|IndexArgType} - Whether index.
|
|
99
114
|
*/
|
|
100
115
|
getIndex() { return this.args?.index || false; }
|
|
101
116
|
/**
|
|
117
|
+
* Runs get index args.
|
|
102
118
|
* @returns {IndexArgType} - The index args.
|
|
103
119
|
*/
|
|
104
120
|
getIndexArgs() {
|
|
@@ -116,64 +132,78 @@ export default class TableColumn {
|
|
|
116
132
|
return false;
|
|
117
133
|
}
|
|
118
134
|
/**
|
|
135
|
+
* Runs set index.
|
|
119
136
|
* @param {boolean|IndexArgType} newIndex - New index.
|
|
120
137
|
* @returns {void} - No return value.
|
|
121
138
|
*/
|
|
122
139
|
setIndex(newIndex) { this.args.index = newIndex; }
|
|
123
140
|
/**
|
|
141
|
+
* Runs get max length.
|
|
124
142
|
* @returns {number | undefined} - The max length.
|
|
125
143
|
*/
|
|
126
144
|
getMaxLength() { return this.args?.maxLength; }
|
|
127
145
|
/**
|
|
146
|
+
* Runs set max length.
|
|
128
147
|
* @param {number | undefined} newMaxLength - New max length.
|
|
129
148
|
* @returns {void} - No return value.
|
|
130
149
|
*/
|
|
131
150
|
setMaxLength(newMaxLength) { this.args.maxLength = newMaxLength; }
|
|
132
151
|
/**
|
|
152
|
+
* Runs get notes.
|
|
133
153
|
* @returns {string | undefined} - The notes.
|
|
134
154
|
*/
|
|
135
155
|
getNotes() { return this.args?.notes; }
|
|
136
156
|
/**
|
|
157
|
+
* Runs set notes.
|
|
137
158
|
* @param {string | undefined} newNotes - New notes.
|
|
138
159
|
* @returns {void} - No return value.
|
|
139
160
|
*/
|
|
140
161
|
setNotes(newNotes) { this.args.notes = newNotes; }
|
|
141
162
|
/**
|
|
163
|
+
* Runs get null.
|
|
142
164
|
* @returns {boolean | undefined} - Whether null.
|
|
143
165
|
*/
|
|
144
166
|
getNull() { return this.args?.null; }
|
|
145
167
|
/**
|
|
168
|
+
* Runs set null.
|
|
146
169
|
* @param {boolean} nullable - Whether nullable.
|
|
147
170
|
* @returns {void} - No return value.
|
|
148
171
|
*/
|
|
149
172
|
setNull(nullable) { this.args.null = nullable; }
|
|
150
173
|
/**
|
|
174
|
+
* Runs get precision.
|
|
151
175
|
* @returns {number | undefined} - Numeric precision (total digits).
|
|
152
176
|
*/
|
|
153
177
|
getPrecision() { return this.args?.precision; }
|
|
154
178
|
/**
|
|
179
|
+
* Runs get primary key.
|
|
155
180
|
* @returns {boolean} - Whether primary key.
|
|
156
181
|
*/
|
|
157
182
|
getPrimaryKey() { return this.args?.primaryKey || false; }
|
|
158
183
|
/**
|
|
184
|
+
* Runs set primary key.
|
|
159
185
|
* @param {boolean} newPrimaryKey - New primary key.
|
|
160
186
|
* @returns {void} - No return value.
|
|
161
187
|
*/
|
|
162
188
|
setPrimaryKey(newPrimaryKey) { this.args.primaryKey = newPrimaryKey; }
|
|
163
189
|
/**
|
|
190
|
+
* Runs get scale.
|
|
164
191
|
* @returns {number | undefined} - Numeric scale (digits after decimal point).
|
|
165
192
|
*/
|
|
166
193
|
getScale() { return this.args?.scale; }
|
|
167
194
|
/**
|
|
195
|
+
* Runs get type.
|
|
168
196
|
* @returns {string | undefined} - The type.
|
|
169
197
|
*/
|
|
170
198
|
getType() { return this.args?.type; }
|
|
171
199
|
/**
|
|
200
|
+
* Runs set type.
|
|
172
201
|
* @param {string | undefined} newType - New type.
|
|
173
202
|
* @returns {void} - No return value.
|
|
174
203
|
*/
|
|
175
204
|
setType(newType) { this.args.type = newType; }
|
|
176
205
|
/**
|
|
206
|
+
* Runs get type hint notes.
|
|
177
207
|
* @returns {string | undefined} - The type hint notes.
|
|
178
208
|
*/
|
|
179
209
|
getTypeHintNotes() {
|
|
@@ -181,6 +211,7 @@ export default class TableColumn {
|
|
|
181
211
|
return "velocious:type=boolean";
|
|
182
212
|
}
|
|
183
213
|
/**
|
|
214
|
+
* Runs get notes for database.
|
|
184
215
|
* @param {string} databaseType - Database type.
|
|
185
216
|
* @returns {string | undefined} - Notes for the database.
|
|
186
217
|
*/
|
|
@@ -190,10 +221,12 @@ export default class TableColumn {
|
|
|
190
221
|
return this.getNotes() || this.getTypeHintNotes();
|
|
191
222
|
}
|
|
192
223
|
/**
|
|
224
|
+
* Runs is new column.
|
|
193
225
|
* @returns {boolean} - Whether new column.
|
|
194
226
|
*/
|
|
195
227
|
isNewColumn() { return this.args?.isNewColumn || false; }
|
|
196
228
|
/**
|
|
229
|
+
* Runs get sql.
|
|
197
230
|
* @param {object} args - Options object.
|
|
198
231
|
* @param {boolean} args.forAlterTable - Whether for alter table.
|
|
199
232
|
* @param {import("../drivers/base.js").default} args.driver - Database driver instance.
|
|
@@ -336,4 +369,4 @@ export default class TableColumn {
|
|
|
336
369
|
return sql;
|
|
337
370
|
}
|
|
338
371
|
}
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3RhYmxlLWRhdGEvdGFibGUtY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7R0FFRztBQUVILE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sYUFBYSxNQUFNLGdDQUFnQyxDQUFBO0FBQzFELE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBRXBEOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE1BQU0sQ0FBQyxPQUFPLE9BQU8sV0FBVztJQUM5Qjs7O09BR0c7SUFDSCxZQUFZLElBQUksRUFBRSxJQUFJO1FBQ3BCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBQyxHQUFHLElBQUksQ0FBQSxDQUFDLHFDQUFxQztZQUU3TyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7WUFDckMsQ0FBQztZQUVELGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUV2QiwwREFBMEQ7WUFDMUQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxjQUFjLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJ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TSxJQUFJLFVBQVUsWUFBWSxlQUFlLEVBQUUsQ0FBQztnQkFDakQsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUE7Z0JBQ3ZELGVBQWUsR0FBRyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUN2RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsVUFBVSxLQUFLLE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQTtZQUN6RixDQUFDO1lBRUQsR0FBRyxJQUFJLGVBQWUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQTtRQUMvRyxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBAdHlwZWRlZiB7e3VuaXF1ZTogYm9vbGVhbn19IEluZGV4QXJnVHlwZVxuICovXG5cbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uLy4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5pbXBvcnQgVGFibGVGb3JlaWduS2V5IGZyb20gXCIuL3RhYmxlLWZvcmVpZ24ta2V5LmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBUYWJsZUNvbHVtbkFyZ3NUeXBlXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFthdXRvSW5jcmVtZW50XSAtIFdoZXRoZXIgdGhlIGNvbHVtbiBhdXRvLWluY3JlbWVudHMuXG4gKiBAcHJvcGVydHkge2FueX0gW2RlZmF1bHRdIC0gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2Ryb3BDb2x1bW5dIC0gV2hldGhlciB0aGUgY29sdW1uIHNob3VsZCBiZSBkcm9wcGVkLlxuICogQHByb3BlcnR5IHtib29sZWFufG9iamVjdH0gW2ZvcmVpZ25LZXldIC0gRm9yZWlnbiBrZXkgb3B0aW9ucyBvciBmbGFnLlxuICogQHByb3BlcnR5IHtib29sZWFufEluZGV4QXJnVHlwZX0gW2luZGV4XSAtIFdoZXRoZXIgdGhlIGNvbHVtbiBzaG91bGQgYmUgaW5kZXhlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2lzTmV3Q29sdW1uXSAtIFdoZXRoZXIgdGhpcyBjb2x1bW4gaXMgYmVpbmcgYWRkZWQgaW4gYSBtaWdyYXRpb24uXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2xpbWl0XSAtIEFsaWFzIGZvciBtYXhMZW5ndGggKHZhcmNoYXIgbGVuZ3RoIGxpbWl0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbbWF4TGVuZ3RoXSAtIE1heGltdW0gbGVuZ3RoIGZvciB0aGUgY29sdW1uIHZhbHVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtub3Rlc10gLSBDb2x1bW4gbm90ZXMgb3IgY29tbWVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW251bGxdIC0gV2hldGhlciB0aGUgY29sdW1uIGFsbG93cyBudWxsIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3BvbHltb3JwaGljXSAtIFdoZXRoZXIgdGhlIGNvbHVtbiBpcyBwb2x5bW9ycGhpYy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbcHJlY2lzaW9uXSAtIE51bWVyaWMgcHJlY2lzaW9uICh0b3RhbCBkaWdpdHMpIGZvciBkZWNpbWFsL251bWVyaWMgdHlwZXMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtwcmltYXJ5S2V5XSAtIFdoZXRoZXIgdGhlIGNvbHVtbiBpcyBhIHByaW1hcnkga2V5LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtzY2FsZV0gLSBOdW1lcmljIHNjYWxlIChkaWdpdHMgYWZ0ZXIgZGVjaW1hbCBwb2ludCkgZm9yIGRlY2ltYWwvbnVtZXJpYyB0eXBlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdHlwZV0gLSBDb2x1bW4gZGF0YSB0eXBlLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhYmxlQ29sdW1uIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTmFtZS5cbiAgICogQHBhcmFtIHtUYWJsZUNvbHVtbkFyZ3NUeXBlfSBbYXJnc10gLSBPcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG5hbWUsIGFyZ3MpIHtcbiAgICBpZiAoYXJncykge1xuICAgICAgY29uc3Qge2F1dG9JbmNyZW1lbnQsIGRlZmF1bHQ6IGNvbHVtbkRlZmF1bHQsIGRyb3BDb2x1bW4sIGZvcmVpZ25LZXksIGluZGV4LCBpc05ld0NvbHVtbiwgbGltaXQsIG1heExlbmd0aCwgbm90ZXMsIG51bGw6IGFyZ3NOdWxsLCBwb2x5bW9ycGhpYywgcHJlY2lzaW9uLCBwcmltYXJ5S2V5LCBzY2FsZSwgdHlwZSwgLi4ucmVzdEFyZ3N9ID0gYXJncyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG5cbiAgICAgIGlmIChPYmplY3Qua2V5cyhhcmdzKS5sZW5ndGggPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbXB0eSBhcmdzIGdpdmVuXCIpXG4gICAgICB9XG5cbiAgICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICAgIC8vIE5vcm1hbGl6ZSBsaW1pdCDihpIgbWF4TGVuZ3RoIGZvciBzdHJpbmctbGlrZSB0eXBlcyBvbmx5LlxuICAgICAgaWYgKGxpbWl0ICE9PSB1bmRlZmluZWQgJiYgbWF4TGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiA/IHR5cGUudG9Mb3dlckNhc2UoKSA6IFwiXCJcblxuICAgICAgICBpZiAobm9ybWFsaXplZFR5cGUgPT09IFwic3RyaW5nXCIgfHwgbm9ybWFsaXplZFR5cGUgPT09IFwidGV4dFwiIHx8IG5vcm1hbGl6ZWRUeXBlID09PSBcInZhcmNoYXJcIiB8fCBub3JtYWxpemVkVHlwZSA9PT0gXCJudmFyY2hhclwiIHx8IG5vcm1hbGl6ZWRUeXBlID09PSBcImNoYXJcIikge1xuICAgICAgICAgIGFyZ3MubWF4TGVuZ3RoID0gbGltaXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYXJncyA9IGFyZ3MgfHwge31cbiAgICB0aGlzLm5hbWUgPSBuYW1lXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ30gbmFtZVxuICAgKi9cbiAgZ2V0TmFtZSgpIHsgcmV0dXJuIHRoaXMubmFtZSB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIG5ldyBuYW1lLlxuICAgKi9cbiAgZ2V0TmV3TmFtZSgpIHsgcmV0dXJuIHRoaXMuX25ld05hbWUgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3TmFtZSAtIE5ldyBuYW1lLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXROZXdOYW1lKG5ld05hbWUpIHsgdGhpcy5fbmV3TmFtZSA9IG5ld05hbWUgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBhY3R1YWwgbmFtZS5cbiAgICovXG4gIGdldEFjdHVhbE5hbWUoKSB7IHJldHVybiB0aGlzLmdldE5ld05hbWUoKSB8fCB0aGlzLmdldE5hbWUoKSB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgYXV0byBpbmNyZW1lbnQuXG4gICAqL1xuICBnZXRBdXRvSW5jcmVtZW50KCkgeyByZXR1cm4gdGhpcy5hcmdzPy5hdXRvSW5jcmVtZW50IHx8IGZhbHNlIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBuZXdBdXRvSW5jcmVtZW50IC0gTmV3IGF1dG8gaW5jcmVtZW50LlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXRBdXRvSW5jcmVtZW50KG5ld0F1dG9JbmNyZW1lbnQpIHsgdGhpcy5hcmdzLmF1dG9JbmNyZW1lbnQgPSBuZXdBdXRvSW5jcmVtZW50IH1cblxuICAvKipcbiAgICogQHJldHVybnMge3Vua25vd24gfCAoKCkgPT4gdW5rbm93bil9IC0gVGhlIGRlZmF1bHQgdmFsdWUgb3IgZmFjdG9yeS5cbiAgICovXG4gIGdldERlZmF1bHQoKSB7IHJldHVybiB0aGlzLmFyZ3M/LmRlZmF1bHQgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueX0gbmV3RGVmYXVsdCAtIE5ldyBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXREZWZhdWx0KG5ld0RlZmF1bHQpIHsgdGhpcy5hcmdzLmRlZmF1bHQgPSBuZXdEZWZhdWx0IH1cblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBkcm9wIGNvbHVtbi5cbiAgICovXG4gIGdldERyb3BDb2x1bW4oKSB7IHJldHVybiB0aGlzLmFyZ3M/LmRyb3BDb2x1bW4gfHwgZmFsc2UgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbiB8IG9iamVjdCB8IHVuZGVmaW5lZH0gLSBXaGV0aGVyIGZvcmVpZ24ga2V5LlxuICAgKi9cbiAgZ2V0Rm9yZWlnbktleSgpIHsgcmV0dXJuIHRoaXMuYXJncz8uZm9yZWlnbktleSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiB8IG9iamVjdCB8IHVuZGVmaW5lZH0gbmV3Rm9yZWlnbktleSAtIE5ldyBmb3JlaWduIGtleS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0Rm9yZWlnbktleShuZXdGb3JlaWduS2V5KSB7IHRoaXMuYXJncy5mb3JlaWduS2V5ID0gbmV3Rm9yZWlnbktleSB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufEluZGV4QXJnVHlwZX0gLSBXaGV0aGVyIGluZGV4LlxuICAgKi9cbiAgZ2V0SW5kZXgoKSB7IHJldHVybiB0aGlzLmFyZ3M/LmluZGV4IHx8IGZhbHNlIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0luZGV4QXJnVHlwZX0gLSBUaGUgaW5kZXggYXJncy5cbiAgICovXG4gIGdldEluZGV4QXJncygpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuYXJncz8uaW5kZXggPT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIHRoaXMuYXJncy5pbmRleFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge3VuaXF1ZTogZmFsc2V9XG4gICAgfVxuICB9XG5cbiAgZ2V0SW5kZXhVbmlxdWUoKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmFyZ3M/LmluZGV4XG5cbiAgICBpZiAodHlwZW9mIGluZGV4ID09IFwib2JqZWN0XCIgJiYgaW5kZXgudW5pcXVlID09PSB0cnVlKSByZXR1cm4gdHJ1ZVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufEluZGV4QXJnVHlwZX0gbmV3SW5kZXggLSBOZXcgaW5kZXguXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldEluZGV4KG5ld0luZGV4KSB7IHRoaXMuYXJncy5pbmRleCA9IG5ld0luZGV4IH1cblxuICAvKipcbiAgICogQHJldHVybnMge251bWJlciB8IHVuZGVmaW5lZH0gLSBUaGUgbWF4IGxlbmd0aC5cbiAgICovXG4gIGdldE1heExlbmd0aCgpIHsgcmV0dXJuIHRoaXMuYXJncz8ubWF4TGVuZ3RoIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtudW1iZXIgfCB1bmRlZmluZWR9IG5ld01heExlbmd0aCAtIE5ldyBtYXggbGVuZ3RoLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXRNYXhMZW5ndGgobmV3TWF4TGVuZ3RoKSB7IHRoaXMuYXJncy5tYXhMZW5ndGggPSBuZXdNYXhMZW5ndGggfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFRoZSBub3Rlcy5cbiAgICovXG4gIGdldE5vdGVzKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5ub3RlcyB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBuZXdOb3RlcyAtIE5ldyBub3Rlcy5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0Tm90ZXMobmV3Tm90ZXMpIHsgdGhpcy5hcmdzLm5vdGVzID0gbmV3Tm90ZXMgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbiB8IHVuZGVmaW5lZH0gLSBXaGV0aGVyIG51bGwuXG4gICAqL1xuICBnZXROdWxsKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5udWxsIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBudWxsYWJsZSAtIFdoZXRoZXIgbnVsbGFibGUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldE51bGwobnVsbGFibGUpIHsgdGhpcy5hcmdzLm51bGwgPSBudWxsYWJsZSB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9IC0gTnVtZXJpYyBwcmVjaXNpb24gKHRvdGFsIGRpZ2l0cykuXG4gICAqL1xuICBnZXRQcmVjaXNpb24oKSB7IHJldHVybiB0aGlzLmFyZ3M/LnByZWNpc2lvbiB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgcHJpbWFyeSBrZXkuXG4gICAqL1xuICBnZXRQcmltYXJ5S2V5KCkgeyByZXR1cm4gdGhpcy5hcmdzPy5wcmltYXJ5S2V5IHx8IGZhbHNlIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtib29sZWFufSBuZXdQcmltYXJ5S2V5IC0gTmV3IHByaW1hcnkga2V5LlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXRQcmltYXJ5S2V5KG5ld1ByaW1hcnlLZXkpIHsgdGhpcy5hcmdzLnByaW1hcnlLZXkgPSBuZXdQcmltYXJ5S2V5IH1cblxuICAvKipcbiAgICogQHJldHVybnMge251bWJlciB8IHVuZGVmaW5lZH0gLSBOdW1lcmljIHNjYWxlIChkaWdpdHMgYWZ0ZXIgZGVjaW1hbCBwb2ludCkuXG4gICAqL1xuICBnZXRTY2FsZSgpIHsgcmV0dXJuIHRoaXMuYXJncz8uc2NhbGUgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFRoZSB0eXBlLlxuICAgKi9cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMuYXJncz8udHlwZSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBuZXdUeXBlIC0gTmV3IHR5cGUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldFR5cGUobmV3VHlwZSkgeyB0aGlzLmFyZ3MudHlwZSA9IG5ld1R5cGUgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFRoZSB0eXBlIGhpbnQgbm90ZXMuXG4gICAqL1xuICBnZXRUeXBlSGludE5vdGVzKCkge1xuICAgIGlmICh0aGlzLmdldFR5cGUoKT8udG9Mb3dlckNhc2UoKSA9PSBcImJvb2xlYW5cIikgcmV0dXJuIFwidmVsb2Npb3VzOnR5cGU9Ym9vbGVhblwiXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFiYXNlVHlwZSAtIERhdGFiYXNlIHR5cGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gTm90ZXMgZm9yIHRoZSBkYXRhYmFzZS5cbiAgICovXG4gIGdldE5vdGVzRm9yRGF0YWJhc2UoZGF0YWJhc2VUeXBlKSB7XG4gICAgaWYgKCFbXCJteXNxbFwiLCBcInBnc3FsXCJdLmluY2x1ZGVzKGRhdGFiYXNlVHlwZSkpIHJldHVyblxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm90ZXMoKSB8fCB0aGlzLmdldFR5cGVIaW50Tm90ZXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgbmV3IGNvbHVtbi5cbiAgICovXG4gIGlzTmV3Q29sdW1uKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5pc05ld0NvbHVtbiB8fCBmYWxzZSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gYXJncy5mb3JBbHRlclRhYmxlIC0gV2hldGhlciBmb3IgYWx0ZXIgdGFibGUuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MuZHJpdmVyIC0gRGF0YWJhc2UgZHJpdmVyIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLnNraXBGb3JlaWduS2V5XSAtIFNraXAgZW1pdHRpbmcgdGhlIGlubGluZSBSRUZFUkVOQ0VTIGNsYXVzZSAodGhlIGNhbGxlciBlbWl0cyBhIHRhYmxlLWxldmVsIEZPUkVJR04gS0VZIGNvbnN0cmFpbnQgaW5zdGVhZCkuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gU1FMIHN0cmluZy5cbiAgICovXG4gIGdldFNRTCh7Zm9yQWx0ZXJUYWJsZSwgZHJpdmVyLCBza2lwRm9yZWlnbktleSwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIGNvbnN0IGRhdGFiYXNlVHlwZSA9IGRyaXZlci5nZXRUeXBlKClcbiAgICBjb25zdCBvcHRpb25zID0gZHJpdmVyLm9wdGlvbnMoKVxuICAgIGxldCBtYXhsZW5ndGggPSB0aGlzLmdldE1heExlbmd0aCgpXG4gICAgbGV0IHR5cGUgPSB0aGlzLmdldFR5cGUoKT8udG9VcHBlckNhc2UoKVxuXG4gICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcInBnc3FsXCIpIHtcbiAgICAgIGlmICh0eXBlID09IFwiREFURVRJTUVcIikge1xuICAgICAgICB0eXBlID0gXCJUSU1FU1RBTVBcIlxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiVElOWUlOVFwiKSB7XG4gICAgICAgIHR5cGUgPSBcIlNNQUxMSU5UXCJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIkJMT0JcIikge1xuICAgICAgICB0eXBlID0gXCJCWVRFQVwiXG4gICAgICAgIG1heGxlbmd0aCA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlID09IFwiU1RSSU5HXCIpIHtcbiAgICAgIHR5cGUgPSBkYXRhYmFzZVR5cGUgPT0gXCJtc3NxbFwiID8gXCJOVkFSQ0hBUlwiIDogXCJWQVJDSEFSXCJcbiAgICAgIG1heGxlbmd0aCB8fD0gMjU1XG4gICAgfVxuICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJteXNxbFwiICYmIHR5cGUgPT0gXCJCT09MRUFOXCIpIHtcbiAgICAgIHR5cGUgPSBcIlRJTllJTlRcIlxuICAgICAgbWF4bGVuZ3RoID0gMVxuICAgIH1cbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwicGdzcWxcIiAmJiB0eXBlID09IFwiVElOWUlOVFwiKSB7XG4gICAgICB0eXBlID0gXCJTTUFMTElOVFwiXG4gICAgfVxuXG4gICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcIm1zc3FsXCIpIHtcbiAgICAgIGlmICh0eXBlID09IFwiQk9PTEVBTlwiKSB7XG4gICAgICAgIHR5cGUgPSBcIkJJVFwiXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJVVUlEXCIpIHtcbiAgICAgICAgdHlwZSA9IFwiVkFSQ0hBUlwiXG4gICAgICAgIG1heGxlbmd0aCB8fD0gMzZcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIkpTT05cIikge1xuICAgICAgICB0eXBlID0gXCJOVkFSQ0hBUihNQVgpXCJcbiAgICAgICAgbWF4bGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJCTE9CXCIpIHtcbiAgICAgICAgdHlwZSA9IFwiVkFSQklOQVJZKE1BWClcIlxuICAgICAgICBtYXhsZW5ndGggPSB1bmRlZmluZWRcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIlRFWFRcIikge1xuICAgICAgICB0eXBlID0gXCJOVkFSQ0hBUihNQVgpXCJcbiAgICAgICAgbWF4bGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcInNxbGl0ZVwiICYmIHRoaXMuZ2V0QXV0b0luY3JlbWVudCgpICYmIHRoaXMuZ2V0UHJpbWFyeUtleSgpKSB7XG4gICAgICB0eXBlID0gXCJJTlRFR0VSXCJcbiAgICB9XG5cbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwicGdzcWxcIiAmJiB0aGlzLmdldEF1dG9JbmNyZW1lbnQoKSAmJiB0aGlzLmdldFByaW1hcnlLZXkoKSkge1xuICAgICAgdHlwZSA9IFwiU0VSSUFMXCJcbiAgICB9XG5cbiAgICBsZXQgc3FsID0gYCR7b3B0aW9ucy5xdW90ZUNvbHVtbk5hbWUodGhpcy5nZXRBY3R1YWxOYW1lKCkpfSBgXG5cbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwicGdzcWxcIiAmJiBmb3JBbHRlclRhYmxlKSBzcWwgKz0gXCJUWVBFIFwiXG4gICAgaWYgKHR5cGUpIHNxbCArPSB0eXBlXG5cbiAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLmdldFByZWNpc2lvbigpXG4gICAgY29uc3Qgc2NhbGUgPSB0aGlzLmdldFNjYWxlKClcblxuICAgIGlmICgoc2NhbGUgIT09IHVuZGVmaW5lZCAmJiBzY2FsZSAhPT0gbnVsbCkgJiYgKHByZWNpc2lvbiA9PT0gdW5kZWZpbmVkIHx8IHByZWNpc2lvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29sdW1uICcke3RoaXMuZ2V0QWN0dWFsTmFtZSgpfSc6IHNjYWxlIHJlcXVpcmVzIHByZWNpc2lvbiB0byBiZSBzZXRgKVxuICAgIH1cblxuICAgIGlmIChwcmVjaXNpb24gIT09IHVuZGVmaW5lZCAmJiBwcmVjaXNpb24gIT09IG51bGwpIHtcbiAgICAgIHNxbCArPSBzY2FsZSAhPT0gdW5kZWZpbmVkICYmIHNjYWxlICE9PSBudWxsID8gYCgke3ByZWNpc2lvbn0sICR7c2NhbGV9KWAgOiBgKCR7cHJlY2lzaW9ufSlgXG4gICAgfSBlbHNlIGlmICh0eXBlICYmIG1heGxlbmd0aCAhPT0gdW5kZWZpbmVkICYmIG1heGxlbmd0aCAhPT0gbnVsbCkge1xuICAgICAgc3FsICs9IGAoJHttYXhsZW5ndGh9KWBcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRBdXRvSW5jcmVtZW50KCkgJiYgZHJpdmVyLnNob3VsZFNldEF1dG9JbmNyZW1lbnRXaGVuUHJpbWFyeUtleSgpKSB7XG4gICAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwibXNzcWxcIikge1xuICAgICAgICBzcWwgKz0gXCIgSURFTlRJVFlcIlxuICAgICAgfSBlbHNlIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJwZ3NxbFwiKSB7XG4gICAgICAgIGlmICh0aGlzLmdldEF1dG9JbmNyZW1lbnQoKSAmJiB0aGlzLmdldFByaW1hcnlLZXkoKSkge1xuICAgICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwZ3NxbCBhdXRvIGluY3JlbWVudCBtdXN0IGJlIHByaW1hcnkga2V5XCIpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNxbCArPSBcIiBBVVRPX0lOQ1JFTUVOVFwiXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gdGhpcy5nZXREZWZhdWx0KClcblxuICAgIGlmICh0eXBlb2YgZGVmYXVsdFZhbHVlID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgY29uc3QgZXZhbHVhdGVkRGVmYXVsdCA9IGRlZmF1bHRWYWx1ZSgpXG5cbiAgICAgIHNxbCArPSBgIERFRkFVTFQgKGBcblxuICAgICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcInBnc3FsXCIgJiYgZXZhbHVhdGVkRGVmYXVsdCA9PSBcIlVVSUQoKVwiKSB7XG4gICAgICAgIHNxbCArPSBcImdlbl9yYW5kb21fdXVpZCgpXCJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YWJhc2VUeXBlID09IFwibXNzcWxcIiAmJiBldmFsdWF0ZWREZWZhdWx0ID09IFwiVVVJRCgpXCIpIHtcbiAgICAgICAgc3FsICs9IFwiTkVXSUQoKVwiXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzcWwgKz0gZXZhbHVhdGVkRGVmYXVsdFxuICAgICAgfVxuXG4gICAgICBzcWwgKz0gXCIpXCJcbiAgICB9IGVsc2UgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgLy8gRW1pdCBmYWxzeSBkZWZhdWx0cyB0b28gKGAwYCwgYGZhbHNlYCwgYFwiXCJgKS4gQSB0cnV0aGluZXNzIGNoZWNrIGhlcmVcbiAgICAgIC8vIHNpbGVudGx5IGRyb3BwZWQgYGRlZmF1bHQ6IDBgLCBsZWF2aW5nIHRoZSBjb2x1bW4gTk9UIE5VTEwgd2l0aCBub1xuICAgICAgLy8gZGVmYXVsdCBzbyBpbnNlcnRzIHRoYXQgb21pdCBpdCBmYWlsIGluIHN0cmljdCBtb2RlLlxuICAgICAgc3FsICs9IGAgREVGQVVMVCAke29wdGlvbnMucXVvdGUoZGVmYXVsdFZhbHVlKX1gXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0UHJpbWFyeUtleSgpKSBzcWwgKz0gXCIgUFJJTUFSWSBLRVlcIlxuICAgIGlmICh0aGlzLmdldE51bGwoKSA9PT0gZmFsc2UpIHNxbCArPSBcIiBOT1QgTlVMTFwiXG5cbiAgICBjb25zdCBub3RlcyA9IHRoaXMuZ2V0Tm90ZXNGb3JEYXRhYmFzZShkYXRhYmFzZVR5cGUpXG5cbiAgICBpZiAobm90ZXMgJiYgZGF0YWJhc2VUeXBlID09IFwibXlzcWxcIikge1xuICAgICAgc3FsICs9IGAgQ09NTUVOVCAke29wdGlvbnMucXVvdGUobm90ZXMpfWBcbiAgICB9XG5cbiAgICBjb25zdCBmb3JlaWduS2V5ID0gc2tpcEZvcmVpZ25LZXkgPyB1bmRlZmluZWQgOiB0aGlzLmdldEZvcmVpZ25LZXkoKVxuXG4gICAgaWYgKGZvcmVpZ25LZXkpIHtcbiAgICAgIGxldCBmb3JlaWduS2V5VGFibGUsIGZvcmVpZ25LZXlDb2x1bW5cblxuICAgICAgaWYgKGZvcmVpZ25LZXkgPT09IHRydWUpIHtcbiAgICAgICAgZm9yZWlnbktleUNvbHVtbiA9IFwiaWRcIlxuICAgICAgICBmb3JlaWduS2V5VGFibGUgPSBpbmZsZWN0aW9uLnBsdXJhbGl6ZSh0aGlzLmdldEFjdHVhbE5hbWUoKS5yZXBsYWNlKC9faWQkLywgXCJcIikpXG4gICAgICB9IGVsc2UgaWYgKGZvcmVpZ25LZXkgaW5zdGFuY2VvZiBUYWJsZUZvcmVpZ25LZXkpIHtcbiAgICAgICAgZm9yZWlnbktleUNvbHVtbiA9IGZvcmVpZ25LZXkuZ2V0UmVmZXJlbmNlZENvbHVtbk5hbWUoKVxuICAgICAgICBmb3JlaWduS2V5VGFibGUgPSBmb3JlaWduS2V5LmdldFJlZmVyZW5jZWRUYWJsZU5hbWUoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGZvcmVpZ24ga2V5IHR5cGUgZ2l2ZW46ICR7Zm9yZWlnbktleX0gKCR7dHlwZW9mIGZvcmVpZ25LZXl9KWApXG4gICAgICB9XG5cbiAgICAgIHNxbCArPSBgIFJFRkVSRU5DRVMgJHtvcHRpb25zLnF1b3RlVGFibGVOYW1lKGZvcmVpZ25LZXlUYWJsZSl9KCR7b3B0aW9ucy5xdW90ZUNvbHVtbk5hbWUoZm9yZWlnbktleUNvbHVtbil9KWBcbiAgICB9XG5cbiAgICByZXR1cm4gc3FsXG4gIH1cbn1cbiJdfQ==
|
|
372
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3RhYmxlLWRhdGEvdGFibGUtY29sdW1uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7O0dBR0c7QUFFSCxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLGFBQWEsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMxRCxPQUFPLGVBQWUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsTUFBTSxDQUFDLE9BQU8sT0FBTyxXQUFXO0lBQzlCOzs7O09BSUc7SUFDSCxZQUFZLElBQUksRUFBRSxJQUFJO1FBQ3BCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBQyxHQUFHLElBQUksQ0FBQSxDQUFDLHFDQUFxQztZQUU3TyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7WUFDckMsQ0FBQztZQUVELGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUV2QiwwREFBMEQ7WUFDMUQsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxjQUFjLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJ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QUUsQ0FBQyxDQUFDLENBQUE7WUFDbEYsQ0FBQztpQkFBTSxJQUFJLFVBQVUsWUFBWSxlQUFlLEVBQUUsQ0FBQztnQkFDakQsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUE7Z0JBQ3ZELGVBQWUsR0FBRyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUN2RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsVUFBVSxLQUFLLE9BQU8sVUFBVSxHQUFHLENBQUMsQ0FBQTtZQUN6RixDQUFDO1lBRUQsR0FBRyxJQUFJLGVBQWUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQTtRQUMvRyxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBEZWZpbmVzIHRoaXMgdHlwZWRlZi5cbiAqIEB0eXBlZGVmIHt7dW5pcXVlOiBib29sZWFufX0gSW5kZXhBcmdUeXBlXG4gKi9cblxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcbmltcG9ydCBUYWJsZUZvcmVpZ25LZXkgZnJvbSBcIi4vdGFibGUtZm9yZWlnbi1rZXkuanNcIlxuXG4vKipcbiAqIFRhYmxlQ29sdW1uQXJnc1R5cGUgdHlwZS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFRhYmxlQ29sdW1uQXJnc1R5cGVcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2F1dG9JbmNyZW1lbnRdIC0gV2hldGhlciB0aGUgY29sdW1uIGF1dG8taW5jcmVtZW50cy5cbiAqIEBwcm9wZXJ0eSB7P30gW2RlZmF1bHRdIC0gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2Ryb3BDb2x1bW5dIC0gV2hldGhlciB0aGUgY29sdW1uIHNob3VsZCBiZSBkcm9wcGVkLlxuICogQHByb3BlcnR5IHtib29sZWFufG9iamVjdH0gW2ZvcmVpZ25LZXldIC0gRm9yZWlnbiBrZXkgb3B0aW9ucyBvciBmbGFnLlxuICogQHByb3BlcnR5IHtib29sZWFufEluZGV4QXJnVHlwZX0gW2luZGV4XSAtIFdoZXRoZXIgdGhlIGNvbHVtbiBzaG91bGQgYmUgaW5kZXhlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2lzTmV3Q29sdW1uXSAtIFdoZXRoZXIgdGhpcyBjb2x1bW4gaXMgYmVpbmcgYWRkZWQgaW4gYSBtaWdyYXRpb24uXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2xpbWl0XSAtIEFsaWFzIGZvciBtYXhMZW5ndGggKHZhcmNoYXIgbGVuZ3RoIGxpbWl0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbbWF4TGVuZ3RoXSAtIE1heGltdW0gbGVuZ3RoIGZvciB0aGUgY29sdW1uIHZhbHVlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtub3Rlc10gLSBDb2x1bW4gbm90ZXMgb3IgY29tbWVudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW251bGxdIC0gV2hldGhlciB0aGUgY29sdW1uIGFsbG93cyBudWxsIHZhbHVlcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3BvbHltb3JwaGljXSAtIFdoZXRoZXIgdGhlIGNvbHVtbiBpcyBwb2x5bW9ycGhpYy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbcHJlY2lzaW9uXSAtIE51bWVyaWMgcHJlY2lzaW9uICh0b3RhbCBkaWdpdHMpIGZvciBkZWNpbWFsL251bWVyaWMgdHlwZXMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtwcmltYXJ5S2V5XSAtIFdoZXRoZXIgdGhlIGNvbHVtbiBpcyBhIHByaW1hcnkga2V5LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtzY2FsZV0gLSBOdW1lcmljIHNjYWxlIChkaWdpdHMgYWZ0ZXIgZGVjaW1hbCBwb2ludCkgZm9yIGRlY2ltYWwvbnVtZXJpYyB0eXBlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdHlwZV0gLSBDb2x1bW4gZGF0YSB0eXBlLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhYmxlQ29sdW1uIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTmFtZS5cbiAgICogQHBhcmFtIHtUYWJsZUNvbHVtbkFyZ3NUeXBlfSBbYXJnc10gLSBPcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG5hbWUsIGFyZ3MpIHtcbiAgICBpZiAoYXJncykge1xuICAgICAgY29uc3Qge2F1dG9JbmNyZW1lbnQsIGRlZmF1bHQ6IGNvbHVtbkRlZmF1bHQsIGRyb3BDb2x1bW4sIGZvcmVpZ25LZXksIGluZGV4LCBpc05ld0NvbHVtbiwgbGltaXQsIG1heExlbmd0aCwgbm90ZXMsIG51bGw6IGFyZ3NOdWxsLCBwb2x5bW9ycGhpYywgcHJlY2lzaW9uLCBwcmltYXJ5S2V5LCBzY2FsZSwgdHlwZSwgLi4ucmVzdEFyZ3N9ID0gYXJncyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG5cbiAgICAgIGlmIChPYmplY3Qua2V5cyhhcmdzKS5sZW5ndGggPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbXB0eSBhcmdzIGdpdmVuXCIpXG4gICAgICB9XG5cbiAgICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICAgIC8vIE5vcm1hbGl6ZSBsaW1pdCDihpIgbWF4TGVuZ3RoIGZvciBzdHJpbmctbGlrZSB0eXBlcyBvbmx5LlxuICAgICAgaWYgKGxpbWl0ICE9PSB1bmRlZmluZWQgJiYgbWF4TGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gXCJzdHJpbmdcIiA/IHR5cGUudG9Mb3dlckNhc2UoKSA6IFwiXCJcblxuICAgICAgICBpZiAobm9ybWFsaXplZFR5cGUgPT09IFwic3RyaW5nXCIgfHwgbm9ybWFsaXplZFR5cGUgPT09IFwidGV4dFwiIHx8IG5vcm1hbGl6ZWRUeXBlID09PSBcInZhcmNoYXJcIiB8fCBub3JtYWxpemVkVHlwZSA9PT0gXCJudmFyY2hhclwiIHx8IG5vcm1hbGl6ZWRUeXBlID09PSBcImNoYXJcIikge1xuICAgICAgICAgIGFyZ3MubWF4TGVuZ3RoID0gbGltaXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYXJncyA9IGFyZ3MgfHwge31cbiAgICB0aGlzLm5hbWUgPSBuYW1lXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgbmFtZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gbmFtZVxuICAgKi9cbiAgZ2V0TmFtZSgpIHsgcmV0dXJuIHRoaXMubmFtZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IG5ldyBuYW1lLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFRoZSBuZXcgbmFtZS5cbiAgICovXG4gIGdldE5ld05hbWUoKSB7IHJldHVybiB0aGlzLl9uZXdOYW1lIH1cblxuICAvKipcbiAgICogUnVucyBzZXQgbmV3IG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdOYW1lIC0gTmV3IG5hbWUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldE5ld05hbWUobmV3TmFtZSkgeyB0aGlzLl9uZXdOYW1lID0gbmV3TmFtZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGFjdHVhbCBuYW1lLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBhY3R1YWwgbmFtZS5cbiAgICovXG4gIGdldEFjdHVhbE5hbWUoKSB7IHJldHVybiB0aGlzLmdldE5ld05hbWUoKSB8fCB0aGlzLmdldE5hbWUoKSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGF1dG8gaW5jcmVtZW50LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGF1dG8gaW5jcmVtZW50LlxuICAgKi9cbiAgZ2V0QXV0b0luY3JlbWVudCgpIHsgcmV0dXJuIHRoaXMuYXJncz8uYXV0b0luY3JlbWVudCB8fCBmYWxzZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IGF1dG8gaW5jcmVtZW50LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5ld0F1dG9JbmNyZW1lbnQgLSBOZXcgYXV0byBpbmNyZW1lbnQuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldEF1dG9JbmNyZW1lbnQobmV3QXV0b0luY3JlbWVudCkgeyB0aGlzLmFyZ3MuYXV0b0luY3JlbWVudCA9IG5ld0F1dG9JbmNyZW1lbnQgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyB7PyB8ICgoKSA9PiA/KX0gLSBUaGUgZGVmYXVsdCB2YWx1ZSBvciBmYWN0b3J5LlxuICAgKi9cbiAgZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIHRoaXMuYXJncz8uZGVmYXVsdCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IGRlZmF1bHQuXG4gICAqIEBwYXJhbSB7P30gbmV3RGVmYXVsdCAtIE5ldyBkZWZhdWx0LlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXREZWZhdWx0KG5ld0RlZmF1bHQpIHsgdGhpcy5hcmdzLmRlZmF1bHQgPSBuZXdEZWZhdWx0IH1cblxuICAvKipcbiAgICogUnVucyBnZXQgZHJvcCBjb2x1bW4uXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgZHJvcCBjb2x1bW4uXG4gICAqL1xuICBnZXREcm9wQ29sdW1uKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5kcm9wQ29sdW1uIHx8IGZhbHNlIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgZm9yZWlnbiBrZXkuXG4gICAqIEByZXR1cm5zIHtib29sZWFuIHwgb2JqZWN0IHwgdW5kZWZpbmVkfSAtIFdoZXRoZXIgZm9yZWlnbiBrZXkuXG4gICAqL1xuICBnZXRGb3JlaWduS2V5KCkgeyByZXR1cm4gdGhpcy5hcmdzPy5mb3JlaWduS2V5IH1cblxuICAvKipcbiAgICogUnVucyBzZXQgZm9yZWlnbiBrZXkuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbiB8IG9iamVjdCB8IHVuZGVmaW5lZH0gbmV3Rm9yZWlnbktleSAtIE5ldyBmb3JlaWduIGtleS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0Rm9yZWlnbktleShuZXdGb3JlaWduS2V5KSB7IHRoaXMuYXJncy5mb3JlaWduS2V5ID0gbmV3Rm9yZWlnbktleSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGluZGV4LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbnxJbmRleEFyZ1R5cGV9IC0gV2hldGhlciBpbmRleC5cbiAgICovXG4gIGdldEluZGV4KCkgeyByZXR1cm4gdGhpcy5hcmdzPy5pbmRleCB8fCBmYWxzZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGluZGV4IGFyZ3MuXG4gICAqIEByZXR1cm5zIHtJbmRleEFyZ1R5cGV9IC0gVGhlIGluZGV4IGFyZ3MuXG4gICAqL1xuICBnZXRJbmRleEFyZ3MoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmFyZ3M/LmluZGV4ID09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiB0aGlzLmFyZ3MuaW5kZXhcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHt1bmlxdWU6IGZhbHNlfVxuICAgIH1cbiAgfVxuXG4gIGdldEluZGV4VW5pcXVlKCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hcmdzPy5pbmRleFxuXG4gICAgaWYgKHR5cGVvZiBpbmRleCA9PSBcIm9iamVjdFwiICYmIGluZGV4LnVuaXF1ZSA9PT0gdHJ1ZSkgcmV0dXJuIHRydWVcblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IGluZGV4LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW58SW5kZXhBcmdUeXBlfSBuZXdJbmRleCAtIE5ldyBpbmRleC5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgc2V0SW5kZXgobmV3SW5kZXgpIHsgdGhpcy5hcmdzLmluZGV4ID0gbmV3SW5kZXggfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBtYXggbGVuZ3RoLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyIHwgdW5kZWZpbmVkfSAtIFRoZSBtYXggbGVuZ3RoLlxuICAgKi9cbiAgZ2V0TWF4TGVuZ3RoKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5tYXhMZW5ndGggfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNldCBtYXggbGVuZ3RoLlxuICAgKiBAcGFyYW0ge251bWJlciB8IHVuZGVmaW5lZH0gbmV3TWF4TGVuZ3RoIC0gTmV3IG1heCBsZW5ndGguXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldE1heExlbmd0aChuZXdNYXhMZW5ndGgpIHsgdGhpcy5hcmdzLm1heExlbmd0aCA9IG5ld01heExlbmd0aCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IG5vdGVzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFRoZSBub3Rlcy5cbiAgICovXG4gIGdldE5vdGVzKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5ub3RlcyB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IG5vdGVzLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gbmV3Tm90ZXMgLSBOZXcgbm90ZXMuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldE5vdGVzKG5ld05vdGVzKSB7IHRoaXMuYXJncy5ub3RlcyA9IG5ld05vdGVzIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgbnVsbC5cbiAgICogQHJldHVybnMge2Jvb2xlYW4gfCB1bmRlZmluZWR9IC0gV2hldGhlciBudWxsLlxuICAgKi9cbiAgZ2V0TnVsbCgpIHsgcmV0dXJuIHRoaXMuYXJncz8ubnVsbCB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IG51bGwuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gbnVsbGFibGUgLSBXaGV0aGVyIG51bGxhYmxlLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBzZXROdWxsKG51bGxhYmxlKSB7IHRoaXMuYXJncy5udWxsID0gbnVsbGFibGUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBwcmVjaXNpb24uXG4gICAqIEByZXR1cm5zIHtudW1iZXIgfCB1bmRlZmluZWR9IC0gTnVtZXJpYyBwcmVjaXNpb24gKHRvdGFsIGRpZ2l0cykuXG4gICAqL1xuICBnZXRQcmVjaXNpb24oKSB7IHJldHVybiB0aGlzLmFyZ3M/LnByZWNpc2lvbiB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IHByaW1hcnkga2V5LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHByaW1hcnkga2V5LlxuICAgKi9cbiAgZ2V0UHJpbWFyeUtleSgpIHsgcmV0dXJuIHRoaXMuYXJncz8ucHJpbWFyeUtleSB8fCBmYWxzZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IHByaW1hcnkga2V5LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5ld1ByaW1hcnlLZXkgLSBOZXcgcHJpbWFyeSBrZXkuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldFByaW1hcnlLZXkobmV3UHJpbWFyeUtleSkgeyB0aGlzLmFyZ3MucHJpbWFyeUtleSA9IG5ld1ByaW1hcnlLZXkgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBzY2FsZS5cbiAgICogQHJldHVybnMge251bWJlciB8IHVuZGVmaW5lZH0gLSBOdW1lcmljIHNjYWxlIChkaWdpdHMgYWZ0ZXIgZGVjaW1hbCBwb2ludCkuXG4gICAqL1xuICBnZXRTY2FsZSgpIHsgcmV0dXJuIHRoaXMuYXJncz8uc2NhbGUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCB0eXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIFRoZSB0eXBlLlxuICAgKi9cbiAgZ2V0VHlwZSgpIHsgcmV0dXJuIHRoaXMuYXJncz8udHlwZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IHR5cGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBuZXdUeXBlIC0gTmV3IHR5cGUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldFR5cGUobmV3VHlwZSkgeyB0aGlzLmFyZ3MudHlwZSA9IG5ld1R5cGUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCB0eXBlIGhpbnQgbm90ZXMuXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIHR5cGUgaGludCBub3Rlcy5cbiAgICovXG4gIGdldFR5cGVIaW50Tm90ZXMoKSB7XG4gICAgaWYgKHRoaXMuZ2V0VHlwZSgpPy50b0xvd2VyQ2FzZSgpID09IFwiYm9vbGVhblwiKSByZXR1cm4gXCJ2ZWxvY2lvdXM6dHlwZT1ib29sZWFuXCJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBub3RlcyBmb3IgZGF0YWJhc2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhYmFzZVR5cGUgLSBEYXRhYmFzZSB0eXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgdW5kZWZpbmVkfSAtIE5vdGVzIGZvciB0aGUgZGF0YWJhc2UuXG4gICAqL1xuICBnZXROb3Rlc0ZvckRhdGFiYXNlKGRhdGFiYXNlVHlwZSkge1xuICAgIGlmICghW1wibXlzcWxcIiwgXCJwZ3NxbFwiXS5pbmNsdWRlcyhkYXRhYmFzZVR5cGUpKSByZXR1cm5cblxuICAgIHJldHVybiB0aGlzLmdldE5vdGVzKCkgfHwgdGhpcy5nZXRUeXBlSGludE5vdGVzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGlzIG5ldyBjb2x1bW4uXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgbmV3IGNvbHVtbi5cbiAgICovXG4gIGlzTmV3Q29sdW1uKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5pc05ld0NvbHVtbiB8fCBmYWxzZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IHNxbC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtib29sZWFufSBhcmdzLmZvckFsdGVyVGFibGUgLSBXaGV0aGVyIGZvciBhbHRlciB0YWJsZS5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gYXJncy5kcml2ZXIgLSBEYXRhYmFzZSBkcml2ZXIgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3Muc2tpcEZvcmVpZ25LZXldIC0gU2tpcCBlbWl0dGluZyB0aGUgaW5saW5lIFJFRkVSRU5DRVMgY2xhdXNlICh0aGUgY2FsbGVyIGVtaXRzIGEgdGFibGUtbGV2ZWwgRk9SRUlHTiBLRVkgY29uc3RyYWludCBpbnN0ZWFkKS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBTUUwgc3RyaW5nLlxuICAgKi9cbiAgZ2V0U1FMKHtmb3JBbHRlclRhYmxlLCBkcml2ZXIsIHNraXBGb3JlaWduS2V5LCAuLi5yZXN0QXJnc30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgY29uc3QgZGF0YWJhc2VUeXBlID0gZHJpdmVyLmdldFR5cGUoKVxuICAgIGNvbnN0IG9wdGlvbnMgPSBkcml2ZXIub3B0aW9ucygpXG4gICAgbGV0IG1heGxlbmd0aCA9IHRoaXMuZ2V0TWF4TGVuZ3RoKClcbiAgICBsZXQgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpPy50b1VwcGVyQ2FzZSgpXG5cbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwicGdzcWxcIikge1xuICAgICAgaWYgKHR5cGUgPT0gXCJEQVRFVElNRVwiKSB7XG4gICAgICAgIHR5cGUgPSBcIlRJTUVTVEFNUFwiXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJUSU5ZSU5UXCIpIHtcbiAgICAgICAgdHlwZSA9IFwiU01BTExJTlRcIlxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiQkxPQlwiKSB7XG4gICAgICAgIHR5cGUgPSBcIkJZVEVBXCJcbiAgICAgICAgbWF4bGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT0gXCJTVFJJTkdcIikge1xuICAgICAgdHlwZSA9IGRhdGFiYXNlVHlwZSA9PSBcIm1zc3FsXCIgPyBcIk5WQVJDSEFSXCIgOiBcIlZBUkNIQVJcIlxuICAgICAgbWF4bGVuZ3RoIHx8PSAyNTVcbiAgICB9XG4gICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcIm15c3FsXCIgJiYgdHlwZSA9PSBcIkJPT0xFQU5cIikge1xuICAgICAgdHlwZSA9IFwiVElOWUlOVFwiXG4gICAgICBtYXhsZW5ndGggPSAxXG4gICAgfVxuICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJwZ3NxbFwiICYmIHR5cGUgPT0gXCJUSU5ZSU5UXCIpIHtcbiAgICAgIHR5cGUgPSBcIlNNQUxMSU5UXCJcbiAgICB9XG5cbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwibXNzcWxcIikge1xuICAgICAgaWYgKHR5cGUgPT0gXCJCT09MRUFOXCIpIHtcbiAgICAgICAgdHlwZSA9IFwiQklUXCJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIlVVSURcIikge1xuICAgICAgICB0eXBlID0gXCJWQVJDSEFSXCJcbiAgICAgICAgbWF4bGVuZ3RoIHx8PSAzNlxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiSlNPTlwiKSB7XG4gICAgICAgIHR5cGUgPSBcIk5WQVJDSEFSKE1BWClcIlxuICAgICAgICBtYXhsZW5ndGggPSB1bmRlZmluZWRcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcIkJMT0JcIikge1xuICAgICAgICB0eXBlID0gXCJWQVJCSU5BUlkoTUFYKVwiXG4gICAgICAgIG1heGxlbmd0aCA9IHVuZGVmaW5lZFxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiVEVYVFwiKSB7XG4gICAgICAgIHR5cGUgPSBcIk5WQVJDSEFSKE1BWClcIlxuICAgICAgICBtYXhsZW5ndGggPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwic3FsaXRlXCIgJiYgdGhpcy5nZXRBdXRvSW5jcmVtZW50KCkgJiYgdGhpcy5nZXRQcmltYXJ5S2V5KCkpIHtcbiAgICAgIHR5cGUgPSBcIklOVEVHRVJcIlxuICAgIH1cblxuICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJwZ3NxbFwiICYmIHRoaXMuZ2V0QXV0b0luY3JlbWVudCgpICYmIHRoaXMuZ2V0UHJpbWFyeUtleSgpKSB7XG4gICAgICB0eXBlID0gXCJTRVJJQUxcIlxuICAgIH1cblxuICAgIGxldCBzcWwgPSBgJHtvcHRpb25zLnF1b3RlQ29sdW1uTmFtZSh0aGlzLmdldEFjdHVhbE5hbWUoKSl9IGBcblxuICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJwZ3NxbFwiICYmIGZvckFsdGVyVGFibGUpIHNxbCArPSBcIlRZUEUgXCJcbiAgICBpZiAodHlwZSkgc3FsICs9IHR5cGVcblxuICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMuZ2V0UHJlY2lzaW9uKClcbiAgICBjb25zdCBzY2FsZSA9IHRoaXMuZ2V0U2NhbGUoKVxuXG4gICAgaWYgKChzY2FsZSAhPT0gdW5kZWZpbmVkICYmIHNjYWxlICE9PSBudWxsKSAmJiAocHJlY2lzaW9uID09PSB1bmRlZmluZWQgfHwgcHJlY2lzaW9uID09PSBudWxsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5nZXRBY3R1YWxOYW1lKCl9Jzogc2NhbGUgcmVxdWlyZXMgcHJlY2lzaW9uIHRvIGJlIHNldGApXG4gICAgfVxuXG4gICAgaWYgKHByZWNpc2lvbiAhPT0gdW5kZWZpbmVkICYmIHByZWNpc2lvbiAhPT0gbnVsbCkge1xuICAgICAgc3FsICs9IHNjYWxlICE9PSB1bmRlZmluZWQgJiYgc2NhbGUgIT09IG51bGwgPyBgKCR7cHJlY2lzaW9ufSwgJHtzY2FsZX0pYCA6IGAoJHtwcmVjaXNpb259KWBcbiAgICB9IGVsc2UgaWYgKHR5cGUgJiYgbWF4bGVuZ3RoICE9PSB1bmRlZmluZWQgJiYgbWF4bGVuZ3RoICE9PSBudWxsKSB7XG4gICAgICBzcWwgKz0gYCgke21heGxlbmd0aH0pYFxuICAgIH1cblxuICAgIGlmICh0aGlzLmdldEF1dG9JbmNyZW1lbnQoKSAmJiBkcml2ZXIuc2hvdWxkU2V0QXV0b0luY3JlbWVudFdoZW5QcmltYXJ5S2V5KCkpIHtcbiAgICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJtc3NxbFwiKSB7XG4gICAgICAgIHNxbCArPSBcIiBJREVOVElUWVwiXG4gICAgICB9IGVsc2UgaWYgKGRhdGFiYXNlVHlwZSA9PSBcInBnc3FsXCIpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0QXV0b0luY3JlbWVudCgpICYmIHRoaXMuZ2V0UHJpbWFyeUtleSgpKSB7XG4gICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInBnc3FsIGF1dG8gaW5jcmVtZW50IG11c3QgYmUgcHJpbWFyeSBrZXlcIilcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3FsICs9IFwiIEFVVE9fSU5DUkVNRU5UXCJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHQoKVxuXG4gICAgaWYgKHR5cGVvZiBkZWZhdWx0VmFsdWUgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBjb25zdCBldmFsdWF0ZWREZWZhdWx0ID0gZGVmYXVsdFZhbHVlKClcblxuICAgICAgc3FsICs9IGAgREVGQVVMVCAoYFxuXG4gICAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwicGdzcWxcIiAmJiBldmFsdWF0ZWREZWZhdWx0ID09IFwiVVVJRCgpXCIpIHtcbiAgICAgICAgc3FsICs9IFwiZ2VuX3JhbmRvbV91dWlkKClcIlxuICAgICAgfSBlbHNlIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJtc3NxbFwiICYmIGV2YWx1YXRlZERlZmF1bHQgPT0gXCJVVUlEKClcIikge1xuICAgICAgICBzcWwgKz0gXCJORVdJRCgpXCJcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNxbCArPSBldmFsdWF0ZWREZWZhdWx0XG4gICAgICB9XG5cbiAgICAgIHNxbCArPSBcIilcIlxuICAgIH0gZWxzZSBpZiAoZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgZGVmYXVsdFZhbHVlICE9PSBudWxsKSB7XG4gICAgICAvLyBFbWl0IGZhbHN5IGRlZmF1bHRzIHRvbyAoYDBgLCBgZmFsc2VgLCBgXCJcImApLiBBIHRydXRoaW5lc3MgY2hlY2sgaGVyZVxuICAgICAgLy8gc2lsZW50bHkgZHJvcHBlZCBgZGVmYXVsdDogMGAsIGxlYXZpbmcgdGhlIGNvbHVtbiBOT1QgTlVMTCB3aXRoIG5vXG4gICAgICAvLyBkZWZhdWx0IHNvIGluc2VydHMgdGhhdCBvbWl0IGl0IGZhaWwgaW4gc3RyaWN0IG1vZGUuXG4gICAgICBzcWwgKz0gYCBERUZBVUxUICR7b3B0aW9ucy5xdW90ZShkZWZhdWx0VmFsdWUpfWBcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRQcmltYXJ5S2V5KCkpIHNxbCArPSBcIiBQUklNQVJZIEtFWVwiXG4gICAgaWYgKHRoaXMuZ2V0TnVsbCgpID09PSBmYWxzZSkgc3FsICs9IFwiIE5PVCBOVUxMXCJcblxuICAgIGNvbnN0IG5vdGVzID0gdGhpcy5nZXROb3Rlc0ZvckRhdGFiYXNlKGRhdGFiYXNlVHlwZSlcblxuICAgIGlmIChub3RlcyAmJiBkYXRhYmFzZVR5cGUgPT0gXCJteXNxbFwiKSB7XG4gICAgICBzcWwgKz0gYCBDT01NRU5UICR7b3B0aW9ucy5xdW90ZShub3Rlcyl9YFxuICAgIH1cblxuICAgIGNvbnN0IGZvcmVpZ25LZXkgPSBza2lwRm9yZWlnbktleSA/IHVuZGVmaW5lZCA6IHRoaXMuZ2V0Rm9yZWlnbktleSgpXG5cbiAgICBpZiAoZm9yZWlnbktleSkge1xuICAgICAgbGV0IGZvcmVpZ25LZXlUYWJsZSwgZm9yZWlnbktleUNvbHVtblxuXG4gICAgICBpZiAoZm9yZWlnbktleSA9PT0gdHJ1ZSkge1xuICAgICAgICBmb3JlaWduS2V5Q29sdW1uID0gXCJpZFwiXG4gICAgICAgIGZvcmVpZ25LZXlUYWJsZSA9IGluZmxlY3Rpb24ucGx1cmFsaXplKHRoaXMuZ2V0QWN0dWFsTmFtZSgpLnJlcGxhY2UoL19pZCQvLCBcIlwiKSlcbiAgICAgIH0gZWxzZSBpZiAoZm9yZWlnbktleSBpbnN0YW5jZW9mIFRhYmxlRm9yZWlnbktleSkge1xuICAgICAgICBmb3JlaWduS2V5Q29sdW1uID0gZm9yZWlnbktleS5nZXRSZWZlcmVuY2VkQ29sdW1uTmFtZSgpXG4gICAgICAgIGZvcmVpZ25LZXlUYWJsZSA9IGZvcmVpZ25LZXkuZ2V0UmVmZXJlbmNlZFRhYmxlTmFtZSgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZm9yZWlnbiBrZXkgdHlwZSBnaXZlbjogJHtmb3JlaWduS2V5fSAoJHt0eXBlb2YgZm9yZWlnbktleX0pYClcbiAgICAgIH1cblxuICAgICAgc3FsICs9IGAgUkVGRVJFTkNFUyAke29wdGlvbnMucXVvdGVUYWJsZU5hbWUoZm9yZWlnbktleVRhYmxlKX0oJHtvcHRpb25zLnF1b3RlQ29sdW1uTmFtZShmb3JlaWduS2V5Q29sdW1uKX0pYFxuICAgIH1cblxuICAgIHJldHVybiBzcWxcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export default class TableForeignKey {
|
|
2
2
|
/**
|
|
3
|
+
* Runs constructor.
|
|
3
4
|
* @param {object} args - Options object.
|
|
4
5
|
* @param {string} args.columnName - Column name.
|
|
5
6
|
* @param {boolean} [args.isNewForeignKey] - Whether is new foreign key.
|
|
@@ -23,30 +24,37 @@ export default class TableForeignKey {
|
|
|
23
24
|
_referencedColumnName: string;
|
|
24
25
|
_referencedTableName: string;
|
|
25
26
|
/**
|
|
27
|
+
* Runs get column name.
|
|
26
28
|
* @returns {string} - The column name.
|
|
27
29
|
*/
|
|
28
30
|
getColumnName(): string;
|
|
29
31
|
/**
|
|
32
|
+
* Runs get is new foreign key.
|
|
30
33
|
* @returns {boolean} - Whether is new foreign key.
|
|
31
34
|
*/
|
|
32
35
|
getIsNewForeignKey(): boolean;
|
|
33
36
|
/**
|
|
37
|
+
* Runs get table name.
|
|
34
38
|
* @returns {string} - The table name.
|
|
35
39
|
*/
|
|
36
40
|
getTableName(): string;
|
|
37
41
|
/**
|
|
42
|
+
* Runs get referenced column name.
|
|
38
43
|
* @returns {string} - The referenced column name.
|
|
39
44
|
*/
|
|
40
45
|
getReferencedColumnName(): string;
|
|
41
46
|
/**
|
|
47
|
+
* Runs get referenced table name.
|
|
42
48
|
* @returns {string} - The referenced table name.
|
|
43
49
|
*/
|
|
44
50
|
getReferencedTableName(): string;
|
|
45
51
|
/**
|
|
52
|
+
* Runs get name.
|
|
46
53
|
* @returns {string} - The name.
|
|
47
54
|
*/
|
|
48
55
|
getName(): string;
|
|
49
56
|
/**
|
|
57
|
+
* Runs set name.
|
|
50
58
|
* @param {string} newName - New name.
|
|
51
59
|
* @returns {void} - No return value.
|
|
52
60
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-foreign-key.d.ts","sourceRoot":"","sources":["../../../../src/database/table-data/table-foreign-key.js"],"names":[],"mappings":"AAIA;IACE
|
|
1
|
+
{"version":3,"file":"table-foreign-key.d.ts","sourceRoot":"","sources":["../../../../src/database/table-data/table-foreign-key.js"],"names":[],"mappings":"AAIA;IACE;;;;;;;;;OASG;IACH,sHAPG;QAAqB,UAAU,EAAvB,MAAM;QACS,eAAe;QAChB,IAAI;QACL,SAAS,EAAtB,MAAM;QACO,oBAAoB,EAAjC,MAAM;QACO,mBAAmB,EAAhC,MAAM;KAChB,EAUA;IANC,oBAA6B;IAC7B,sCAAuC;IACvC,0BAAiB;IACjB,mBAA2B;IAC3B,8BAAiD;IACjD,6BAA+C;IAGjD;;;OAGG;IACH,iBAFa,MAAM,CAEwB;IAE3C;;;OAGG;IACH,sBAFa,OAAO,CAE0C;IAE9D;;;OAGG;IACH,gBAFa,MAAM,CAEsB;IAEzC;;;OAGG;IACH,2BAFa,MAAM,CAE4C;IAE/D;;;OAGG;IACH,0BAFa,MAAM,CAE0C;IAE7D;;;OAGG;IACH,WAFa,MAAM,CAEkB;IAErC;;;;OAIG;IACH,iBAHW,MAAM,GACJ,IAAI,CAEwB;CAC1C"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import restArgsError from "../../utils/rest-args-error.js";
|
|
3
3
|
export default class TableForeignKey {
|
|
4
4
|
/**
|
|
5
|
+
* Runs constructor.
|
|
5
6
|
* @param {object} args - Options object.
|
|
6
7
|
* @param {string} args.columnName - Column name.
|
|
7
8
|
* @param {boolean} [args.isNewForeignKey] - Whether is new foreign key.
|
|
@@ -20,33 +21,40 @@ export default class TableForeignKey {
|
|
|
20
21
|
this._referencedTableName = referencedTableName;
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
24
|
+
* Runs get column name.
|
|
23
25
|
* @returns {string} - The column name.
|
|
24
26
|
*/
|
|
25
27
|
getColumnName() { return this._columnName; }
|
|
26
28
|
/**
|
|
29
|
+
* Runs get is new foreign key.
|
|
27
30
|
* @returns {boolean} - Whether is new foreign key.
|
|
28
31
|
*/
|
|
29
32
|
getIsNewForeignKey() { return this._isNewForeignKey || false; }
|
|
30
33
|
/**
|
|
34
|
+
* Runs get table name.
|
|
31
35
|
* @returns {string} - The table name.
|
|
32
36
|
*/
|
|
33
37
|
getTableName() { return this._tableName; }
|
|
34
38
|
/**
|
|
39
|
+
* Runs get referenced column name.
|
|
35
40
|
* @returns {string} - The referenced column name.
|
|
36
41
|
*/
|
|
37
42
|
getReferencedColumnName() { return this._referencedColumnName; }
|
|
38
43
|
/**
|
|
44
|
+
* Runs get referenced table name.
|
|
39
45
|
* @returns {string} - The referenced table name.
|
|
40
46
|
*/
|
|
41
47
|
getReferencedTableName() { return this._referencedTableName; }
|
|
42
48
|
/**
|
|
49
|
+
* Runs get name.
|
|
43
50
|
* @returns {string} - The name.
|
|
44
51
|
*/
|
|
45
52
|
getName() { return this._name || ""; }
|
|
46
53
|
/**
|
|
54
|
+
* Runs set name.
|
|
47
55
|
* @param {string} newName - New name.
|
|
48
56
|
* @returns {void} - No return value.
|
|
49
57
|
*/
|
|
50
58
|
setName(newName) { this._name = newName; }
|
|
51
59
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZm9yZWlnbi1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvdGFibGUtZGF0YS90YWJsZS1mb3JlaWduLWtleS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxhQUFhLE1BQU0sZ0NBQWdDLENBQUE7QUFFMUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxlQUFlO0lBQ2xDOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksRUFBQyxVQUFVLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxRQUFRLEVBQUM7UUFDaEgsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFBO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUE7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUE7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUE7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLG9CQUFvQixDQUFBO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQTtJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUM7SUFFM0M7OztPQUdHO0lBQ0gsa0JBQWtCLEtBQUssT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFBLENBQUMsQ0FBQztJQUU5RDs7O09BR0c7SUFDSCxZQUFZLEtBQUssT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBLENBQUMsQ0FBQztJQUV6Qzs7O09BR0c7SUFDSCx1QkFBdUIsS0FBSyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQSxDQUFDLENBQUM7SUFFL0Q7OztPQUdHO0lBQ0gsc0JBQXNCLEtBQUssT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUEsQ0FBQyxDQUFDO0lBRTdEOzs7T0FHRztJQUNILE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBLENBQUMsQ0FBQztJQUVyQzs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQSxDQUFDLENBQUM7Q0FDMUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uLy4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhYmxlRm9yZWlnbktleSB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jb2x1bW5OYW1lIC0gQ29sdW1uIG5hbWUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FyZ3MuaXNOZXdGb3JlaWduS2V5XSAtIFdoZXRoZXIgaXMgbmV3IGZvcmVpZ24ga2V5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MubmFtZV0gLSBOYW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy50YWJsZU5hbWUgLSBUYWJsZSBuYW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5yZWZlcmVuY2VkQ29sdW1uTmFtZSAtIFJlZmVyZW5jZWQgY29sdW1uIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnJlZmVyZW5jZWRUYWJsZU5hbWUgLSBSZWZlcmVuY2VkIHRhYmxlIG5hbWUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29sdW1uTmFtZSwgaXNOZXdGb3JlaWduS2V5LCBuYW1lLCB0YWJsZU5hbWUsIHJlZmVyZW5jZWRDb2x1bW5OYW1lLCByZWZlcmVuY2VkVGFibGVOYW1lLCAuLi5yZXN0QXJnc30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5fY29sdW1uTmFtZSA9IGNvbHVtbk5hbWVcbiAgICB0aGlzLl9pc05ld0ZvcmVpZ25LZXkgPSBpc05ld0ZvcmVpZ25LZXlcbiAgICB0aGlzLl9uYW1lID0gbmFtZVxuICAgIHRoaXMuX3RhYmxlTmFtZSA9IHRhYmxlTmFtZVxuICAgIHRoaXMuX3JlZmVyZW5jZWRDb2x1bW5OYW1lID0gcmVmZXJlbmNlZENvbHVtbk5hbWVcbiAgICB0aGlzLl9yZWZlcmVuY2VkVGFibGVOYW1lID0gcmVmZXJlbmNlZFRhYmxlTmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IGNvbHVtbiBuYW1lLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBjb2x1bW4gbmFtZS5cbiAgICovXG4gIGdldENvbHVtbk5hbWUoKSB7IHJldHVybiB0aGlzLl9jb2x1bW5OYW1lIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgaXMgbmV3IGZvcmVpZ24ga2V5LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGlzIG5ldyBmb3JlaWduIGtleS5cbiAgICovXG4gIGdldElzTmV3Rm9yZWlnbktleSgpIHsgcmV0dXJuIHRoaXMuX2lzTmV3Rm9yZWlnbktleSB8fCBmYWxzZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IHRhYmxlIG5hbWUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIHRhYmxlIG5hbWUuXG4gICAqL1xuICBnZXRUYWJsZU5hbWUoKSB7IHJldHVybiB0aGlzLl90YWJsZU5hbWUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCByZWZlcmVuY2VkIGNvbHVtbiBuYW1lLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSByZWZlcmVuY2VkIGNvbHVtbiBuYW1lLlxuICAgKi9cbiAgZ2V0UmVmZXJlbmNlZENvbHVtbk5hbWUoKSB7IHJldHVybiB0aGlzLl9yZWZlcmVuY2VkQ29sdW1uTmFtZSB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IHJlZmVyZW5jZWQgdGFibGUgbmFtZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgcmVmZXJlbmNlZCB0YWJsZSBuYW1lLlxuICAgKi9cbiAgZ2V0UmVmZXJlbmNlZFRhYmxlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX3JlZmVyZW5jZWRUYWJsZU5hbWUgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBuYW1lLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBuYW1lLlxuICAgKi9cbiAgZ2V0TmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWUgfHwgXCJcIiB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2V0IG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdOYW1lIC0gTmV3IG5hbWUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHNldE5hbWUobmV3TmFtZSkgeyB0aGlzLl9uYW1lID0gbmV3TmFtZSB9XG59XG4iXX0=
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* TableIndexArgsType type.
|
|
2
3
|
* @typedef {object} TableIndexArgsType
|
|
3
4
|
* @property {string} [name] - Explicit index name.
|
|
4
5
|
* @property {boolean} [unique] - Whether the index should be unique.
|
|
5
6
|
*/
|
|
6
7
|
export default class TableIndex {
|
|
7
8
|
/**
|
|
9
|
+
* Runs constructor.
|
|
8
10
|
* @param {Array<string | import("./table-column.js").default>} columns - Column names.
|
|
9
11
|
* @param {TableIndexArgsType} [args] - Options object.
|
|
10
12
|
*/
|
|
@@ -12,18 +14,24 @@ export default class TableIndex {
|
|
|
12
14
|
args: TableIndexArgsType | undefined;
|
|
13
15
|
columns: (string | import("./table-column.js").default)[];
|
|
14
16
|
/**
|
|
17
|
+
* Runs get columns.
|
|
15
18
|
* @returns {Array<string | import("./table-column.js").default>} - The columns.
|
|
16
19
|
*/
|
|
17
20
|
getColumns(): Array<string | import("./table-column.js").default>;
|
|
18
21
|
/**
|
|
22
|
+
* Runs get name.
|
|
19
23
|
* @returns {string | undefined} - The name.
|
|
20
24
|
*/
|
|
21
25
|
getName(): string | undefined;
|
|
22
26
|
/**
|
|
27
|
+
* Runs get unique.
|
|
23
28
|
* @returns {boolean} - Whether unique.
|
|
24
29
|
*/
|
|
25
30
|
getUnique(): boolean;
|
|
26
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* TableIndexArgsType type.
|
|
34
|
+
*/
|
|
27
35
|
export type TableIndexArgsType = {
|
|
28
36
|
/**
|
|
29
37
|
* - Explicit index name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-index.d.ts","sourceRoot":"","sources":["../../../../src/database/table-data/table-index.js"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"table-index.d.ts","sourceRoot":"","sources":["../../../../src/database/table-data/table-index.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH;IACE;;;;OAIG;IACH,qBAHW,KAAK,CAAC,MAAM,GAAG,OAAO,mBAAmB,EAAE,OAAO,CAAC,SACnD,kBAAkB,EAW5B;IAFC,qCAAgB;IAChB,0DAAsB;IAGxB;;;OAGG;IACH,cAFa,KAAK,CAAC,MAAM,GAAG,OAAO,mBAAmB,EAAE,OAAO,CAAC,CAE5B;IAEpC;;;OAGG;IACH,WAFa,MAAM,GAAG,SAAS,CAEK;IAEpC;;;OAGG;IACH,aAFa,OAAO,CAE6B;CAClD"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
import restArgsError from "../../utils/rest-args-error.js";
|
|
3
3
|
/**
|
|
4
|
+
* TableIndexArgsType type.
|
|
4
5
|
* @typedef {object} TableIndexArgsType
|
|
5
6
|
* @property {string} [name] - Explicit index name.
|
|
6
7
|
* @property {boolean} [unique] - Whether the index should be unique.
|
|
7
8
|
*/
|
|
8
9
|
export default class TableIndex {
|
|
9
10
|
/**
|
|
11
|
+
* Runs constructor.
|
|
10
12
|
* @param {Array<string | import("./table-column.js").default>} columns - Column names.
|
|
11
13
|
* @param {TableIndexArgsType} [args] - Options object.
|
|
12
14
|
*/
|
|
@@ -19,16 +21,19 @@ export default class TableIndex {
|
|
|
19
21
|
this.columns = columns;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
24
|
+
* Runs get columns.
|
|
22
25
|
* @returns {Array<string | import("./table-column.js").default>} - The columns.
|
|
23
26
|
*/
|
|
24
27
|
getColumns() { return this.columns; }
|
|
25
28
|
/**
|
|
29
|
+
* Runs get name.
|
|
26
30
|
* @returns {string | undefined} - The name.
|
|
27
31
|
*/
|
|
28
32
|
getName() { return this.args?.name; }
|
|
29
33
|
/**
|
|
34
|
+
* Runs get unique.
|
|
30
35
|
* @returns {boolean} - Whether unique.
|
|
31
36
|
*/
|
|
32
37
|
getUnique() { return Boolean(this.args?.unique); }
|
|
33
38
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvdGFibGUtZGF0YS90YWJsZS1pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxhQUFhLE1BQU0sZ0NBQWdDLENBQUE7QUFFMUQ7Ozs7O0dBS0c7QUFFSCxNQUFNLENBQUMsT0FBTyxPQUFPLFVBQVU7SUFDN0I7Ozs7T0FJRztJQUNILFlBQVksT0FBTyxFQUFFLElBQUk7UUFDdkIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxFQUFDLEdBQUcsSUFBSSxDQUFBLENBQUMscUNBQXFDO1lBRTlFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBRXBDOzs7T0FHRztJQUNILE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFBLENBQUMsQ0FBQztJQUVwQzs7O09BR0c7SUFDSCxTQUFTLEtBQUssT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQSxDQUFDLENBQUM7Q0FDbEQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uLy4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8qKlxuICogVGFibGVJbmRleEFyZ3NUeXBlIHR5cGUuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBUYWJsZUluZGV4QXJnc1R5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbmFtZV0gLSBFeHBsaWNpdCBpbmRleCBuYW1lLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbdW5pcXVlXSAtIFdoZXRoZXIgdGhlIGluZGV4IHNob3VsZCBiZSB1bmlxdWUuXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGFibGVJbmRleCB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZyB8IGltcG9ydChcIi4vdGFibGUtY29sdW1uLmpzXCIpLmRlZmF1bHQ+fSBjb2x1bW5zIC0gQ29sdW1uIG5hbWVzLlxuICAgKiBAcGFyYW0ge1RhYmxlSW5kZXhBcmdzVHlwZX0gW2FyZ3NdIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb2x1bW5zLCBhcmdzKSB7XG4gICAgaWYgKGFyZ3MpIHtcbiAgICAgIGNvbnN0IHtuYW1lLCB1bmlxdWUsIC4uLnJlc3RBcmdzfSA9IGFyZ3MgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuXG4gICAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuICAgIH1cblxuICAgIHRoaXMuYXJncyA9IGFyZ3NcbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zXG4gIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgY29sdW1ucy5cbiAgICogQHJldHVybnMge0FycmF5PHN0cmluZyB8IGltcG9ydChcIi4vdGFibGUtY29sdW1uLmpzXCIpLmRlZmF1bHQ+fSAtIFRoZSBjb2x1bW5zLlxuICAgKi9cbiAgZ2V0Q29sdW1ucygpIHsgcmV0dXJuIHRoaXMuY29sdW1ucyB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZ2V0IG5hbWUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIG5hbWUuXG4gICAqL1xuICBnZXROYW1lKCkgeyByZXR1cm4gdGhpcy5hcmdzPy5uYW1lIH1cblxuICAvKipcbiAgICogUnVucyBnZXQgdW5pcXVlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHVuaXF1ZS5cbiAgICovXG4gIGdldFVuaXF1ZSgpIHsgcmV0dXJuIEJvb2xlYW4odGhpcy5hcmdzPy51bmlxdWUpIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-reference.d.ts","sourceRoot":"","sources":["../../../../src/database/table-data/table-reference.js"],"names":[],"mappings":"AAEA;IACE
|
|
1
|
+
{"version":3,"file":"table-reference.d.ts","sourceRoot":"","sources":["../../../../src/database/table-data/table-reference.js"],"names":[],"mappings":"AAEA;IACE;;;;OAIG;IACH,kBAHW,MAAM,QACN,MAAM,EAKhB;IAFC,aAAgB;IAChB,aAAgB;CAEnB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
export default class TableReference {
|
|
3
3
|
/**
|
|
4
|
+
* Runs constructor.
|
|
4
5
|
* @param {string} name - Name.
|
|
5
6
|
* @param {object} args - Options object.
|
|
6
7
|
*/
|
|
@@ -9,4 +10,4 @@ export default class TableReference {
|
|
|
9
10
|
this.name = name;
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmVmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3RhYmxlLWRhdGEvdGFibGUtcmVmZXJlbmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDakM7Ozs7T0FJRztJQUNILFlBQVksSUFBSSxFQUFFLElBQUk7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhYmxlUmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTmFtZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG5hbWUsIGFyZ3MpIHtcbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5uYW1lID0gbmFtZVxuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Runs load migrations.
|
|
2
3
|
* @param {object} args - Options object.
|
|
3
4
|
* @param {() => Promise<import("./migrator/types.js").RequireMigrationContextType>} args.migrationsRequireContextCallback - Migrations require context callback.
|
|
4
5
|
* @returns {{loaded: boolean}} - Whether the database was loaded by this call.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-database.d.ts","sourceRoot":"","sources":["../../../src/database/use-database.js"],"names":[],"mappings":"AASA
|
|
1
|
+
{"version":3,"file":"use-database.d.ts","sourceRoot":"","sources":["../../../src/database/use-database.js"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,0FAHG;IAAuF,gCAAgC,EAA/G,MAAM,OAAO,CAAC,OAAO,qBAAqB,EAAE,2BAA2B,CAAC;CAChF,GAAU;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,CAkC7B"}
|
|
@@ -5,6 +5,7 @@ import Configuration from "../configuration.js";
|
|
|
5
5
|
import Migrator from "./migrator.js";
|
|
6
6
|
import restArgsError from "../utils/rest-args-error.js";
|
|
7
7
|
/**
|
|
8
|
+
* Runs load migrations.
|
|
8
9
|
* @param {object} args - Options object.
|
|
9
10
|
* @param {() => Promise<import("./migrator/types.js").RequireMigrationContextType>} args.migrationsRequireContextCallback - Migrations require context callback.
|
|
10
11
|
* @returns {{loaded: boolean}} - Whether the database was loaded by this call.
|
|
@@ -36,4 +37,4 @@ export default function loadMigrations({ migrationsRequireContextCallback, ...re
|
|
|
36
37
|
restArgsError(restArgs);
|
|
37
38
|
return { loaded };
|
|
38
39
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3VzZS1kYXRhYmFzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBQ3pCLE9BQU8sV0FBVyxNQUFNLGtDQUFrQyxDQUFBO0FBRTFELE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUNwQyxPQUFPLGFBQWEsTUFBTSw2QkFBNkIsQ0FBQTtBQUV2RDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsY0FBYyxDQUFDLEVBQUMsZ0NBQWdDLEVBQUUsR0FBRyxRQUFRLEVBQUM7SUFDcEYsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDNUQsTUFBTSxFQUFDLFFBQVEsRUFBQyxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQ2hDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVqRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hELFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBRXZCLElBQUksQ0FBQztZQUNILE1BQU0sYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsSUFBSSxFQUFFLGlDQUFpQyxFQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BHLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLENBQUE7Z0JBRXZFLE1BQU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFBO2dCQUN4QixNQUFNLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLGdDQUFnQyxFQUFFLENBQUMsQ0FBQTtZQUN6RixDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBQzFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqQixDQUFDO2dCQUFTLENBQUM7WUFDVCxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUMxQixDQUFDO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDakIsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QyxZQUFZLEVBQUUsQ0FBQTtRQUNoQixDQUFDO0lBQ0gsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUVaLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUV2QixPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUE7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB1c2VFbnZTZW5zZSBmcm9tIFwiZW52LXNlbnNlL2J1aWxkL3VzZS1lbnYtc2Vuc2UuanNcIlxuXG5pbXBvcnQgQ29uZmlndXJhdGlvbiBmcm9tIFwiLi4vY29uZmlndXJhdGlvbi5qc1wiXG5pbXBvcnQgTWlncmF0b3IgZnJvbSBcIi4vbWlncmF0b3IuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8qKlxuICogUnVucyBsb2FkIG1pZ3JhdGlvbnMuXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHsoKSA9PiBQcm9taXNlPGltcG9ydChcIi4vbWlncmF0b3IvdHlwZXMuanNcIikuUmVxdWlyZU1pZ3JhdGlvbkNvbnRleHRUeXBlPn0gYXJncy5taWdyYXRpb25zUmVxdWlyZUNvbnRleHRDYWxsYmFjayAtIE1pZ3JhdGlvbnMgcmVxdWlyZSBjb250ZXh0IGNhbGxiYWNrLlxuICogQHJldHVybnMge3tsb2FkZWQ6IGJvb2xlYW59fSAtIFdoZXRoZXIgdGhlIGRhdGFiYXNlIHdhcyBsb2FkZWQgYnkgdGhpcyBjYWxsLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsb2FkTWlncmF0aW9ucyh7bWlncmF0aW9uc1JlcXVpcmVDb250ZXh0Q2FsbGJhY2ssIC4uLnJlc3RBcmdzfSkge1xuICBjb25zdCBpbnN0YW5jZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtydW5uaW5nOiBmYWxzZX0pLCBbXSlcbiAgY29uc3Qge2lzU2VydmVyfSA9IHVzZUVudlNlbnNlKClcbiAgY29uc3QgW2xvYWRlZCwgc2V0TG9hZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGxvYWREYXRhYmFzZSA9IFJlYWN0LnVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpbnN0YW5jZS5ydW5uaW5nID0gdHJ1ZVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IENvbmZpZ3VyYXRpb24uY3VycmVudCgpLmVuc3VyZUNvbm5lY3Rpb25zKHtuYW1lOiBcIlJlYWN0IGRhdGFiYXNlIG1pZ3JhdGlvbiBsb2FkZXJcIn0sIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbWlncmF0b3IgPSBuZXcgTWlncmF0b3Ioe2NvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24uY3VycmVudCgpfSlcblxuICAgICAgICBhd2FpdCBtaWdyYXRvci5wcmVwYXJlKClcbiAgICAgICAgYXdhaXQgbWlncmF0b3IubWlncmF0ZUZpbGVzRnJvbVJlcXVpcmVDb250ZXh0KGF3YWl0IG1pZ3JhdGlvbnNSZXF1aXJlQ29udGV4dENhbGxiYWNrKCkpXG4gICAgICB9KVxuXG4gICAgICBhd2FpdCBDb25maWd1cmF0aW9uLmN1cnJlbnQoKS5pbml0aWFsaXplKClcbiAgICAgIHNldExvYWRlZCh0cnVlKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBpbnN0YW5jZS5ydW5uaW5nID0gZmFsc2VcbiAgICB9XG4gIH0sIFtdKVxuXG4gIFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghbG9hZGVkICYmICFpc1NlcnZlciAmJiAhaW5zdGFuY2UucnVubmluZykge1xuICAgICAgbG9hZERhdGFiYXNlKClcbiAgICB9XG4gIH0sIFtsb2FkZWRdKVxuXG4gIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgcmV0dXJuIHtsb2FkZWR9XG59XG4iXX0=
|