velocious 1.0.263 → 1.0.265
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 +14 -0
- package/build/bin/velocious.js +7 -2
- package/build/src/application.d.ts +6 -6
- package/build/src/application.d.ts.map +1 -1
- package/build/src/authorization/ability.d.ts +4 -4
- package/build/src/authorization/ability.d.ts.map +1 -1
- package/build/src/authorization/base-resource.d.ts +4 -4
- package/build/src/authorization/base-resource.d.ts.map +1 -1
- package/build/src/background-jobs/client.d.ts +2 -2
- package/build/src/background-jobs/client.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.d.ts +2 -2
- package/build/src/background-jobs/job-runner.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.js +5 -3
- package/build/src/background-jobs/job.d.ts +1 -1
- package/build/src/background-jobs/job.d.ts.map +1 -1
- package/build/src/background-jobs/json-socket.d.ts +1 -1
- package/build/src/background-jobs/json-socket.d.ts.map +1 -1
- package/build/src/background-jobs/main.d.ts +34 -12
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +36 -6
- package/build/src/background-jobs/scheduler.d.ts +21 -0
- package/build/src/background-jobs/scheduler.d.ts.map +1 -1
- package/build/src/background-jobs/scheduler.js +3 -2
- package/build/src/background-jobs/status-reporter.d.ts +14 -10
- package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
- package/build/src/background-jobs/status-reporter.js +11 -6
- package/build/src/background-jobs/store.d.ts +73 -117
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +62 -24
- package/build/src/background-jobs/types.d.ts +175 -2
- package/build/src/background-jobs/types.d.ts.map +1 -1
- package/build/src/background-jobs/types.js +44 -1
- package/build/src/background-jobs/worker.d.ts +21 -17
- package/build/src/background-jobs/worker.d.ts.map +1 -1
- package/build/src/background-jobs/worker.js +30 -9
- package/build/src/cli/base-command.d.ts +5 -5
- package/build/src/cli/base-command.d.ts.map +1 -1
- package/build/src/cli/commands/db/create.d.ts.map +1 -1
- package/build/src/cli/commands/db/create.js +11 -3
- package/build/src/cli/commands/db/schema/load.d.ts +7 -0
- package/build/src/cli/commands/db/schema/load.d.ts.map +1 -0
- package/build/src/cli/commands/db/schema/load.js +9 -0
- package/build/src/cli/index.d.ts +25 -13
- package/build/src/cli/index.d.ts.map +1 -1
- package/build/src/cli/index.js +62 -4
- package/build/src/cli/use-browser-cli.d.ts +2 -2
- package/build/src/cli/use-browser-cli.d.ts.map +1 -1
- package/build/src/cli/use-browser-cli.js +4 -4
- package/build/src/configuration-types.d.ts +160 -136
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration.d.ts +32 -31
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +6 -5
- package/build/src/controller.d.ts +14 -14
- package/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +19 -8
- package/build/src/database/drivers/base-columns-index.d.ts +1 -1
- package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
- package/build/src/database/drivers/base.d.ts +15 -14
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +6 -3
- package/build/src/database/drivers/mssql/column.d.ts +1 -0
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/connect-connection.d.ts +1 -1
- package/build/src/database/drivers/mssql/connect-connection.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.d.ts +4 -3
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +8 -12
- 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/mysql/column.d.ts +1 -0
- package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.d.ts +3 -2
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +3 -1
- package/build/src/database/drivers/mysql/query.d.ts +1 -1
- package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/query.js +7 -5
- 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/pgsql/column.d.ts +1 -0
- package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.d.ts +3 -2
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +3 -1
- 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/sqlite/base.d.ts +9 -6
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +22 -6
- package/build/src/database/drivers/sqlite/column.d.ts +1 -0
- package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +2 -2
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.native.d.ts +1 -2
- package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.native.js +8 -3
- package/build/src/database/drivers/sqlite/index.web.d.ts +3 -2
- package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.web.js +5 -1
- package/build/src/database/drivers/sqlite/query.web.d.ts +1 -1
- package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table.d.ts +2 -1
- package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/table.js +3 -2
- package/build/src/database/migration/index.d.ts +10 -10
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migrator/types.d.ts +1 -1
- package/build/src/database/migrator/types.d.ts.map +1 -1
- package/build/src/database/migrator.d.ts +1 -1
- package/build/src/database/migrator.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.d.ts +1 -0
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +12 -8
- package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
- package/build/src/database/pool/base-methods-forward.js +6 -4
- package/build/src/database/pool/base.d.ts +2 -1
- package/build/src/database/pool/base.d.ts.map +1 -1
- package/build/src/database/pool/base.js +6 -4
- package/build/src/database/pool/single-multi-use.d.ts +1 -1
- package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +8 -4
- package/build/src/database/query/base.d.ts +1 -1
- package/build/src/database/query/base.d.ts.map +1 -1
- package/build/src/database/query/create-database-base.d.ts +2 -2
- package/build/src/database/query/create-database-base.d.ts.map +1 -1
- package/build/src/database/query/create-index-base.d.ts +6 -6
- package/build/src/database/query/create-index-base.d.ts.map +1 -1
- package/build/src/database/query/create-table-base.d.ts +3 -3
- package/build/src/database/query/create-table-base.d.ts.map +1 -1
- package/build/src/database/query/create-table-base.js +8 -4
- package/build/src/database/query/drop-table-base.d.ts +4 -4
- package/build/src/database/query/drop-table-base.d.ts.map +1 -1
- package/build/src/database/query/index.d.ts +16 -16
- package/build/src/database/query/index.d.ts.map +1 -1
- package/build/src/database/query/index.js +4 -4
- package/build/src/database/query/insert-base.d.ts +10 -10
- package/build/src/database/query/insert-base.d.ts.map +1 -1
- package/build/src/database/query/join-base.d.ts +1 -1
- package/build/src/database/query/join-base.d.ts.map +1 -1
- package/build/src/database/query/join-object.d.ts +1 -1
- package/build/src/database/query/join-object.d.ts.map +1 -1
- package/build/src/database/query/join-object.js +4 -1
- package/build/src/database/query/model-class-query.d.ts +11 -11
- package/build/src/database/query/model-class-query.d.ts.map +1 -1
- package/build/src/database/query/model-class-query.js +29 -18
- package/build/src/database/query/select-base.d.ts +1 -1
- package/build/src/database/query/select-base.d.ts.map +1 -1
- package/build/src/database/query/where-base.d.ts +1 -1
- package/build/src/database/query/where-base.d.ts.map +1 -1
- package/build/src/database/query/where-hash.d.ts +1 -0
- package/build/src/database/query/where-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.d.ts +2 -1
- package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
- package/build/src/database/query/where-model-class-hash.js +15 -7
- 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-plain.d.ts +1 -0
- package/build/src/database/query/where-plain.d.ts.map +1 -1
- package/build/src/database/query-parser/base-query-parser.d.ts +1 -1
- package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
- package/build/src/database/record/attachments/download.d.ts +3 -3
- package/build/src/database/record/attachments/download.d.ts.map +1 -1
- package/build/src/database/record/attachments/handle.d.ts +2 -1
- package/build/src/database/record/attachments/handle.d.ts.map +1 -1
- package/build/src/database/record/attachments/handle.js +3 -2
- package/build/src/database/record/attachments/normalize-input.d.ts +4 -4
- package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +1 -1
- package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/native.d.ts +3 -3
- package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts +2 -2
- package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
- package/build/src/database/record/attachments/storage-drivers/s3.js +11 -3
- package/build/src/database/record/attachments/store.d.ts +3 -3
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +3 -2
- package/build/src/database/record/index.d.ts +19 -19
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +53 -35
- package/build/src/database/record/instance-relationships/base.d.ts +10 -8
- package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/base.js +9 -5
- package/build/src/database/record/instance-relationships/belongs-to.d.ts +4 -4
- package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/belongs-to.js +9 -2
- package/build/src/database/record/instance-relationships/has-many.d.ts +4 -9
- package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-many.js +12 -8
- package/build/src/database/record/instance-relationships/has-one.d.ts +7 -14
- package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
- package/build/src/database/record/instance-relationships/has-one.js +11 -5
- package/build/src/database/record/relationships/base.d.ts +18 -18
- package/build/src/database/record/relationships/base.d.ts.map +1 -1
- package/build/src/database/record/relationships/base.js +3 -3
- package/build/src/database/record/relationships/belongs-to.d.ts +1 -1
- package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-many.d.ts +1 -1
- package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
- package/build/src/database/record/relationships/has-one.d.ts +1 -1
- package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
- package/build/src/database/table-data/index.d.ts +1 -1
- package/build/src/database/table-data/index.d.ts.map +1 -1
- package/build/src/database/table-data/table-column.d.ts +12 -12
- package/build/src/database/table-data/table-column.d.ts.map +1 -1
- package/build/src/database/table-data/table-foreign-key.d.ts +4 -4
- package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
- package/build/src/database/table-data/table-foreign-key.js +2 -2
- package/build/src/database/table-data/table-index.d.ts +3 -3
- package/build/src/database/table-data/table-index.d.ts.map +1 -1
- package/build/src/database/table-data/table-reference.d.ts +1 -1
- package/build/src/database/table-data/table-reference.d.ts.map +1 -1
- package/build/src/environment-handlers/base.d.ts +10 -5
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +10 -2
- package/build/src/environment-handlers/browser.d.ts +5 -26
- package/build/src/environment-handlers/browser.d.ts.map +1 -1
- package/build/src/environment-handlers/browser.js +14 -4
- package/build/src/environment-handlers/node/cli/commands/console.js +3 -3
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +24 -0
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -0
- package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +57 -0
- 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 +4 -2
- 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 +4 -2
- 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 +9 -4
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +1 -1
- 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 +9 -4
- 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 +4 -2
- 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 +4 -2
- package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/routes.js +3 -1
- 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 +5 -3
- package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/runner.js +5 -3
- package/build/src/environment-handlers/node/cli/commands/server.d.ts +3 -3
- package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/server.js +2 -2
- package/build/src/environment-handlers/node/cli/commands/test.js +2 -2
- package/build/src/environment-handlers/node.d.ts +9 -1
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +10 -2
- package/build/src/error-logger.d.ts.map +1 -1
- package/build/src/error-logger.js +1 -5
- package/build/src/frontend-model-controller.d.ts +17 -17
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +31 -12
- package/build/src/frontend-model-resource/base-resource.d.ts +14 -12
- package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
- package/build/src/frontend-model-resource/base-resource.js +16 -4
- package/build/src/frontend-models/base.d.ts +27 -20
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +31 -12
- package/build/src/frontend-models/query.d.ts +29 -8
- package/build/src/frontend-models/query.d.ts.map +1 -1
- package/build/src/frontend-models/query.js +18 -4
- package/build/src/http-client/index.d.ts +11 -11
- package/build/src/http-client/index.d.ts.map +1 -1
- package/build/src/http-client/request.d.ts +2 -2
- package/build/src/http-client/request.d.ts.map +1 -1
- package/build/src/http-client/response.d.ts +1 -1
- package/build/src/http-client/response.d.ts.map +1 -1
- package/build/src/http-client/websocket-client.d.ts +26 -12
- package/build/src/http-client/websocket-client.d.ts.map +1 -1
- package/build/src/http-client/websocket-client.js +26 -12
- package/build/src/http-server/client/index.d.ts +4 -4
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +17 -11
- package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
- package/build/src/http-server/client/params-to-object.js +14 -11
- package/build/src/http-server/client/request-buffer/form-data-part.d.ts +15 -7
- 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 +9 -1
- package/build/src/http-server/client/request-buffer/index.d.ts +15 -14
- package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
- package/build/src/http-server/client/request-buffer/index.js +19 -7
- package/build/src/http-server/client/request-parser.d.ts +1 -1
- package/build/src/http-server/client/request-parser.d.ts.map +1 -1
- package/build/src/http-server/client/request-parser.js +2 -2
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +4 -2
- package/build/src/http-server/client/request.d.ts +3 -3
- package/build/src/http-server/client/request.d.ts.map +1 -1
- package/build/src/http-server/client/response.d.ts +4 -4
- package/build/src/http-server/client/response.d.ts.map +1 -1
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +2 -2
- package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-request.d.ts +22 -16
- package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-request.js +13 -5
- package/build/src/http-server/client/websocket-session.d.ts +52 -17
- package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
- package/build/src/http-server/client/websocket-session.js +59 -10
- package/build/src/http-server/cookie.d.ts +17 -17
- package/build/src/http-server/cookie.d.ts.map +1 -1
- package/build/src/http-server/index.d.ts +4 -4
- package/build/src/http-server/index.d.ts.map +1 -1
- package/build/src/http-server/index.js +4 -4
- package/build/src/http-server/server-client.d.ts +3 -3
- package/build/src/http-server/server-client.d.ts.map +1 -1
- package/build/src/http-server/server-client.js +4 -4
- package/build/src/http-server/websocket-channel.d.ts +3 -3
- package/build/src/http-server/websocket-channel.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.js +6 -3
- package/build/src/http-server/websocket-events.d.ts +2 -2
- package/build/src/http-server/websocket-events.d.ts.map +1 -1
- package/build/src/http-server/websocket-events.js +3 -1
- package/build/src/http-server/worker-handler/index.d.ts +7 -7
- package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/index.js +16 -7
- package/build/src/http-server/worker-handler/worker-thread.d.ts +9 -9
- package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/worker-thread.js +23 -13
- package/build/src/logger/console-logger.d.ts +2 -2
- package/build/src/logger/console-logger.d.ts.map +1 -1
- package/build/src/logger/file-logger.d.ts +2 -2
- package/build/src/logger/file-logger.d.ts.map +1 -1
- package/build/src/logger/outputs/array-output.d.ts +1 -1
- package/build/src/logger/outputs/array-output.d.ts.map +1 -1
- package/build/src/logger/outputs/file-output.d.ts +8 -5
- package/build/src/logger/outputs/file-output.d.ts.map +1 -1
- package/build/src/logger/outputs/file-output.js +4 -1
- package/build/src/logger.d.ts +7 -7
- package/build/src/logger.d.ts.map +1 -1
- package/build/src/mailer/backends/smtp.d.ts +3 -3
- package/build/src/mailer/backends/smtp.d.ts.map +1 -1
- package/build/src/mailer/backends/smtp.js +3 -3
- package/build/src/mailer/base.d.ts +7 -7
- package/build/src/mailer/base.d.ts.map +1 -1
- package/build/src/mailer/base.js +3 -3
- package/build/src/plugins/sqljs-wasm-route.d.ts +2 -2
- package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
- package/build/src/routes/base-route.d.ts +2 -2
- package/build/src/routes/base-route.d.ts.map +1 -1
- package/build/src/routes/base-route.js +2 -2
- package/build/src/routes/get-route.d.ts +5 -0
- package/build/src/routes/get-route.d.ts.map +1 -1
- package/build/src/routes/namespace-route.d.ts +1 -1
- package/build/src/routes/plugin-routes.d.ts +2 -2
- package/build/src/routes/plugin-routes.d.ts.map +1 -1
- package/build/src/routes/post-route.d.ts +5 -0
- package/build/src/routes/post-route.d.ts.map +1 -1
- package/build/src/routes/resolver.d.ts +4 -2
- package/build/src/routes/resolver.d.ts.map +1 -1
- package/build/src/routes/resolver.js +7 -3
- package/build/src/routes/resource-route.d.ts +5 -0
- package/build/src/routes/resource-route.d.ts.map +1 -1
- package/build/src/routes/root-route.d.ts +5 -0
- package/build/src/routes/root-route.d.ts.map +1 -1
- package/build/src/testing/expect-to-change.d.ts +3 -3
- package/build/src/testing/expect-to-change.d.ts.map +1 -1
- package/build/src/testing/expect-utils.d.ts.map +1 -1
- package/build/src/testing/expect-utils.js +7 -5
- package/build/src/testing/expect.d.ts +1 -1
- package/build/src/testing/expect.d.ts.map +1 -1
- package/build/src/testing/request-client.d.ts +1 -1
- package/build/src/testing/request-client.d.ts.map +1 -1
- package/build/src/testing/test-files-finder.d.ts +1 -1
- package/build/src/testing/test-files-finder.d.ts.map +1 -1
- package/build/src/testing/test-runner.d.ts +57 -37
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +14 -3
- package/build/src/testing/test-suite-splitter.d.ts +1 -1
- package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
- package/build/src/testing/test.d.ts +14 -6
- package/build/src/testing/test.d.ts.map +1 -1
- package/build/src/testing/test.js +14 -5
- package/build/src/utils/backtrace-cleaner.d.ts +2 -2
- package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
- package/build/src/utils/split-sql-statements.d.ts +7 -0
- package/build/src/utils/split-sql-statements.d.ts.map +1 -0
- package/build/src/utils/split-sql-statements.js +77 -0
- package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack-async-hooks.js +5 -3
- package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
- package/build/src/utils/with-tracked-stack.js +5 -3
- package/build/src/velocious-error.d.ts +4 -4
- package/build/src/velocious-error.d.ts.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -2
|
@@ -139,16 +139,17 @@ export default class VelociousHttpServerWorker {
|
|
|
139
139
|
else if (command == "clientOutput") {
|
|
140
140
|
this.logger.debug("CLIENT OUTPUT", summarizeWorkerMessage(data));
|
|
141
141
|
const { clientCount, output } = data;
|
|
142
|
-
const client = this.clients[clientCount];
|
|
142
|
+
const client = typeof clientCount === "number" ? this.clients[clientCount] : undefined;
|
|
143
143
|
if (!client) {
|
|
144
144
|
this.logger.warn(() => [`Velocious worker ${this.workerCount} produced output for missing client ${clientCount}`, data]);
|
|
145
145
|
return;
|
|
146
146
|
}
|
|
147
|
-
if (output !== null) {
|
|
147
|
+
if (output !== null && output !== undefined) {
|
|
148
|
+
const outputLength = typeof output === "string" ? output.length : output.byteLength;
|
|
148
149
|
void client.send(output).then(() => {
|
|
149
150
|
this.logger.debug(() => ["Client output delivered", {
|
|
150
151
|
clientCount,
|
|
151
|
-
outputLength
|
|
152
|
+
outputLength,
|
|
152
153
|
workerCount: this.workerCount
|
|
153
154
|
}]);
|
|
154
155
|
}).catch((error) => {
|
|
@@ -161,13 +162,15 @@ export default class VelociousHttpServerWorker {
|
|
|
161
162
|
}
|
|
162
163
|
else if (command == "clientClose") {
|
|
163
164
|
const { clientCount } = data;
|
|
164
|
-
const client = this.clients[clientCount];
|
|
165
|
+
const client = typeof clientCount === "number" ? this.clients[clientCount] : undefined;
|
|
165
166
|
if (!client) {
|
|
166
167
|
this.logger.error(() => [`Velocious worker ${this.workerCount} requested close for missing client ${clientCount}`, data]);
|
|
167
168
|
return;
|
|
168
169
|
}
|
|
169
170
|
void client.end();
|
|
170
|
-
|
|
171
|
+
if (typeof clientCount === "number") {
|
|
172
|
+
delete this.clients[clientCount];
|
|
173
|
+
}
|
|
171
174
|
}
|
|
172
175
|
else if (command == "shutdownComplete") {
|
|
173
176
|
this._stopResolve?.();
|
|
@@ -175,6 +178,9 @@ export default class VelociousHttpServerWorker {
|
|
|
175
178
|
}
|
|
176
179
|
else if (command == "websocketPublish") {
|
|
177
180
|
const { channel, payload } = data;
|
|
181
|
+
if (typeof channel !== "string") {
|
|
182
|
+
throw new Error("Worker websocket publish channel must be a string");
|
|
183
|
+
}
|
|
178
184
|
websocketEventsHost.publish({ channel, payload });
|
|
179
185
|
}
|
|
180
186
|
else {
|
|
@@ -190,9 +196,12 @@ export default class VelociousHttpServerWorker {
|
|
|
190
196
|
if (this._hasExited)
|
|
191
197
|
return Promise.resolve();
|
|
192
198
|
this._stopping = true;
|
|
199
|
+
const worker = this.worker;
|
|
200
|
+
if (!worker)
|
|
201
|
+
return Promise.resolve();
|
|
193
202
|
return new Promise((resolve) => {
|
|
194
203
|
this._stopResolve = resolve;
|
|
195
|
-
|
|
204
|
+
worker.postMessage({ command: "shutdown" });
|
|
196
205
|
});
|
|
197
206
|
}
|
|
198
207
|
/**
|
|
@@ -208,4 +217,4 @@ export default class VelociousHttpServerWorker {
|
|
|
208
217
|
this.worker.postMessage({ channel, command: "websocketEvent", payload });
|
|
209
218
|
}
|
|
210
219
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd29ya2VyLWhhbmRsZXIvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyQyxPQUFPLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRCxPQUFPLG1CQUFtQixNQUFNLDZCQUE2QixDQUFBO0FBRTdEOzs7Ozs7R0FNRztBQUNILFNBQVMsc0JBQXNCLENBQUMsSUFBSTtJQUNsQyxNQUFNLEVBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFDLEdBQUcsSUFBSSxDQUFBO0lBRTlCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sTUFBTSxDQUFBO0lBQ2hDLE1BQU0sWUFBWSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFDN0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1FBQ2YsQ0FBQyxDQUFDLENBQUMsTUFBTSxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFbEUsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLElBQUksRUFBRSxVQUFVO1NBQ2pCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQUM1Qzs7OztPQUlHO0lBQ0gsWUFBWSxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFFbEMsb0VBQW9FO1FBQ3BF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LEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtRQUNqRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDaEQsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzFDLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUU3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUVyQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUE7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtRQUNoRCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQztRQUN2QyxpR0FBaUc7UUFDakcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxVQUFVO1lBQUUsT0FBTTtRQUV6RSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vLi4vbG9nZ2VyLmpzXCJcbmltcG9ydCB7V29ya2VyfSBmcm9tIFwid29ya2VyX3RocmVhZHNcIlxuaW1wb3J0IGVuc3VyZUVycm9yIGZyb20gXCIuLi8uLi91dGlscy9lbnN1cmUtZXJyb3IuanNcIlxuaW1wb3J0IHdlYnNvY2tldEV2ZW50c0hvc3QgZnJvbSBcIi4uL3dlYnNvY2tldC1ldmVudHMtaG9zdC5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBXb3JrZXIgbWVzc2FnZSBwYXlsb2FkLlxuICogQHBhcmFtIHtzdHJpbmd9IGRhdGEuY29tbWFuZCAtIENvbW1hbmQgbmFtZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZGF0YS5jbGllbnRDb3VudF0gLSBDbGllbnQgY291bnQuXG4gKiBAcGFyYW0ge3N0cmluZyB8IFVpbnQ4QXJyYXl9IFtkYXRhLm91dHB1dF0gLSBPdXRwdXQgY2h1bmsuXG4gKiBAcmV0dXJucyB7b2JqZWN0fSAtIExvZy1zYWZlIG1lc3NhZ2UgZGV0YWlscy5cbiAqL1xuZnVuY3Rpb24gc3VtbWFyaXplV29ya2VyTWVzc2FnZShkYXRhKSB7XG4gIGNvbnN0IHtvdXRwdXQsIC4uLnJlc3R9ID0gZGF0YVxuXG4gIGlmIChvdXRwdXQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiByZXN0XG4gIH1cblxuICBjb25zdCBvdXRwdXRUeXBlID0gdHlwZW9mIG91dHB1dFxuICBjb25zdCBvdXRwdXRMZW5ndGggPSB0eXBlb2Ygb3V0cHV0ID09PSBcInN0cmluZ1wiXG4gICAgPyBvdXRwdXQubGVuZ3RoXG4gICAgOiAob3V0cHV0IGluc3RhbmNlb2YgVWludDhBcnJheSA/IG91dHB1dC5ieXRlTGVuZ3RoIDogdW5kZWZpbmVkKVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBvdXRwdXQ6IHtcbiAgICAgIGxlbmd0aDogb3V0cHV0TGVuZ3RoLFxuICAgICAgdHlwZTogb3V0cHV0VHlwZVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNIdHRwU2VydmVyV29ya2VyIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge251bWJlcn0gYXJncy53b3JrZXJDb3VudCAtIFdvcmtlciBjb3VudC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCB3b3JrZXJDb3VudH0pIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG5cbiAgICAvKiogQHR5cGUge1JlY29yZDxudW1iZXIsIGltcG9ydChcIi4uL3NlcnZlci1jbGllbnQuanNcIikuZGVmYXVsdD59ICovXG4gICAgdGhpcy5jbGllbnRzID0ge31cblxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMud29ya2VyQ291bnQgPSB3b3JrZXJDb3VudFxuICAgIHRoaXMudW5yZWdpc3RlckZyb21FdmVudHNIb3N0ID0gd2Vic29ja2V0RXZlbnRzSG9zdC5yZWdpc3Rlcih0aGlzKVxuICAgIHRoaXMuX3N0b3BwaW5nID0gZmFsc2VcbiAgfVxuXG4gIHN0YXJ0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5vblN0YXJ0Q2FsbGJhY2sgPSByZXNvbHZlXG4gICAgICB0aGlzLl9zcGF3bldvcmtlcigpXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIF9zcGF3bldvcmtlcigpIHtcbiAgICBjb25zdCBkZWJ1ZyA9IHRoaXMuY29uZmlndXJhdGlvbi5kZWJ1Z1xuICAgIGNvbnN0IGRpcmVjdG9yeSA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXREaXJlY3RvcnkoKVxuICAgIGNvbnN0IHZlbG9jaW91c1BhdGggPSBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0RW52aXJvbm1lbnRIYW5kbGVyKCkuZ2V0VmVsb2Npb3VzUGF0aCgpXG5cbiAgICB0aGlzLndvcmtlciA9IG5ldyBXb3JrZXIoYCR7dmVsb2Npb3VzUGF0aH0vc3JjL2h0dHAtc2VydmVyL3dvcmtlci1oYW5kbGVyL3dvcmtlci1zY3JpcHQuanNgLCB7XG4gICAgICB3b3JrZXJEYXRhOiB7XG4gICAgICAgIGRlYnVnLFxuICAgICAgICBkaXJlY3RvcnksXG4gICAgICAgIGVudmlyb25tZW50OiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0RW52aXJvbm1lbnQoKSxcbiAgICAgICAgd29ya2VyQ291bnQ6IHRoaXMud29ya2VyQ291bnRcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMud29ya2VyLm9uKFwiZXJyb3JcIiwgdGhpcy5vbldvcmtlckVycm9yKVxuICAgIHRoaXMud29ya2VyLm9uKFwiZXhpdFwiLCB0aGlzLm9uV29ya2VyRXhpdClcbiAgICB0aGlzLndvcmtlci5vbihcIm1lc3NhZ2VcIiwgdGhpcy5vbldvcmtlck1lc3NhZ2UpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZXJ2ZXItY2xpZW50LmpzXCIpLmRlZmF1bHR9IGNsaWVudCAtIENsaWVudCBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgYWRkU29ja2V0Q29ubmVjdGlvbihjbGllbnQpIHtcbiAgICBjb25zdCBjbGllbnRDb3VudCA9IGNsaWVudC5jbGllbnRDb3VudFxuXG4gICAgaWYgKCF0aGlzLndvcmtlcikgdGhyb3cgbmV3IEVycm9yKFwiV29ya2VyIG5vdCBpbml0aWFsaXplZFwiKVxuXG4gICAgY2xpZW50LnNldFdvcmtlcih0aGlzLndvcmtlcilcbiAgICBjbGllbnQubGlzdGVuKClcblxuICAgIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gPSBjbGllbnRcbiAgICB0aGlzLndvcmtlci5wb3N0TWVzc2FnZSh7Y29tbWFuZDogXCJuZXdDbGllbnRcIiwgY2xpZW50Q291bnQsIHJlbW90ZUFkZHJlc3M6IGNsaWVudC5yZW1vdGVBZGRyZXNzfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2FueX0gZXJyb3IgLSBFcnJvciBpbnN0YW5jZS5cbiAgICovXG4gIG9uV29ya2VyRXJyb3IgPSAoZXJyb3IpID0+IHtcbiAgICB0aGlzLmxvZ2dlci5lcnJvcihgVmVsb2Npb3VzIHdvcmtlciAke3RoaXMud29ya2VyQ291bnR9IGVycm9yYCwgZXJyb3IpXG4gICAgdm9pZCB0aGlzLl9jbG9zZUFsbENsaWVudHMoKVxuICAgIHRocm93IGVuc3VyZUVycm9yKGVycm9yKSAvLyBUaHJvd3Mgb3JpZ2luYWwgZXJyb3Igd2l0aCBiYWNrdHJhY2UgYW5kIGV2ZXJ5dGhpbmcgaW50byB0aGUgY29uc29sZVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlIC0gQ29kZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgb25Xb3JrZXJFeGl0ID0gKGNvZGUpID0+IHtcbiAgICB0aGlzLl9oYXNFeGl0ZWQgPSB0cnVlXG5cbiAgICBpZiAoY29kZSAhPT0gMCAmJiAhdGhpcy5fc3RvcHBpbmcpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBWZWxvY2lvdXMgd29ya2VyICR7dGhpcy53b3JrZXJDb3VudH0gZXhpdGVkIHVuZXhwZWN0ZWRseSB3aXRoIGNvZGUgJHtjb2RlfWApXG4gICAgICB2b2lkIHRoaXMuX2Nsb3NlQWxsQ2xpZW50cygpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENsaWVudCB3b3JrZXIgc3RvcHBlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9YClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoKCkgPT4gYENsaWVudCB3b3JrZXIgc3RvcHBlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9YClcbiAgICB9XG5cbiAgICB0aGlzLnVucmVnaXN0ZXJGcm9tRXZlbnRzSG9zdD8uKClcbiAgICB0aGlzLl9zdG9wUmVzb2x2ZT8uKClcbiAgICB0aGlzLl9zdG9wUmVzb2x2ZSA9IG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBfY2xvc2VBbGxDbGllbnRzKCkge1xuICAgIGNvbnN0IGNsaWVudHMgPSBPYmplY3QudmFsdWVzKHRoaXMuY2xpZW50cylcbiAgICB0aGlzLmNsaWVudHMgPSB7fVxuXG4gICAgZm9yIChjb25zdCBjbGllbnQgb2YgY2xpZW50cykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdm9pZCBjbGllbnQuZW5kKClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJGYWlsZWQgdG8gY2xvc2UgY2xpZW50IGFmdGVyIHdvcmtlciBleGl0XCIsIGVycm9yKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZGF0YSAtIERhdGEgcGF5bG9hZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGEuY29tbWFuZCAtIENvbW1hbmQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF0YS5jbGllbnRDb3VudF0gLSBDbGllbnQgY291bnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgVWludDhBcnJheX0gW2RhdGEub3V0cHV0XSAtIE91dHB1dC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtkYXRhLmNoYW5uZWxdIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0ge2FueX0gW2RhdGEucGF5bG9hZF0gLSBQYXlsb2FkIGRhdGEuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIG9uV29ya2VyTWVzc2FnZSA9IChkYXRhKSA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJXb3JrZXIgbWVzc2FnZVwiLCBzdW1tYXJpemVXb3JrZXJNZXNzYWdlKGRhdGEpKVxuXG4gICAgY29uc3Qge2NvbW1hbmR9ID0gZGF0YVxuXG5cbiAgICBpZiAoY29tbWFuZCA9PSBcInN0YXJ0ZWRcIikge1xuICAgICAgaWYgKHRoaXMub25TdGFydENhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMub25TdGFydENhbGxiYWNrKG51bGwpXG4gICAgICB9XG5cbiAgICAgIHRoaXMub25TdGFydENhbGxiYWNrID0gbnVsbFxuICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PSBcImNsaWVudE91dHB1dFwiKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkNMSUVOVCBPVVRQVVRcIiwgc3VtbWFyaXplV29ya2VyTWVzc2FnZShkYXRhKSlcblxuICAgICAgY29uc3Qge2NsaWVudENvdW50LCBvdXRwdXR9ID0gZGF0YVxuICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jbGllbnRzW2NsaWVudENvdW50XVxuXG4gICAgICBpZiAoIWNsaWVudCkge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCgpID0+IFtgVmVsb2Npb3VzIHdvcmtlciAke3RoaXMud29ya2VyQ291bnR9IHByb2R1Y2VkIG91dHB1dCBmb3IgbWlzc2luZyBjbGllbnQgJHtjbGllbnRDb3VudH1gLCBkYXRhXSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChvdXRwdXQgIT09IG51bGwpIHtcbiAgICAgICAgdm9pZCBjbGllbnQuc2VuZChvdXRwdXQpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCgpID0+IFtcIkNsaWVudCBvdXRwdXQgZGVsaXZlcmVkXCIsIHtcbiAgICAgICAgICAgIGNsaWVudENvdW50LFxuICAgICAgICAgICAgb3V0cHV0TGVuZ3RoOiB0eXBlb2Ygb3V0cHV0ID09PSBcInN0cmluZ1wiID8gb3V0cHV0Lmxlbmd0aCA6IG91dHB1dC5ieXRlTGVuZ3RoLFxuICAgICAgICAgICAgd29ya2VyQ291bnQ6IHRoaXMud29ya2VyQ291bnRcbiAgICAgICAgICB9XSlcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoKCkgPT4gW1wiRmFpbGVkIHRvIGRlbGl2ZXIgY2xpZW50IG91dHB1dFwiLCB7XG4gICAgICAgICAgICBjbGllbnRDb3VudCxcbiAgICAgICAgICAgIHdvcmtlckNvdW50OiB0aGlzLndvcmtlckNvdW50XG4gICAgICAgICAgfSwgZXJyb3JdKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PSBcImNsaWVudENsb3NlXCIpIHtcbiAgICAgIGNvbnN0IHtjbGllbnRDb3VudH0gPSBkYXRhXG4gICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNsaWVudHNbY2xpZW50Q291bnRdXG5cbiAgICAgIGlmICghY2xpZW50KSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCgpID0+IFtgVmVsb2Npb3VzIHdvcmtlciAke3RoaXMud29ya2VyQ291bnR9IHJlcXVlc3RlZCBjbG9zZSBmb3IgbWlzc2luZyBjbGllbnQgJHtjbGllbnRDb3VudH1gLCBkYXRhXSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHZvaWQgY2xpZW50LmVuZCgpXG4gICAgICBkZWxldGUgdGhpcy5jbGllbnRzW2NsaWVudENvdW50XVxuICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PSBcInNodXRkb3duQ29tcGxldGVcIikge1xuICAgICAgdGhpcy5fc3RvcFJlc29sdmU/LigpXG4gICAgICB0aGlzLl9zdG9wUmVzb2x2ZSA9IG51bGxcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gXCJ3ZWJzb2NrZXRQdWJsaXNoXCIpIHtcbiAgICAgIGNvbnN0IHtjaGFubmVsLCBwYXlsb2FkfSA9IGRhdGFcblxuICAgICAgd2Vic29ja2V0RXZlbnRzSG9zdC5wdWJsaXNoKHtjaGFubmVsLCBwYXlsb2FkfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbW1hbmQ6ICR7Y29tbWFuZH1gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHN0b3BwZWQuXG4gICAqL1xuICBzdG9wKCkge1xuICAgIGlmICghdGhpcy53b3JrZXIpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgIGlmICh0aGlzLl9oYXNFeGl0ZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuXG4gICAgdGhpcy5fc3RvcHBpbmcgPSB0cnVlXG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuX3N0b3BSZXNvbHZlID0gcmVzb2x2ZVxuICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6IFwic2h1dGRvd25cIn0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jaGFubmVsIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0ge2FueX0gYXJncy5wYXlsb2FkIC0gUGF5bG9hZCBkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBkaXNwYXRjaFdlYnNvY2tldEV2ZW50KHtjaGFubmVsLCBwYXlsb2FkfSkge1xuICAgIC8vIFRlc3QgYW5kIHNodXRkb3duIHBhdGhzIGNhbiBsZWF2ZSBhIHJlZ2lzdGVyZWQgaGFuZGxlciB3aXRob3V0IGEgbGl2ZSB3b3JrZXItdGhyZWFkIHRyYW5zcG9ydC5cbiAgICBpZiAoIXRoaXMud29ya2VyIHx8IHR5cGVvZiB0aGlzLndvcmtlci5wb3N0TWVzc2FnZSAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm5cblxuICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHtjaGFubmVsLCBjb21tYW5kOiBcIndlYnNvY2tldEV2ZW50XCIsIHBheWxvYWR9KVxuICB9XG59XG4iXX0=
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd29ya2VyLWhhbmRsZXIvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyQyxPQUFPLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQTtBQUNyRCxPQUFPLG1CQUFtQixNQUFNLDZCQUE2QixDQUFBO0FBRTdEOzs7Ozs7R0FNRztBQUNILFNBQVMsc0JBQXNCLENBQUMsSUFBSTtJQUNsQyxNQUFNLEVBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFDLEdBQUcsSUFBSSxDQUFBO0lBRTlCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sTUFBTSxDQUFBO0lBQ2hDLE1BQU0sWUFBWSxHQUFHLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFDN0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1FBQ2YsQ0FBQyxDQUFDLENBQUMsTUFBTSxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFbEUsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLElBQUksRUFBRSxVQUFVO1NBQ2pCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQUM1Qzs7OztPQUlHO0lBQ0gsWUFBWSxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFFbEMsb0VBQW9FO1FBQ3BF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c0IsQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUM7UUFDdkMsaUdBQWlHO1FBQ2pHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEtBQUssVUFBVTtZQUFFLE9BQU07UUFFekUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUE7SUFDeEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uLy4uL2xvZ2dlci5qc1wiXG5pbXBvcnQge1dvcmtlcn0gZnJvbSBcIndvcmtlcl90aHJlYWRzXCJcbmltcG9ydCBlbnN1cmVFcnJvciBmcm9tIFwiLi4vLi4vdXRpbHMvZW5zdXJlLWVycm9yLmpzXCJcbmltcG9ydCB3ZWJzb2NrZXRFdmVudHNIb3N0IGZyb20gXCIuLi93ZWJzb2NrZXQtZXZlbnRzLWhvc3QuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhIC0gV29ya2VyIG1lc3NhZ2UgcGF5bG9hZC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhLmNvbW1hbmQgLSBDb21tYW5kIG5hbWUuXG4gKiBAcGFyYW0ge251bWJlcn0gW2RhdGEuY2xpZW50Q291bnRdIC0gQ2xpZW50IGNvdW50LlxuICogQHBhcmFtIHtzdHJpbmcgfCBVaW50OEFycmF5fSBbZGF0YS5vdXRwdXRdIC0gT3V0cHV0IGNodW5rLlxuICogQHJldHVybnMge29iamVjdH0gLSBMb2ctc2FmZSBtZXNzYWdlIGRldGFpbHMuXG4gKi9cbmZ1bmN0aW9uIHN1bW1hcml6ZVdvcmtlck1lc3NhZ2UoZGF0YSkge1xuICBjb25zdCB7b3V0cHV0LCAuLi5yZXN0fSA9IGRhdGFcblxuICBpZiAob3V0cHV0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcmVzdFxuICB9XG5cbiAgY29uc3Qgb3V0cHV0VHlwZSA9IHR5cGVvZiBvdXRwdXRcbiAgY29uc3Qgb3V0cHV0TGVuZ3RoID0gdHlwZW9mIG91dHB1dCA9PT0gXCJzdHJpbmdcIlxuICAgID8gb3V0cHV0Lmxlbmd0aFxuICAgIDogKG91dHB1dCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgPyBvdXRwdXQuYnl0ZUxlbmd0aCA6IHVuZGVmaW5lZClcblxuICByZXR1cm4ge1xuICAgIC4uLnJlc3QsXG4gICAgb3V0cHV0OiB7XG4gICAgICBsZW5ndGg6IG91dHB1dExlbmd0aCxcbiAgICAgIHR5cGU6IG91dHB1dFR5cGVcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzSHR0cFNlcnZlcldvcmtlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGFyZ3Mud29ya2VyQ291bnQgLSBXb3JrZXIgY291bnQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgd29ya2VyQ291bnR9KSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8bnVtYmVyLCBpbXBvcnQoXCIuLi9zZXJ2ZXItY2xpZW50LmpzXCIpLmRlZmF1bHQ+fSAqL1xuICAgIHRoaXMuY2xpZW50cyA9IHt9XG5cbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcbiAgICB0aGlzLndvcmtlckNvdW50ID0gd29ya2VyQ291bnRcbiAgICB0aGlzLnVucmVnaXN0ZXJGcm9tRXZlbnRzSG9zdCA9IHdlYnNvY2tldEV2ZW50c0hvc3QucmVnaXN0ZXIodGhpcylcbiAgICB0aGlzLl9zdG9wcGluZyA9IGZhbHNlXG4gIH1cblxuICBzdGFydCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMub25TdGFydENhbGxiYWNrID0gcmVzb2x2ZVxuICAgICAgdGhpcy5fc3Bhd25Xb3JrZXIoKVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBfc3Bhd25Xb3JrZXIoKSB7XG4gICAgY29uc3QgZGVidWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZGVidWdcbiAgICBjb25zdCBkaXJlY3RvcnkgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0RGlyZWN0b3J5KClcbiAgICBjb25zdCB2ZWxvY2lvdXNQYXRoID0gYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmdldEVudmlyb25tZW50SGFuZGxlcigpLmdldFZlbG9jaW91c1BhdGgoKVxuXG4gICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKGAke3ZlbG9jaW91c1BhdGh9L3NyYy9odHRwLXNlcnZlci93b3JrZXItaGFuZGxlci93b3JrZXItc2NyaXB0LmpzYCwge1xuICAgICAgd29ya2VyRGF0YToge1xuICAgICAgICBkZWJ1ZyxcbiAgICAgICAgZGlyZWN0b3J5LFxuICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5jb25maWd1cmF0aW9uLmdldEVudmlyb25tZW50KCksXG4gICAgICAgIHdvcmtlckNvdW50OiB0aGlzLndvcmtlckNvdW50XG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLndvcmtlci5vbihcImVycm9yXCIsIHRoaXMub25Xb3JrZXJFcnJvcilcbiAgICB0aGlzLndvcmtlci5vbihcImV4aXRcIiwgdGhpcy5vbldvcmtlckV4aXQpXG4gICAgdGhpcy53b3JrZXIub24oXCJtZXNzYWdlXCIsIHRoaXMub25Xb3JrZXJNZXNzYWdlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VydmVyLWNsaWVudC5qc1wiKS5kZWZhdWx0fSBjbGllbnQgLSBDbGllbnQgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIGFkZFNvY2tldENvbm5lY3Rpb24oY2xpZW50KSB7XG4gICAgY29uc3QgY2xpZW50Q291bnQgPSBjbGllbnQuY2xpZW50Q291bnRcblxuICAgIGlmICghdGhpcy53b3JrZXIpIHRocm93IG5ldyBFcnJvcihcIldvcmtlciBub3QgaW5pdGlhbGl6ZWRcIilcblxuICAgIGNsaWVudC5zZXRXb3JrZXIodGhpcy53b3JrZXIpXG4gICAgY2xpZW50Lmxpc3RlbigpXG5cbiAgICB0aGlzLmNsaWVudHNbY2xpZW50Q291bnRdID0gY2xpZW50XG4gICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6IFwibmV3Q2xpZW50XCIsIGNsaWVudENvdW50LCByZW1vdGVBZGRyZXNzOiBjbGllbnQucmVtb3RlQWRkcmVzc30pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHthbnl9IGVycm9yIC0gRXJyb3IgaW5zdGFuY2UuXG4gICAqL1xuICBvbldvcmtlckVycm9yID0gKGVycm9yKSA9PiB7XG4gICAgdGhpcy5sb2dnZXIuZXJyb3IoYFZlbG9jaW91cyB3b3JrZXIgJHt0aGlzLndvcmtlckNvdW50fSBlcnJvcmAsIGVycm9yKVxuICAgIHZvaWQgdGhpcy5fY2xvc2VBbGxDbGllbnRzKClcbiAgICB0aHJvdyBlbnN1cmVFcnJvcihlcnJvcikgLy8gVGhyb3dzIG9yaWdpbmFsIGVycm9yIHdpdGggYmFja3RyYWNlIGFuZCBldmVyeXRoaW5nIGludG8gdGhlIGNvbnNvbGVcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gY29kZSAtIENvZGUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIG9uV29ya2VyRXhpdCA9IChjb2RlKSA9PiB7XG4gICAgdGhpcy5faGFzRXhpdGVkID0gdHJ1ZVxuXG4gICAgaWYgKGNvZGUgIT09IDAgJiYgIXRoaXMuX3N0b3BwaW5nKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgVmVsb2Npb3VzIHdvcmtlciAke3RoaXMud29ya2VyQ291bnR9IGV4aXRlZCB1bmV4cGVjdGVkbHkgd2l0aCBjb2RlICR7Y29kZX1gKVxuICAgICAgdm9pZCB0aGlzLl9jbG9zZUFsbENsaWVudHMoKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbGllbnQgd29ya2VyIHN0b3BwZWQgd2l0aCBleGl0IGNvZGUgJHtjb2RlfWApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCgpID0+IGBDbGllbnQgd29ya2VyIHN0b3BwZWQgd2l0aCBleGl0IGNvZGUgJHtjb2RlfWApXG4gICAgfVxuXG4gICAgdGhpcy51bnJlZ2lzdGVyRnJvbUV2ZW50c0hvc3Q/LigpXG4gICAgdGhpcy5fc3RvcFJlc29sdmU/LigpXG4gICAgdGhpcy5fc3RvcFJlc29sdmUgPSBudWxsXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgX2Nsb3NlQWxsQ2xpZW50cygpIHtcbiAgICBjb25zdCBjbGllbnRzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmNsaWVudHMpXG4gICAgdGhpcy5jbGllbnRzID0ge31cblxuICAgIGZvciAoY29uc3QgY2xpZW50IG9mIGNsaWVudHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZvaWQgY2xpZW50LmVuZCgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwiRmFpbGVkIHRvIGNsb3NlIGNsaWVudCBhZnRlciB3b3JrZXIgZXhpdFwiLCBlcnJvcilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhLmNvbW1hbmQgLSBDb21tYW5kLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2RhdGEuY2xpZW50Q291bnRdIC0gQ2xpZW50IGNvdW50LlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFVpbnQ4QXJyYXl9IFtkYXRhLm91dHB1dF0gLSBPdXRwdXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZGF0YS5jaGFubmVsXSAtIENoYW5uZWwgbmFtZS5cbiAgICogQHBhcmFtIHthbnl9IFtkYXRhLnBheWxvYWRdIC0gUGF5bG9hZCBkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBvbldvcmtlck1lc3NhZ2UgPSAoZGF0YSkgPT4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiV29ya2VyIG1lc3NhZ2VcIiwgc3VtbWFyaXplV29ya2VyTWVzc2FnZShkYXRhKSlcblxuICAgIGNvbnN0IHtjb21tYW5kfSA9IGRhdGFcblxuXG4gICAgaWYgKGNvbW1hbmQgPT0gXCJzdGFydGVkXCIpIHtcbiAgICAgIGlmICh0aGlzLm9uU3RhcnRDYWxsYmFjaykge1xuICAgICAgICB0aGlzLm9uU3RhcnRDYWxsYmFjayhudWxsKVxuICAgICAgfVxuXG4gICAgICB0aGlzLm9uU3RhcnRDYWxsYmFjayA9IG51bGxcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gXCJjbGllbnRPdXRwdXRcIikge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJDTElFTlQgT1VUUFVUXCIsIHN1bW1hcml6ZVdvcmtlck1lc3NhZ2UoZGF0YSkpXG5cbiAgICAgIGNvbnN0IHtjbGllbnRDb3VudCwgb3V0cHV0fSA9IGRhdGFcbiAgICAgIGNvbnN0IGNsaWVudCA9IHR5cGVvZiBjbGllbnRDb3VudCA9PT0gXCJudW1iZXJcIiA/IHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gOiB1bmRlZmluZWRcblxuICAgICAgaWYgKCFjbGllbnQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybigoKSA9PiBbYFZlbG9jaW91cyB3b3JrZXIgJHt0aGlzLndvcmtlckNvdW50fSBwcm9kdWNlZCBvdXRwdXQgZm9yIG1pc3NpbmcgY2xpZW50ICR7Y2xpZW50Q291bnR9YCwgZGF0YV0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAob3V0cHV0ICE9PSBudWxsICYmIG91dHB1dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dExlbmd0aCA9IHR5cGVvZiBvdXRwdXQgPT09IFwic3RyaW5nXCIgPyBvdXRwdXQubGVuZ3RoIDogb3V0cHV0LmJ5dGVMZW5ndGhcblxuICAgICAgICB2b2lkIGNsaWVudC5zZW5kKG91dHB1dCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoKCkgPT4gW1wiQ2xpZW50IG91dHB1dCBkZWxpdmVyZWRcIiwge1xuICAgICAgICAgICAgY2xpZW50Q291bnQsXG4gICAgICAgICAgICBvdXRwdXRMZW5ndGgsXG4gICAgICAgICAgICB3b3JrZXJDb3VudDogdGhpcy53b3JrZXJDb3VudFxuICAgICAgICAgIH1dKVxuICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigoKSA9PiBbXCJGYWlsZWQgdG8gZGVsaXZlciBjbGllbnQgb3V0cHV0XCIsIHtcbiAgICAgICAgICAgIGNsaWVudENvdW50LFxuICAgICAgICAgICAgd29ya2VyQ291bnQ6IHRoaXMud29ya2VyQ291bnRcbiAgICAgICAgICB9LCBlcnJvcl0pXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb21tYW5kID09IFwiY2xpZW50Q2xvc2VcIikge1xuICAgICAgY29uc3Qge2NsaWVudENvdW50fSA9IGRhdGFcbiAgICAgIGNvbnN0IGNsaWVudCA9IHR5cGVvZiBjbGllbnRDb3VudCA9PT0gXCJudW1iZXJcIiA/IHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gOiB1bmRlZmluZWRcblxuICAgICAgaWYgKCFjbGllbnQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoKCkgPT4gW2BWZWxvY2lvdXMgd29ya2VyICR7dGhpcy53b3JrZXJDb3VudH0gcmVxdWVzdGVkIGNsb3NlIGZvciBtaXNzaW5nIGNsaWVudCAke2NsaWVudENvdW50fWAsIGRhdGFdKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdm9pZCBjbGllbnQuZW5kKClcblxuICAgICAgaWYgKHR5cGVvZiBjbGllbnRDb3VudCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBkZWxldGUgdGhpcy5jbGllbnRzW2NsaWVudENvdW50XVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PSBcInNodXRkb3duQ29tcGxldGVcIikge1xuICAgICAgdGhpcy5fc3RvcFJlc29sdmU/LigpXG4gICAgICB0aGlzLl9zdG9wUmVzb2x2ZSA9IG51bGxcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gXCJ3ZWJzb2NrZXRQdWJsaXNoXCIpIHtcbiAgICAgIGNvbnN0IHtjaGFubmVsLCBwYXlsb2FkfSA9IGRhdGFcblxuICAgICAgaWYgKHR5cGVvZiBjaGFubmVsICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIldvcmtlciB3ZWJzb2NrZXQgcHVibGlzaCBjaGFubmVsIG11c3QgYmUgYSBzdHJpbmdcIilcbiAgICAgIH1cblxuICAgICAgd2Vic29ja2V0RXZlbnRzSG9zdC5wdWJsaXNoKHtjaGFubmVsLCBwYXlsb2FkfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbW1hbmQ6ICR7Y29tbWFuZH1gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHN0b3BwZWQuXG4gICAqL1xuICBzdG9wKCkge1xuICAgIGlmICghdGhpcy53b3JrZXIpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgIGlmICh0aGlzLl9oYXNFeGl0ZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuXG4gICAgdGhpcy5fc3RvcHBpbmcgPSB0cnVlXG4gICAgY29uc3Qgd29ya2VyID0gdGhpcy53b3JrZXJcblxuICAgIGlmICghd29ya2VyKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5fc3RvcFJlc29sdmUgPSByZXNvbHZlXG4gICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6IFwic2h1dGRvd25cIn0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jaGFubmVsIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0ge2FueX0gYXJncy5wYXlsb2FkIC0gUGF5bG9hZCBkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBkaXNwYXRjaFdlYnNvY2tldEV2ZW50KHtjaGFubmVsLCBwYXlsb2FkfSkge1xuICAgIC8vIFRlc3QgYW5kIHNodXRkb3duIHBhdGhzIGNhbiBsZWF2ZSBhIHJlZ2lzdGVyZWQgaGFuZGxlciB3aXRob3V0IGEgbGl2ZSB3b3JrZXItdGhyZWFkIHRyYW5zcG9ydC5cbiAgICBpZiAoIXRoaXMud29ya2VyIHx8IHR5cGVvZiB0aGlzLndvcmtlci5wb3N0TWVzc2FnZSAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm5cblxuICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKHtjaGFubmVsLCBjb21tYW5kOiBcIndlYnNvY2tldEV2ZW50XCIsIHBheWxvYWR9KVxuICB9XG59XG4iXX0=
|
|
@@ -5,7 +5,7 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
5
5
|
* @param {{debug: boolean, directory: string, environment: string, workerCount: number}} args.workerData - Worker configuration details.
|
|
6
6
|
*/
|
|
7
7
|
constructor({ parentPort, workerData }: {
|
|
8
|
-
parentPort: import("worker_threads").MessagePort;
|
|
8
|
+
parentPort: import("node:worker_threads").MessagePort | null;
|
|
9
9
|
workerData: {
|
|
10
10
|
debug: boolean;
|
|
11
11
|
directory: string;
|
|
@@ -16,7 +16,7 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
16
16
|
/** @type {Record<number, Client>} */
|
|
17
17
|
clients: Record<number, Client>;
|
|
18
18
|
logger: Logger;
|
|
19
|
-
parentPort: import("worker_threads").MessagePort;
|
|
19
|
+
parentPort: import("node:worker_threads").MessagePort;
|
|
20
20
|
workerData: {
|
|
21
21
|
debug: boolean;
|
|
22
22
|
directory: string;
|
|
@@ -29,9 +29,9 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
29
29
|
*/
|
|
30
30
|
initialize(): Promise<void>;
|
|
31
31
|
/** @type {import("../../configuration.js").default} */
|
|
32
|
-
configuration: import("../../configuration.js").default;
|
|
33
|
-
websocketEvents: WebsocketEvents;
|
|
34
|
-
application: Application;
|
|
32
|
+
configuration: import("../../configuration.js").default | undefined;
|
|
33
|
+
websocketEvents: WebsocketEvents | undefined;
|
|
34
|
+
application: Application | undefined;
|
|
35
35
|
/**
|
|
36
36
|
* @param {object} data - Data payload.
|
|
37
37
|
* @param {string} data.command - Command.
|
|
@@ -43,10 +43,10 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
43
43
|
*/
|
|
44
44
|
onCommand: (data: {
|
|
45
45
|
command: string;
|
|
46
|
-
chunk?: Buffer | Uint8Array |
|
|
47
|
-
remoteAddress?: string;
|
|
48
|
-
clientCount?: number;
|
|
49
|
-
channel?: string;
|
|
46
|
+
chunk?: string | Buffer<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | undefined;
|
|
47
|
+
remoteAddress?: string | undefined;
|
|
48
|
+
clientCount?: number | undefined;
|
|
49
|
+
channel?: string | undefined;
|
|
50
50
|
payload?: any;
|
|
51
51
|
}) => Promise<void>;
|
|
52
52
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-thread.d.ts","sourceRoot":"","sources":["../../../../src/http-server/worker-handler/worker-thread.js"],"names":[],"mappings":"AAqBA;IACE;;;;OAIG;IACH,wCAHG;QAAkD,UAAU,EAApD,
|
|
1
|
+
{"version":3,"file":"worker-thread.d.ts","sourceRoot":"","sources":["../../../../src/http-server/worker-handler/worker-thread.js"],"names":[],"mappings":"AAqBA;IACE;;;;OAIG;IACH,wCAHG;QAAkD,UAAU,EAApD,gDAAmC;QACiD,UAAU,EAA9F;YAAC,KAAK,EAAE,OAAO,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAC;KACvF,EAwBA;IAlBC,qCAAqC;IACrC,SADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAChB;IAEjB,eAA8B;IAC9B,sDAA4B;IAC5B;eAZiB,OAAO;mBAAa,MAAM;qBAAe,MAAM;qBAAe,MAAM;MAYzD;IAC5B,oBAA8B;IAchC;;OAEG;IACH,cAFa,OAAO,CAAC,IAAI,CAAC,CA0BzB;IAnBC,uDAAuD;IACvD,oEAAgD;IAUhD,6CAAwG;IAGxG,qCAA2E;IAO7E;;;;;;;;OAQG;IACH,YAAmB,MAPhB;QAAqB,OAAO,EAApB,MAAM;QAC8B,KAAK;QAC3B,aAAa;QACb,WAAW;QACX,OAAO;QACV,OAAO,GAAlB,GAAG;KAES,mBA0DtB;IAED;;;;;OAKG;IACH,8CAJG;QAAqB,OAAO,EAApB,MAAM;QACI,OAAO,EAAjB,GAAG;KACX,GAAU,OAAO,CAAC,IAAI,CAAC,CAgBzB;CACF;mBAxKkB,oBAAoB;mBAGpB,iBAAiB;4BAER,wBAAwB;wBAN5B,sBAAsB"}
|
|
@@ -52,15 +52,16 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
52
52
|
this.configuration = configurationImport.default;
|
|
53
53
|
if (!this.configuration)
|
|
54
54
|
throw new Error(`Configuration couldn't be loaded from: ${configurationPath}`);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
const configuration = this.configuration;
|
|
56
|
+
configuration.debug = debug === true;
|
|
57
|
+
configuration.setEnvironment(environment);
|
|
58
|
+
configuration.setCurrent();
|
|
59
|
+
await this.logger.debug(() => ["Worker thread configuration loaded", { debug: configuration.debug, workerCount: this.workerCount }]);
|
|
59
60
|
this.websocketEvents = new WebsocketEvents({ parentPort: this.parentPort, workerCount: this.workerCount });
|
|
60
|
-
|
|
61
|
-
this.application = new Application({ configuration
|
|
62
|
-
if (
|
|
63
|
-
await
|
|
61
|
+
configuration.setWebsocketEvents(this.websocketEvents);
|
|
62
|
+
this.application = new Application({ configuration, type: "worker-handler" });
|
|
63
|
+
if (configuration.isInitialized()) {
|
|
64
|
+
await configuration.initialize({ type: "worker-handler" });
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
/**
|
|
@@ -79,6 +80,8 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
79
80
|
if (!this.configuration)
|
|
80
81
|
throw new Error("Configuration not initialized");
|
|
81
82
|
const { clientCount, remoteAddress } = data;
|
|
83
|
+
if (typeof clientCount !== "number")
|
|
84
|
+
throw new Error("clientCount must be a number");
|
|
82
85
|
const client = new Client({
|
|
83
86
|
clientCount,
|
|
84
87
|
configuration: this.configuration,
|
|
@@ -98,12 +101,17 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
98
101
|
const { chunk, clientCount } = data;
|
|
99
102
|
if (!chunk)
|
|
100
103
|
throw new Error("No chunk given");
|
|
101
|
-
const client = digg(this.clients, clientCount);
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
const client = /** @type {Client | undefined} */ (digg(this.clients, clientCount));
|
|
105
|
+
if (!client)
|
|
106
|
+
throw new Error(`Client not found for clientWrite: ${clientCount}`);
|
|
107
|
+
const clientChunk = typeof chunk === "string" ? Buffer.from(chunk) : Buffer.from(chunk);
|
|
108
|
+
await this.logger.debug(() => ["Sending clientWrite to parser", { clientCount, ...summarizeClientWriteChunk(clientChunk) }]);
|
|
109
|
+
client.onWrite(clientChunk);
|
|
104
110
|
}
|
|
105
111
|
else if (command == "websocketEvent") {
|
|
106
112
|
const { channel, payload } = data;
|
|
113
|
+
if (typeof channel !== "string")
|
|
114
|
+
throw new Error("No channel given");
|
|
107
115
|
await this.broadcastWebsocketEvent({ channel, payload });
|
|
108
116
|
}
|
|
109
117
|
else if (command == "shutdown") {
|
|
@@ -126,7 +134,9 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
126
134
|
async broadcastWebsocketEvent({ channel, payload }) {
|
|
127
135
|
const sendTasks = [];
|
|
128
136
|
for (const clientKey of Object.keys(this.clients)) {
|
|
129
|
-
const client = this.clients[clientKey];
|
|
137
|
+
const client = this.clients[Number(clientKey)];
|
|
138
|
+
if (!client)
|
|
139
|
+
continue;
|
|
130
140
|
const session = client.websocketSession;
|
|
131
141
|
if (!session)
|
|
132
142
|
continue;
|
|
@@ -135,4 +145,4 @@ export default class VelociousHttpServerWorkerHandlerWorkerThread {
|
|
|
135
145
|
await Promise.all(sendTasks);
|
|
136
146
|
}
|
|
137
147
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLXRocmVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9odHRwLXNlcnZlci93b3JrZXItaGFuZGxlci93b3JrZXItdGhyZWFkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQTtBQUM5QyxPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQTtBQUN2QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sV0FBVyxNQUFNLHVCQUF1QixDQUFBO0FBQy9DLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8saUJBQWlCLE1BQU0sb0NBQW9DLENBQUE7QUFDbEUsT0FBTyxlQUFlLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQ7OztHQUdHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FBQyxLQUFLO0lBQ3RDLE1BQU0sZUFBZSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBRTVJLE9BQU8sRUFBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FBQTtBQUNsRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sT0FBTyw0Q0FBNEM7SUFDL0Q7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBRTFELE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxVQUFVLENBQUE7UUFFaEMscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFFOUIsVUFBVSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBRXJELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUE7WUFFckUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLFdBQVcsVUFBVSxDQUFDLENBQUE7Z0JBQ2hFLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtZQUM5QyxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFVBQVU7UUFDZCxNQUFNLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQ3ZELE1BQU0saUJBQWlCLEdBQUcsR0FBRyxTQUFTLDhCQUE4QixDQUFBO1FBQ3BFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFBO1FBRTlFLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQTtRQUVoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxpQkFBaUIsRUFBRSxDQUFDLENBQUE7UUFFdkcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQTtRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQy9CLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxvQ0FBb0MsRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUN2SSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUMsQ0FBQyxDQUFBO1FBQ3hHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBRTNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO1FBRS9GLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxXQUFXLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7UUFFNUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUU1QixJQUFJLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO1lBRXpFLE1BQU0sRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDLEdBQUcsSUFBSSxDQUFBO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDO2dCQUN4QixXQUFXO2dCQUNYLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDakMsYUFBYTthQUNkLENBQUMsQ0FBQTtZQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUE7WUFDN0UsQ0FBQyxDQUFDLENBQUE7WUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsb0VBQW9FLENBQUMsQ0FBQTtnQkFDckcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO1lBQzVFLENBQUMsQ0FBQyxDQUFBO1lBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUE7UUFDcEMsQ0FBQzthQUFNLElBQUksT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtZQUVwRCxNQUFNLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQTtZQUNqQyxJQUFJLENBQUMsS0FBSztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFFOUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLCtCQUErQixFQUFFLEVBQUMsV0FBVyxFQUFFLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7WUFFcEgsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QixDQUFDO2FBQU0sSUFBSSxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQTtZQUUvQixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBQ3hELENBQUM7YUFBTSxJQUFJLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUE7WUFDckQsQ0FBQztZQUVELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQTtZQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNoRCxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQTtRQUVwQixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN0QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUE7WUFFdkMsSUFBSSxDQUFDLE9BQU87Z0JBQUUsU0FBUTtZQUV0QixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUVELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEFwcGxpY2F0aW9uIGZyb20gXCIuLi8uLi9hcHBsaWNhdGlvbi5qc1wiXG5pbXBvcnQgQ2xpZW50IGZyb20gXCIuLi9jbGllbnQvaW5kZXguanNcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBlcnJvckxvZ2dlciBmcm9tIFwiLi4vLi4vZXJyb3ItbG9nZ2VyLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uLy4uL2xvZ2dlci5qc1wiXG5pbXBvcnQgdG9JbXBvcnRTcGVjaWZpZXIgZnJvbSBcIi4uLy4uL3V0aWxzL3RvLWltcG9ydC1zcGVjaWZpZXIuanNcIlxuaW1wb3J0IFdlYnNvY2tldEV2ZW50cyBmcm9tIFwiLi4vd2Vic29ja2V0LWV2ZW50cy5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtCdWZmZXIgfCBVaW50OEFycmF5IHwgc3RyaW5nfSBjaHVuayAtIENsaWVudCBpbnB1dCBwYXlsb2FkLlxuICogQHJldHVybnMge3tsZW5ndGg6IG51bWJlciwgcHJldmlldzogc3RyaW5nfX0gLSBDaHVuayBzdW1tYXJ5IGZvciBsb2dnaW5nLlxuICovXG5mdW5jdGlvbiBzdW1tYXJpemVDbGllbnRXcml0ZUNodW5rKGNodW5rKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRDaHVuayA9IHR5cGVvZiBjaHVuayA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGNodW5rKSA6IEJ1ZmZlci5mcm9tKGNodW5rKVxuICBjb25zdCBwcmV2aWV3ID0gbm9ybWFsaXplZENodW5rLnRvU3RyaW5nKFwibGF0aW4xXCIsIDAsIE1hdGgubWluKG5vcm1hbGl6ZWRDaHVuay5sZW5ndGgsIDE2MCkpLnJlcGxhY2VBbGwoXCJcXHJcIiwgXCJcXFxcclwiKS5yZXBsYWNlQWxsKFwiXFxuXCIsIFwiXFxcXG5cIilcblxuICByZXR1cm4ge2xlbmd0aDogbm9ybWFsaXplZENodW5rLmxlbmd0aCwgcHJldmlld31cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzSHR0cFNlcnZlcldvcmtlckhhbmRsZXJXb3JrZXJUaHJlYWQge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCJ3b3JrZXJfdGhyZWFkc1wiKS5wYXJlbnRQb3J0fSBhcmdzLnBhcmVudFBvcnQgLSBQYXJlbnQgcG9ydC5cbiAgICogQHBhcmFtIHt7ZGVidWc6IGJvb2xlYW4sIGRpcmVjdG9yeTogc3RyaW5nLCBlbnZpcm9ubWVudDogc3RyaW5nLCB3b3JrZXJDb3VudDogbnVtYmVyfX0gYXJncy53b3JrZXJEYXRhIC0gV29ya2VyIGNvbmZpZ3VyYXRpb24gZGV0YWlscy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtwYXJlbnRQb3J0LCB3b3JrZXJEYXRhfSkge1xuICAgIGlmICghcGFyZW50UG9ydCkgdGhyb3cgbmV3IEVycm9yKFwicGFyZW50UG9ydCBpcyByZXF1aXJlZFwiKVxuXG4gICAgY29uc3Qge3dvcmtlckNvdW50fSA9IHdvcmtlckRhdGFcblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPG51bWJlciwgQ2xpZW50Pn0gKi9cbiAgICB0aGlzLmNsaWVudHMgPSB7fVxuXG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgTG9nZ2VyKHRoaXMpXG4gICAgdGhpcy5wYXJlbnRQb3J0ID0gcGFyZW50UG9ydFxuICAgIHRoaXMud29ya2VyRGF0YSA9IHdvcmtlckRhdGFcbiAgICB0aGlzLndvcmtlckNvdW50ID0gd29ya2VyQ291bnRcblxuICAgIHBhcmVudFBvcnQub24oXCJtZXNzYWdlXCIsIGVycm9yTG9nZ2VyKHRoaXMub25Db21tYW5kKSlcblxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFwcGxpY2F0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJBcHBsaWNhdGlvbiBub3QgaW5pdGlhbGl6ZWRcIilcblxuICAgICAgdGhpcy5hcHBsaWNhdGlvbi5pbml0aWFsaXplKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnTG93TGV2ZWwoKCkgPT4gYFdvcmtlciAke3dvcmtlckNvdW50fSBzdGFydGVkYClcbiAgICAgICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7Y29tbWFuZDogXCJzdGFydGVkXCJ9KVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgIGNvbnN0IHtkZWJ1ZywgZGlyZWN0b3J5LCBlbnZpcm9ubWVudH0gPSB0aGlzLndvcmtlckRhdGFcbiAgICBjb25zdCBjb25maWd1cmF0aW9uUGF0aCA9IGAke2RpcmVjdG9yeX0vc3JjL2NvbmZpZy9jb25maWd1cmF0aW9uLmpzYFxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25JbXBvcnQgPSBhd2FpdCBpbXBvcnQodG9JbXBvcnRTcGVjaWZpZXIoY29uZmlndXJhdGlvblBhdGgpKVxuXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuLi8uLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9ICovXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbkltcG9ydC5kZWZhdWx0XG5cbiAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbikgdGhyb3cgbmV3IEVycm9yKGBDb25maWd1cmF0aW9uIGNvdWxkbid0IGJlIGxvYWRlZCBmcm9tOiAke2NvbmZpZ3VyYXRpb25QYXRofWApXG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24uZGVidWcgPSBkZWJ1ZyA9PT0gdHJ1ZVxuICAgIHRoaXMuY29uZmlndXJhdGlvbi5zZXRFbnZpcm9ubWVudChlbnZpcm9ubWVudClcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24uc2V0Q3VycmVudCgpXG4gICAgYXdhaXQgdGhpcy5sb2dnZXIuZGVidWcoKCkgPT4gW1wiV29ya2VyIHRocmVhZCBjb25maWd1cmF0aW9uIGxvYWRlZFwiLCB7ZGVidWc6IHRoaXMuY29uZmlndXJhdGlvbi5kZWJ1Zywgd29ya2VyQ291bnQ6IHRoaXMud29ya2VyQ291bnR9XSlcbiAgICB0aGlzLndlYnNvY2tldEV2ZW50cyA9IG5ldyBXZWJzb2NrZXRFdmVudHMoe3BhcmVudFBvcnQ6IHRoaXMucGFyZW50UG9ydCwgd29ya2VyQ291bnQ6IHRoaXMud29ya2VyQ291bnR9KVxuICAgIHRoaXMuY29uZmlndXJhdGlvbi5zZXRXZWJzb2NrZXRFdmVudHModGhpcy53ZWJzb2NrZXRFdmVudHMpXG5cbiAgICB0aGlzLmFwcGxpY2F0aW9uID0gbmV3IEFwcGxpY2F0aW9uKHtjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sIHR5cGU6IFwid29ya2VyLWhhbmRsZXJcIn0pXG5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IFwid29ya2VyLWhhbmRsZXJcIn0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhIC0gRGF0YSBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YS5jb21tYW5kIC0gQ29tbWFuZC5cbiAgICogQHBhcmFtIHtCdWZmZXIgfCBVaW50OEFycmF5IHwgc3RyaW5nfSBbZGF0YS5jaHVua10gLSBDaHVuay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtkYXRhLnJlbW90ZUFkZHJlc3NdIC0gUmVtb3RlIGFkZHJlc3MuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbZGF0YS5jbGllbnRDb3VudF0gLSBDbGllbnQgY291bnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZGF0YS5jaGFubmVsXSAtIENoYW5uZWwgbmFtZS5cbiAgICogQHBhcmFtIHthbnl9IFtkYXRhLnBheWxvYWRdIC0gUGF5bG9hZCBkYXRhLlxuICAgKi9cbiAgb25Db21tYW5kID0gYXN5bmMgKGRhdGEpID0+IHtcbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1Z0xvd0xldmVsKCgpID0+IFtgV29ya2VyICR7dGhpcy53b3JrZXJDb3VudH0gcmVjZWl2ZWQgY29tbWFuZGAsIGRhdGFdKVxuXG4gICAgY29uc3QgY29tbWFuZCA9IGRhdGEuY29tbWFuZFxuXG4gICAgaWYgKGNvbW1hbmQgPT0gXCJuZXdDbGllbnRcIikge1xuICAgICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24pIHRocm93IG5ldyBFcnJvcihcIkNvbmZpZ3VyYXRpb24gbm90IGluaXRpYWxpemVkXCIpXG5cbiAgICAgIGNvbnN0IHtjbGllbnRDb3VudCwgcmVtb3RlQWRkcmVzc30gPSBkYXRhXG4gICAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KHtcbiAgICAgICAgY2xpZW50Q291bnQsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgcmVtb3RlQWRkcmVzc1xuICAgICAgfSlcblxuICAgICAgY2xpZW50LmV2ZW50cy5vbihcIm91dHB1dFwiLCAob3V0cHV0KSA9PiB7XG4gICAgICAgIHRoaXMucGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7Y29tbWFuZDogXCJjbGllbnRPdXRwdXRcIiwgY2xpZW50Q291bnQsIG91dHB1dH0pXG4gICAgICB9KVxuXG4gICAgICBjbGllbnQuZXZlbnRzLm9uKFwiY2xvc2VcIiwgKG91dHB1dCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1Z0xvd0xldmVsKCgpID0+IFwiQ2xvc2UgcmVjZWl2ZWQgZnJvbSBjbGllbnQgaW4gd29ya2VyIC0gZm9yd2FyZGluZyB0byB3b3JrZXIgcGFyZW50XCIpXG4gICAgICAgIHRoaXMucGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7Y29tbWFuZDogXCJjbGllbnRDbG9zZVwiLCBjbGllbnRDb3VudCwgb3V0cHV0fSlcbiAgICAgIH0pXG5cbiAgICAgIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gPSBjbGllbnRcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gXCJjbGllbnRXcml0ZVwiKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1Z0xvd0xldmVsKFwiTG9va2luZyB1cCBjbGllbnRcIilcblxuICAgICAgY29uc3Qge2NodW5rLCBjbGllbnRDb3VudH0gPSBkYXRhXG4gICAgICBpZiAoIWNodW5rKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjaHVuayBnaXZlblwiKVxuICAgICAgY29uc3QgY2xpZW50ID0gZGlnZyh0aGlzLmNsaWVudHMsIGNsaWVudENvdW50KVxuXG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZygoKSA9PiBbXCJTZW5kaW5nIGNsaWVudFdyaXRlIHRvIHBhcnNlclwiLCB7Y2xpZW50Q291bnQsIC4uLnN1bW1hcml6ZUNsaWVudFdyaXRlQ2h1bmsoY2h1bmspfV0pXG5cbiAgICAgIGNsaWVudC5vbldyaXRlKGNodW5rKVxuICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PSBcIndlYnNvY2tldEV2ZW50XCIpIHtcbiAgICAgIGNvbnN0IHtjaGFubmVsLCBwYXlsb2FkfSA9IGRhdGFcblxuICAgICAgYXdhaXQgdGhpcy5icm9hZGNhc3RXZWJzb2NrZXRFdmVudCh7Y2hhbm5lbCwgcGF5bG9hZH0pXG4gICAgfSBlbHNlIGlmIChjb21tYW5kID09IFwic2h1dGRvd25cIikge1xuICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbj8uY2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5jbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMoKVxuICAgICAgfVxuXG4gICAgICB0aGlzLnBhcmVudFBvcnQucG9zdE1lc3NhZ2Uoe2NvbW1hbmQ6IFwic2h1dGRvd25Db21wbGV0ZVwifSlcbiAgICAgIHByb2Nlc3MuZXhpdCgwKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY29tbWFuZDogJHtjb21tYW5kfWApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNoYW5uZWwgLSBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7YW55fSBhcmdzLnBheWxvYWQgLSBQYXlsb2FkIGRhdGEuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBicm9hZGNhc3RXZWJzb2NrZXRFdmVudCh7Y2hhbm5lbCwgcGF5bG9hZH0pIHtcbiAgICBjb25zdCBzZW5kVGFza3MgPSBbXVxuXG4gICAgZm9yIChjb25zdCBjbGllbnRLZXkgb2YgT2JqZWN0LmtleXModGhpcy5jbGllbnRzKSkge1xuICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jbGllbnRzW2NsaWVudEtleV1cbiAgICAgIGNvbnN0IHNlc3Npb24gPSBjbGllbnQud2Vic29ja2V0U2Vzc2lvblxuXG4gICAgICBpZiAoIXNlc3Npb24pIGNvbnRpbnVlXG5cbiAgICAgIHNlbmRUYXNrcy5wdXNoKHNlc3Npb24uc2VuZEV2ZW50KGNoYW5uZWwsIHBheWxvYWQpKVxuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHNlbmRUYXNrcylcbiAgfVxufVxuIl19
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLXRocmVhZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9odHRwLXNlcnZlci93b3JrZXItaGFuZGxlci93b3JrZXItdGhyZWFkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQTtBQUM5QyxPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQTtBQUN2QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sV0FBVyxNQUFNLHVCQUF1QixDQUFBO0FBQy9DLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8saUJBQWlCLE1BQU0sb0NBQW9DLENBQUE7QUFDbEUsT0FBTyxlQUFlLE1BQU0sd0JBQXdCLENBQUE7QUFFcEQ7OztHQUdHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FBQyxLQUFLO0lBQ3RDLE1BQU0sZUFBZSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBRTVJLE9BQU8sRUFBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FBQTtBQUNsRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sT0FBTyw0Q0FBNEM7SUFDL0Q7Ozs7T0FJRztJQUNILFlBQVksRUFB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WUFFdkMsSUFBSSxDQUFDLE9BQU87Z0JBQUUsU0FBUTtZQUV0QixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUVELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEFwcGxpY2F0aW9uIGZyb20gXCIuLi8uLi9hcHBsaWNhdGlvbi5qc1wiXG5pbXBvcnQgQ2xpZW50IGZyb20gXCIuLi9jbGllbnQvaW5kZXguanNcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBlcnJvckxvZ2dlciBmcm9tIFwiLi4vLi4vZXJyb3ItbG9nZ2VyLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uLy4uL2xvZ2dlci5qc1wiXG5pbXBvcnQgdG9JbXBvcnRTcGVjaWZpZXIgZnJvbSBcIi4uLy4uL3V0aWxzL3RvLWltcG9ydC1zcGVjaWZpZXIuanNcIlxuaW1wb3J0IFdlYnNvY2tldEV2ZW50cyBmcm9tIFwiLi4vd2Vic29ja2V0LWV2ZW50cy5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtCdWZmZXIgfCBVaW50OEFycmF5IHwgc3RyaW5nfSBjaHVuayAtIENsaWVudCBpbnB1dCBwYXlsb2FkLlxuICogQHJldHVybnMge3tsZW5ndGg6IG51bWJlciwgcHJldmlldzogc3RyaW5nfX0gLSBDaHVuayBzdW1tYXJ5IGZvciBsb2dnaW5nLlxuICovXG5mdW5jdGlvbiBzdW1tYXJpemVDbGllbnRXcml0ZUNodW5rKGNodW5rKSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRDaHVuayA9IHR5cGVvZiBjaHVuayA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGNodW5rKSA6IEJ1ZmZlci5mcm9tKGNodW5rKVxuICBjb25zdCBwcmV2aWV3ID0gbm9ybWFsaXplZENodW5rLnRvU3RyaW5nKFwibGF0aW4xXCIsIDAsIE1hdGgubWluKG5vcm1hbGl6ZWRDaHVuay5sZW5ndGgsIDE2MCkpLnJlcGxhY2VBbGwoXCJcXHJcIiwgXCJcXFxcclwiKS5yZXBsYWNlQWxsKFwiXFxuXCIsIFwiXFxcXG5cIilcblxuICByZXR1cm4ge2xlbmd0aDogbm9ybWFsaXplZENodW5rLmxlbmd0aCwgcHJldmlld31cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzSHR0cFNlcnZlcldvcmtlckhhbmRsZXJXb3JrZXJUaHJlYWQge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCJ3b3JrZXJfdGhyZWFkc1wiKS5wYXJlbnRQb3J0fSBhcmdzLnBhcmVudFBvcnQgLSBQYXJlbnQgcG9ydC5cbiAgICogQHBhcmFtIHt7ZGVidWc6IGJvb2xlYW4sIGRpcmVjdG9yeTogc3RyaW5nLCBlbnZpcm9ubWVudDogc3RyaW5nLCB3b3JrZXJDb3VudDogbnVtYmVyfX0gYXJncy53b3JrZXJEYXRhIC0gV29ya2VyIGNvbmZpZ3VyYXRpb24gZGV0YWlscy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtwYXJlbnRQb3J0LCB3b3JrZXJEYXRhfSkge1xuICAgIGlmICghcGFyZW50UG9ydCkgdGhyb3cgbmV3IEVycm9yKFwicGFyZW50UG9ydCBpcyByZXF1aXJlZFwiKVxuXG4gICAgY29uc3Qge3dvcmtlckNvdW50fSA9IHdvcmtlckRhdGFcblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPG51bWJlciwgQ2xpZW50Pn0gKi9cbiAgICB0aGlzLmNsaWVudHMgPSB7fVxuXG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgTG9nZ2VyKHRoaXMpXG4gICAgdGhpcy5wYXJlbnRQb3J0ID0gcGFyZW50UG9ydFxuICAgIHRoaXMud29ya2VyRGF0YSA9IHdvcmtlckRhdGFcbiAgICB0aGlzLndvcmtlckNvdW50ID0gd29ya2VyQ291bnRcblxuICAgIHBhcmVudFBvcnQub24oXCJtZXNzYWdlXCIsIGVycm9yTG9nZ2VyKHRoaXMub25Db21tYW5kKSlcblxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFwcGxpY2F0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJBcHBsaWNhdGlvbiBub3QgaW5pdGlhbGl6ZWRcIilcblxuICAgICAgdGhpcy5hcHBsaWNhdGlvbi5pbml0aWFsaXplKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnTG93TGV2ZWwoKCkgPT4gYFdvcmtlciAke3dvcmtlckNvdW50fSBzdGFydGVkYClcbiAgICAgICAgcGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7Y29tbWFuZDogXCJzdGFydGVkXCJ9KVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgIGNvbnN0IHtkZWJ1ZywgZGlyZWN0b3J5LCBlbnZpcm9ubWVudH0gPSB0aGlzLndvcmtlckRhdGFcbiAgICBjb25zdCBjb25maWd1cmF0aW9uUGF0aCA9IGAke2RpcmVjdG9yeX0vc3JjL2NvbmZpZy9jb25maWd1cmF0aW9uLmpzYFxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25JbXBvcnQgPSBhd2FpdCBpbXBvcnQodG9JbXBvcnRTcGVjaWZpZXIoY29uZmlndXJhdGlvblBhdGgpKVxuXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuLi8uLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9ICovXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbkltcG9ydC5kZWZhdWx0XG5cbiAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbikgdGhyb3cgbmV3IEVycm9yKGBDb25maWd1cmF0aW9uIGNvdWxkbid0IGJlIGxvYWRlZCBmcm9tOiAke2NvbmZpZ3VyYXRpb25QYXRofWApXG5cbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5jb25maWd1cmF0aW9uXG5cbiAgICBjb25maWd1cmF0aW9uLmRlYnVnID0gZGVidWcgPT09IHRydWVcbiAgICBjb25maWd1cmF0aW9uLnNldEVudmlyb25tZW50KGVudmlyb25tZW50KVxuICAgIGNvbmZpZ3VyYXRpb24uc2V0Q3VycmVudCgpXG4gICAgYXdhaXQgdGhpcy5sb2dnZXIuZGVidWcoKCkgPT4gW1wiV29ya2VyIHRocmVhZCBjb25maWd1cmF0aW9uIGxvYWRlZFwiLCB7ZGVidWc6IGNvbmZpZ3VyYXRpb24uZGVidWcsIHdvcmtlckNvdW50OiB0aGlzLndvcmtlckNvdW50fV0pXG4gICAgdGhpcy53ZWJzb2NrZXRFdmVudHMgPSBuZXcgV2Vic29ja2V0RXZlbnRzKHtwYXJlbnRQb3J0OiB0aGlzLnBhcmVudFBvcnQsIHdvcmtlckNvdW50OiB0aGlzLndvcmtlckNvdW50fSlcbiAgICBjb25maWd1cmF0aW9uLnNldFdlYnNvY2tldEV2ZW50cyh0aGlzLndlYnNvY2tldEV2ZW50cylcblxuICAgIHRoaXMuYXBwbGljYXRpb24gPSBuZXcgQXBwbGljYXRpb24oe2NvbmZpZ3VyYXRpb24sIHR5cGU6IFwid29ya2VyLWhhbmRsZXJcIn0pXG5cbiAgICBpZiAoY29uZmlndXJhdGlvbi5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uaW5pdGlhbGl6ZSh7dHlwZTogXCJ3b3JrZXItaGFuZGxlclwifSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBEYXRhIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhLmNvbW1hbmQgLSBDb21tYW5kLlxuICAgKiBAcGFyYW0ge0J1ZmZlciB8IFVpbnQ4QXJyYXkgfCBzdHJpbmd9IFtkYXRhLmNodW5rXSAtIENodW5rLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2RhdGEucmVtb3RlQWRkcmVzc10gLSBSZW1vdGUgYWRkcmVzcy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtkYXRhLmNsaWVudENvdW50XSAtIENsaWVudCBjb3VudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtkYXRhLmNoYW5uZWxdIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0ge2FueX0gW2RhdGEucGF5bG9hZF0gLSBQYXlsb2FkIGRhdGEuXG4gICAqL1xuICBvbkNvbW1hbmQgPSBhc3luYyAoZGF0YSkgPT4ge1xuICAgIGF3YWl0IHRoaXMubG9nZ2VyLmRlYnVnTG93TGV2ZWwoKCkgPT4gW2BXb3JrZXIgJHt0aGlzLndvcmtlckNvdW50fSByZWNlaXZlZCBjb21tYW5kYCwgZGF0YV0pXG5cbiAgICBjb25zdCBjb21tYW5kID0gZGF0YS5jb21tYW5kXG5cbiAgICBpZiAoY29tbWFuZCA9PSBcIm5ld0NsaWVudFwiKSB7XG4gICAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiQ29uZmlndXJhdGlvbiBub3QgaW5pdGlhbGl6ZWRcIilcblxuICAgICAgY29uc3Qge2NsaWVudENvdW50LCByZW1vdGVBZGRyZXNzfSA9IGRhdGFcblxuICAgICAgaWYgKHR5cGVvZiBjbGllbnRDb3VudCAhPT0gXCJudW1iZXJcIikgdGhyb3cgbmV3IEVycm9yKFwiY2xpZW50Q291bnQgbXVzdCBiZSBhIG51bWJlclwiKVxuXG4gICAgICBjb25zdCBjbGllbnQgPSBuZXcgQ2xpZW50KHtcbiAgICAgICAgY2xpZW50Q291bnQsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgcmVtb3RlQWRkcmVzc1xuICAgICAgfSlcblxuICAgICAgY2xpZW50LmV2ZW50cy5vbihcIm91dHB1dFwiLCAob3V0cHV0KSA9PiB7XG4gICAgICAgIHRoaXMucGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7Y29tbWFuZDogXCJjbGllbnRPdXRwdXRcIiwgY2xpZW50Q291bnQsIG91dHB1dH0pXG4gICAgICB9KVxuXG4gICAgICBjbGllbnQuZXZlbnRzLm9uKFwiY2xvc2VcIiwgKG91dHB1dCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1Z0xvd0xldmVsKCgpID0+IFwiQ2xvc2UgcmVjZWl2ZWQgZnJvbSBjbGllbnQgaW4gd29ya2VyIC0gZm9yd2FyZGluZyB0byB3b3JrZXIgcGFyZW50XCIpXG4gICAgICAgIHRoaXMucGFyZW50UG9ydC5wb3N0TWVzc2FnZSh7Y29tbWFuZDogXCJjbGllbnRDbG9zZVwiLCBjbGllbnRDb3VudCwgb3V0cHV0fSlcbiAgICAgIH0pXG5cbiAgICAgIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gPSBjbGllbnRcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT0gXCJjbGllbnRXcml0ZVwiKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1Z0xvd0xldmVsKFwiTG9va2luZyB1cCBjbGllbnRcIilcblxuICAgICAgY29uc3Qge2NodW5rLCBjbGllbnRDb3VudH0gPSBkYXRhXG4gICAgICBpZiAoIWNodW5rKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjaHVuayBnaXZlblwiKVxuICAgICAgY29uc3QgY2xpZW50ID0gLyoqIEB0eXBlIHtDbGllbnQgfCB1bmRlZmluZWR9ICovIChkaWdnKHRoaXMuY2xpZW50cywgY2xpZW50Q291bnQpKVxuXG4gICAgICBpZiAoIWNsaWVudCkgdGhyb3cgbmV3IEVycm9yKGBDbGllbnQgbm90IGZvdW5kIGZvciBjbGllbnRXcml0ZTogJHtjbGllbnRDb3VudH1gKVxuXG4gICAgICBjb25zdCBjbGllbnRDaHVuayA9IHR5cGVvZiBjaHVuayA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGNodW5rKSA6IEJ1ZmZlci5mcm9tKGNodW5rKVxuXG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZygoKSA9PiBbXCJTZW5kaW5nIGNsaWVudFdyaXRlIHRvIHBhcnNlclwiLCB7Y2xpZW50Q291bnQsIC4uLnN1bW1hcml6ZUNsaWVudFdyaXRlQ2h1bmsoY2xpZW50Q2h1bmspfV0pXG5cbiAgICAgIGNsaWVudC5vbldyaXRlKGNsaWVudENodW5rKVxuICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PSBcIndlYnNvY2tldEV2ZW50XCIpIHtcbiAgICAgIGNvbnN0IHtjaGFubmVsLCBwYXlsb2FkfSA9IGRhdGFcblxuICAgICAgaWYgKHR5cGVvZiBjaGFubmVsICE9PSBcInN0cmluZ1wiKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBjaGFubmVsIGdpdmVuXCIpXG5cbiAgICAgIGF3YWl0IHRoaXMuYnJvYWRjYXN0V2Vic29ja2V0RXZlbnQoe2NoYW5uZWwsIHBheWxvYWR9KVxuICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PSBcInNodXRkb3duXCIpIHtcbiAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24/LmNsb3NlRGF0YWJhc2VDb25uZWN0aW9ucykge1xuICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24uY2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zKClcbiAgICAgIH1cblxuICAgICAgdGhpcy5wYXJlbnRQb3J0LnBvc3RNZXNzYWdlKHtjb21tYW5kOiBcInNodXRkb3duQ29tcGxldGVcIn0pXG4gICAgICBwcm9jZXNzLmV4aXQoMClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNvbW1hbmQ6ICR7Y29tbWFuZH1gKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jaGFubmVsIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0ge2FueX0gYXJncy5wYXlsb2FkIC0gUGF5bG9hZCBkYXRhLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgYnJvYWRjYXN0V2Vic29ja2V0RXZlbnQoe2NoYW5uZWwsIHBheWxvYWR9KSB7XG4gICAgY29uc3Qgc2VuZFRhc2tzID0gW11cblxuICAgIGZvciAoY29uc3QgY2xpZW50S2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuY2xpZW50cykpIHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY2xpZW50c1tOdW1iZXIoY2xpZW50S2V5KV1cbiAgICAgIGlmICghY2xpZW50KSBjb250aW51ZVxuICAgICAgY29uc3Qgc2Vzc2lvbiA9IGNsaWVudC53ZWJzb2NrZXRTZXNzaW9uXG5cbiAgICAgIGlmICghc2Vzc2lvbikgY29udGludWVcblxuICAgICAgc2VuZFRhc2tzLnB1c2goc2Vzc2lvbi5zZW5kRXZlbnQoY2hhbm5lbCwgcGF5bG9hZCkpXG4gICAgfVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoc2VuZFRhc2tzKVxuICB9XG59XG4iXX0=
|
|
@@ -5,9 +5,9 @@ export default class ConsoleLogger extends BaseLogger {
|
|
|
5
5
|
* @param {Array<"debug-low-level" | "debug" | "info" | "warn" | "error">} [args.levels] - Levels to emit.
|
|
6
6
|
*/
|
|
7
7
|
constructor({ levels }?: {
|
|
8
|
-
levels?:
|
|
8
|
+
levels?: ("debug" | "error" | "info" | "debug-low-level" | "warn")[] | undefined;
|
|
9
9
|
});
|
|
10
|
-
levels: ("
|
|
10
|
+
levels: ("debug" | "error" | "info" | "debug-low-level" | "warn")[] | undefined;
|
|
11
11
|
/**
|
|
12
12
|
* @returns {import("../configuration-types.js").LoggingOutputConfig} - Output config.
|
|
13
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/console-logger.js"],"names":[],"mappings":"AAKA,4CAA4C;AAC5C;IACE;;;OAGG;IACH,yBAFG;QAA8E,MAAM
|
|
1
|
+
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/console-logger.js"],"names":[],"mappings":"AAKA,4CAA4C;AAC5C;IACE;;;OAGG;IACH,yBAFG;QAA8E,MAAM;KACtF,EAIA;IADC,gFAAoB;IAGtB;;OAEG;IACH,kBAFa,OAAO,2BAA2B,EAAE,mBAAmB,CAOnE;CACF;uBAvBsB,kBAAkB"}
|
|
@@ -7,10 +7,10 @@ export default class FileLogger extends BaseLogger {
|
|
|
7
7
|
*/
|
|
8
8
|
constructor({ path, levels }: {
|
|
9
9
|
path: string;
|
|
10
|
-
levels?:
|
|
10
|
+
levels?: ("debug" | "error" | "info" | "debug-low-level" | "warn")[] | undefined;
|
|
11
11
|
});
|
|
12
12
|
path: string;
|
|
13
|
-
levels: ("
|
|
13
|
+
levels: ("debug" | "error" | "info" | "debug-low-level" | "warn")[] | undefined;
|
|
14
14
|
/**
|
|
15
15
|
* @param {object} args - Options object.
|
|
16
16
|
* @param {import("../configuration.js").default | undefined} [args.configuration] - Configuration instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/file-logger.js"],"names":[],"mappings":"AAKA,yCAAyC;AACzC;IACE;;;;OAIG;IACH,8BAHG;QAAqB,IAAI,EAAjB,MAAM;QACgE,MAAM
|
|
1
|
+
{"version":3,"file":"file-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/file-logger.js"],"names":[],"mappings":"AAKA,yCAAyC;AACzC;IACE;;;;OAIG;IACH,8BAHG;QAAqB,IAAI,EAAjB,MAAM;QACgE,MAAM;KACtF,EAKA;IAFC,aAAgB;IAChB,gFAAoB;IAGtB;;;;OAIG;IACH,mCAHG;QAAiE,aAAa,GAAtE,OAAO,qBAAqB,EAAE,OAAO,GAAG,SAAS;KACzD,GAAU,OAAO,2BAA2B,EAAE,mBAAmB,CAWnE;CACF;uBA/BsB,kBAAkB"}
|
|
@@ -6,7 +6,7 @@ export default class LoggerArrayOutput {
|
|
|
6
6
|
* @param {number} [args.limit] - Max number of log entries to keep.
|
|
7
7
|
*/
|
|
8
8
|
constructor({ limit }?: {
|
|
9
|
-
limit?: number;
|
|
9
|
+
limit?: number | undefined;
|
|
10
10
|
});
|
|
11
11
|
_limit: number;
|
|
12
12
|
/** @type {import("../../configuration-types.js").LogLevel[]} */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/array-output.js"],"names":[],"mappings":"AAEA,kGAAkG;AAElG,2BAA2B;AAC3B;IAOE;;;OAGG;IACH,wBAFG;QAAsB,KAAK
|
|
1
|
+
{"version":3,"file":"array-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/array-output.js"],"names":[],"mappings":"AAEA,kGAAkG;AAElG,2BAA2B;AAC3B;IAOE;;;OAGG;IACH,wBAFG;QAAsB,KAAK;KAC7B,EAIA;IAbD,eAAa;IACb,gEAAgE;IAChE,QADW,OAAO,8BAA8B,EAAE,QAAQ,EAAE,CACjB;IAC3C,qCAAqC;IACrC,OADW,oBAAoB,EAAE,CACvB;IAWV,2DAA2D;IAC3D,8CADY,oBAAoB,iBAS/B;IAED,8DAA8D;IAC9D,WADc,oBAAoB,EAAE,CAGnC;CACF;mCAlCa,OAAO,8BAA8B,EAAE,oBAAoB"}
|
|
@@ -8,13 +8,16 @@ export default class LoggerFileOutput {
|
|
|
8
8
|
* @param {string} args.filePath - File path.
|
|
9
9
|
*/
|
|
10
10
|
constructor({ configuration, getConfiguration, filePath }: {
|
|
11
|
-
configuration?: import("../../configuration.js").default;
|
|
12
|
-
getConfiguration?: () => import("../../configuration.js").default | undefined;
|
|
11
|
+
configuration?: import("../../configuration.js").default | undefined;
|
|
12
|
+
getConfiguration?: (() => import("../../configuration.js").default | undefined) | undefined;
|
|
13
13
|
filePath: string;
|
|
14
14
|
});
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
/** @type {import("../../configuration.js").default | undefined} */
|
|
16
|
+
_configuration: import("../../configuration.js").default | undefined;
|
|
17
|
+
/** @type {string | undefined} */
|
|
18
|
+
_filePath: string | undefined;
|
|
19
|
+
/** @type {(() => import("../../configuration.js").default | undefined) | undefined} */
|
|
20
|
+
_getConfiguration: (() => import("../../configuration.js").default | undefined) | undefined;
|
|
18
21
|
/** @param {LoggingOutputPayload} payload - Log payload. */
|
|
19
22
|
write({ message }: LoggingOutputPayload): Promise<void>;
|
|
20
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/file-output.js"],"names":[],"mappings":"AAEA,kGAAkG;AAElG,0BAA0B;AAC1B;
|
|
1
|
+
{"version":3,"file":"file-output.d.ts","sourceRoot":"","sources":["../../../../src/logger/outputs/file-output.js"],"names":[],"mappings":"AAEA,kGAAkG;AAElG,0BAA0B;AAC1B;IAQE;;;;;OAKG;IACH,2DAJG;QAAwD,aAAa;QACK,gBAAgB,UAA5E,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS;QAC7C,QAAQ,EAArB,MAAM;KAChB,EAKA;IAjBD,mEAAmE;IACnE,gBADW,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS,CACrC;IAC1B,iCAAiC;IACjC,WADW,MAAM,GAAG,SAAS,CACR;IACrB,uFAAuF;IACvF,mBADW,CAAC,MAAM,OAAO,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CACtD;IAc7B,2DAA2D;IAC3D,mBADY,oBAAoB,iBAgB/B;CACF;mCAxCa,OAAO,8BAA8B,EAAE,oBAAoB"}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
/** @typedef {import("../../configuration-types.js").LoggingOutputPayload} LoggingOutputPayload */
|
|
3
3
|
/** Logger file output. */
|
|
4
4
|
export default class LoggerFileOutput {
|
|
5
|
+
/** @type {import("../../configuration.js").default | undefined} */
|
|
5
6
|
_configuration = undefined;
|
|
7
|
+
/** @type {string | undefined} */
|
|
6
8
|
_filePath = undefined;
|
|
9
|
+
/** @type {(() => import("../../configuration.js").default | undefined) | undefined} */
|
|
7
10
|
_getConfiguration = undefined;
|
|
8
11
|
/**
|
|
9
12
|
* @param {object} args - Options object.
|
|
@@ -32,4 +35,4 @@ export default class LoggerFileOutput {
|
|
|
32
35
|
});
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1vdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbG9nZ2VyL291dHB1dHMvZmlsZS1vdXRwdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLGtHQUFrRztBQUVsRywwQkFBMEI7QUFDMUIsTUFBTSxDQUFDLE9BQU8sT0FBTyxnQkFBZ0I7SUFDbkMsbUVBQW1FO0lBQ25FLGNBQWMsR0FBRyxTQUFTLENBQUE7SUFDMUIsaUNBQWlDO0lBQ2pDLFNBQVMsR0FBRyxTQUFTLENBQUE7SUFDckIsdUZBQXVGO0lBQ3ZGLGlCQUFpQixHQUFHLFNBQVMsQ0FBQTtJQUU3Qjs7Ozs7T0FLRztJQUNILFlBQVksRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFBO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQTtRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0lBRUQsMkRBQTJEO0lBQzNELEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTTtRQUUzQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUE7UUFFdkUsSUFBSSxDQUFDLGFBQWEsSUFBSSxPQUFPLGFBQWEsQ0FBQyxxQkFBcUIsS0FBSyxVQUFVO1lBQUUsT0FBTTtRQUV2RixNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBRWhFLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLGtCQUFrQixDQUFDLGNBQWMsS0FBSyxVQUFVO1lBQUUsT0FBTTtRQUUxRixNQUFNLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztZQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsT0FBTztTQUNSLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4uLy4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuTG9nZ2luZ091dHB1dFBheWxvYWR9IExvZ2dpbmdPdXRwdXRQYXlsb2FkICovXG5cbi8qKiBMb2dnZXIgZmlsZSBvdXRwdXQuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2dnZXJGaWxlT3V0cHV0IHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoXCIuLi8uLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9ICovXG4gIF9jb25maWd1cmF0aW9uID0gdW5kZWZpbmVkXG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfSAqL1xuICBfZmlsZVBhdGggPSB1bmRlZmluZWRcbiAgLyoqIEB0eXBlIHsoKCkgPT4gaW1wb3J0KFwiLi4vLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkKSB8IHVuZGVmaW5lZH0gKi9cbiAgX2dldENvbmZpZ3VyYXRpb24gPSB1bmRlZmluZWRcblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IFthcmdzLmNvbmZpZ3VyYXRpb25dIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHsoKSA9PiBpbXBvcnQoXCIuLi8uLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQgfCB1bmRlZmluZWR9IFthcmdzLmdldENvbmZpZ3VyYXRpb25dIC0gQ29uZmlndXJhdGlvbiByZXNvbHZlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZmlsZVBhdGggLSBGaWxlIHBhdGguXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgZ2V0Q29uZmlndXJhdGlvbiwgZmlsZVBhdGh9KSB7XG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLl9nZXRDb25maWd1cmF0aW9uID0gZ2V0Q29uZmlndXJhdGlvblxuICAgIHRoaXMuX2ZpbGVQYXRoID0gZmlsZVBhdGhcbiAgfVxuXG4gIC8qKiBAcGFyYW0ge0xvZ2dpbmdPdXRwdXRQYXlsb2FkfSBwYXlsb2FkIC0gTG9nIHBheWxvYWQuICovXG4gIGFzeW5jIHdyaXRlKHttZXNzYWdlfSkge1xuICAgIGlmICghdGhpcy5fZmlsZVBhdGgpIHJldHVyblxuXG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHRoaXMuX2NvbmZpZ3VyYXRpb24gfHwgdGhpcy5fZ2V0Q29uZmlndXJhdGlvbj8uKClcblxuICAgIGlmICghY29uZmlndXJhdGlvbiB8fCB0eXBlb2YgY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudEhhbmRsZXIgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuXG5cbiAgICBjb25zdCBlbnZpcm9ubWVudEhhbmRsZXIgPSBjb25maWd1cmF0aW9uLmdldEVudmlyb25tZW50SGFuZGxlcigpXG5cbiAgICBpZiAoIWVudmlyb25tZW50SGFuZGxlciB8fCB0eXBlb2YgZW52aXJvbm1lbnRIYW5kbGVyLndyaXRlTG9nVG9GaWxlICE9PSBcImZ1bmN0aW9uXCIpIHJldHVyblxuXG4gICAgYXdhaXQgZW52aXJvbm1lbnRIYW5kbGVyLndyaXRlTG9nVG9GaWxlKHtcbiAgICAgIGZpbGVQYXRoOiB0aGlzLl9maWxlUGF0aCxcbiAgICAgIG1lc3NhZ2VcbiAgICB9KVxuICB9XG59XG4iXX0=
|
package/build/src/logger.d.ts
CHANGED
|
@@ -7,15 +7,15 @@ export default class Logger {
|
|
|
7
7
|
* @param {import("./configuration-types.js").LoggingConfiguration} [args.loggingConfiguration] - Logging configuration.
|
|
8
8
|
*/
|
|
9
9
|
constructor(object: string | object, { configuration, debug, loggingConfiguration, ...restArgs }?: {
|
|
10
|
-
configuration?:
|
|
11
|
-
debug?: boolean;
|
|
12
|
-
loggingConfiguration?: import("./configuration-types.js").LoggingConfiguration;
|
|
10
|
+
configuration?: Configuration | undefined;
|
|
11
|
+
debug?: boolean | undefined;
|
|
12
|
+
loggingConfiguration?: import("./configuration-types.js").LoggingConfiguration | undefined;
|
|
13
13
|
});
|
|
14
14
|
_debug: boolean;
|
|
15
|
-
_configuration: Configuration;
|
|
16
|
-
_loggingConfiguration: import("./configuration-types.js").LoggingConfiguration;
|
|
17
|
-
_subject:
|
|
18
|
-
_object:
|
|
15
|
+
_configuration: Configuration | undefined;
|
|
16
|
+
_loggingConfiguration: import("./configuration-types.js").LoggingConfiguration | undefined;
|
|
17
|
+
_subject: string;
|
|
18
|
+
_object: object | undefined;
|
|
19
19
|
/**
|
|
20
20
|
* @returns {import("./configuration.js").default} - The configuration.
|
|
21
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.js"],"names":[],"mappings":"AAmPA;IACE;;;;;;OAMG;IACH,oBANW,MAAM,GAAG,MAAM,gEAEvB;QAAoD,aAAa
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.js"],"names":[],"mappings":"AAmPA;IACE;;;;;;OAMG;IACH,oBANW,MAAM,GAAG,MAAM,gEAEvB;QAAoD,aAAa;QAC1C,KAAK;QAC2C,oBAAoB;KAC7F,EAkBA;IAdC,gBAAmB;IACnB,0CAAmC;IACnC,2FAAiD;IAG/C,iBAAsB;IAEtB,4BAAqB;IASzB;;OAEG;IACH,oBAFa,OAAO,oBAAoB,EAAE,OAAO,CAShD;IAED;;OAEG;IACH,sBAFa,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAQ5D;IAED;;;OAGG;IACH,mBAHW,GAAG,EAAE,GACH,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,kBAHW,GAAG,EAAE,GACH,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,2BAHW,GAAG,EAAE,GACH,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,iBAHW,GAAG,EAAE,GACH,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,mBAHW,GAAG,EAAE,GACH,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,mBAHW,OAAO,GACL,IAAI,CAIhB;IAGS,cAAU,UAAU,CAAC,OAAO,kBAAkB,CAAC,GAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAM3E;;;;;OAKG;IACH,4BAJG;QAAuB,KAAK,EAApB,QAAQ;QACoC,QAAQ,EAApD,UAAU,CAAC,OAAO,kBAAkB,CAAC;KAC7C,GAAU,OAAO,CAAC,IAAI,CAAC,CAczB;CACF;uBAxWa,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;0BAL3C,oBAAoB;AAiB9C;;;GAGG;AACH,iDAHW,CAAG,GAAG,IAAC,MAAa,KAAK,CAAC,GAAG,CAAC,CAAA,GAAA,GAC5B,KAAK,CAAC,GAAG,CAAC,CAStB"}
|
|
@@ -9,10 +9,10 @@ export default class SmtpMailerBackend {
|
|
|
9
9
|
*/
|
|
10
10
|
constructor({ connectionOptions, defaultFrom, ...restArgs }: {
|
|
11
11
|
connectionOptions: object;
|
|
12
|
-
defaultFrom?: string;
|
|
12
|
+
defaultFrom?: string | undefined;
|
|
13
13
|
});
|
|
14
|
-
connectionOptions:
|
|
15
|
-
defaultFrom: string;
|
|
14
|
+
connectionOptions: object;
|
|
15
|
+
defaultFrom: string | undefined;
|
|
16
16
|
/**
|
|
17
17
|
* @param {object} args - Delivery args.
|
|
18
18
|
* @param {import("../index.js").MailerDeliveryPayload} args.payload - Mail delivery payload.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smtp.d.ts","sourceRoot":"","sources":["../../../../src/mailer/backends/smtp.js"],"names":[],"mappings":"AAyBA;;GAEG;AACH;IACE;;;;OAIG;IACH,6DAHG;QAAqB,iBAAiB,EAA9B,MAAM;QACQ,WAAW
|
|
1
|
+
{"version":3,"file":"smtp.d.ts","sourceRoot":"","sources":["../../../../src/mailer/backends/smtp.js"],"names":[],"mappings":"AAyBA;;GAEG;AACH;IACE;;;;OAIG;IACH,6DAHG;QAAqB,iBAAiB,EAA9B,MAAM;QACQ,WAAW;KACnC,EAUA;IAFC,0BAA0C;IAC1C,gCAA8B;IAGhC;;;;OAIG;IACH,kCAHG;QAA0D,OAAO,EAAzD,OAAO,aAAa,EAAE,qBAAqB;KACnD,GAAU,OAAO,CAAC,IAAI,CAAC,CA8DzB;CACF"}
|
|
@@ -71,14 +71,14 @@ export default class SmtpMailerBackend {
|
|
|
71
71
|
}
|
|
72
72
|
const message = `${headers.join("\r\n")}\r\n\r\n${payload.html}`;
|
|
73
73
|
const { default: SmtpConnection } = await import("smtp-connection");
|
|
74
|
-
const connection = new SmtpConnection(this.connectionOptions);
|
|
74
|
+
const connection = new SmtpConnection(/** @type {Record<string, unknown>} */ (this.connectionOptions));
|
|
75
75
|
await new Promise((resolve, reject) => {
|
|
76
76
|
connection.connect((connectError) => {
|
|
77
77
|
if (connectError) {
|
|
78
78
|
reject(connectError);
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
-
connection.send({ from, to: recipients }, message, (sendError) => {
|
|
81
|
+
connection.send({ from, to: recipients }, /** @type {any} */ (message), (/** @type {Error | null | undefined} */ sendError) => {
|
|
82
82
|
if (sendError) {
|
|
83
83
|
connection.quit(() => reject(sendError));
|
|
84
84
|
return;
|
|
@@ -96,4 +96,4 @@ export default class SmtpMailerBackend {
|
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic210cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYWlsZXIvYmFja2VuZHMvc210cC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxhQUFhLE1BQU0sZ0NBQWdDLENBQUE7QUFFMUQ7OztHQUdHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxLQUFLO0lBQ2hDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFDckIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDekMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSztJQUM3QixJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRXZCLE9BQU8sR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUE7QUFDNUIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxpQkFBaUI7SUFDcEM7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsR0FBRyxRQUFRLEVBQUM7UUFDdkQsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN2RixDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFBO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsRUFBQztRQUNsQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFBO1FBRTdDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdEUsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM5QyxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDOUMsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2hELE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQTtRQUVyRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEgsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHO1lBQ2QsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDeEIsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ25FLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNuRSxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDdEMsbUJBQW1CO1lBQ25CLHdDQUF3QztTQUN6QyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFeEIsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3hFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLEtBQUssV0FBVyxFQUFFLENBQUMsQ0FBQTtZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDaEUsTUFBTSxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFDLHNDQUFzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtRQUV0RyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3BDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDbEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDakIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUNwQixPQUFNO2dCQUNSLENBQUM7Z0JBRUQsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLFNBQVMsRUFBRSxFQUFFO29CQUMxSCxJQUFJLFNBQVMsRUFBRSxDQUFDO3dCQUNkLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7d0JBQ3hDLE9BQU07b0JBQ1IsQ0FBQztvQkFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7d0JBQzVCLElBQUksU0FBUyxFQUFFLENBQUM7NEJBQ2QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO3dCQUNuQixDQUFDOzZCQUFNLENBQUM7NEJBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUNmLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCByZXN0QXJnc0Vycm9yIGZyb20gXCIuLi8uLi91dGlscy9yZXN0LWFyZ3MtZXJyb3IuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFJlY2lwaWVudCBpbnB1dC5cbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gLSBOb3JtYWxpemVkIHJlY2lwaWVudHMuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVJlY2lwaWVudHModmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIFtdXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIHZhbHVlLmZpbHRlcigoZW50cnkpID0+IGVudHJ5KVxuICByZXR1cm4gW3ZhbHVlXS5maWx0ZXIoKGVudHJ5KSA9PiBlbnRyeSlcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIEhlYWRlciBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IHZhbHVlIC0gSGVhZGVyIHZhbHVlLlxuICogQHJldHVybnMge3N0cmluZyB8IG51bGx9IC0gSGVhZGVyIGxpbmUuXG4gKi9cbmZ1bmN0aW9uIGhlYWRlckxpbmUobmFtZSwgdmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gYCR7bmFtZX06ICR7dmFsdWV9YFxufVxuXG4vKipcbiAqIFNNVFAgbWFpbGVyIGJhY2tlbmQgdXNpbmcgc210cC1jb25uZWN0aW9uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTbXRwTWFpbGVyQmFja2VuZCB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIENvbnN0cnVjdG9yIGFyZ3MuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzLmNvbm5lY3Rpb25PcHRpb25zIC0gc210cC1jb25uZWN0aW9uIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5kZWZhdWx0RnJvbV0gLSBEZWZhdWx0IGZyb20gYWRkcmVzcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25uZWN0aW9uT3B0aW9ucywgZGVmYXVsdEZyb20sIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICBpZiAoIWNvbm5lY3Rpb25PcHRpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3Npbmcgc210cCBjb25uZWN0aW9uIG9wdGlvbnMuIEdvdDogJHtTdHJpbmcoY29ubmVjdGlvbk9wdGlvbnMpfWApXG4gICAgfVxuXG4gICAgdGhpcy5jb25uZWN0aW9uT3B0aW9ucyA9IGNvbm5lY3Rpb25PcHRpb25zXG4gICAgdGhpcy5kZWZhdWx0RnJvbSA9IGRlZmF1bHRGcm9tXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBEZWxpdmVyeSBhcmdzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LmpzXCIpLk1haWxlckRlbGl2ZXJ5UGF5bG9hZH0gYXJncy5wYXlsb2FkIC0gTWFpbCBkZWxpdmVyeSBwYXlsb2FkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgZGVsaXZlcih7cGF5bG9hZCwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIGNvbnN0IGZyb20gPSBwYXlsb2FkLmZyb20gfHwgdGhpcy5kZWZhdWx0RnJvbVxuXG4gICAgaWYgKCFmcm9tKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgbWFpbCBcImZyb21cIiBhZGRyZXNzLiBHb3Q6ICR7U3RyaW5nKGZyb20pfWApXG4gICAgfVxuXG4gICAgY29uc3QgdG9MaXN0ID0gbm9ybWFsaXplUmVjaXBpZW50cyhwYXlsb2FkLnRvKVxuICAgIGNvbnN0IGNjTGlzdCA9IG5vcm1hbGl6ZVJlY2lwaWVudHMocGF5bG9hZC5jYylcbiAgICBjb25zdCBiY2NMaXN0ID0gbm9ybWFsaXplUmVjaXBpZW50cyhwYXlsb2FkLmJjYylcbiAgICBjb25zdCByZWNpcGllbnRzID0gWy4uLnRvTGlzdCwgLi4uY2NMaXN0LCAuLi5iY2NMaXN0XVxuXG4gICAgaWYgKHJlY2lwaWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgbWFpbCByZWNpcGllbnRzLiBHb3Q6ICR7SlNPTi5zdHJpbmdpZnkoe3RvOiBwYXlsb2FkLnRvLCBjYzogcGF5bG9hZC5jYywgYmNjOiBwYXlsb2FkLmJjY30pfWApXG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVycyA9IFtcbiAgICAgIGhlYWRlckxpbmUoXCJGcm9tXCIsIGZyb20pLFxuICAgICAgaGVhZGVyTGluZShcIlRvXCIsIHRvTGlzdC5sZW5ndGggPiAwID8gdG9MaXN0LmpvaW4oXCIsIFwiKSA6IHVuZGVmaW5lZCksXG4gICAgICBoZWFkZXJMaW5lKFwiQ2NcIiwgY2NMaXN0Lmxlbmd0aCA+IDAgPyBjY0xpc3Quam9pbihcIiwgXCIpIDogdW5kZWZpbmVkKSxcbiAgICAgIGhlYWRlckxpbmUoXCJTdWJqZWN0XCIsIHBheWxvYWQuc3ViamVjdCksXG4gICAgICBcIk1JTUUtVmVyc2lvbjogMS4wXCIsXG4gICAgICBcIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04XCJcbiAgICBdLmZpbHRlcigobGluZSkgPT4gbGluZSlcblxuICAgIGlmIChwYXlsb2FkLmhlYWRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgW2hlYWRlck5hbWUsIGhlYWRlclZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXlsb2FkLmhlYWRlcnMpKSB7XG4gICAgICAgIGhlYWRlcnMucHVzaChgJHtoZWFkZXJOYW1lfTogJHtoZWFkZXJWYWx1ZX1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgJHtoZWFkZXJzLmpvaW4oXCJcXHJcXG5cIil9XFxyXFxuXFxyXFxuJHtwYXlsb2FkLmh0bWx9YFxuICAgIGNvbnN0IHtkZWZhdWx0OiBTbXRwQ29ubmVjdGlvbn0gPSBhd2FpdCBpbXBvcnQoXCJzbXRwLWNvbm5lY3Rpb25cIilcbiAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFNtdHBDb25uZWN0aW9uKC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59ICovICh0aGlzLmNvbm5lY3Rpb25PcHRpb25zKSlcblxuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbm5lY3Rpb24uY29ubmVjdCgoY29ubmVjdEVycm9yKSA9PiB7XG4gICAgICAgIGlmIChjb25uZWN0RXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoY29ubmVjdEVycm9yKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgY29ubmVjdGlvbi5zZW5kKHtmcm9tLCB0bzogcmVjaXBpZW50c30sIC8qKiBAdHlwZSB7YW55fSAqLyAobWVzc2FnZSksICgvKiogQHR5cGUge0Vycm9yIHwgbnVsbCB8IHVuZGVmaW5lZH0gKi8gc2VuZEVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKHNlbmRFcnJvcikge1xuICAgICAgICAgICAgY29ubmVjdGlvbi5xdWl0KCgpID0+IHJlamVjdChzZW5kRXJyb3IpKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29ubmVjdGlvbi5xdWl0KChxdWl0RXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChxdWl0RXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHF1aXRFcnJvcilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUobnVsbClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG4iXX0=
|