velocious 1.0.514 → 1.0.516
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 +4 -3
- package/build/background-jobs/cron-expression.js +9 -9
- package/build/background-jobs/forked-runner-child.js +1 -1
- package/build/background-jobs/job-runner.js +21 -15
- package/build/background-jobs/json-socket.js +4 -0
- package/build/background-jobs/main.js +180 -18
- package/build/background-jobs/status-reporter.js +12 -5
- package/build/background-jobs/store.js +132 -50
- package/build/background-jobs/types.js +11 -3
- package/build/background-jobs/worker.js +9 -5
- package/build/beacon/client.js +13 -6
- package/build/configuration.js +54 -29
- package/build/controller.js +9 -3
- package/build/database/drivers/sqlite/base.js +1 -1
- package/build/database/drivers/sqlite/index.js +15 -14
- package/build/database/migrations-ledger.js +16 -16
- package/build/database/pool/async-tracked-multi-connection.js +16 -0
- package/build/database/pool/base.js +26 -0
- package/build/database/query/where-model-class-hash.js +2 -0
- package/build/database/query/with-count.js +1 -1
- package/build/database/record/acts-as-list.js +2 -2
- package/build/database/record/auditing.js +23 -6
- package/build/database/record/index.js +7 -7
- package/build/database/record/validators/uniqueness.js +3 -3
- package/build/database/tenants/data-copier.js +23 -23
- package/build/database/tenants/schema-cloner.js +27 -27
- package/build/environment-handlers/browser.js +0 -1
- package/build/environment-handlers/node/cli/commands/background-jobs-runner.js +2 -1
- package/build/environment-handlers/node/cli/commands/lint/relationships.js +2 -2
- package/build/environment-handlers/node.js +1 -1
- package/build/frontend-model-controller.js +26 -18
- package/build/frontend-model-resource/base-resource.js +4 -4
- package/build/frontend-models/base.js +5 -5
- package/build/frontend-models/query.js +12 -12
- package/build/http-server/client/index.js +61 -15
- package/build/http-server/client/request-runner.js +7 -1
- package/build/http-server/client/response.js +17 -1
- package/build/http-server/client/websocket-session.js +13 -13
- package/build/http-server/server-client.js +96 -0
- package/build/http-server/websocket-channel.js +12 -11
- package/build/http-server/websocket-connection.js +12 -11
- package/build/http-server/websocket-events-host.js +1 -1
- package/build/http-server/worker-handler/in-process.js +48 -9
- package/build/http-server/worker-handler/index.js +67 -7
- package/build/http-server/worker-handler/worker-thread.js +68 -0
- package/build/src/background-jobs/cron-expression.d.ts +2 -2
- package/build/src/background-jobs/cron-expression.js +10 -10
- package/build/src/background-jobs/forked-runner-child.js +2 -2
- package/build/src/background-jobs/job-runner.d.ts +5 -1
- package/build/src/background-jobs/job-runner.d.ts.map +1 -1
- package/build/src/background-jobs/job-runner.js +22 -16
- package/build/src/background-jobs/json-socket.d.ts +4 -0
- package/build/src/background-jobs/json-socket.d.ts.map +1 -1
- package/build/src/background-jobs/json-socket.js +5 -1
- package/build/src/background-jobs/main.d.ts +62 -10
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +171 -19
- package/build/src/background-jobs/status-reporter.d.ts +6 -2
- package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
- package/build/src/background-jobs/status-reporter.js +13 -6
- package/build/src/background-jobs/store.d.ts +48 -25
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +123 -50
- package/build/src/background-jobs/types.d.ts +36 -3
- package/build/src/background-jobs/types.d.ts.map +1 -1
- package/build/src/background-jobs/types.js +12 -4
- package/build/src/background-jobs/worker.d.ts +7 -5
- package/build/src/background-jobs/worker.d.ts.map +1 -1
- package/build/src/background-jobs/worker.js +10 -6
- package/build/src/beacon/client.d.ts +6 -3
- package/build/src/beacon/client.d.ts.map +1 -1
- package/build/src/beacon/client.js +14 -7
- package/build/src/configuration-types.d.ts +1 -1
- package/build/src/configuration.d.ts +42 -29
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +52 -30
- package/build/src/controller.d.ts +3 -0
- package/build/src/controller.d.ts.map +1 -1
- package/build/src/controller.js +9 -4
- package/build/src/database/drivers/sqlite/base.js +2 -2
- package/build/src/database/drivers/sqlite/index.d.ts +7 -6
- package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.js +16 -15
- package/build/src/database/migrations-ledger.d.ts +16 -16
- package/build/src/database/migrations-ledger.js +17 -17
- package/build/src/database/pool/async-tracked-multi-connection.d.ts +0 -11
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +16 -1
- package/build/src/database/pool/base.d.ts +21 -0
- package/build/src/database/pool/base.d.ts.map +1 -1
- package/build/src/database/pool/base.js +24 -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 +3 -1
- package/build/src/database/query/with-count.js +2 -2
- package/build/src/database/record/acts-as-list.js +3 -3
- package/build/src/database/record/auditing.d.ts +1 -1
- package/build/src/database/record/auditing.d.ts.map +1 -1
- package/build/src/database/record/auditing.js +24 -7
- package/build/src/database/record/index.d.ts +7 -7
- package/build/src/database/record/index.js +8 -8
- package/build/src/database/record/validators/uniqueness.d.ts +3 -3
- package/build/src/database/record/validators/uniqueness.js +4 -4
- package/build/src/database/tenants/data-copier.d.ts +18 -18
- package/build/src/database/tenants/data-copier.js +24 -24
- package/build/src/database/tenants/schema-cloner.d.ts +27 -27
- package/build/src/database/tenants/schema-cloner.js +28 -28
- package/build/src/environment-handlers/browser.d.ts +9 -0
- package/build/src/environment-handlers/browser.d.ts.map +1 -1
- package/build/src/environment-handlers/browser.js +1 -2
- package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.js +3 -2
- package/build/src/environment-handlers/node/cli/commands/lint/relationships.js +3 -3
- package/build/src/environment-handlers/node.js +2 -2
- package/build/src/frontend-model-controller.d.ts +9 -8
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +26 -19
- package/build/src/frontend-model-resource/base-resource.js +5 -5
- package/build/src/frontend-models/base.d.ts +4 -4
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +6 -6
- package/build/src/frontend-models/query.d.ts +7 -7
- package/build/src/frontend-models/query.js +13 -13
- package/build/src/http-server/client/index.d.ts +23 -1
- package/build/src/http-server/client/index.d.ts.map +1 -1
- package/build/src/http-server/client/index.js +55 -17
- package/build/src/http-server/client/request-runner.d.ts.map +1 -1
- package/build/src/http-server/client/request-runner.js +8 -2
- package/build/src/http-server/client/response.d.ts +11 -1
- package/build/src/http-server/client/response.d.ts.map +1 -1
- package/build/src/http-server/client/response.js +16 -2
- package/build/src/http-server/client/websocket-session.d.ts +13 -13
- package/build/src/http-server/client/websocket-session.js +14 -14
- package/build/src/http-server/server-client.d.ts +13 -0
- package/build/src/http-server/server-client.d.ts.map +1 -1
- package/build/src/http-server/server-client.js +94 -1
- package/build/src/http-server/websocket-channel.d.ts +12 -11
- package/build/src/http-server/websocket-channel.d.ts.map +1 -1
- package/build/src/http-server/websocket-channel.js +13 -12
- package/build/src/http-server/websocket-connection.d.ts +12 -11
- package/build/src/http-server/websocket-connection.d.ts.map +1 -1
- package/build/src/http-server/websocket-connection.js +13 -12
- package/build/src/http-server/websocket-events-host.d.ts +1 -1
- package/build/src/http-server/websocket-events-host.js +2 -2
- package/build/src/http-server/worker-handler/in-process.d.ts +2 -0
- package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/in-process.js +42 -11
- package/build/src/http-server/worker-handler/index.d.ts +21 -0
- package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/index.js +61 -7
- package/build/src/http-server/worker-handler/worker-thread.d.ts +30 -0
- package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
- package/build/src/http-server/worker-handler/worker-thread.js +61 -1
- package/build/src/sync/device-identity.d.ts +2 -2
- package/build/src/sync/device-identity.d.ts.map +1 -1
- package/build/src/sync/device-identity.js +4 -4
- package/build/src/sync/local-mutation-log.d.ts +0 -1
- package/build/src/sync/local-mutation-log.d.ts.map +1 -1
- package/build/src/sync/local-mutation-log.js +1 -2
- package/build/src/sync/query-scope.d.ts +5 -0
- package/build/src/sync/query-scope.d.ts.map +1 -1
- package/build/src/sync/query-scope.js +7 -2
- package/build/src/sync/sync-client-types.d.ts +2 -2
- package/build/src/sync/sync-client-types.d.ts.map +1 -1
- package/build/src/sync/sync-client-types.js +1 -1
- package/build/src/sync/sync-client.d.ts +17 -2
- package/build/src/sync/sync-client.d.ts.map +1 -1
- package/build/src/sync/sync-client.js +28 -14
- package/build/src/sync/sync-realtime-bridge.d.ts +6 -2
- package/build/src/sync/sync-realtime-bridge.d.ts.map +1 -1
- package/build/src/sync/sync-realtime-bridge.js +14 -3
- package/build/src/sync/sync-resource-base.d.ts +14 -3
- package/build/src/sync/sync-resource-base.d.ts.map +1 -1
- package/build/src/sync/sync-resource-base.js +20 -4
- package/build/src/sync/sync-scope-store.d.ts +3 -3
- package/build/src/sync/sync-scope-store.d.ts.map +1 -1
- package/build/src/sync/sync-scope-store.js +7 -5
- package/build/src/sync/sync-websocket-channel.d.ts +10 -0
- package/build/src/sync/sync-websocket-channel.d.ts.map +1 -1
- package/build/src/sync/sync-websocket-channel.js +20 -3
- package/build/src/tenants/tenant-iterator.d.ts +8 -8
- package/build/src/tenants/tenant-iterator.js +9 -9
- package/build/src/tenants/tenant.d.ts +6 -6
- package/build/src/tenants/tenant.js +7 -7
- package/build/src/testing/test-runner.d.ts +16 -0
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +79 -19
- package/build/sync/device-identity.js +3 -3
- package/build/sync/local-mutation-log.js +0 -1
- package/build/sync/query-scope.js +6 -1
- package/build/sync/sync-client-types.js +1 -1
- package/build/sync/sync-client.js +28 -15
- package/build/sync/sync-realtime-bridge.js +13 -2
- package/build/sync/sync-resource-base.js +20 -3
- package/build/sync/sync-scope-store.js +6 -4
- package/build/sync/sync-websocket-channel.js +18 -2
- package/build/tenants/tenant-iterator.js +8 -8
- package/build/tenants/tenant.js +6 -6
- package/build/testing/test-runner.js +86 -20
- package/package.json +2 -2
- package/src/background-jobs/cron-expression.js +9 -9
- package/src/background-jobs/forked-runner-child.js +1 -1
- package/src/background-jobs/job-runner.js +21 -15
- package/src/background-jobs/json-socket.js +4 -0
- package/src/background-jobs/main.js +180 -18
- package/src/background-jobs/status-reporter.js +12 -5
- package/src/background-jobs/store.js +132 -50
- package/src/background-jobs/types.js +11 -3
- package/src/background-jobs/worker.js +9 -5
- package/src/beacon/client.js +13 -6
- package/src/configuration.js +54 -29
- package/src/controller.js +9 -3
- package/src/database/drivers/sqlite/base.js +1 -1
- package/src/database/drivers/sqlite/index.js +15 -14
- package/src/database/migrations-ledger.js +16 -16
- package/src/database/pool/async-tracked-multi-connection.js +16 -0
- package/src/database/pool/base.js +26 -0
- package/src/database/query/where-model-class-hash.js +2 -0
- package/src/database/query/with-count.js +1 -1
- package/src/database/record/acts-as-list.js +2 -2
- package/src/database/record/auditing.js +23 -6
- package/src/database/record/index.js +7 -7
- package/src/database/record/validators/uniqueness.js +3 -3
- package/src/database/tenants/data-copier.js +23 -23
- package/src/database/tenants/schema-cloner.js +27 -27
- package/src/environment-handlers/browser.js +0 -1
- package/src/environment-handlers/node/cli/commands/background-jobs-runner.js +2 -1
- package/src/environment-handlers/node/cli/commands/lint/relationships.js +2 -2
- package/src/environment-handlers/node.js +1 -1
- package/src/frontend-model-controller.js +26 -18
- package/src/frontend-model-resource/base-resource.js +4 -4
- package/src/frontend-models/base.js +5 -5
- package/src/frontend-models/query.js +12 -12
- package/src/http-server/client/index.js +61 -15
- package/src/http-server/client/request-runner.js +7 -1
- package/src/http-server/client/response.js +17 -1
- package/src/http-server/client/websocket-session.js +13 -13
- package/src/http-server/server-client.js +96 -0
- package/src/http-server/websocket-channel.js +12 -11
- package/src/http-server/websocket-connection.js +12 -11
- package/src/http-server/websocket-events-host.js +1 -1
- package/src/http-server/worker-handler/in-process.js +48 -9
- package/src/http-server/worker-handler/index.js +67 -7
- package/src/http-server/worker-handler/worker-thread.js +68 -0
- package/src/sync/device-identity.js +3 -3
- package/src/sync/local-mutation-log.js +0 -1
- package/src/sync/query-scope.js +6 -1
- package/src/sync/sync-client-types.js +1 -1
- package/src/sync/sync-client.js +28 -15
- package/src/sync/sync-realtime-bridge.js +13 -2
- package/src/sync/sync-resource-base.js +20 -3
- package/src/sync/sync-scope-store.js +6 -4
- package/src/sync/sync-websocket-channel.js +18 -2
- package/src/tenants/tenant-iterator.js +8 -8
- package/src/tenants/tenant.js +6 -6
- package/src/testing/test-runner.js +86 -20
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
export default class VelociousWebsocketConnection {
|
|
12
12
|
/**
|
|
13
13
|
* Runs constructor.
|
|
14
|
-
* @param {object} args
|
|
14
|
+
* @param {object} args - Owning session, connection parameters, and client identifier.
|
|
15
15
|
* @param {string} args.connectionId - Client-assigned id, unique within the session.
|
|
16
16
|
* @param {Record<string, ?>} args.params - Opaque params from the `connection-open` message.
|
|
17
17
|
* @param {import("./client/websocket-session.js").default} args.session - Owning session.
|
|
@@ -26,15 +26,15 @@ export default class VelociousWebsocketConnection {
|
|
|
26
26
|
* Called once after the session registers this connection and before
|
|
27
27
|
* any `onMessage` fires. Returning a Promise defers the first
|
|
28
28
|
* `connection-opened` message to the client until it resolves.
|
|
29
|
-
* @returns {void | Promise<void>}
|
|
29
|
+
* @returns {void | Promise<void>} - Completes after connection setup.
|
|
30
30
|
*/
|
|
31
31
|
onConnect() { }
|
|
32
32
|
/**
|
|
33
33
|
* Called for each `connection-message` the client sends to this
|
|
34
34
|
* specific connection. Messages arriving before `onConnect` has
|
|
35
35
|
* resolved are queued and delivered in order once it finishes.
|
|
36
|
-
* @param {?} body
|
|
37
|
-
* @returns {void | Promise<void>}
|
|
36
|
+
* @param {?} body - Client-sent payload for this connection.
|
|
37
|
+
* @returns {void | Promise<void>} - Completes after message handling.
|
|
38
38
|
*/
|
|
39
39
|
onMessage(body) { void body; }
|
|
40
40
|
/**
|
|
@@ -43,13 +43,13 @@ export default class VelociousWebsocketConnection {
|
|
|
43
43
|
* itself survives; either `onResume` fires on a successful
|
|
44
44
|
* client reconnect, or `onClose("grace_expired")` fires when the
|
|
45
45
|
* grace window expires.
|
|
46
|
-
* @returns {void | Promise<void>}
|
|
46
|
+
* @returns {void | Promise<void>} - Completes after disconnect handling.
|
|
47
47
|
*/
|
|
48
48
|
onDisconnect() { }
|
|
49
49
|
/**
|
|
50
50
|
* Called after a client reconnect + `session-resume` rebinds this
|
|
51
51
|
* connection to a new socket.
|
|
52
|
-
* @returns {void | Promise<void>}
|
|
52
|
+
* @returns {void | Promise<void>} - Completes after resume handling.
|
|
53
53
|
*/
|
|
54
54
|
onResume() { }
|
|
55
55
|
/**
|
|
@@ -58,14 +58,14 @@ export default class VelociousWebsocketConnection {
|
|
|
58
58
|
* (server-initiated `close()`), `session_destroyed` (socket dropped
|
|
59
59
|
* and nothing to resume; grace path did not apply), `grace_expired`
|
|
60
60
|
* (paused session's grace window ran out without resume), `error`.
|
|
61
|
-
* @param {"client_close" | "server_close" | "session_destroyed" | "grace_expired" | "error"} reason
|
|
62
|
-
* @returns {void | Promise<void>}
|
|
61
|
+
* @param {"client_close" | "server_close" | "session_destroyed" | "grace_expired" | "error"} reason - Lifecycle reason for permanent connection teardown.
|
|
62
|
+
* @returns {void | Promise<void>} - Completes after close handling.
|
|
63
63
|
*/
|
|
64
64
|
onClose(reason) { void reason; }
|
|
65
65
|
/**
|
|
66
66
|
* Sends a `connection-message` frame to the client side of this
|
|
67
67
|
* connection. Throws if the connection has already been closed.
|
|
68
|
-
* @param {?} body
|
|
68
|
+
* @param {?} body - Connection payload to send to the client.
|
|
69
69
|
* @returns {void}
|
|
70
70
|
*/
|
|
71
71
|
sendMessage(body) {
|
|
@@ -81,7 +81,7 @@ export default class VelociousWebsocketConnection {
|
|
|
81
81
|
/**
|
|
82
82
|
* Closes this connection from the server side. Fires `onClose`
|
|
83
83
|
* locally and notifies the client with `{type: "connection-closed"}`.
|
|
84
|
-
* @param {"server_close" | "error"} [reason]
|
|
84
|
+
* @param {"server_close" | "error"} [reason] - Reason reported to the close hook and client.
|
|
85
85
|
* @returns {Promise<void>}
|
|
86
86
|
*/
|
|
87
87
|
async close(reason = "server_close") {
|
|
@@ -102,9 +102,10 @@ export default class VelociousWebsocketConnection {
|
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* Runs is closed.
|
|
105
|
-
* @returns {boolean}
|
|
105
|
+
* @returns {boolean} - Whether the connection is closed.
|
|
106
|
+
*/
|
|
106
107
|
isClosed() {
|
|
107
108
|
return this._closed;
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWNvbm5lY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvd2Vic29ja2V0LWNvbm5lY3Rpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyw0QkFBNEI7SUFDL0M7Ozs7OztPQU1HO0lBQ0gsWUFBWSxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtJQUN0QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEtBQUksQ0FBQztJQUVkOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUEsQ0FBQyxDQUFDO0lBRTdCOzs7Ozs7O09BT0c7SUFDSCxZQUFZLEtBQUksQ0FBQztJQUVqQjs7OztPQUlHO0lBQ0gsUUFBUSxLQUFJLENBQUM7SUFFYjs7Ozs7Ozs7T0FRRztJQUNILE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxNQUFNLENBQUEsQ0FBQyxDQUFDO0lBRS9COzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLElBQUk7UUFDZCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUNqRixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDcEIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsSUFBSTtTQUNMLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLGNBQWM7UUFDakMsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFFbkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzVCLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLE1BQU07YUFDUCxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYXBwLWRlZmluZWQgMToxIFdlYlNvY2tldCBjb25uZWN0aW9ucy4gU3ViY2xhc3Nlc1xuICogb3ZlcnJpZGUgYG9uQ29ubmVjdGAsIGBvbk1lc3NhZ2VgLCBhbmQgYG9uQ2xvc2VgIHRvIGhhbmRsZSB0aGVcbiAqIHNlc3Npb24gbGlmZWN5Y2xlLiBVc2UgYHRoaXMuc2VuZE1lc3NhZ2UoYm9keSlgIHRvIHB1c2ggbWVzc2FnZXMgdG9cbiAqIHRoZSBjbGllbnQgc2lkZSBvZiB0aGlzIGNvbm5lY3Rpb24uXG4gKlxuICogU2VlIGBkb2NzL3dlYnNvY2tldC1jb25uZWN0aW9ucy5tZGAgZm9yIHRoZSB3aXJlIHByb3RvY29sIGFuZCBmdWxsXG4gKiBsaWZlY3ljbGUgc2VtYW50aWNzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNXZWJzb2NrZXRDb25uZWN0aW9uIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3duaW5nIHNlc3Npb24sIGNvbm5lY3Rpb24gcGFyYW1ldGVycywgYW5kIGNsaWVudCBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jb25uZWN0aW9uSWQgLSBDbGllbnQtYXNzaWduZWQgaWQsIHVuaXF1ZSB3aXRoaW4gdGhlIHNlc3Npb24uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGFyZ3MucGFyYW1zIC0gT3BhcXVlIHBhcmFtcyBmcm9tIHRoZSBgY29ubmVjdGlvbi1vcGVuYCBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vY2xpZW50L3dlYnNvY2tldC1zZXNzaW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3Muc2Vzc2lvbiAtIE93bmluZyBzZXNzaW9uLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2Nvbm5lY3Rpb25JZCwgcGFyYW1zLCBzZXNzaW9ufSkge1xuICAgIHRoaXMuY29ubmVjdGlvbklkID0gY29ubmVjdGlvbklkXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXMgfHwge31cbiAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uXG4gICAgdGhpcy5fY2xvc2VkID0gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgb25jZSBhZnRlciB0aGUgc2Vzc2lvbiByZWdpc3RlcnMgdGhpcyBjb25uZWN0aW9uIGFuZCBiZWZvcmVcbiAgICogYW55IGBvbk1lc3NhZ2VgIGZpcmVzLiBSZXR1cm5pbmcgYSBQcm9taXNlIGRlZmVycyB0aGUgZmlyc3RcbiAgICogYGNvbm5lY3Rpb24tb3BlbmVkYCBtZXNzYWdlIHRvIHRoZSBjbGllbnQgdW50aWwgaXQgcmVzb2x2ZXMuXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn0gLSBDb21wbGV0ZXMgYWZ0ZXIgY29ubmVjdGlvbiBzZXR1cC5cbiAgICovXG4gIG9uQ29ubmVjdCgpIHt9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBmb3IgZWFjaCBgY29ubmVjdGlvbi1tZXNzYWdlYCB0aGUgY2xpZW50IHNlbmRzIHRvIHRoaXNcbiAgICogc3BlY2lmaWMgY29ubmVjdGlvbi4gTWVzc2FnZXMgYXJyaXZpbmcgYmVmb3JlIGBvbkNvbm5lY3RgIGhhc1xuICAgKiByZXNvbHZlZCBhcmUgcXVldWVkIGFuZCBkZWxpdmVyZWQgaW4gb3JkZXIgb25jZSBpdCBmaW5pc2hlcy5cbiAgICogQHBhcmFtIHs/fSBib2R5IC0gQ2xpZW50LXNlbnQgcGF5bG9hZCBmb3IgdGhpcyBjb25uZWN0aW9uLlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59IC0gQ29tcGxldGVzIGFmdGVyIG1lc3NhZ2UgaGFuZGxpbmcuXG4gICAqL1xuICBvbk1lc3NhZ2UoYm9keSkgeyB2b2lkIGJvZHkgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdW5kZXJseWluZyBzb2NrZXQgZHJvcHMgYW5kIHRoZSBzZXNzaW9uIGlzXG4gICAqIG1vdmVkIGludG8gdGhlIHBhdXNlZC9ncmFjZSByZWdpc3RyeS4gVGhlIGNvbm5lY3Rpb24gaW5zdGFuY2VcbiAgICogaXRzZWxmIHN1cnZpdmVzOyBlaXRoZXIgYG9uUmVzdW1lYCBmaXJlcyBvbiBhIHN1Y2Nlc3NmdWxcbiAgICogY2xpZW50IHJlY29ubmVjdCwgb3IgYG9uQ2xvc2UoXCJncmFjZV9leHBpcmVkXCIpYCBmaXJlcyB3aGVuIHRoZVxuICAgKiBncmFjZSB3aW5kb3cgZXhwaXJlcy5cbiAgICogQHJldHVybnMge3ZvaWQgfCBQcm9taXNlPHZvaWQ+fSAtIENvbXBsZXRlcyBhZnRlciBkaXNjb25uZWN0IGhhbmRsaW5nLlxuICAgKi9cbiAgb25EaXNjb25uZWN0KCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGEgY2xpZW50IHJlY29ubmVjdCArIGBzZXNzaW9uLXJlc3VtZWAgcmViaW5kcyB0aGlzXG4gICAqIGNvbm5lY3Rpb24gdG8gYSBuZXcgc29ja2V0LlxuICAgKiBAcmV0dXJucyB7dm9pZCB8IFByb21pc2U8dm9pZD59IC0gQ29tcGxldGVzIGFmdGVyIHJlc3VtZSBoYW5kbGluZy5cbiAgICovXG4gIG9uUmVzdW1lKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGV4YWN0bHkgb25jZSB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIHBlcm1hbmVudGx5IHRvcm5cbiAgICogZG93bi4gUmVhc29uczogYGNsaWVudF9jbG9zZWAgKGNsaWVudCB1bnN1YnNjcmliZWQpLCBgc2VydmVyX2Nsb3NlYFxuICAgKiAoc2VydmVyLWluaXRpYXRlZCBgY2xvc2UoKWApLCBgc2Vzc2lvbl9kZXN0cm95ZWRgIChzb2NrZXQgZHJvcHBlZFxuICAgKiBhbmQgbm90aGluZyB0byByZXN1bWU7IGdyYWNlIHBhdGggZGlkIG5vdCBhcHBseSksIGBncmFjZV9leHBpcmVkYFxuICAgKiAocGF1c2VkIHNlc3Npb24ncyBncmFjZSB3aW5kb3cgcmFuIG91dCB3aXRob3V0IHJlc3VtZSksIGBlcnJvcmAuXG4gICAqIEBwYXJhbSB7XCJjbGllbnRfY2xvc2VcIiB8IFwic2VydmVyX2Nsb3NlXCIgfCBcInNlc3Npb25fZGVzdHJveWVkXCIgfCBcImdyYWNlX2V4cGlyZWRcIiB8IFwiZXJyb3JcIn0gcmVhc29uIC0gTGlmZWN5Y2xlIHJlYXNvbiBmb3IgcGVybWFuZW50IGNvbm5lY3Rpb24gdGVhcmRvd24uXG4gICAqIEByZXR1cm5zIHt2b2lkIHwgUHJvbWlzZTx2b2lkPn0gLSBDb21wbGV0ZXMgYWZ0ZXIgY2xvc2UgaGFuZGxpbmcuXG4gICAqL1xuICBvbkNsb3NlKHJlYXNvbikgeyB2b2lkIHJlYXNvbiB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgYGNvbm5lY3Rpb24tbWVzc2FnZWAgZnJhbWUgdG8gdGhlIGNsaWVudCBzaWRlIG9mIHRoaXNcbiAgICogY29ubmVjdGlvbi4gVGhyb3dzIGlmIHRoZSBjb25uZWN0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY2xvc2VkLlxuICAgKiBAcGFyYW0gez99IGJvZHkgLSBDb25uZWN0aW9uIHBheWxvYWQgdG8gc2VuZCB0byB0aGUgY2xpZW50LlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNlbmRNZXNzYWdlKGJvZHkpIHtcbiAgICBpZiAodGhpcy5fY2xvc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZW5kTWVzc2FnZSBvbiBjbG9zZWQgY29ubmVjdGlvbiAke3RoaXMuY29ubmVjdGlvbklkfWApXG4gICAgfVxuXG4gICAgdGhpcy5zZXNzaW9uLnNlbmRKc29uKHtcbiAgICAgIHR5cGU6IFwiY29ubmVjdGlvbi1tZXNzYWdlXCIsXG4gICAgICBjb25uZWN0aW9uSWQ6IHRoaXMuY29ubmVjdGlvbklkLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoaXMgY29ubmVjdGlvbiBmcm9tIHRoZSBzZXJ2ZXIgc2lkZS4gRmlyZXMgYG9uQ2xvc2VgXG4gICAqIGxvY2FsbHkgYW5kIG5vdGlmaWVzIHRoZSBjbGllbnQgd2l0aCBge3R5cGU6IFwiY29ubmVjdGlvbi1jbG9zZWRcIn1gLlxuICAgKiBAcGFyYW0ge1wic2VydmVyX2Nsb3NlXCIgfCBcImVycm9yXCJ9IFtyZWFzb25dIC0gUmVhc29uIHJlcG9ydGVkIHRvIHRoZSBjbG9zZSBob29rIGFuZCBjbGllbnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgY2xvc2UocmVhc29uID0gXCJzZXJ2ZXJfY2xvc2VcIikge1xuICAgIGlmICh0aGlzLl9jbG9zZWQpIHJldHVyblxuICAgIHRoaXMuX2Nsb3NlZCA9IHRydWVcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm9uQ2xvc2UocmVhc29uKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNlc3Npb24uc2VuZEpzb24oe1xuICAgICAgICB0eXBlOiBcImNvbm5lY3Rpb24tY2xvc2VkXCIsXG4gICAgICAgIGNvbm5lY3Rpb25JZDogdGhpcy5jb25uZWN0aW9uSWQsXG4gICAgICAgIHJlYXNvblxuICAgICAgfSlcbiAgICAgIHRoaXMuc2Vzc2lvbi5fcmVtb3ZlQ29ubmVjdGlvbih0aGlzLmNvbm5lY3Rpb25JZClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBpcyBjbG9zZWQuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLlxuICAgKi9cbiAgaXNDbG9zZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlZFxuICB9XG59XG4iXX0=
|
|
@@ -53,7 +53,7 @@ export class VelociousHttpServerWebsocketEventsHost {
|
|
|
53
53
|
* @param {object} args - Options.
|
|
54
54
|
* @param {?} args.body - Event body.
|
|
55
55
|
* @param {string} args.channel - Channel name.
|
|
56
|
-
* @returns {Promise<{createdAt: string, id: string} | null>}
|
|
56
|
+
* @returns {Promise<{createdAt: string, id: string} | null>} - Persisted event metadata when storage is enabled.
|
|
57
57
|
*/
|
|
58
58
|
_persistV2EventIfNeeded({ body, channel }: {
|
|
59
59
|
body: unknown;
|
|
@@ -106,7 +106,7 @@ export class VelociousHttpServerWebsocketEventsHost {
|
|
|
106
106
|
* @param {object} args - Options.
|
|
107
107
|
* @param {?} args.body - Event body.
|
|
108
108
|
* @param {string} args.channel - Channel name.
|
|
109
|
-
* @returns {Promise<{createdAt: string, id: string} | null>}
|
|
109
|
+
* @returns {Promise<{createdAt: string, id: string} | null>} - Persisted event metadata when storage is enabled.
|
|
110
110
|
*/
|
|
111
111
|
async _persistV2EventIfNeeded({ body, channel }) {
|
|
112
112
|
return await this._persistChannelEventIfNeeded({ channel, payload: body });
|
|
@@ -145,4 +145,4 @@ export class VelociousHttpServerWebsocketEventsHost {
|
|
|
145
145
|
}
|
|
146
146
|
const websocketEventsHost = new VelociousHttpServerWebsocketEventsHost();
|
|
147
147
|
export default websocketEventsHost;
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWV2ZW50cy1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2h0dHAtc2VydmVyL3dlYnNvY2tldC1ldmVudHMtaG9zdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLHNDQUFzQyxFQUFDLE1BQU0sZ0NBQWdDLENBQUE7QUFFckYsTUFBTSxPQUFPLHNDQUFzQztJQUNqRDtRQUNFOztzRUFFOEQ7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQjtRQUMxQixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBTztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTFCLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVO1FBQy9CLE1BQU0sV0FBVyxHQUFHLE9BQU8sYUFBYSxLQUFLLFFBQVE7WUFDbkQsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFDO1lBQy9DLENBQUMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUE7UUFDbkMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQTtRQUVuQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUE7WUFFM0UsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztvQkFDN0IsT0FBTztvQkFDUCxTQUFTLEVBQUUsY0FBYyxFQUFFLFNBQVM7b0JBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsRUFBRTtvQkFDM0IsT0FBTztpQkFDUixDQUFDLENBQUE7WUFDSixDQUFDO1FBQ0gsQ0FBQyxFQUFFLG1DQUFtQyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFdBQVcsQ0FBQyxFQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFDO1FBQzFDLDBEQUEwRDtRQUMxRCxnRUFBZ0U7UUFDaEUsOERBQThEO1FBQzlELHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUE7WUFFMUUsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztvQkFDbkMsSUFBSTtvQkFDSixlQUFlO29CQUNmLE9BQU87b0JBQ1AsT0FBTyxFQUFFLGNBQWMsRUFBRSxFQUFFO29CQUMzQixTQUFTLEVBQUUsY0FBYyxFQUFFLFNBQVM7aUJBQ3JDLENBQUMsQ0FBQTtZQUNKLENBQUM7UUFDSCxDQUFDLEVBQUUsc0NBQXNDLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsUUFBUSxFQUFFLFlBQVk7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUE7UUFDbkQsTUFBTSxhQUFhLEdBQUcsT0FBTyxFQUFFLGFBQWEsQ0FBQTtRQUU1QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZO2FBQ2xDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNmLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sTUFBTSxhQUFhLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDdkUsQ0FBQztZQUVELE9BQU8sTUFBTSxRQUFRLEVBQUUsQ0FBQTtRQUN6QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ2xDLE1BQU0sS0FBSyxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLHVCQUF1QixDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQztRQUMzQyxPQUFPLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDO1FBQzVDLE9BQU8sTUFBTSxJQUFJLENBQUMsNEJBQTRCLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLDRCQUE0QixDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQztRQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQTtRQUVuRCxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWE7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUV4QyxNQUFNLHNCQUFzQixHQUFHLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM1RixNQUFNLGFBQWEsR0FBRyxNQUFNLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWhGLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFFL0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtRQUVuRixPQUFPO1lBQ0wsU0FBUyxFQUFFLGNBQWMsQ0FBQyxTQUFTO1lBQ25DLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRTtTQUN0QixDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLHNDQUFzQyxFQUFFLENBQUE7QUFFeEUsZUFBZSxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge3dlYnNvY2tldEV2ZW50TG9nU3RvcmVGb3JDb25maWd1cmF0aW9ufSBmcm9tIFwiLi93ZWJzb2NrZXQtZXZlbnQtbG9nLXN0b3JlLmpzXCJcblxuZXhwb3J0IGNsYXNzIFZlbG9jaW91c0h0dHBTZXJ2ZXJXZWJzb2NrZXRFdmVudHNIb3N0IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqXG4gICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAqIEB0eXBlIHtTZXQ8aW1wb3J0KFwiLi93b3JrZXItaGFuZGxlci9pbmRleC5qc1wiKS5kZWZhdWx0Pn0gKi9cbiAgICB0aGlzLmhhbmRsZXJzID0gbmV3IFNldCgpXG4gICAgdGhpcy5wdWJsaXNoUXVldWUgPSBQcm9taXNlLnJlc29sdmUoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgcGVuZGluZyBwdWJsaXNoL2Jyb2FkY2FzdFxuICAgKiBvcGVyYXRpb25zIGhhdmUgY29tcGxldGVkIChpbmNsdWRpbmcgZXZlbnQtbG9nIHBlcnNpc3RlbmNlKS4gVXNlZnVsXG4gICAqIHdoZW4gYSByZXF1ZXN0IGhhbmRsZXIgbmVlZHMgdG8gZ3VhcmFudGVlIGl0cyBicm9hZGNhc3QgaXMgcGVyc2lzdGVkXG4gICAqIGJlZm9yZSByZXNwb25kaW5nIOKAlCB3aXRob3V0IHRoaXMsIHRoZSBIVFRQIHJlc3BvbnNlIGNhbiByZXR1cm4gYmVmb3JlXG4gICAqIHRoZSBhc3luYyBldmVudC1sb2cgd3JpdGUgZmluaXNoZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgYXdhaXRQZW5kaW5nQnJvYWRjYXN0cygpIHtcbiAgICBhd2FpdCB0aGlzLnB1Ymxpc2hRdWV1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcmVnaXN0ZXIuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi93b3JrZXItaGFuZGxlci9pbmRleC5qc1wiKS5kZWZhdWx0fSBoYW5kbGVyIC0gSGFuZGxlciBpbnN0YW5jZS5cbiAgICogQHJldHVybnMgeygpID0+IHZvaWR9IC0gVGhlIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVnaXN0ZXIoaGFuZGxlcikge1xuICAgIHRoaXMuaGFuZGxlcnMuYWRkKGhhbmRsZXIpXG5cbiAgICByZXR1cm4gKCkgPT4gdGhpcy5oYW5kbGVycy5kZWxldGUoaGFuZGxlcilcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHB1Ymxpc2guXG4gICAqIEBwYXJhbSB7b2JqZWN0IHwgc3RyaW5nfSBjaGFubmVsT3JBcmdzIC0gQ2hhbm5lbCBuYW1lIG9yIG9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0gez99IFtwYXlsb2FkQXJnXSAtIFBheWxvYWQgZGF0YSB3aGVuIGNoYW5uZWwgaXMgcGFzc2VkIHNlcGFyYXRlbHkuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHB1Ymxpc2goY2hhbm5lbE9yQXJncywgcGF5bG9hZEFyZykge1xuICAgIGNvbnN0IHB1Ymxpc2hBcmdzID0gdHlwZW9mIGNoYW5uZWxPckFyZ3MgPT09IFwic3RyaW5nXCJcbiAgICAgID8ge2NoYW5uZWw6IGNoYW5uZWxPckFyZ3MsIHBheWxvYWQ6IHBheWxvYWRBcmd9XG4gICAgICA6IC8qKiBAdHlwZSB7e2NoYW5uZWw6IHN0cmluZywgcGF5bG9hZDogP319ICovIChjaGFubmVsT3JBcmdzKVxuICAgIGNvbnN0IGNoYW5uZWwgPSBwdWJsaXNoQXJncy5jaGFubmVsXG4gICAgY29uc3QgcGF5bG9hZCA9IHB1Ymxpc2hBcmdzLnBheWxvYWRcblxuICAgIHRoaXMuX3F1ZXVlUHVibGlzaChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwZXJzaXN0ZWRFdmVudCA9IGF3YWl0IHRoaXMuX3BlcnNpc3RFdmVudElmTmVlZGVkKHtjaGFubmVsLCBwYXlsb2FkfSlcblxuICAgICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuaGFuZGxlcnMpIHtcbiAgICAgICAgaGFuZGxlci5kaXNwYXRjaFdlYnNvY2tldEV2ZW50KHtcbiAgICAgICAgICBjaGFubmVsLFxuICAgICAgICAgIGNyZWF0ZWRBdDogcGVyc2lzdGVkRXZlbnQ/LmNyZWF0ZWRBdCxcbiAgICAgICAgICBldmVudElkOiBwZXJzaXN0ZWRFdmVudD8uaWQsXG4gICAgICAgICAgcGF5bG9hZFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sIFwiRmFpbGVkIHRvIHB1Ymxpc2ggd2Vic29ja2V0IGV2ZW50XCIpXG4gIH1cblxuICAvKipcbiAgICogRmFuIGEgVjIgY2hhbm5lbCBicm9hZGNhc3Qgb3V0IHRvIGV2ZXJ5IHJlZ2lzdGVyZWQgd29ya2VyIGhhbmRsZXIuXG4gICAqIFBlcnNpc3RzIHRoZSBldmVudCB0byB0aGUgZXZlbnQtbG9nIHN0b3JlIChpZiB0aGUgY2hhbm5lbCBpcyBtYXJrZWRcbiAgICogaW50ZXJlc3RlZCkgc28gY2xpZW50cyBjYW4gcmVzdW1lIGZyb20gYSBgbGFzdEV2ZW50SWRgIGNoZWNrcG9pbnQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNoYW5uZWwgLSBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGFyZ3MuYnJvYWRjYXN0UGFyYW1zIC0gUm91dGluZyBmaWx0ZXIgcGFyYW1zLlxuICAgKiBAcGFyYW0gez99IGFyZ3MuYm9keSAtIE1lc3NhZ2UgYm9keS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBicm9hZGNhc3RWMih7Ym9keSwgYnJvYWRjYXN0UGFyYW1zLCBjaGFubmVsfSkge1xuICAgIC8vIENoYWluIG9udG8gcHVibGlzaFF1ZXVlIHNvIHBlcnNpc3RlbmNlIGNvbXBsZXRlcyBiZWZvcmVcbiAgICAvLyB0aGUgbmV4dCBicm9hZGNhc3Qg4oCUIHdpdGhvdXQgdGhpcywgYSBzdWJzY3JpYmVyIHRoYXQgY29ubmVjdHNcbiAgICAvLyBpbW1lZGlhdGVseSBhZnRlciBhIGJyb2FkY2FzdCBjb3VsZCBtaXNzIHRoZSBqdXN0LXBlcnNpc3RlZFxuICAgIC8vIGV2ZW50IHdoZW4gcmVwbGF5aW5nIGZyb20gbGFzdEV2ZW50SWQgb24gYSBzbG93IERCLlxuICAgIHRoaXMuX3F1ZXVlUHVibGlzaChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwZXJzaXN0ZWRFdmVudCA9IGF3YWl0IHRoaXMuX3BlcnNpc3RWMkV2ZW50SWZOZWVkZWQoe2JvZHksIGNoYW5uZWx9KVxuXG4gICAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgdGhpcy5oYW5kbGVycykge1xuICAgICAgICBoYW5kbGVyLmRpc3BhdGNoV2Vic29ja2V0VjJCcm9hZGNhc3Qoe1xuICAgICAgICAgIGJvZHksXG4gICAgICAgICAgYnJvYWRjYXN0UGFyYW1zLFxuICAgICAgICAgIGNoYW5uZWwsXG4gICAgICAgICAgZXZlbnRJZDogcGVyc2lzdGVkRXZlbnQ/LmlkLFxuICAgICAgICAgIGNyZWF0ZWRBdDogcGVyc2lzdGVkRXZlbnQ/LmNyZWF0ZWRBdFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sIFwiRmFpbGVkIHRvIHBlcnNpc3QvYnJvYWRjYXN0IFYyIGV2ZW50XCIpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBxdWV1ZSBwdWJsaXNoLlxuICAgKiBAcGFyYW0geygpID0+IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gUHVibGlzaCB3b3JrIHRvIHJ1biBpbiBvcmRlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGVycm9yTWVzc2FnZSAtIE1lc3NhZ2UgbG9nZ2VkIHdoZW4gcHVibGlzaCB3b3JrIGZhaWxzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9xdWV1ZVB1Ymxpc2goY2FsbGJhY2ssIGVycm9yTWVzc2FnZSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmhhbmRsZXJzLnZhbHVlcygpLm5leHQoKS52YWx1ZVxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBoYW5kbGVyPy5jb25maWd1cmF0aW9uXG5cbiAgICB0aGlzLnB1Ymxpc2hRdWV1ZSA9IHRoaXMucHVibGlzaFF1ZXVlXG4gICAgICAudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGNvbmZpZ3VyYXRpb24ud2l0aG91dEN1cnJlbnRDb25uZWN0aW9uQ29udGV4dHMoY2FsbGJhY2spXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXdhaXQgY2FsbGJhY2soKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvck1lc3NhZ2UsIGVycm9yKVxuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHBlcnNpc3QgdjIgZXZlbnQgaWYgbmVlZGVkLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7P30gYXJncy5ib2R5IC0gRXZlbnQgYm9keS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY2hhbm5lbCAtIENoYW5uZWwgbmFtZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8e2NyZWF0ZWRBdDogc3RyaW5nLCBpZDogc3RyaW5nfSB8IG51bGw+fVxuICAgKi9cbiAgYXN5bmMgX3BlcnNpc3RWMkV2ZW50SWZOZWVkZWQoe2JvZHksIGNoYW5uZWx9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3BlcnNpc3RDaGFubmVsRXZlbnRJZk5lZWRlZCh7Y2hhbm5lbCwgcGF5bG9hZDogYm9keX0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBwZXJzaXN0IGV2ZW50IGlmIG5lZWRlZC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY2hhbm5lbCAtIENoYW5uZWwgbmFtZS5cbiAgICogQHBhcmFtIHs/fSBhcmdzLnBheWxvYWQgLSBQYXlsb2FkIGRhdGEuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHtjcmVhdGVkQXQ6IHN0cmluZywgaWQ6IHN0cmluZ30gfCBudWxsPn0gLSBQZXJzaXN0ZWQgZXZlbnQgbWV0YWRhdGEuXG4gICAqL1xuICBhc3luYyBfcGVyc2lzdEV2ZW50SWZOZWVkZWQoe2NoYW5uZWwsIHBheWxvYWR9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3BlcnNpc3RDaGFubmVsRXZlbnRJZk5lZWRlZCh7Y2hhbm5lbCwgcGF5bG9hZH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBwZXJzaXN0IGNoYW5uZWwgZXZlbnQgaWYgbmVlZGVkLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jaGFubmVsIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0gez99IGFyZ3MucGF5bG9hZCAtIFBheWxvYWQgZGF0YS5cbiAgICogQHJldHVybnMge1Byb21pc2U8e2NyZWF0ZWRBdDogc3RyaW5nLCBpZDogc3RyaW5nfSB8IG51bGw+fSAtIFBlcnNpc3RlZCBldmVudCBtZXRhZGF0YS5cbiAgICovXG4gIGFzeW5jIF9wZXJzaXN0Q2hhbm5lbEV2ZW50SWZOZWVkZWQoe2NoYW5uZWwsIHBheWxvYWR9KSB7XG4gICAgY29uc3QgaGFuZGxlciA9IHRoaXMuaGFuZGxlcnMudmFsdWVzKCkubmV4dCgpLnZhbHVlXG5cbiAgICBpZiAoIWhhbmRsZXI/LmNvbmZpZ3VyYXRpb24pIHJldHVybiBudWxsXG5cbiAgICBjb25zdCB3ZWJzb2NrZXRFdmVudExvZ1N0b3JlID0gd2Vic29ja2V0RXZlbnRMb2dTdG9yZUZvckNvbmZpZ3VyYXRpb24oaGFuZGxlci5jb25maWd1cmF0aW9uKVxuICAgIGNvbnN0IHNob3VsZFBlcnNpc3QgPSBhd2FpdCB3ZWJzb2NrZXRFdmVudExvZ1N0b3JlLnNob3VsZFBlcnNpc3RDaGFubmVsKGNoYW5uZWwpXG5cbiAgICBpZiAoIXNob3VsZFBlcnNpc3QpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBwZXJzaXN0ZWRFdmVudCA9IGF3YWl0IHdlYnNvY2tldEV2ZW50TG9nU3RvcmUuYXBwZW5kRXZlbnQoe2NoYW5uZWwsIHBheWxvYWR9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNyZWF0ZWRBdDogcGVyc2lzdGVkRXZlbnQuY3JlYXRlZEF0LFxuICAgICAgaWQ6IHBlcnNpc3RlZEV2ZW50LmlkXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHdlYnNvY2tldEV2ZW50c0hvc3QgPSBuZXcgVmVsb2Npb3VzSHR0cFNlcnZlcldlYnNvY2tldEV2ZW50c0hvc3QoKVxuXG5leHBvcnQgZGVmYXVsdCB3ZWJzb2NrZXRFdmVudHNIb3N0XG4iXX0=
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LWV2ZW50cy1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2h0dHAtc2VydmVyL3dlYnNvY2tldC1ldmVudHMtaG9zdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLHNDQUFzQyxFQUFDLE1BQU0sZ0NBQWdDLENBQUE7QUFFckYsTUFBTSxPQUFPLHNDQUFzQztJQUNqRDtRQUNFOztzRUFFOEQ7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQjtRQUMxQixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBTztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTFCLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVO1FBQy9CLE1BQU0sV0FBVyxHQUFHLE9BQU8sYUFBYSxLQUFLLFFBQVE7WUFDbkQsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFDO1lBQy9DLENBQUMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUE7UUFDbkMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQTtRQUVuQyxJQUFJLENBQUMsYUFBYSxDQUFD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RCxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWE7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUV4QyxNQUFNLHNCQUFzQixHQUFHLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM1RixNQUFNLGFBQWEsR0FBRyxNQUFNLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWhGLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFFL0IsTUFBTSxjQUFjLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtRQUVuRixPQUFPO1lBQ0wsU0FBUyxFQUFFLGNBQWMsQ0FBQyxTQUFTO1lBQ25DLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRTtTQUN0QixDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLHNDQUFzQyxFQUFFLENBQUE7QUFFeEUsZUFBZSxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge3dlYnNvY2tldEV2ZW50TG9nU3RvcmVGb3JDb25maWd1cmF0aW9ufSBmcm9tIFwiLi93ZWJzb2NrZXQtZXZlbnQtbG9nLXN0b3JlLmpzXCJcblxuZXhwb3J0IGNsYXNzIFZlbG9jaW91c0h0dHBTZXJ2ZXJXZWJzb2NrZXRFdmVudHNIb3N0IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqXG4gICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAqIEB0eXBlIHtTZXQ8aW1wb3J0KFwiLi93b3JrZXItaGFuZGxlci9pbmRleC5qc1wiKS5kZWZhdWx0Pn0gKi9cbiAgICB0aGlzLmhhbmRsZXJzID0gbmV3IFNldCgpXG4gICAgdGhpcy5wdWJsaXNoUXVldWUgPSBQcm9taXNlLnJlc29sdmUoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgcGVuZGluZyBwdWJsaXNoL2Jyb2FkY2FzdFxuICAgKiBvcGVyYXRpb25zIGhhdmUgY29tcGxldGVkIChpbmNsdWRpbmcgZXZlbnQtbG9nIHBlcnNpc3RlbmNlKS4gVXNlZnVsXG4gICAqIHdoZW4gYSByZXF1ZXN0IGhhbmRsZXIgbmVlZHMgdG8gZ3VhcmFudGVlIGl0cyBicm9hZGNhc3QgaXMgcGVyc2lzdGVkXG4gICAqIGJlZm9yZSByZXNwb25kaW5nIOKAlCB3aXRob3V0IHRoaXMsIHRoZSBIVFRQIHJlc3BvbnNlIGNhbiByZXR1cm4gYmVmb3JlXG4gICAqIHRoZSBhc3luYyBldmVudC1sb2cgd3JpdGUgZmluaXNoZXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgYXdhaXRQZW5kaW5nQnJvYWRjYXN0cygpIHtcbiAgICBhd2FpdCB0aGlzLnB1Ymxpc2hRdWV1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcmVnaXN0ZXIuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi93b3JrZXItaGFuZGxlci9pbmRleC5qc1wiKS5kZWZhdWx0fSBoYW5kbGVyIC0gSGFuZGxlciBpbnN0YW5jZS5cbiAgICogQHJldHVybnMgeygpID0+IHZvaWR9IC0gVGhlIHJlZ2lzdGVyLlxuICAgKi9cbiAgcmVnaXN0ZXIoaGFuZGxlcikge1xuICAgIHRoaXMuaGFuZGxlcnMuYWRkKGhhbmRsZXIpXG5cbiAgICByZXR1cm4gKCkgPT4gdGhpcy5oYW5kbGVycy5kZWxldGUoaGFuZGxlcilcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHB1Ymxpc2guXG4gICAqIEBwYXJhbSB7b2JqZWN0IHwgc3RyaW5nfSBjaGFubmVsT3JBcmdzIC0gQ2hhbm5lbCBuYW1lIG9yIG9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0gez99IFtwYXlsb2FkQXJnXSAtIFBheWxvYWQgZGF0YSB3aGVuIGNoYW5uZWwgaXMgcGFzc2VkIHNlcGFyYXRlbHkuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHB1Ymxpc2goY2hhbm5lbE9yQXJncywgcGF5bG9hZEFyZykge1xuICAgIGNvbnN0IHB1Ymxpc2hBcmdzID0gdHlwZW9mIGNoYW5uZWxPckFyZ3MgPT09IFwic3RyaW5nXCJcbiAgICAgID8ge2NoYW5uZWw6IGNoYW5uZWxPckFyZ3MsIHBheWxvYWQ6IHBheWxvYWRBcmd9XG4gICAgICA6IC8qKiBAdHlwZSB7e2NoYW5uZWw6IHN0cmluZywgcGF5bG9hZDogP319ICovIChjaGFubmVsT3JBcmdzKVxuICAgIGNvbnN0IGNoYW5uZWwgPSBwdWJsaXNoQXJncy5jaGFubmVsXG4gICAgY29uc3QgcGF5bG9hZCA9IHB1Ymxpc2hBcmdzLnBheWxvYWRcblxuICAgIHRoaXMuX3F1ZXVlUHVibGlzaChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwZXJzaXN0ZWRFdmVudCA9IGF3YWl0IHRoaXMuX3BlcnNpc3RFdmVudElmTmVlZGVkKHtjaGFubmVsLCBwYXlsb2FkfSlcblxuICAgICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuaGFuZGxlcnMpIHtcbiAgICAgICAgaGFuZGxlci5kaXNwYXRjaFdlYnNvY2tldEV2ZW50KHtcbiAgICAgICAgICBjaGFubmVsLFxuICAgICAgICAgIGNyZWF0ZWRBdDogcGVyc2lzdGVkRXZlbnQ/LmNyZWF0ZWRBdCxcbiAgICAgICAgICBldmVudElkOiBwZXJzaXN0ZWRFdmVudD8uaWQsXG4gICAgICAgICAgcGF5bG9hZFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sIFwiRmFpbGVkIHRvIHB1Ymxpc2ggd2Vic29ja2V0IGV2ZW50XCIpXG4gIH1cblxuICAvKipcbiAgICogRmFuIGEgVjIgY2hhbm5lbCBicm9hZGNhc3Qgb3V0IHRvIGV2ZXJ5IHJlZ2lzdGVyZWQgd29ya2VyIGhhbmRsZXIuXG4gICAqIFBlcnNpc3RzIHRoZSBldmVudCB0byB0aGUgZXZlbnQtbG9nIHN0b3JlIChpZiB0aGUgY2hhbm5lbCBpcyBtYXJrZWRcbiAgICogaW50ZXJlc3RlZCkgc28gY2xpZW50cyBjYW4gcmVzdW1lIGZyb20gYSBgbGFzdEV2ZW50SWRgIGNoZWNrcG9pbnQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNoYW5uZWwgLSBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGFyZ3MuYnJvYWRjYXN0UGFyYW1zIC0gUm91dGluZyBmaWx0ZXIgcGFyYW1zLlxuICAgKiBAcGFyYW0gez99IGFyZ3MuYm9keSAtIE1lc3NhZ2UgYm9keS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBicm9hZGNhc3RWMih7Ym9keSwgYnJvYWRjYXN0UGFyYW1zLCBjaGFubmVsfSkge1xuICAgIC8vIENoYWluIG9udG8gcHVibGlzaFF1ZXVlIHNvIHBlcnNpc3RlbmNlIGNvbXBsZXRlcyBiZWZvcmVcbiAgICAvLyB0aGUgbmV4dCBicm9hZGNhc3Qg4oCUIHdpdGhvdXQgdGhpcywgYSBzdWJzY3JpYmVyIHRoYXQgY29ubmVjdHNcbiAgICAvLyBpbW1lZGlhdGVseSBhZnRlciBhIGJyb2FkY2FzdCBjb3VsZCBtaXNzIHRoZSBqdXN0LXBlcnNpc3RlZFxuICAgIC8vIGV2ZW50IHdoZW4gcmVwbGF5aW5nIGZyb20gbGFzdEV2ZW50SWQgb24gYSBzbG93IERCLlxuICAgIHRoaXMuX3F1ZXVlUHVibGlzaChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwZXJzaXN0ZWRFdmVudCA9IGF3YWl0IHRoaXMuX3BlcnNpc3RWMkV2ZW50SWZOZWVkZWQoe2JvZHksIGNoYW5uZWx9KVxuXG4gICAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgdGhpcy5oYW5kbGVycykge1xuICAgICAgICBoYW5kbGVyLmRpc3BhdGNoV2Vic29ja2V0VjJCcm9hZGNhc3Qoe1xuICAgICAgICAgIGJvZHksXG4gICAgICAgICAgYnJvYWRjYXN0UGFyYW1zLFxuICAgICAgICAgIGNoYW5uZWwsXG4gICAgICAgICAgZXZlbnRJZDogcGVyc2lzdGVkRXZlbnQ/LmlkLFxuICAgICAgICAgIGNyZWF0ZWRBdDogcGVyc2lzdGVkRXZlbnQ/LmNyZWF0ZWRBdFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sIFwiRmFpbGVkIHRvIHBlcnNpc3QvYnJvYWRjYXN0IFYyIGV2ZW50XCIpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBxdWV1ZSBwdWJsaXNoLlxuICAgKiBAcGFyYW0geygpID0+IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gUHVibGlzaCB3b3JrIHRvIHJ1biBpbiBvcmRlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGVycm9yTWVzc2FnZSAtIE1lc3NhZ2UgbG9nZ2VkIHdoZW4gcHVibGlzaCB3b3JrIGZhaWxzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9xdWV1ZVB1Ymxpc2goY2FsbGJhY2ssIGVycm9yTWVzc2FnZSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmhhbmRsZXJzLnZhbHVlcygpLm5leHQoKS52YWx1ZVxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBoYW5kbGVyPy5jb25maWd1cmF0aW9uXG5cbiAgICB0aGlzLnB1Ymxpc2hRdWV1ZSA9IHRoaXMucHVibGlzaFF1ZXVlXG4gICAgICAudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGNvbmZpZ3VyYXRpb24ud2l0aG91dEN1cnJlbnRDb25uZWN0aW9uQ29udGV4dHMoY2FsbGJhY2spXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXdhaXQgY2FsbGJhY2soKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvck1lc3NhZ2UsIGVycm9yKVxuICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHBlcnNpc3QgdjIgZXZlbnQgaWYgbmVlZGVkLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7P30gYXJncy5ib2R5IC0gRXZlbnQgYm9keS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY2hhbm5lbCAtIENoYW5uZWwgbmFtZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8e2NyZWF0ZWRBdDogc3RyaW5nLCBpZDogc3RyaW5nfSB8IG51bGw+fSAtIFBlcnNpc3RlZCBldmVudCBtZXRhZGF0YSB3aGVuIHN0b3JhZ2UgaXMgZW5hYmxlZC5cbiAgICovXG4gIGFzeW5jIF9wZXJzaXN0VjJFdmVudElmTmVlZGVkKHtib2R5LCBjaGFubmVsfSkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9wZXJzaXN0Q2hhbm5lbEV2ZW50SWZOZWVkZWQoe2NoYW5uZWwsIHBheWxvYWQ6IGJvZHl9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcGVyc2lzdCBldmVudCBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNoYW5uZWwgLSBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7P30gYXJncy5wYXlsb2FkIC0gUGF5bG9hZCBkYXRhLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7Y3JlYXRlZEF0OiBzdHJpbmcsIGlkOiBzdHJpbmd9IHwgbnVsbD59IC0gUGVyc2lzdGVkIGV2ZW50IG1ldGFkYXRhLlxuICAgKi9cbiAgYXN5bmMgX3BlcnNpc3RFdmVudElmTmVlZGVkKHtjaGFubmVsLCBwYXlsb2FkfSkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9wZXJzaXN0Q2hhbm5lbEV2ZW50SWZOZWVkZWQoe2NoYW5uZWwsIHBheWxvYWR9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcGVyc2lzdCBjaGFubmVsIGV2ZW50IGlmIG5lZWRlZC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY2hhbm5lbCAtIENoYW5uZWwgbmFtZS5cbiAgICogQHBhcmFtIHs/fSBhcmdzLnBheWxvYWQgLSBQYXlsb2FkIGRhdGEuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHtjcmVhdGVkQXQ6IHN0cmluZywgaWQ6IHN0cmluZ30gfCBudWxsPn0gLSBQZXJzaXN0ZWQgZXZlbnQgbWV0YWRhdGEuXG4gICAqL1xuICBhc3luYyBfcGVyc2lzdENoYW5uZWxFdmVudElmTmVlZGVkKHtjaGFubmVsLCBwYXlsb2FkfSkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmhhbmRsZXJzLnZhbHVlcygpLm5leHQoKS52YWx1ZVxuXG4gICAgaWYgKCFoYW5kbGVyPy5jb25maWd1cmF0aW9uKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3Qgd2Vic29ja2V0RXZlbnRMb2dTdG9yZSA9IHdlYnNvY2tldEV2ZW50TG9nU3RvcmVGb3JDb25maWd1cmF0aW9uKGhhbmRsZXIuY29uZmlndXJhdGlvbilcbiAgICBjb25zdCBzaG91bGRQZXJzaXN0ID0gYXdhaXQgd2Vic29ja2V0RXZlbnRMb2dTdG9yZS5zaG91bGRQZXJzaXN0Q2hhbm5lbChjaGFubmVsKVxuXG4gICAgaWYgKCFzaG91bGRQZXJzaXN0KSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGVyc2lzdGVkRXZlbnQgPSBhd2FpdCB3ZWJzb2NrZXRFdmVudExvZ1N0b3JlLmFwcGVuZEV2ZW50KHtjaGFubmVsLCBwYXlsb2FkfSlcblxuICAgIHJldHVybiB7XG4gICAgICBjcmVhdGVkQXQ6IHBlcnNpc3RlZEV2ZW50LmNyZWF0ZWRBdCxcbiAgICAgIGlkOiBwZXJzaXN0ZWRFdmVudC5pZFxuICAgIH1cbiAgfVxufVxuXG5jb25zdCB3ZWJzb2NrZXRFdmVudHNIb3N0ID0gbmV3IFZlbG9jaW91c0h0dHBTZXJ2ZXJXZWJzb2NrZXRFdmVudHNIb3N0KClcblxuZXhwb3J0IGRlZmF1bHQgd2Vic29ja2V0RXZlbnRzSG9zdFxuIl19
|
|
@@ -23,6 +23,8 @@ export default class VelociousHttpServerInProcessHandler {
|
|
|
23
23
|
httpClient: Client;
|
|
24
24
|
serverClient: import("../server-client.js").default;
|
|
25
25
|
}>;
|
|
26
|
+
/** @type {Set<Promise<void>>} */
|
|
27
|
+
pendingClientCloseCleanups: Set<Promise<void>>;
|
|
26
28
|
logger: Logger;
|
|
27
29
|
workerCount: number;
|
|
28
30
|
unregisterFromEventsHost: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-process.d.ts","sourceRoot":"","sources":["../../../../src/http-server/worker-handler/in-process.js"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH;IACE;;;;;OAKG;IACH,4CAHG;QAAuD,aAAa,EAA5D,OAAO,wBAAwB,EAAE,OAAO;QAC3B,WAAW,EAAxB,MAAM;KAChB,
|
|
1
|
+
{"version":3,"file":"in-process.d.ts","sourceRoot":"","sources":["../../../../src/http-server/worker-handler/in-process.js"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH;IACE;;;;;OAKG;IACH,4CAHG;QAAuD,aAAa,EAA5D,OAAO,wBAAwB,EAAE,OAAO;QAC3B,WAAW,EAAxB,MAAM;KAChB,EAgBA;IAdC,wDAAkC;IAElC;;2GAEuG;IACvG,SADU,MAAM,CAAC,MAAM,EAAE;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAA;KAAC,CAAC,CAClF;IAEjB,iCAAiC;IACjC,4BADW,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACc;IAE3C,eAA8B;IAC9B,oBAA8B;IAC9B,qCAAqF;IACrF,mBAAsB;IAGxB;;kCAE8B;IAC9B,SADa,OAAO,CAAC,IAAI,CAAC,CAGzB;IAED;;;;OAIG;IACH,kCAHW,OAAO,qBAAqB,EAAE,OAAO,GACnC,IAAI,CAuEhB;IAED;;kCAE8B;IAC9B,QADa,OAAO,CAAC,IAAI,CAAC,CAmBzB;IAED;;;;;;;;;;OAUG;IACH,0EANG;QAAqB,OAAO,EAApB,MAAM;QACkB,eAAe,EAAvC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACT,IAAI,EAAZ,OAAC;QACa,OAAO;KAC7B,GAAU,IAAI,CAMhB;IAED;;;;;;;;OAQG;IACH,iEANG;QAAqB,OAAO,EAApB,MAAM;QACQ,SAAS;QACT,OAAO;QACb,OAAO,EAAf,OAAC;KACT,GAAU,IAAI,CAiBhB;CACF;mBAvLkB,oBAAoB;mBAEpB,iBAAiB"}
|
|
@@ -22,6 +22,8 @@ export default class VelociousHttpServerInProcessHandler {
|
|
|
22
22
|
* Narrows the runtime value to the documented type.
|
|
23
23
|
* @type {Record<number, {httpClient: Client, serverClient: import("../server-client.js").default}>} */
|
|
24
24
|
this.clients = {};
|
|
25
|
+
/** @type {Set<Promise<void>>} */
|
|
26
|
+
this.pendingClientCloseCleanups = new Set();
|
|
25
27
|
this.logger = new Logger(this);
|
|
26
28
|
this.workerCount = workerCount;
|
|
27
29
|
this.unregisterFromEventsHost = websocketEventsHost.register(/** @type {?} */ (this));
|
|
@@ -45,16 +47,42 @@ export default class VelociousHttpServerInProcessHandler {
|
|
|
45
47
|
configuration: this.configuration,
|
|
46
48
|
remoteAddress: serverClient.remoteAddress
|
|
47
49
|
});
|
|
50
|
+
let deliveryQueue = Promise.resolve();
|
|
51
|
+
const enqueueDelivery = (/** @type {() => Promise<void>} */ delivery) => {
|
|
52
|
+
deliveryQueue = deliveryQueue
|
|
53
|
+
.catch(() => { })
|
|
54
|
+
.then(delivery);
|
|
55
|
+
return deliveryQueue;
|
|
56
|
+
};
|
|
48
57
|
httpClient.events.on("output", (output) => {
|
|
49
58
|
if (output !== null && output !== undefined) {
|
|
50
|
-
void serverClient.send(output).catch((error) => {
|
|
59
|
+
void enqueueDelivery(() => serverClient.send(output)).catch((error) => {
|
|
51
60
|
this.logger.error(() => ["Failed to deliver client output", { clientCount }, error]);
|
|
52
61
|
});
|
|
53
62
|
}
|
|
54
63
|
});
|
|
64
|
+
httpClient.events.on("file", ({ filePath, sendBody, settle }) => {
|
|
65
|
+
void enqueueDelivery(async () => {
|
|
66
|
+
await settle(await serverClient.sendFile(filePath, sendBody));
|
|
67
|
+
}).catch((error) => {
|
|
68
|
+
this.logger.error(() => ["Failed to deliver file response", { clientCount, filePath }, error]);
|
|
69
|
+
void settle("aborted");
|
|
70
|
+
});
|
|
71
|
+
});
|
|
55
72
|
httpClient.events.on("close", () => {
|
|
56
|
-
void serverClient.end()
|
|
57
|
-
|
|
73
|
+
void enqueueDelivery(() => serverClient.end())
|
|
74
|
+
.finally(() => delete this.clients[clientCount]);
|
|
75
|
+
});
|
|
76
|
+
serverClient.events.on("close", () => {
|
|
77
|
+
const cleanup = httpClient.abortPendingFileResponses()
|
|
78
|
+
.catch((error) => {
|
|
79
|
+
this.logger.warn("Failed to abort file responses after client close", error);
|
|
80
|
+
})
|
|
81
|
+
.finally(() => {
|
|
82
|
+
this.pendingClientCloseCleanups.delete(cleanup);
|
|
83
|
+
delete this.clients[clientCount];
|
|
84
|
+
});
|
|
85
|
+
this.pendingClientCloseCleanups.add(cleanup);
|
|
58
86
|
});
|
|
59
87
|
this.clients[clientCount] = { httpClient, serverClient };
|
|
60
88
|
// Create a message-port shim so ServerClient.onSocketData can route data
|
|
@@ -75,14 +103,17 @@ export default class VelociousHttpServerInProcessHandler {
|
|
|
75
103
|
* @returns {Promise<void>} */
|
|
76
104
|
async stop() {
|
|
77
105
|
this._stopping = true;
|
|
78
|
-
for (const { serverClient } of Object.values(this.clients)) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
106
|
+
for (const { httpClient, serverClient } of Object.values(this.clients)) {
|
|
107
|
+
await Promise.all([
|
|
108
|
+
httpClient.abortPendingFileResponses().catch((error) => {
|
|
109
|
+
this.logger.warn("Failed to abort file responses during shutdown", error);
|
|
110
|
+
}),
|
|
111
|
+
serverClient.end().catch((error) => {
|
|
112
|
+
this.logger.warn("Failed to close client during shutdown", error);
|
|
113
|
+
})
|
|
114
|
+
]);
|
|
85
115
|
}
|
|
116
|
+
await Promise.all(this.pendingClientCloseCleanups);
|
|
86
117
|
this.clients = {};
|
|
87
118
|
this.unregisterFromEventsHost?.();
|
|
88
119
|
}
|
|
@@ -126,4 +157,4 @@ export default class VelociousHttpServerInProcessHandler {
|
|
|
126
157
|
}
|
|
127
158
|
}
|
|
128
159
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tcHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9odHRwLXNlcnZlci93b3JrZXItaGFuZGxlci9pbi1wcm9jZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQTtBQUN2QyxPQUFPLDBCQUEwQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pFLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8sbUJBQW1CLE1BQU0sNkJBQTZCLENBQUE7QUFFN0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLG1DQUFtQztJQUN0RDs7Ozs7T0FLRztJQUNILFlBQVksRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBRWxDOzsrR0FFdUc7UUFDdkcsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtRQUM5QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNyRixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUN4QixDQUFDO0lBRUQ7O2tDQUU4QjtJQUM5QixLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLElBQUksQ0FBQyxXQUFXLFVBQVUsQ0FBQyxDQUFBO0lBQ2pGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsWUFBWTtRQUM5QixNQUFNLFdBQVcsR0FBRyxZQUFZLENB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QyxhQUFhLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFBO0lBQy9GLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILHNCQUFzQixDQUFDLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDO1FBQzNELEtBQUssTUFBTSxFQUFDLFVBQVUsRUFBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFBO1lBRTNDLElBQUksQ0FBQyxPQUFPO2dCQUFFLFNBQVE7WUFFdEIsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtRQUNoRSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsb0VBQW9FO1lBQ3BFLDhEQUE4RDtZQUM5RCw4QkFBOEI7WUFDOUIsS0FBSywwQkFBMEIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUE7UUFDakksQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQ2xpZW50IGZyb20gXCIuLi9jbGllbnQvaW5kZXguanNcIlxuaW1wb3J0IGRpc3BhdGNoQ2hhbm5lbFN1YnNjcmliZXJzIGZyb20gXCIuL2NoYW5uZWwtc3Vic2NyaWJlci1kaXNwYXRjaC5qc1wiXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuLi8uLi9sb2dnZXIuanNcIlxuaW1wb3J0IHdlYnNvY2tldEV2ZW50c0hvc3QgZnJvbSBcIi4uL3dlYnNvY2tldC1ldmVudHMtaG9zdC5qc1wiXG5cbi8qKlxuICogSW4tcHJvY2VzcyB3b3JrZXIgaGFuZGxlciB0aGF0IHByb2Nlc3NlcyBIVFRQIHJlcXVlc3RzIGluIHRoZSBtYWluIHRocmVhZFxuICogaW5zdGVhZCBvZiBzcGF3bmluZyBhIFdvcmtlciB0aHJlYWQuIFRoaXMgYWxsb3dzIHRoZSB0ZXN0IHJ1bm5lcidzIGRhdGFiYXNlXG4gKiBjb25uZWN0aW9uIGNvbnRleHQgdG8gYmUgc2hhcmVkIHdpdGggSFRUUCByZXF1ZXN0IGhhbmRsZXJzLCBzbyBtb2RlbC1jcmVhdGVkXG4gKiByZWNvcmRzIGluIHRlc3RzIGFyZSB2aXNpYmxlIHRvIEhUVFAgZW5kcG9pbnRzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNIdHRwU2VydmVySW5Qcm9jZXNzSGFuZGxlciB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGFyZ3Mud29ya2VyQ291bnQgLSBXb3JrZXIgY291bnQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgd29ya2VyQ291bnR9KSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuXG4gICAgLyoqXG4gICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAqIEB0eXBlIHtSZWNvcmQ8bnVtYmVyLCB7aHR0cENsaWVudDogQ2xpZW50LCBzZXJ2ZXJDbGllbnQ6IGltcG9ydChcIi4uL3NlcnZlci1jbGllbnQuanNcIikuZGVmYXVsdH0+fSAqL1xuICAgIHRoaXMuY2xpZW50cyA9IHt9XG5cbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcbiAgICB0aGlzLndvcmtlckNvdW50ID0gd29ya2VyQ291bnRcbiAgICB0aGlzLnVucmVnaXN0ZXJGcm9tRXZlbnRzSG9zdCA9IHdlYnNvY2tldEV2ZW50c0hvc3QucmVnaXN0ZXIoLyoqIEB0eXBlIHs/fSAqLyAodGhpcykpXG4gICAgdGhpcy5fc3RvcHBpbmcgPSBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc3RhcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBhc3luYyBzdGFydCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5kZWJ1ZygoKSA9PiBgSW4tcHJvY2VzcyBoYW5kbGVyICR7dGhpcy53b3JrZXJDb3VudH0gc3RhcnRlZGApXG4gIH1cblxuICAvKipcbiAgICogUnVucyBhZGQgc29ja2V0IGNvbm5lY3Rpb24uXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VydmVyLWNsaWVudC5qc1wiKS5kZWZhdWx0fSBzZXJ2ZXJDbGllbnQgLSBTZXJ2ZXIgY2xpZW50IGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGFkZFNvY2tldENvbm5lY3Rpb24oc2VydmVyQ2xpZW50KSB7XG4gICAgY29uc3QgY2xpZW50Q291bnQgPSBzZXJ2ZXJDbGllbnQuY2xpZW50Q291bnRcblxuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBuZXcgQ2xpZW50KHtcbiAgICAgIGNsaWVudENvdW50LFxuICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgcmVtb3RlQWRkcmVzczogc2VydmVyQ2xpZW50LnJlbW90ZUFkZHJlc3NcbiAgICB9KVxuXG4gICAgaHR0cENsaWVudC5ldmVudHMub24oXCJvdXRwdXRcIiwgKG91dHB1dCkgPT4ge1xuICAgICAgaWYgKG91dHB1dCAhPT0gbnVsbCAmJiBvdXRwdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2b2lkIHNlcnZlckNsaWVudC5zZW5kKG91dHB1dCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoKCkgPT4gW1wiRmFpbGVkIHRvIGRlbGl2ZXIgY2xpZW50IG91dHB1dFwiLCB7Y2xpZW50Q291bnR9LCBlcnJvcl0pXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIGh0dHBDbGllbnQuZXZlbnRzLm9uKFwiY2xvc2VcIiwgKCkgPT4ge1xuICAgICAgdm9pZCBzZXJ2ZXJDbGllbnQuZW5kKClcbiAgICAgIGRlbGV0ZSB0aGlzLmNsaWVudHNbY2xpZW50Q291bnRdXG4gICAgfSlcblxuICAgIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF0gPSB7aHR0cENsaWVudCwgc2VydmVyQ2xpZW50fVxuXG4gICAgLy8gQ3JlYXRlIGEgbWVzc2FnZS1wb3J0IHNoaW0gc28gU2VydmVyQ2xpZW50Lm9uU29ja2V0RGF0YSBjYW4gcm91dGUgZGF0YVxuICAgIC8vIHRvIHRoZSBpbi1wcm9jZXNzIEhUVFAgQ2xpZW50IHdpdGhvdXQgbmVlZGluZyBhIHJlYWwgd29ya2VyIHRocmVhZC5cbiAgICBjb25zdCBtZXNzYWdlUG9ydFNoaW0gPSAvKiogQHR5cGUge2ltcG9ydChcIndvcmtlcl90aHJlYWRzXCIpLldvcmtlcn0gKi8gKC8qKiBAdHlwZSB7P30gKi8gKHtcbiAgICAgIHBvc3RNZXNzYWdlOiAoLyoqIEB0eXBlIHt7Y29tbWFuZDogc3RyaW5nLCBjaHVuaz86IEJ1ZmZlciB8IFVpbnQ4QXJyYXkgfCBzdHJpbmcsIGNsaWVudENvdW50PzogbnVtYmVyfX0gKi8gZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5jb21tYW5kID09PSBcImNsaWVudFdyaXRlXCIgJiYgZGF0YS5jaHVuaykge1xuICAgICAgICAgIGNvbnN0IGNodW5rID0gdHlwZW9mIGRhdGEuY2h1bmsgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShkYXRhLmNodW5rKSA6IEJ1ZmZlci5mcm9tKGRhdGEuY2h1bmspXG5cbiAgICAgICAgICBodHRwQ2xpZW50Lm9uV3JpdGUoY2h1bmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSlcblxuICAgIHNlcnZlckNsaWVudC5zZXRXb3JrZXIobWVzc2FnZVBvcnRTaGltKVxuICAgIHNlcnZlckNsaWVudC5saXN0ZW4oKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc3RvcC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdGhpcy5fc3RvcHBpbmcgPSB0cnVlXG5cbiAgICBmb3IgKGNvbnN0IHtzZXJ2ZXJDbGllbnR9IG9mIE9iamVjdC52YWx1ZXModGhpcy5jbGllbnRzKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdm9pZCBzZXJ2ZXJDbGllbnQuZW5kKClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJGYWlsZWQgdG8gY2xvc2UgY2xpZW50IGR1cmluZyBzaHV0ZG93blwiLCBlcnJvcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNsaWVudHMgPSB7fVxuICAgIHRoaXMudW5yZWdpc3RlckZyb21FdmVudHNIb3N0Py4oKVxuICB9XG5cbiAgLyoqXG4gICAqIEluLXByb2Nlc3MgaGFuZGxlciBwYXRoIGZvciBWMiBjaGFubmVsIGJyb2FkY2FzdHMuIE5vIHdvcmtlclxuICAgKiBib3VuZGFyeSB0byBjcm9zcyDigJQgZGlzcGF0Y2ggZGlyZWN0bHkgdG8gYW55IG1hdGNoaW5nIGxpdmVcbiAgICogc3Vic2NyaXB0aW9ucyBvbiB0aGUgc2hhcmVkIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNoYW5uZWwgLSBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgPz59IGFyZ3MuYnJvYWRjYXN0UGFyYW1zIC0gUm91dGluZyBmaWx0ZXIgcGFyYW1zLlxuICAgKiBAcGFyYW0gez99IGFyZ3MuYm9keSAtIE1lc3NhZ2UgYm9keS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmV2ZW50SWRdIC0gUGVyc2lzdGVkIGV2ZW50IGlkIGZvciByZXBsYXkuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZGlzcGF0Y2hXZWJzb2NrZXRWMkJyb2FkY2FzdCh7Ym9keSwgYnJvYWRjYXN0UGFyYW1zLCBjaGFubmVsLCBldmVudElkfSkge1xuICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uKSByZXR1cm5cblxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24uX2Jyb2FkY2FzdFRvQ2hhbm5lbExvY2FsKGNoYW5uZWwsIGJyb2FkY2FzdFBhcmFtcywgYm9keSwge2V2ZW50SWR9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZGlzcGF0Y2ggd2Vic29ja2V0IGV2ZW50LlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5jaGFubmVsIC0gQ2hhbm5lbCBuYW1lLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuY3JlYXRlZEF0XSAtIEV2ZW50IGNyZWF0aW9uIHRpbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5ldmVudElkXSAtIEV2ZW50IGlkZW50aWZpZXIuXG4gICAqIEBwYXJhbSB7P30gYXJncy5wYXlsb2FkIC0gUGF5bG9hZCBkYXRhLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGRpc3BhdGNoV2Vic29ja2V0RXZlbnQoe2NoYW5uZWwsIGNyZWF0ZWRBdCwgZXZlbnRJZCwgcGF5bG9hZH0pIHtcbiAgICBmb3IgKGNvbnN0IHtodHRwQ2xpZW50fSBvZiBPYmplY3QudmFsdWVzKHRoaXMuY2xpZW50cykpIHtcbiAgICAgIGNvbnN0IHNlc3Npb24gPSBodHRwQ2xpZW50LndlYnNvY2tldFNlc3Npb25cblxuICAgICAgaWYgKCFzZXNzaW9uKSBjb250aW51ZVxuXG4gICAgICB2b2lkIHNlc3Npb24uc2VuZEV2ZW50KGNoYW5uZWwsIHBheWxvYWQsIHtjcmVhdGVkQXQsIGV2ZW50SWR9KVxuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIC8vIElzb2xhdGUgc3Vic2NyaWJlciBmYWlsdXJlcyBmcm9tIGJyZWFraW5nIHRoZSBpbi1wcm9jZXNzIGhhbmRsZXIsXG4gICAgICAvLyBidXQgc3RpbGwgc3VyZmFjZSB0aGVtIHRvIHRoZSBmcmFtZXdvcmsgZXJyb3IgZXZlbnRzIHNvIGJ1Z1xuICAgICAgLy8gcmVwb3J0ZXJzIGNhbiBwaWNrIHRoZW0gdXAuXG4gICAgICB2b2lkIGRpc3BhdGNoQ2hhbm5lbFN1YnNjcmliZXJzKHtjaGFubmVsLCBjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sIGNyZWF0ZWRBdCwgZXZlbnRJZCwgbG9nZ2VyOiB0aGlzLmxvZ2dlciwgcGF5bG9hZH0pXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tcHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9odHRwLXNlcnZlci93b3JrZXItaGFuZGxlci9pbi1wcm9jZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQTtBQUN2QyxPQUFPLDBCQUEwQixNQUFNLGtDQUFrQyxDQUFBO0FBQ3pFLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BDLE9BQU8sbUJBQW1CLE1BQU0sNkJBQTZCLENBQUE7QUFFN0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLG1DQUFtQztJQUN0RDs7Ozs7T0FLRztJQUNILFlBQVksRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBRWxDOzsrR0FFdUc7UUFDdkcsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFakIsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBRTNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7UUFDOUIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDckYsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDeEIsQ0FBQztJQUVEOztrQ0FFOEI7SUFDOUIsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixJQUFJLENBQUMsV0FBVyxVQUFVLENBQUMsQ0FBQTtJQUNqRixDQUFDO0lB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QUE7WUFFM0MsSUFBSSxDQUFDLE9BQU87Z0JBQUUsU0FBUTtZQUV0QixLQUFLLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixvRUFBb0U7WUFDcEUsOERBQThEO1lBQzlELDhCQUE4QjtZQUM5QixLQUFLLDBCQUEwQixDQUFDLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQTtRQUNqSSxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBDbGllbnQgZnJvbSBcIi4uL2NsaWVudC9pbmRleC5qc1wiXG5pbXBvcnQgZGlzcGF0Y2hDaGFubmVsU3Vic2NyaWJlcnMgZnJvbSBcIi4vY2hhbm5lbC1zdWJzY3JpYmVyLWRpc3BhdGNoLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uLy4uL2xvZ2dlci5qc1wiXG5pbXBvcnQgd2Vic29ja2V0RXZlbnRzSG9zdCBmcm9tIFwiLi4vd2Vic29ja2V0LWV2ZW50cy1ob3N0LmpzXCJcblxuLyoqXG4gKiBJbi1wcm9jZXNzIHdvcmtlciBoYW5kbGVyIHRoYXQgcHJvY2Vzc2VzIEhUVFAgcmVxdWVzdHMgaW4gdGhlIG1haW4gdGhyZWFkXG4gKiBpbnN0ZWFkIG9mIHNwYXduaW5nIGEgV29ya2VyIHRocmVhZC4gVGhpcyBhbGxvd3MgdGhlIHRlc3QgcnVubmVyJ3MgZGF0YWJhc2VcbiAqIGNvbm5lY3Rpb24gY29udGV4dCB0byBiZSBzaGFyZWQgd2l0aCBIVFRQIHJlcXVlc3QgaGFuZGxlcnMsIHNvIG1vZGVsLWNyZWF0ZWRcbiAqIHJlY29yZHMgaW4gdGVzdHMgYXJlIHZpc2libGUgdG8gSFRUUCBlbmRwb2ludHMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0h0dHBTZXJ2ZXJJblByb2Nlc3NIYW5kbGVyIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge251bWJlcn0gYXJncy53b3JrZXJDb3VudCAtIFdvcmtlciBjb3VudC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCB3b3JrZXJDb3VudH0pIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG5cbiAgICAvKipcbiAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICogQHR5cGUge1JlY29yZDxudW1iZXIsIHtodHRwQ2xpZW50OiBDbGllbnQsIHNlcnZlckNsaWVudDogaW1wb3J0KFwiLi4vc2VydmVyLWNsaWVudC5qc1wiKS5kZWZhdWx0fT59ICovXG4gICAgdGhpcy5jbGllbnRzID0ge31cblxuICAgIC8qKiBAdHlwZSB7U2V0PFByb21pc2U8dm9pZD4+fSAqL1xuICAgIHRoaXMucGVuZGluZ0NsaWVudENsb3NlQ2xlYW51cHMgPSBuZXcgU2V0KClcblxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuICAgIHRoaXMud29ya2VyQ291bnQgPSB3b3JrZXJDb3VudFxuICAgIHRoaXMudW5yZWdpc3RlckZyb21FdmVudHNIb3N0ID0gd2Vic29ja2V0RXZlbnRzSG9zdC5yZWdpc3RlcigvKiogQHR5cGUgez99ICovICh0aGlzKSlcbiAgICB0aGlzLl9zdG9wcGluZyA9IGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdGFydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGF3YWl0IHRoaXMubG9nZ2VyLmRlYnVnKCgpID0+IGBJbi1wcm9jZXNzIGhhbmRsZXIgJHt0aGlzLndvcmtlckNvdW50fSBzdGFydGVkYClcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGFkZCBzb2NrZXQgY29ubmVjdGlvbi5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZXJ2ZXItY2xpZW50LmpzXCIpLmRlZmF1bHR9IHNlcnZlckNsaWVudCAtIFNlcnZlciBjbGllbnQgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgYWRkU29ja2V0Q29ubmVjdGlvbihzZXJ2ZXJDbGllbnQpIHtcbiAgICBjb25zdCBjbGllbnRDb3VudCA9IHNlcnZlckNsaWVudC5jbGllbnRDb3VudFxuXG4gICAgY29uc3QgaHR0cENsaWVudCA9IG5ldyBDbGllbnQoe1xuICAgICAgY2xpZW50Q291bnQsXG4gICAgICBjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICByZW1vdGVBZGRyZXNzOiBzZXJ2ZXJDbGllbnQucmVtb3RlQWRkcmVzc1xuICAgIH0pXG5cbiAgICBsZXQgZGVsaXZlcnlRdWV1ZSA9IFByb21pc2UucmVzb2x2ZSgpXG4gICAgY29uc3QgZW5xdWV1ZURlbGl2ZXJ5ID0gKC8qKiBAdHlwZSB7KCkgPT4gUHJvbWlzZTx2b2lkPn0gKi8gZGVsaXZlcnkpID0+IHtcbiAgICAgIGRlbGl2ZXJ5UXVldWUgPSBkZWxpdmVyeVF1ZXVlXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7fSlcbiAgICAgICAgLnRoZW4oZGVsaXZlcnkpXG5cbiAgICAgIHJldHVybiBkZWxpdmVyeVF1ZXVlXG4gICAgfVxuXG4gICAgaHR0cENsaWVudC5ldmVudHMub24oXCJvdXRwdXRcIiwgKG91dHB1dCkgPT4ge1xuICAgICAgaWYgKG91dHB1dCAhPT0gbnVsbCAmJiBvdXRwdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2b2lkIGVucXVldWVEZWxpdmVyeSgoKSA9PiBzZXJ2ZXJDbGllbnQuc2VuZChvdXRwdXQpKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigoKSA9PiBbXCJGYWlsZWQgdG8gZGVsaXZlciBjbGllbnQgb3V0cHV0XCIsIHtjbGllbnRDb3VudH0sIGVycm9yXSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaHR0cENsaWVudC5ldmVudHMub24oXCJmaWxlXCIsICh7ZmlsZVBhdGgsIHNlbmRCb2R5LCBzZXR0bGV9KSA9PiB7XG4gICAgICB2b2lkIGVucXVldWVEZWxpdmVyeShhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHNldHRsZShhd2FpdCBzZXJ2ZXJDbGllbnQuc2VuZEZpbGUoZmlsZVBhdGgsIHNlbmRCb2R5KSlcbiAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigoKSA9PiBbXCJGYWlsZWQgdG8gZGVsaXZlciBmaWxlIHJlc3BvbnNlXCIsIHtjbGllbnRDb3VudCwgZmlsZVBhdGh9LCBlcnJvcl0pXG4gICAgICAgIHZvaWQgc2V0dGxlKFwiYWJvcnRlZFwiKVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgaHR0cENsaWVudC5ldmVudHMub24oXCJjbG9zZVwiLCAoKSA9PiB7XG4gICAgICB2b2lkIGVucXVldWVEZWxpdmVyeSgoKSA9PiBzZXJ2ZXJDbGllbnQuZW5kKCkpXG4gICAgICAgIC5maW5hbGx5KCgpID0+IGRlbGV0ZSB0aGlzLmNsaWVudHNbY2xpZW50Q291bnRdKVxuICAgIH0pXG5cbiAgICBzZXJ2ZXJDbGllbnQuZXZlbnRzLm9uKFwiY2xvc2VcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY2xlYW51cCA9IGh0dHBDbGllbnQuYWJvcnRQZW5kaW5nRmlsZVJlc3BvbnNlcygpXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKFwiRmFpbGVkIHRvIGFib3J0IGZpbGUgcmVzcG9uc2VzIGFmdGVyIGNsaWVudCBjbG9zZVwiLCBlcnJvcilcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucGVuZGluZ0NsaWVudENsb3NlQ2xlYW51cHMuZGVsZXRlKGNsZWFudXApXG4gICAgICAgICAgZGVsZXRlIHRoaXMuY2xpZW50c1tjbGllbnRDb3VudF1cbiAgICAgICAgfSlcblxuICAgICAgdGhpcy5wZW5kaW5nQ2xpZW50Q2xvc2VDbGVhbnVwcy5hZGQoY2xlYW51cClcbiAgICB9KVxuXG4gICAgdGhpcy5jbGllbnRzW2NsaWVudENvdW50XSA9IHtodHRwQ2xpZW50LCBzZXJ2ZXJDbGllbnR9XG5cbiAgICAvLyBDcmVhdGUgYSBtZXNzYWdlLXBvcnQgc2hpbSBzbyBTZXJ2ZXJDbGllbnQub25Tb2NrZXREYXRhIGNhbiByb3V0ZSBkYXRhXG4gICAgLy8gdG8gdGhlIGluLXByb2Nlc3MgSFRUUCBDbGllbnQgd2l0aG91dCBuZWVkaW5nIGEgcmVhbCB3b3JrZXIgdGhyZWFkLlxuICAgIGNvbnN0IG1lc3NhZ2VQb3J0U2hpbSA9IC8qKiBAdHlwZSB7aW1wb3J0KFwid29ya2VyX3RocmVhZHNcIikuV29ya2VyfSAqLyAoLyoqIEB0eXBlIHs/fSAqLyAoe1xuICAgICAgcG9zdE1lc3NhZ2U6ICgvKiogQHR5cGUge3tjb21tYW5kOiBzdHJpbmcsIGNodW5rPzogQnVmZmVyIHwgVWludDhBcnJheSB8IHN0cmluZywgY2xpZW50Q291bnQ/OiBudW1iZXJ9fSAqLyBkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLmNvbW1hbmQgPT09IFwiY2xpZW50V3JpdGVcIiAmJiBkYXRhLmNodW5rKSB7XG4gICAgICAgICAgY29uc3QgY2h1bmsgPSB0eXBlb2YgZGF0YS5jaHVuayA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGRhdGEuY2h1bmspIDogQnVmZmVyLmZyb20oZGF0YS5jaHVuaylcblxuICAgICAgICAgIGh0dHBDbGllbnQub25Xcml0ZShjaHVuaylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKVxuXG4gICAgc2VydmVyQ2xpZW50LnNldFdvcmtlcihtZXNzYWdlUG9ydFNoaW0pXG4gICAgc2VydmVyQ2xpZW50Lmxpc3RlbigpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdG9wLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgYXN5bmMgc3RvcCgpIHtcbiAgICB0aGlzLl9zdG9wcGluZyA9IHRydWVcblxuICAgIGZvciAoY29uc3Qge2h0dHBDbGllbnQsIHNlcnZlckNsaWVudH0gb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmNsaWVudHMpKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIGh0dHBDbGllbnQuYWJvcnRQZW5kaW5nRmlsZVJlc3BvbnNlcygpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJGYWlsZWQgdG8gYWJvcnQgZmlsZSByZXNwb25zZXMgZHVyaW5nIHNodXRkb3duXCIsIGVycm9yKVxuICAgICAgICB9KSxcbiAgICAgICAgc2VydmVyQ2xpZW50LmVuZCgpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oXCJGYWlsZWQgdG8gY2xvc2UgY2xpZW50IGR1cmluZyBzaHV0ZG93blwiLCBlcnJvcilcbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wZW5kaW5nQ2xpZW50Q2xvc2VDbGVhbnVwcylcblxuICAgIHRoaXMuY2xpZW50cyA9IHt9XG4gICAgdGhpcy51bnJlZ2lzdGVyRnJvbUV2ZW50c0hvc3Q/LigpXG4gIH1cblxuICAvKipcbiAgICogSW4tcHJvY2VzcyBoYW5kbGVyIHBhdGggZm9yIFYyIGNoYW5uZWwgYnJvYWRjYXN0cy4gTm8gd29ya2VyXG4gICAqIGJvdW5kYXJ5IHRvIGNyb3NzIOKAlCBkaXNwYXRjaCBkaXJlY3RseSB0byBhbnkgbWF0Y2hpbmcgbGl2ZVxuICAgKiBzdWJzY3JpcHRpb25zIG9uIHRoZSBzaGFyZWQgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuY2hhbm5lbCAtIENoYW5uZWwgbmFtZS5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCA/Pn0gYXJncy5icm9hZGNhc3RQYXJhbXMgLSBSb3V0aW5nIGZpbHRlciBwYXJhbXMuXG4gICAqIEBwYXJhbSB7P30gYXJncy5ib2R5IC0gTWVzc2FnZSBib2R5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuZXZlbnRJZF0gLSBQZXJzaXN0ZWQgZXZlbnQgaWQgZm9yIHJlcGxheS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBkaXNwYXRjaFdlYnNvY2tldFYyQnJvYWRjYXN0KHtib2R5LCBicm9hZGNhc3RQYXJhbXMsIGNoYW5uZWwsIGV2ZW50SWR9KSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24pIHJldHVyblxuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5fYnJvYWRjYXN0VG9DaGFubmVsTG9jYWwoY2hhbm5lbCwgYnJvYWRjYXN0UGFyYW1zLCBib2R5LCB7ZXZlbnRJZH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBkaXNwYXRjaCB3ZWJzb2NrZXQgZXZlbnQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmNoYW5uZWwgLSBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYXJncy5jcmVhdGVkQXRdIC0gRXZlbnQgY3JlYXRpb24gdGltZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmV2ZW50SWRdIC0gRXZlbnQgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHs/fSBhcmdzLnBheWxvYWQgLSBQYXlsb2FkIGRhdGEuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgZGlzcGF0Y2hXZWJzb2NrZXRFdmVudCh7Y2hhbm5lbCwgY3JlYXRlZEF0LCBldmVudElkLCBwYXlsb2FkfSkge1xuICAgIGZvciAoY29uc3Qge2h0dHBDbGllbnR9IG9mIE9iamVjdC52YWx1ZXModGhpcy5jbGllbnRzKSkge1xuICAgICAgY29uc3Qgc2Vzc2lvbiA9IGh0dHBDbGllbnQud2Vic29ja2V0U2Vzc2lvblxuXG4gICAgICBpZiAoIXNlc3Npb24pIGNvbnRpbnVlXG5cbiAgICAgIHZvaWQgc2Vzc2lvbi5zZW5kRXZlbnQoY2hhbm5lbCwgcGF5bG9hZCwge2NyZWF0ZWRBdCwgZXZlbnRJZH0pXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbikge1xuICAgICAgLy8gSXNvbGF0ZSBzdWJzY3JpYmVyIGZhaWx1cmVzIGZyb20gYnJlYWtpbmcgdGhlIGluLXByb2Nlc3MgaGFuZGxlcixcbiAgICAgIC8vIGJ1dCBzdGlsbCBzdXJmYWNlIHRoZW0gdG8gdGhlIGZyYW1ld29yayBlcnJvciBldmVudHMgc28gYnVnXG4gICAgICAvLyByZXBvcnRlcnMgY2FuIHBpY2sgdGhlbSB1cC5cbiAgICAgIHZvaWQgZGlzcGF0Y2hDaGFubmVsU3Vic2NyaWJlcnMoe2NoYW5uZWwsIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbiwgY3JlYXRlZEF0LCBldmVudElkLCBsb2dnZXI6IHRoaXMubG9nZ2VyLCBwYXlsb2FkfSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -25,6 +25,8 @@ export default class VelociousHttpServerWorker {
|
|
|
25
25
|
_debugSnapshotRequests: Map<number, {
|
|
26
26
|
resolve: (snapshot: Record<string, unknown>) => void;
|
|
27
27
|
}>;
|
|
28
|
+
/** @type {Map<number, Promise<void>>} */
|
|
29
|
+
_clientDeliveryQueues: Map<number, Promise<void>>;
|
|
28
30
|
start(): Promise<any>;
|
|
29
31
|
onStartCallback: ((value: any) => void) | null | undefined;
|
|
30
32
|
_spawnWorker(): Promise<void>;
|
|
@@ -35,6 +37,12 @@ export default class VelociousHttpServerWorker {
|
|
|
35
37
|
* @returns {void} - No return value.
|
|
36
38
|
*/
|
|
37
39
|
addSocketConnection(client: import("../server-client.js").default): void;
|
|
40
|
+
/**
|
|
41
|
+
* Propagates a parent-side socket close and clears all parent state for the client.
|
|
42
|
+
* @param {number} clientCount - Client count.
|
|
43
|
+
* @returns {void}
|
|
44
|
+
*/
|
|
45
|
+
handleClientAbort(clientCount: number): void;
|
|
38
46
|
/**
|
|
39
47
|
* On worker error.
|
|
40
48
|
* @param {?} error - Error instance.
|
|
@@ -59,6 +67,9 @@ export default class VelociousHttpServerWorker {
|
|
|
59
67
|
* @param {string} data.command - Command.
|
|
60
68
|
* @param {number} [data.clientCount] - Client count.
|
|
61
69
|
* @param {string | Uint8Array} [data.output] - Output.
|
|
70
|
+
* @param {string} [data.filePath] - File path.
|
|
71
|
+
* @param {boolean} [data.sendBody] - Whether to send the file body.
|
|
72
|
+
* @param {number} [data.transferId] - File transfer id.
|
|
62
73
|
* @param {string} [data.channel] - Channel name.
|
|
63
74
|
* @param {number} [data.requestId] - Debug request id.
|
|
64
75
|
* @param {Record<string, ?>} [data.snapshot] - Worker debug snapshot.
|
|
@@ -71,6 +82,9 @@ export default class VelociousHttpServerWorker {
|
|
|
71
82
|
command: string;
|
|
72
83
|
clientCount?: number | undefined;
|
|
73
84
|
output?: string | Uint8Array<ArrayBufferLike> | undefined;
|
|
85
|
+
filePath?: string | undefined;
|
|
86
|
+
sendBody?: boolean | undefined;
|
|
87
|
+
transferId?: number | undefined;
|
|
74
88
|
channel?: string | undefined;
|
|
75
89
|
requestId?: number | undefined;
|
|
76
90
|
snapshot?: Record<string, any> | undefined;
|
|
@@ -78,6 +92,13 @@ export default class VelociousHttpServerWorker {
|
|
|
78
92
|
broadcastParams?: Record<string, any> | undefined;
|
|
79
93
|
body?: unknown;
|
|
80
94
|
}) => void;
|
|
95
|
+
/**
|
|
96
|
+
* Preserves socket output ordering for one client.
|
|
97
|
+
* @param {number} clientCount - Client count.
|
|
98
|
+
* @param {() => Promise<void>} delivery - Delivery operation.
|
|
99
|
+
* @returns {Promise<void>} - Queued delivery.
|
|
100
|
+
*/
|
|
101
|
+
enqueueClientDelivery(clientCount: number, delivery: () => Promise<void>): Promise<void>;
|
|
81
102
|
/**
|
|
82
103
|
* Runs get debug snapshot.
|
|
83
104
|
* @returns {Promise<Record<string, ?>>} - Worker-local debug snapshot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/http-server/worker-handler/index.js"],"names":[],"mappings":"AAoCA;IACE;;;;;OAKG;IACH,4CAHG;QAAuD,aAAa,EAA5D,OAAO,wBAAwB,EAAE,OAAO;QAC3B,WAAW,EAAxB,MAAM;KAChB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/http-server/worker-handler/index.js"],"names":[],"mappings":"AAoCA;IACE;;;;;OAKG;IACH,4CAHG;QAAuD,aAAa,EAA5D,OAAO,wBAAwB,EAAE,OAAO;QAC3B,WAAW,EAAxB,MAAM;KAChB,EAqBA;IAnBC,wDAAkC;IAElC;;uEAEmE;IACnE,SADU,MAAM,CAAC,MAAM,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAC9C;IAEjB,eAA8B;IAC9B,oBAA8B;IAC9B,uBAA0B;IAC1B,mBAAsB;IACtB,wBAAwB;IACxB;;+EAE2E;IAC3E,wBADU,GAAG,CAAC,MAAM,EAAE;QAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,KAAK,IAAI,CAAA;KAAC,CAAC,CAChC;IAEvC,yCAAyC;IACzC,uBADW,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CACC;IAGxC,sBAKC;IAHG,2DAA8B;IAKlC,8BAgBC;IAXC,2BAOE;IAMJ;;;;OAIG;IACH,4BAHW,OAAO,qBAAqB,EAAE,OAAO,GACnC,IAAI,CAehB;IAED;;;;OAIG;IACH,+BAHW,MAAM,GACJ,IAAI,CAQhB;IAED;;;OAGG;IACH,gBAAiB,OAFN,OAEW,WAKrB;IAED;;;;OAIG;IACH,eAAgB,MAHL,MAGS,KAFP,IAAI,CAmBhB;IAhBC,gCAAsB;IAetB,6EAAwB;IAG1B;;;OAGG;IACH,oBAFa,IAAI,CAahB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAmB,MAdhB;QAAqB,OAAO,EAApB,MAAM;QACQ,WAAW;QACE,MAAM;QACnB,QAAQ;QACP,QAAQ;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACE,QAAQ;QACxB,OAAO,GAAhB,OAAC;QACwB,eAAe;QAC/B,IAAI,GAAb,OAAC;KAGW,KAFV,IAAI,CAyGhB;IAED;;;;;OAKG;IACH,mCAJW,MAAM,YACN,MAAM,OAAO,CAAC,IAAI,CAAC,GACjB,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;OAGG;IACH,oBAFa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC,CAAC,CAiCtC;IAED;;;OAGG;IACH,QAFa,OAAO,CAAC,IAAI,CAAC,CAiBzB;IAED;;;;;;;;OAQG;IACH,iEANG;QAAqB,OAAO,EAApB,MAAM;QACQ,SAAS;QACT,OAAO;QACb,OAAO,EAAf,OAAC;KACT,GAAU,IAAI,CAQhB;IAED;;;;;;;;;;OAUG;IACH,qFAPG;QAAqB,OAAO,EAApB,MAAM;QACkB,eAAe,EAAvC,MAAM,CAAC,MAAM,EAAE,OAAC,CAAC;QACT,IAAI,EAAZ,OAAC;QACa,OAAO;QACP,SAAS;KAC/B,GAAU,IAAI,CAOhB;IAED;;yBAEqB;IACrB,0BADa,IAAI,CAKhB;IADC,0DAAkE;IAGpE;;yBAEqB;IACrB,oCADa,IAAI,CAMhB;CACF;mBA3akB,iBAAiB;uBACf,gBAAgB"}
|