velocious 1.0.666 → 1.0.667
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 +13 -4
- package/build/background-jobs/adapter-client.js +22 -0
- package/build/background-jobs/adapter.js +15 -0
- package/build/background-jobs/client.js +147 -1
- package/build/background-jobs/job-semantics.js +30 -0
- package/build/background-jobs/job.js +26 -1
- package/build/background-jobs/local-adapter.js +36 -8
- package/build/background-jobs/local-store.js +410 -39
- package/build/background-jobs/main.js +69 -2
- package/build/background-jobs/platform-job.js +26 -1
- package/build/background-jobs/runtime.js +58 -0
- package/build/background-jobs/store.js +374 -6
- package/build/background-jobs/types.js +27 -2
- package/build/background-jobs/web/controller.js +1 -0
- package/build/configuration.js +7 -5
- package/build/database/drivers/mssql/column.js +2 -2
- package/build/database/drivers/mssql/table.js +19 -5
- package/build/database/pool/async-tracked-multi-connection.js +2 -1
- package/build/database/query/alter-table-base.js +8 -1
- package/build/database/record/attachments/store.js +2 -2
- package/build/frontend-model-controller.js +22 -2
- package/build/http-server/websocket-events-host.js +3 -1
- package/build/src/background-jobs/adapter-client.d.ts +17 -0
- package/build/src/background-jobs/adapter-client.d.ts.map +1 -1
- package/build/src/background-jobs/adapter-client.js +19 -1
- package/build/src/background-jobs/adapter.d.ts +15 -0
- package/build/src/background-jobs/adapter.d.ts.map +1 -1
- package/build/src/background-jobs/adapter.js +14 -1
- package/build/src/background-jobs/client.d.ts +17 -0
- package/build/src/background-jobs/client.d.ts.map +1 -1
- package/build/src/background-jobs/client.js +129 -1
- package/build/src/background-jobs/job-semantics.d.ts +18 -0
- package/build/src/background-jobs/job-semantics.d.ts.map +1 -1
- package/build/src/background-jobs/job-semantics.js +28 -1
- package/build/src/background-jobs/job.d.ts +15 -0
- package/build/src/background-jobs/job.d.ts.map +1 -1
- package/build/src/background-jobs/job.js +21 -2
- package/build/src/background-jobs/local-adapter.d.ts +23 -8
- package/build/src/background-jobs/local-adapter.d.ts.map +1 -1
- package/build/src/background-jobs/local-adapter.js +35 -9
- package/build/src/background-jobs/local-store.d.ts +120 -5
- package/build/src/background-jobs/local-store.d.ts.map +1 -1
- package/build/src/background-jobs/local-store.js +366 -40
- package/build/src/background-jobs/main.d.ts +24 -2
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +68 -3
- package/build/src/background-jobs/platform-job.d.ts +15 -0
- package/build/src/background-jobs/platform-job.d.ts.map +1 -1
- package/build/src/background-jobs/platform-job.js +19 -2
- package/build/src/background-jobs/runtime.d.ts +39 -0
- package/build/src/background-jobs/runtime.d.ts.map +1 -1
- package/build/src/background-jobs/runtime.js +49 -1
- package/build/src/background-jobs/store.d.ts +100 -1
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +334 -8
- package/build/src/background-jobs/types.d.ts +97 -4
- package/build/src/background-jobs/types.d.ts.map +1 -1
- package/build/src/background-jobs/types.js +28 -3
- package/build/src/background-jobs/web/controller.d.ts.map +1 -1
- package/build/src/background-jobs/web/controller.js +2 -1
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +7 -5
- package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/column.js +2 -2
- package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/table.js +19 -5
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +3 -2
- package/build/src/database/query/alter-table-base.d.ts.map +1 -1
- package/build/src/database/query/alter-table-base.js +9 -2
- package/build/src/database/record/attachments/store.js +3 -3
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +18 -3
- package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
- package/build/src/http-server/websocket-events-host.js +4 -2
- package/build/src/testing/test-files-finder.d.ts +4 -1
- package/build/src/testing/test-files-finder.d.ts.map +1 -1
- package/build/src/testing/test-files-finder.js +8 -3
- package/build/testing/test-files-finder.js +6 -1
- package/package.json +1 -1
- package/scripts/test-browser.js +1 -0
- package/src/background-jobs/adapter-client.js +22 -0
- package/src/background-jobs/adapter.js +15 -0
- package/src/background-jobs/client.js +147 -1
- package/src/background-jobs/job-semantics.js +30 -0
- package/src/background-jobs/job.js +26 -1
- package/src/background-jobs/local-adapter.js +36 -8
- package/src/background-jobs/local-store.js +410 -39
- package/src/background-jobs/main.js +69 -2
- package/src/background-jobs/platform-job.js +26 -1
- package/src/background-jobs/runtime.js +58 -0
- package/src/background-jobs/store.js +374 -6
- package/src/background-jobs/types.js +27 -2
- package/src/background-jobs/web/controller.js +1 -0
- package/src/configuration.js +7 -5
- package/src/database/drivers/mssql/column.js +2 -2
- package/src/database/drivers/mssql/table.js +19 -5
- package/src/database/pool/async-tracked-multi-connection.js +2 -1
- package/src/database/query/alter-table-base.js +8 -1
- package/src/database/record/attachments/store.js +2 -2
- package/src/frontend-model-controller.js +22 -2
- package/src/http-server/websocket-events-host.js +3 -1
- package/src/testing/test-files-finder.js +6 -1
|
@@ -59,17 +59,43 @@ export default class LocalBackgroundJobsAdapter extends BackgroundJobsAdapter {
|
|
|
59
59
|
return await this.store.enqueue(args);
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
63
|
-
* @param {string}
|
|
64
|
-
* @returns {Promise<import("./types.js").BackgroundJobCancellationResult>} -
|
|
62
|
+
* Cancels or detaches the current owner of a stable schedule key.
|
|
63
|
+
* @param {string} scheduleKey - Stable schedule key.
|
|
64
|
+
* @returns {Promise<import("./types.js").BackgroundJobCancellationResult>} - Cancellation result.
|
|
65
65
|
*/
|
|
66
|
-
async cancelScheduled(
|
|
66
|
+
async cancelScheduled(scheduleKey) {
|
|
67
|
+
await this.ensureReady();
|
|
68
|
+
return await this.store.cancelScheduled(scheduleKey);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Replaces the current owner of a stable schedule key.
|
|
72
|
+
* @param {{scheduleKey: string, jobName: string, args: Array<ReturnType<typeof JSON.parse>>, options?: import("./types.js").BackgroundJobOptions}} args - Replacement request.
|
|
73
|
+
* @returns {Promise<import("./types.js").BackgroundJobReplacementResult>} - Replacement result.
|
|
74
|
+
*/
|
|
75
|
+
async replaceScheduled(args) {
|
|
76
|
+
await this.ensureReady();
|
|
77
|
+
this.registry.resolve(args.jobName);
|
|
78
|
+
return await this.store.replaceScheduled(args);
|
|
79
|
+
}
|
|
67
80
|
/**
|
|
68
|
-
*
|
|
69
|
-
* @param {
|
|
70
|
-
* @
|
|
81
|
+
* Reads stable ownership and optional terminal history.
|
|
82
|
+
* @param {string} scheduleKey - Stable schedule key.
|
|
83
|
+
* @param {{includeLatestTerminal?: boolean}} [options] - Lookup options.
|
|
84
|
+
* @returns {Promise<import("./types.js").BackgroundJobScheduledLookupResult>} - Normalized local jobs.
|
|
71
85
|
*/
|
|
72
|
-
async
|
|
86
|
+
async getScheduledJob(scheduleKey, options) {
|
|
87
|
+
await this.ensureReady();
|
|
88
|
+
return await this.store.getScheduledJob(scheduleKey, options);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Makes a future queued stable owner due without replacing it.
|
|
92
|
+
* @param {string} scheduleKey - Stable schedule key.
|
|
93
|
+
* @returns {Promise<import("./types.js").BackgroundJobWakeResult>} - Exact wake result.
|
|
94
|
+
*/
|
|
95
|
+
async wakeScheduled(scheduleKey) {
|
|
96
|
+
await this.ensureReady();
|
|
97
|
+
return await this.store.wakeScheduled(scheduleKey);
|
|
98
|
+
}
|
|
73
99
|
/**
|
|
74
100
|
* Finds the next eligible local job.
|
|
75
101
|
* @returns {Promise<import("./types.js").BackgroundJobRow | null>} - Next eligible job.
|
|
@@ -144,4 +170,4 @@ export default class LocalBackgroundJobsAdapter extends BackgroundJobsAdapter {
|
|
|
144
170
|
*/
|
|
145
171
|
async waitForIdle() { await this.dispatcher.waitForIdle(); }
|
|
146
172
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvbG9jYWwtYWRhcHRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxxQkFBcUIsTUFBTSxjQUFjLENBQUE7QUFDaEQsT0FBTyw2QkFBNkIsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRSxPQUFPLDBCQUEwQixNQUFNLHlCQUF5QixDQUFBO0FBQ2hFLE9BQU8sd0JBQXdCLEVBQUUsRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRW5GLHdFQUF3RTtBQUN4RSxNQUFNLENBQUMsT0FBTyxPQUFPLDBCQUEyQixTQUFRLHFCQUFxQjtJQUMzRTs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLEtBQUssR0FBRyx3QkFBd0IsRUFBRSxFQUFFLGtCQUFrQixFQUFDO1FBQ2pGLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDBCQUEwQixDQUFDLEVBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLENBQUMsQ0FBQTtRQUNyRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksd0JBQXdCLENBQUM7WUFDeEMsS0FBSztZQUNMLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7U0FDakQsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLDZCQUE2QixDQUFDLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7SUFDekgsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUMsQ0FBQztJQUVyRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTSxLQUFLLE9BQU8sRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFBLENBQUMsQ0FBQztJQUU1RDs7O09BR0c7SUFDSCxLQUFLLENBQUMseUJBQXlCLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRWxGOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDaEIsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ25DLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsWUFBWSxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFaEk7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUUzSDs7O09BR0c7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLEtBQUssT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFFdkU7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixLQUFLLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRXZFOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTdEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxRQUFRLEtBQUssT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRXZEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXpFOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxJQUFJLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUUzRjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksSUFBSSxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTlFOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXpFOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxJQUFJLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUVqRjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUU3RTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUVuRTs7O09BR0c7SUFDSCxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFFakM7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUEsQ0FBQyxDQUFDO0NBQzVEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIgZnJvbSBcIi4vYWRhcHRlci5qc1wiXG5pbXBvcnQgTG9jYWxCYWNrZ3JvdW5kSm9ic0Rpc3BhdGNoZXIgZnJvbSBcIi4vbG9jYWwtZGlzcGF0Y2hlci5qc1wiXG5pbXBvcnQgTG9jYWxCYWNrZ3JvdW5kSm9iUmVnaXN0cnkgZnJvbSBcIi4vbG9jYWwtam9iLXJlZ2lzdHJ5LmpzXCJcbmltcG9ydCBMb2NhbEJhY2tncm91bmRKb2JzU3RvcmUsIHtsb2NhbEJhY2tncm91bmRKb2JzQ2xvY2t9IGZyb20gXCIuL2xvY2FsLXN0b3JlLmpzXCJcblxuLyoqIER1cmFibGUgbG9jYWwgU1FMaXRlIGFkYXB0ZXIgd2l0aCBhbiBvd25lZCBpbi1wcm9jZXNzIGRpc3BhdGNoZXIuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NhbEJhY2tncm91bmRKb2JzQWRhcHRlciBleHRlbmRzIEJhY2tncm91bmRKb2JzQWRhcHRlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbG9jYWwgYWRhcHRlciBmb3Igb25lIGNvbmZpZ3VyYXRpb24gYW5kIGRhdGFiYXNlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIEFkYXB0ZXIgb3B0aW9ucy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIE93bmluZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vdHlwZXMuanNcIikuTG9jYWxCYWNrZ3JvdW5kSm9ic0Nsb2NrfSBbYXJncy5jbG9ja10gLSBJbmplY3RhYmxlIGNsb2NrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuZGF0YWJhc2VJZGVudGlmaWVyXSAtIExvY2FsIGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgY2xvY2sgPSBsb2NhbEJhY2tncm91bmRKb2JzQ2xvY2soKSwgZGF0YWJhc2VJZGVudGlmaWVyfSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNsb2NrID0gY2xvY2tcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5yZWdpc3RyeSA9IG5ldyBMb2NhbEJhY2tncm91bmRKb2JSZWdpc3RyeSh7am9iQ2xhc3NlczogY29uZmlndXJhdGlvbi5nZXRCYWNrZ3JvdW5kSm9iQ2xhc3NlcygpfSlcbiAgICB0aGlzLnN0b3JlID0gbmV3IExvY2FsQmFja2dyb3VuZEpvYnNTdG9yZSh7XG4gICAgICBjbG9jayxcbiAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICBkYXRhYmFzZUlkZW50aWZpZXIsXG4gICAgICBvbkNvbW1pdHRlZEVucXVldWU6ICgpID0+IHRoaXMuZGlzcGF0Y2hlci53YWtlKClcbiAgICB9KVxuICAgIHRoaXMuZGlzcGF0Y2hlciA9IG5ldyBMb2NhbEJhY2tncm91bmRKb2JzRGlzcGF0Y2hlcih7Y2xvY2ssIGNvbmZpZ3VyYXRpb24sIHJlZ2lzdHJ5OiB0aGlzLnJlZ2lzdHJ5LCBzdG9yZTogdGhpcy5zdG9yZX0pXG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGF0IGxvY2FsIHBlcnNpc3RlbmNlIGFuZCBkaXNwYXRjaCBhcmUgcmVhZHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gbG9jYWwgZGlzcGF0Y2ggaXMgcmVhZHkuXG4gICAqL1xuICBhc3luYyBlbnN1cmVSZWFkeSgpIHsgYXdhaXQgdGhpcy5kaXNwYXRjaGVyLnN0YXJ0KCkgfVxuXG4gIC8qKlxuICAgKiBTdG9wcyBsb2NhbCBkaXNwYXRjaCBncmFjZWZ1bGx5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciBncmFjZWZ1bCBsb2NhbCBzaHV0ZG93bi5cbiAgICovXG4gIGFzeW5jIGNsb3NlKCkge1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2hlci5zdG9wKClcbiAgICB0aGlzLnN0b3JlLnJlc2V0UmVhZGluZXNzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnRzIGxvY2FsIGRpc3BhdGNoZXIgaGVhbHRoLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JzSGVhbHRoPn0gLSBMb2NhbCBhZGFwdGVyIGhlYWx0aC5cbiAgICovXG4gIGFzeW5jIGhlYWx0aCgpIHsgcmV0dXJuIHtyZWFkeTogdGhpcy5kaXNwYXRjaGVyLmlzUmVhZHkoKX0gfVxuXG4gIC8qKlxuICAgKiBSZWNvbmNpbGVzIGNvbmZpZ3VyYXRpb24tZGVyaXZlZCBxdWV1ZSBjb25jdXJyZW5jeSBjYXBzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciBxdWV1ZSBjYXAgcmVjb25jaWxpYXRpb24uXG4gICAqL1xuICBhc3luYyByZWNvbmNpbGVRdWV1ZUNvbmN1cnJlbmN5KCkgeyBhd2FpdCB0aGlzLnN0b3JlLnJlY29uY2lsZVF1ZXVlQ29uY3VycmVuY3koKSB9XG5cbiAgLyoqXG4gICAqIEVucXVldWVzIG9uZSBzdGF0aWNhbGx5IHJlZ2lzdGVyZWQgbG9jYWwgam9iLlxuICAgKiBAcGFyYW0ge3tqb2JOYW1lOiBzdHJpbmcsIGFyZ3M6IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYk9wdGlvbnN9fSBhcmdzIC0gRW5xdWV1ZSByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAtIER1cmFibGUgbG9jYWwgam9iIGlkLlxuICAgKi9cbiAgYXN5bmMgZW5xdWV1ZShhcmdzKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVSZWFkeSgpXG4gICAgdGhpcy5yZWdpc3RyeS5yZXNvbHZlKGFyZ3Muam9iTmFtZSlcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5lbnF1ZXVlKGFyZ3MpXG4gIH1cblxuICAvKipcbiAgICogUmVqZWN0cyBzdGFibGUta2V5IGNhbmNlbGxhdGlvbiwgd2hpY2ggaXMgb3V0c2lkZSB0aGUgbG9jYWwgYWRhcHRlciBjb250cmFjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IF9zY2hlZHVsZUtleSAtIFVuc3VwcG9ydGVkIHN0YWJsZSBrZXkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYkNhbmNlbGxhdGlvblJlc3VsdD59IC0gTmV2ZXIgcmVzb2x2ZXMuXG4gICAqL1xuICBhc3luYyBjYW5jZWxTY2hlZHVsZWQoX3NjaGVkdWxlS2V5KSB7IHRocm93IG5ldyBFcnJvcihcImNhbmNlbFNjaGVkdWxlZCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBsb2NhbCBiYWNrZ3JvdW5kLWpvYnMgYWRhcHRlclwiKSB9XG5cbiAgLyoqXG4gICAqIFJlamVjdHMgc3RhYmxlLWtleSByZXBsYWNlbWVudCwgd2hpY2ggaXMgb3V0c2lkZSB0aGUgbG9jYWwgYWRhcHRlciBjb250cmFjdC5cbiAgICogQHBhcmFtIHt7c2NoZWR1bGVLZXk6IHN0cmluZywgam9iTmFtZTogc3RyaW5nLCBhcmdzOiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4sIG9wdGlvbnM/OiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JPcHRpb25zfX0gX2FyZ3MgLSBVbnN1cHBvcnRlZCByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSZXBsYWNlbWVudFJlc3VsdD59IC0gTmV2ZXIgcmVzb2x2ZXMuXG4gICAqL1xuICBhc3luYyByZXBsYWNlU2NoZWR1bGVkKF9hcmdzKSB7IHRocm93IG5ldyBFcnJvcihcInJlcGxhY2VTY2hlZHVsZWQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbG9jYWwgYmFja2dyb3VuZC1qb2JzIGFkYXB0ZXJcIikgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyB0aGUgbmV4dCBlbGlnaWJsZSBsb2NhbCBqb2IuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIE5leHQgZWxpZ2libGUgam9iLlxuICAgKi9cbiAgYXN5bmMgbmV4dEF2YWlsYWJsZUpvYigpIHsgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUubmV4dEF2YWlsYWJsZUpvYigpIH1cblxuICAvKipcbiAgICogRmluZHMgdGhlIG5leHQgZnV0dXJlIGxvY2FsIGpvYi5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUm93IHwgbnVsbD59IC0gTmV4dCBmdXR1cmUgam9iLlxuICAgKi9cbiAgYXN5bmMgbmV4dFNjaGVkdWxlZEpvYigpIHsgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUubmV4dFNjaGVkdWxlZEpvYigpIH1cblxuICAvKipcbiAgICogRmluZHMgYSBsb2NhbCBqb2IgYnkgaWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBqb2JJZCAtIEpvYiBpZC5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUm93IHwgbnVsbD59IC0gUGVyc2lzdGVkIGpvYi5cbiAgICovXG4gIGFzeW5jIGdldEpvYihqb2JJZCkgeyByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5nZXRKb2Ioam9iSWQpIH1cblxuICAvKipcbiAgICogTGlzdHMgbG9jYWwgam9icyBpbiBpbnNlcnRpb24gb3JkZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvd1tdPn0gLSBMb2NhbCBqb2JzLlxuICAgKi9cbiAgYXN5bmMgbGlzdEpvYnMoKSB7IHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLmxpc3RKb2JzKCkgfVxuXG4gIC8qKlxuICAgKiBDbGFpbXMgb25lIHF1ZXVlZCBsb2NhbCBqb2IuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iSGFuZG9mZlJlcXVlc3R9IGFyZ3MgLSBDbGFpbSByZXF1ZXN0LiBBIHN1cHBsaWVkIGhhbmRvZmYgaWQgaXMgcGVyc2lzdGVkIGV4YWN0bHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYkhhbmRvZmYgfCBudWxsPn0gLSBIYW5kb2ZmLlxuICAgKi9cbiAgYXN5bmMgbWFya0hhbmRlZE9mZihhcmdzKSB7IHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLm1hcmtIYW5kZWRPZmYoYXJncykgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyBhY3RpdmUgbG9jYWwgaGFuZG9mZnMgb3duZWQgYnkgb25lIHdvcmtlci5cbiAgICogQHBhcmFtIHt7d29ya2VySWQ6IHN0cmluZ319IGFyZ3MgLSBXb3JrZXIgaWRlbnRpdHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PHtqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ6IHN0cmluZ30+Pn0gLSBBY3RpdmUgd29ya2VyIGhhbmRvZmZzLlxuICAgKi9cbiAgYXN5bmMgaGFuZGVkT2ZmSm9ic0ZvcldvcmtlcihhcmdzKSB7IHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLmhhbmRlZE9mZkpvYnNGb3JXb3JrZXIoYXJncykgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGV4YWN0IGFjdGl2ZSBsb2NhbCBoYW5kb2ZmIHRvIHRoZSBxdWV1ZS5cbiAgICogQHBhcmFtIHt7am9iSWQ6IHN0cmluZywgaGFuZG9mZklkOiBzdHJpbmd9fSBhcmdzIC0gSGFuZG9mZiByZWxlYXNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciB0aGUgZmVuY2VkIHJlbGVhc2UuXG4gICAqL1xuICBhc3luYyBtYXJrUmV0dXJuZWRUb1F1ZXVlKGFyZ3MpIHsgYXdhaXQgdGhpcy5zdG9yZS5tYXJrUmV0dXJuZWRUb1F1ZXVlKGFyZ3MpIH1cblxuICAvKipcbiAgICogQWNrbm93bGVkZ2VzIHN1Y2Nlc3NmdWwgbG9jYWwgam9iIGNvbXBsZXRpb24uXG4gICAqIEBwYXJhbSB7e2pvYklkOiBzdHJpbmcsIGhhbmRvZmZJZD86IHN0cmluZ319IGFyZ3MgLSBDb21wbGV0aW9uIHJlcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IC0gV2hldGhlciBhY2NlcHRlZC5cbiAgICovXG4gIGFzeW5jIG1hcmtDb21wbGV0ZWQoYXJncykgeyByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5tYXJrQ29tcGxldGVkKGFyZ3MpIH1cblxuICAvKipcbiAgICogUmVjb3JkcyBwb29sZWQtY2hpbGQgYWNjZXB0YW5jZSBldmlkZW5jZSBmb3IgYSBsb2NhbCBoYW5kb2ZmLlxuICAgKiBAcGFyYW0ge3tqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ/OiBzdHJpbmcsIHJlY2VpdmVkQXRNcz86IG51bWJlciwgc3RhcnRlZEF0TXM/OiBudW1iZXIsIGNoaWxkSW5zdGFuY2VJZD86IHN0cmluZywgY2hpbGRQaWQ/OiBudW1iZXJ9fSBhcmdzIC0gQWNjZXB0YW5jZSByZXBvcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIFdoZXRoZXIgYWNjZXB0ZWQuXG4gICAqL1xuICBhc3luYyBtYXJrQ2hpbGRBY2NlcHRlZChhcmdzKSB7IHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLm1hcmtDaGlsZEFjY2VwdGVkKGFyZ3MpIH1cblxuICAvKipcbiAgICogQWNrbm93bGVkZ2VzIGFuIGV4cGxpY2l0IGxvY2FsIHJlc2NoZWR1bGUuXG4gICAqIEBwYXJhbSB7e2pvYklkOiBzdHJpbmcsIGRlbGF5TXM6IG51bWJlciwgaGFuZG9mZklkPzogc3RyaW5nfX0gYXJncyAtIFJlc2NoZWR1bGUgcmVwb3J0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIGFjY2VwdGVkLlxuICAgKi9cbiAgYXN5bmMgbWFya1Jlc2NoZWR1bGVkKGFyZ3MpIHsgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUubWFya1Jlc2NoZWR1bGVkKGFyZ3MpIH1cblxuICAvKipcbiAgICogQWNrbm93bGVkZ2VzIGEgZmFpbGVkIGxvY2FsIHBlcmZvcm1hbmNlLlxuICAgKiBAcGFyYW0ge3tqb2JJZDogc3RyaW5nLCBlcnJvcjogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4sIGhhbmRvZmZJZD86IHN0cmluZ319IGFyZ3MgLSBGYWlsdXJlIHJlcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUm93IHwgbnVsbD59IC0gVHJhbnNpdGlvbi5cbiAgICovXG4gIGFzeW5jIG1hcmtGYWlsZWQoYXJncykgeyByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5tYXJrRmFpbGVkKGFyZ3MpIH1cblxuICAvKipcbiAgICogQ29hbGVzY2VzIGEgZGlzcGF0Y2hlciB3YWtlLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICB3YWtlKCkgeyB0aGlzLmRpc3BhdGNoZXIud2FrZSgpIH1cblxuICAvKipcbiAgICogV2FpdHMgdW50aWwgY3VycmVudCBsb2NhbCB3b3JrIGhhcyBiZWVuIGFja25vd2xlZGdlZC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgYWxsIGN1cnJlbnQgd29yayBpcyBhY2tub3dsZWRnZWQuXG4gICAqL1xuICBhc3luYyB3YWl0Rm9ySWRsZSgpIHsgYXdhaXQgdGhpcy5kaXNwYXRjaGVyLndhaXRGb3JJZGxlKCkgfVxufVxuIl19
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvbG9jYWwtYWRhcHRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxxQkFBcUIsTUFBTSxjQUFjLENBQUE7QUFDaEQsT0FBTyw2QkFBNkIsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRSxPQUFPLDBCQUEwQixNQUFNLHlCQUF5QixDQUFBO0FBQ2hFLE9BQU8sd0JBQXdCLEVBQUUsRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBRW5GLHdFQUF3RTtBQUN4RSxNQUFNLENBQUMsT0FBTyxPQUFPLDBCQUEyQixTQUFRLHFCQUFxQjtJQUMzRTs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLEtBQUssR0FBRyx3QkFBd0IsRUFBRSxFQUFFLGtCQUFrQixFQUFDO1FBQ2pGLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDBCQUEwQixDQUFDLEVBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxFQUFDLENBQUMsQ0FBQTtRQUNyRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksd0JBQXdCLENBQUM7WUFDeEMsS0FBSztZQUNMLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7U0FDakQsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLDZCQUE2QixDQUFDLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7SUFDekgsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUMsQ0FBQztJQUVyRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTSxLQUFLLE9BQU8sRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFBLENBQUMsQ0FBQztJQUU1RDs7O09BR0c7SUFDSCxLQUFLLENBQUMseUJBQXlCLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRWxGOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDaEIsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ25DLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVztRQUMvQixNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUN4QixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSTtRQUN6QixNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDbkMsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsT0FBTztRQUN4QyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUN4QixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXO1FBQzdCLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3hCLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixLQUFLLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRXZFOzs7T0FHRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBLENBQUMsQ0FBQztJQUV2RTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUU3RDs7O09BR0c7SUFDSCxLQUFLLENBQUMsUUFBUSxLQUFLLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBLENBQUMsQ0FBQztJQUV2RDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUV6RTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFM0Y7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLElBQUksTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUU5RTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUV6RTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFakY7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFN0U7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFbkU7OztPQUdHO0lBQ0gsSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRWpDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFBLENBQUMsQ0FBQztDQUM1RCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFja2dyb3VuZEpvYnNBZGFwdGVyIGZyb20gXCIuL2FkYXB0ZXIuanNcIlxuaW1wb3J0IExvY2FsQmFja2dyb3VuZEpvYnNEaXNwYXRjaGVyIGZyb20gXCIuL2xvY2FsLWRpc3BhdGNoZXIuanNcIlxuaW1wb3J0IExvY2FsQmFja2dyb3VuZEpvYlJlZ2lzdHJ5IGZyb20gXCIuL2xvY2FsLWpvYi1yZWdpc3RyeS5qc1wiXG5pbXBvcnQgTG9jYWxCYWNrZ3JvdW5kSm9ic1N0b3JlLCB7bG9jYWxCYWNrZ3JvdW5kSm9ic0Nsb2NrfSBmcm9tIFwiLi9sb2NhbC1zdG9yZS5qc1wiXG5cbi8qKiBEdXJhYmxlIGxvY2FsIFNRTGl0ZSBhZGFwdGVyIHdpdGggYW4gb3duZWQgaW4tcHJvY2VzcyBkaXNwYXRjaGVyLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIgZXh0ZW5kcyBCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGxvY2FsIGFkYXB0ZXIgZm9yIG9uZSBjb25maWd1cmF0aW9uIGFuZCBkYXRhYmFzZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBBZGFwdGVyIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBPd25pbmcgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkxvY2FsQmFja2dyb3VuZEpvYnNDbG9ja30gW2FyZ3MuY2xvY2tdIC0gSW5qZWN0YWJsZSBjbG9jay5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFthcmdzLmRhdGFiYXNlSWRlbnRpZmllcl0gLSBMb2NhbCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGNsb2NrID0gbG9jYWxCYWNrZ3JvdW5kSm9ic0Nsb2NrKCksIGRhdGFiYXNlSWRlbnRpZmllcn0pIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jbG9jayA9IGNsb2NrXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMucmVnaXN0cnkgPSBuZXcgTG9jYWxCYWNrZ3JvdW5kSm9iUmVnaXN0cnkoe2pvYkNsYXNzZXM6IGNvbmZpZ3VyYXRpb24uZ2V0QmFja2dyb3VuZEpvYkNsYXNzZXMoKX0pXG4gICAgdGhpcy5zdG9yZSA9IG5ldyBMb2NhbEJhY2tncm91bmRKb2JzU3RvcmUoe1xuICAgICAgY2xvY2ssXG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgZGF0YWJhc2VJZGVudGlmaWVyLFxuICAgICAgb25Db21taXR0ZWRFbnF1ZXVlOiAoKSA9PiB0aGlzLmRpc3BhdGNoZXIud2FrZSgpXG4gICAgfSlcbiAgICB0aGlzLmRpc3BhdGNoZXIgPSBuZXcgTG9jYWxCYWNrZ3JvdW5kSm9ic0Rpc3BhdGNoZXIoe2Nsb2NrLCBjb25maWd1cmF0aW9uLCByZWdpc3RyeTogdGhpcy5yZWdpc3RyeSwgc3RvcmU6IHRoaXMuc3RvcmV9KVxuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhhdCBsb2NhbCBwZXJzaXN0ZW5jZSBhbmQgZGlzcGF0Y2ggYXJlIHJlYWR5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGxvY2FsIGRpc3BhdGNoIGlzIHJlYWR5LlxuICAgKi9cbiAgYXN5bmMgZW5zdXJlUmVhZHkoKSB7IGF3YWl0IHRoaXMuZGlzcGF0Y2hlci5zdGFydCgpIH1cblxuICAvKipcbiAgICogU3RvcHMgbG9jYWwgZGlzcGF0Y2ggZ3JhY2VmdWxseS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgZ3JhY2VmdWwgbG9jYWwgc2h1dGRvd24uXG4gICAqL1xuICBhc3luYyBjbG9zZSgpIHtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoZXIuc3RvcCgpXG4gICAgdGhpcy5zdG9yZS5yZXNldFJlYWRpbmVzcygpXG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyBsb2NhbCBkaXNwYXRjaGVyIGhlYWx0aC5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9ic0hlYWx0aD59IC0gTG9jYWwgYWRhcHRlciBoZWFsdGguXG4gICAqL1xuICBhc3luYyBoZWFsdGgoKSB7IHJldHVybiB7cmVhZHk6IHRoaXMuZGlzcGF0Y2hlci5pc1JlYWR5KCl9IH1cblxuICAvKipcbiAgICogUmVjb25jaWxlcyBjb25maWd1cmF0aW9uLWRlcml2ZWQgcXVldWUgY29uY3VycmVuY3kgY2Fwcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgcXVldWUgY2FwIHJlY29uY2lsaWF0aW9uLlxuICAgKi9cbiAgYXN5bmMgcmVjb25jaWxlUXVldWVDb25jdXJyZW5jeSgpIHsgYXdhaXQgdGhpcy5zdG9yZS5yZWNvbmNpbGVRdWV1ZUNvbmN1cnJlbmN5KCkgfVxuXG4gIC8qKlxuICAgKiBFbnF1ZXVlcyBvbmUgc3RhdGljYWxseSByZWdpc3RlcmVkIGxvY2FsIGpvYi5cbiAgICogQHBhcmFtIHt7am9iTmFtZTogc3RyaW5nLCBhcmdzOiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4sIG9wdGlvbnM/OiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JPcHRpb25zfX0gYXJncyAtIEVucXVldWUgcmVxdWVzdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gLSBEdXJhYmxlIGxvY2FsIGpvYiBpZC5cbiAgICovXG4gIGFzeW5jIGVucXVldWUoYXJncykge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUmVhZHkoKVxuICAgIHRoaXMucmVnaXN0cnkucmVzb2x2ZShhcmdzLmpvYk5hbWUpXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUuZW5xdWV1ZShhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgb3IgZGV0YWNoZXMgdGhlIGN1cnJlbnQgb3duZXIgb2YgYSBzdGFibGUgc2NoZWR1bGUga2V5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NoZWR1bGVLZXkgLSBTdGFibGUgc2NoZWR1bGUga2V5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JDYW5jZWxsYXRpb25SZXN1bHQ+fSAtIENhbmNlbGxhdGlvbiByZXN1bHQuXG4gICAqL1xuICBhc3luYyBjYW5jZWxTY2hlZHVsZWQoc2NoZWR1bGVLZXkpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlYWR5KClcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5jYW5jZWxTY2hlZHVsZWQoc2NoZWR1bGVLZXkpXG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGN1cnJlbnQgb3duZXIgb2YgYSBzdGFibGUgc2NoZWR1bGUga2V5LlxuICAgKiBAcGFyYW0ge3tzY2hlZHVsZUtleTogc3RyaW5nLCBqb2JOYW1lOiBzdHJpbmcsIGFyZ3M6IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYk9wdGlvbnN9fSBhcmdzIC0gUmVwbGFjZW1lbnQgcmVxdWVzdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUmVwbGFjZW1lbnRSZXN1bHQ+fSAtIFJlcGxhY2VtZW50IHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHJlcGxhY2VTY2hlZHVsZWQoYXJncykge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUmVhZHkoKVxuICAgIHRoaXMucmVnaXN0cnkucmVzb2x2ZShhcmdzLmpvYk5hbWUpXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUucmVwbGFjZVNjaGVkdWxlZChhcmdzKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIHN0YWJsZSBvd25lcnNoaXAgYW5kIG9wdGlvbmFsIHRlcm1pbmFsIGhpc3RvcnkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlZHVsZUtleSAtIFN0YWJsZSBzY2hlZHVsZSBrZXkuXG4gICAqIEBwYXJhbSB7e2luY2x1ZGVMYXRlc3RUZXJtaW5hbD86IGJvb2xlYW59fSBbb3B0aW9uc10gLSBMb29rdXAgb3B0aW9ucy5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iU2NoZWR1bGVkTG9va3VwUmVzdWx0Pn0gLSBOb3JtYWxpemVkIGxvY2FsIGpvYnMuXG4gICAqL1xuICBhc3luYyBnZXRTY2hlZHVsZWRKb2Ioc2NoZWR1bGVLZXksIG9wdGlvbnMpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVJlYWR5KClcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5nZXRTY2hlZHVsZWRKb2Ioc2NoZWR1bGVLZXksIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogTWFrZXMgYSBmdXR1cmUgcXVldWVkIHN0YWJsZSBvd25lciBkdWUgd2l0aG91dCByZXBsYWNpbmcgaXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlZHVsZUtleSAtIFN0YWJsZSBzY2hlZHVsZSBrZXkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYldha2VSZXN1bHQ+fSAtIEV4YWN0IHdha2UgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgd2FrZVNjaGVkdWxlZChzY2hlZHVsZUtleSkge1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlUmVhZHkoKVxuICAgIHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLndha2VTY2hlZHVsZWQoc2NoZWR1bGVLZXkpXG4gIH1cblxuICAvKipcbiAgICogRmluZHMgdGhlIG5leHQgZWxpZ2libGUgbG9jYWwgam9iLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSb3cgfCBudWxsPn0gLSBOZXh0IGVsaWdpYmxlIGpvYi5cbiAgICovXG4gIGFzeW5jIG5leHRBdmFpbGFibGVKb2IoKSB7IHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLm5leHRBdmFpbGFibGVKb2IoKSB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBuZXh0IGZ1dHVyZSBsb2NhbCBqb2IuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIE5leHQgZnV0dXJlIGpvYi5cbiAgICovXG4gIGFzeW5jIG5leHRTY2hlZHVsZWRKb2IoKSB7IHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLm5leHRTY2hlZHVsZWRKb2IoKSB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIGEgbG9jYWwgam9iIGJ5IGlkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gam9iSWQgLSBKb2IgaWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIFBlcnNpc3RlZCBqb2IuXG4gICAqL1xuICBhc3luYyBnZXRKb2Ioam9iSWQpIHsgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUuZ2V0Sm9iKGpvYklkKSB9XG5cbiAgLyoqXG4gICAqIExpc3RzIGxvY2FsIGpvYnMgaW4gaW5zZXJ0aW9uIG9yZGVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSb3dbXT59IC0gTG9jYWwgam9icy5cbiAgICovXG4gIGFzeW5jIGxpc3RKb2JzKCkgeyByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5saXN0Sm9icygpIH1cblxuICAvKipcbiAgICogQ2xhaW1zIG9uZSBxdWV1ZWQgbG9jYWwgam9iLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYkhhbmRvZmZSZXF1ZXN0fSBhcmdzIC0gQ2xhaW0gcmVxdWVzdC4gQSBzdXBwbGllZCBoYW5kb2ZmIGlkIGlzIHBlcnNpc3RlZCBleGFjdGx5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JIYW5kb2ZmIHwgbnVsbD59IC0gSGFuZG9mZi5cbiAgICovXG4gIGFzeW5jIG1hcmtIYW5kZWRPZmYoYXJncykgeyByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5tYXJrSGFuZGVkT2ZmKGFyZ3MpIH1cblxuICAvKipcbiAgICogRmluZHMgYWN0aXZlIGxvY2FsIGhhbmRvZmZzIG93bmVkIGJ5IG9uZSB3b3JrZXIuXG4gICAqIEBwYXJhbSB7e3dvcmtlcklkOiBzdHJpbmd9fSBhcmdzIC0gV29ya2VyIGlkZW50aXR5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTx7am9iSWQ6IHN0cmluZywgaGFuZG9mZklkOiBzdHJpbmd9Pj59IC0gQWN0aXZlIHdvcmtlciBoYW5kb2Zmcy5cbiAgICovXG4gIGFzeW5jIGhhbmRlZE9mZkpvYnNGb3JXb3JrZXIoYXJncykgeyByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5oYW5kZWRPZmZKb2JzRm9yV29ya2VyKGFyZ3MpIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBleGFjdCBhY3RpdmUgbG9jYWwgaGFuZG9mZiB0byB0aGUgcXVldWUuXG4gICAqIEBwYXJhbSB7e2pvYklkOiBzdHJpbmcsIGhhbmRvZmZJZDogc3RyaW5nfX0gYXJncyAtIEhhbmRvZmYgcmVsZWFzZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgdGhlIGZlbmNlZCByZWxlYXNlLlxuICAgKi9cbiAgYXN5bmMgbWFya1JldHVybmVkVG9RdWV1ZShhcmdzKSB7IGF3YWl0IHRoaXMuc3RvcmUubWFya1JldHVybmVkVG9RdWV1ZShhcmdzKSB9XG5cbiAgLyoqXG4gICAqIEFja25vd2xlZGdlcyBzdWNjZXNzZnVsIGxvY2FsIGpvYiBjb21wbGV0aW9uLlxuICAgKiBAcGFyYW0ge3tqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ/OiBzdHJpbmd9fSBhcmdzIC0gQ29tcGxldGlvbiByZXBvcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIFdoZXRoZXIgYWNjZXB0ZWQuXG4gICAqL1xuICBhc3luYyBtYXJrQ29tcGxldGVkKGFyZ3MpIHsgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUubWFya0NvbXBsZXRlZChhcmdzKSB9XG5cbiAgLyoqXG4gICAqIFJlY29yZHMgcG9vbGVkLWNoaWxkIGFjY2VwdGFuY2UgZXZpZGVuY2UgZm9yIGEgbG9jYWwgaGFuZG9mZi5cbiAgICogQHBhcmFtIHt7am9iSWQ6IHN0cmluZywgaGFuZG9mZklkPzogc3RyaW5nLCByZWNlaXZlZEF0TXM/OiBudW1iZXIsIHN0YXJ0ZWRBdE1zPzogbnVtYmVyLCBjaGlsZEluc3RhbmNlSWQ/OiBzdHJpbmcsIGNoaWxkUGlkPzogbnVtYmVyfX0gYXJncyAtIEFjY2VwdGFuY2UgcmVwb3J0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIGFjY2VwdGVkLlxuICAgKi9cbiAgYXN5bmMgbWFya0NoaWxkQWNjZXB0ZWQoYXJncykgeyByZXR1cm4gYXdhaXQgdGhpcy5zdG9yZS5tYXJrQ2hpbGRBY2NlcHRlZChhcmdzKSB9XG5cbiAgLyoqXG4gICAqIEFja25vd2xlZGdlcyBhbiBleHBsaWNpdCBsb2NhbCByZXNjaGVkdWxlLlxuICAgKiBAcGFyYW0ge3tqb2JJZDogc3RyaW5nLCBkZWxheU1zOiBudW1iZXIsIGhhbmRvZmZJZD86IHN0cmluZ319IGFyZ3MgLSBSZXNjaGVkdWxlIHJlcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IC0gV2hldGhlciBhY2NlcHRlZC5cbiAgICovXG4gIGFzeW5jIG1hcmtSZXNjaGVkdWxlZChhcmdzKSB7IHJldHVybiBhd2FpdCB0aGlzLnN0b3JlLm1hcmtSZXNjaGVkdWxlZChhcmdzKSB9XG5cbiAgLyoqXG4gICAqIEFja25vd2xlZGdlcyBhIGZhaWxlZCBsb2NhbCBwZXJmb3JtYW5jZS5cbiAgICogQHBhcmFtIHt7am9iSWQ6IHN0cmluZywgZXJyb3I6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+LCBoYW5kb2ZmSWQ/OiBzdHJpbmd9fSBhcmdzIC0gRmFpbHVyZSByZXBvcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIFRyYW5zaXRpb24uXG4gICAqL1xuICBhc3luYyBtYXJrRmFpbGVkKGFyZ3MpIHsgcmV0dXJuIGF3YWl0IHRoaXMuc3RvcmUubWFya0ZhaWxlZChhcmdzKSB9XG5cbiAgLyoqXG4gICAqIENvYWxlc2NlcyBhIGRpc3BhdGNoZXIgd2FrZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgd2FrZSgpIHsgdGhpcy5kaXNwYXRjaGVyLndha2UoKSB9XG5cbiAgLyoqXG4gICAqIFdhaXRzIHVudGlsIGN1cnJlbnQgbG9jYWwgd29yayBoYXMgYmVlbiBhY2tub3dsZWRnZWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIGFsbCBjdXJyZW50IHdvcmsgaXMgYWNrbm93bGVkZ2VkLlxuICAgKi9cbiAgYXN5bmMgd2FpdEZvcklkbGUoKSB7IGF3YWl0IHRoaXMuZGlzcGF0Y2hlci53YWl0Rm9ySWRsZSgpIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import TableData from "../database/table-data/index.js";
|
|
2
2
|
export declare const LOCAL_BACKGROUND_JOBS_TABLE = "velocious_local_background_jobs";
|
|
3
3
|
export declare const LOCAL_BACKGROUND_JOB_CONCURRENCY_TABLE = "velocious_local_background_job_concurrency";
|
|
4
|
+
export declare const LOCAL_BACKGROUND_JOB_SCHEDULE_KEYS_TABLE = "velocious_local_background_job_schedule_keys";
|
|
4
5
|
export declare const LOCAL_BACKGROUND_JOBS_INDEX_NAMES: string[];
|
|
6
|
+
export declare const LOCAL_BACKGROUND_JOB_SCHEDULE_KEYS_INDEX_NAMES: string[];
|
|
5
7
|
/**
|
|
6
8
|
* Creates the production clock used by local dispatch.
|
|
7
9
|
* @returns {import("./types.js").LocalBackgroundJobsClock} - Production clock.
|
|
@@ -57,7 +59,8 @@ export default class LocalBackgroundJobsStore {
|
|
|
57
59
|
*/
|
|
58
60
|
_ensureReadyWithDb(db: import("../database/drivers/base.js").default): Promise<void>;
|
|
59
61
|
/**
|
|
60
|
-
* Creates or
|
|
62
|
+
* Creates or upgrades the versioned local tables and indexes without
|
|
63
|
+
* rebuilding persisted queue data.
|
|
61
64
|
* @param {import("../database/drivers/base.js").default} db - Local SQLite connection.
|
|
62
65
|
* @returns {Promise<boolean>} - Whether schema state changed.
|
|
63
66
|
*/
|
|
@@ -85,6 +88,11 @@ export default class LocalBackgroundJobsStore {
|
|
|
85
88
|
* @returns {TableData} - Concurrency counter table definition.
|
|
86
89
|
*/
|
|
87
90
|
_concurrencyTableData(): TableData;
|
|
91
|
+
/**
|
|
92
|
+
* Builds the stable schedule-owner table definition.
|
|
93
|
+
* @returns {TableData} - Stable owner table definition.
|
|
94
|
+
*/
|
|
95
|
+
_scheduleKeysTableData(): TableData;
|
|
88
96
|
/**
|
|
89
97
|
* Rejects an incompatible current-version table rather than rebuilding data.
|
|
90
98
|
* @param {import("../database/drivers/base.js").default} db - Local SQLite connection.
|
|
@@ -102,14 +110,23 @@ export default class LocalBackgroundJobsStore {
|
|
|
102
110
|
/**
|
|
103
111
|
* Checks whether the current local schema version is recorded.
|
|
104
112
|
* @param {import("../database/drivers/base.js").default} db - Connection.
|
|
105
|
-
* @
|
|
113
|
+
* @param {string} version - Local schema version.
|
|
114
|
+
* @returns {Promise<boolean>} - Whether the version is recorded.
|
|
106
115
|
*/
|
|
107
|
-
_hasMigration(db: import("../database/drivers/base.js").default): Promise<boolean>;
|
|
116
|
+
_hasMigration(db: import("../database/drivers/base.js").default, version: string): Promise<boolean>;
|
|
117
|
+
/**
|
|
118
|
+
* Records one local schema version after its additive changes are present.
|
|
119
|
+
* @param {import("../database/drivers/base.js").default} db - Connection.
|
|
120
|
+
* @param {string} version - Local schema version.
|
|
121
|
+
* @returns {Promise<void>} - Resolves after recording.
|
|
122
|
+
*/
|
|
123
|
+
_recordMigration(db: import("../database/drivers/base.js").default, version: string): Promise<void>;
|
|
108
124
|
/**
|
|
109
125
|
* Builds the scoped migration key.
|
|
126
|
+
* @param {string} version - Local schema version.
|
|
110
127
|
* @returns {string} - Scoped migration key.
|
|
111
128
|
*/
|
|
112
|
-
_migrationKey(): string;
|
|
129
|
+
_migrationKey(version: string): string;
|
|
113
130
|
/**
|
|
114
131
|
* Enqueues a local job in the caller's active transaction when present.
|
|
115
132
|
* @param {object} args - Enqueue request.
|
|
@@ -123,6 +140,43 @@ export default class LocalBackgroundJobsStore {
|
|
|
123
140
|
args: Array<ReturnType<typeof JSON.parse>>;
|
|
124
141
|
options?: import("./types.js").BackgroundJobOptions;
|
|
125
142
|
}): Promise<string>;
|
|
143
|
+
/**
|
|
144
|
+
* Replaces the queued owner of a stable schedule key with a new local job.
|
|
145
|
+
* A handed-off owner remains runnable but is detached from future ownership.
|
|
146
|
+
* @param {object} args - Replacement request.
|
|
147
|
+
* @param {string} args.scheduleKey - Stable logical schedule key.
|
|
148
|
+
* @param {string} args.jobName - Registered job name.
|
|
149
|
+
* @param {Array<ReturnType<typeof JSON.parse>>} args.args - Serialized job arguments.
|
|
150
|
+
* @param {import("./types.js").BackgroundJobOptions} [args.options] - Job options.
|
|
151
|
+
* @returns {Promise<import("./types.js").BackgroundJobReplacementResult>} - Replacement result.
|
|
152
|
+
*/
|
|
153
|
+
replaceScheduled({ scheduleKey, jobName, args, options }: {
|
|
154
|
+
scheduleKey: string;
|
|
155
|
+
jobName: string;
|
|
156
|
+
args: Array<ReturnType<typeof JSON.parse>>;
|
|
157
|
+
options?: import("./types.js").BackgroundJobOptions;
|
|
158
|
+
}): Promise<import("./types.js").BackgroundJobReplacementResult>;
|
|
159
|
+
/**
|
|
160
|
+
* Cancels a queued stable owner or detaches an active handoff truthfully.
|
|
161
|
+
* @param {string} scheduleKey - Stable logical schedule key.
|
|
162
|
+
* @returns {Promise<import("./types.js").BackgroundJobCancellationResult>} - Cancellation result.
|
|
163
|
+
*/
|
|
164
|
+
cancelScheduled(scheduleKey: string): Promise<import("./types.js").BackgroundJobCancellationResult>;
|
|
165
|
+
/**
|
|
166
|
+
* Reads stable ownership and optional latest terminal history in one transaction.
|
|
167
|
+
* @param {string} scheduleKey - Stable logical schedule key.
|
|
168
|
+
* @param {{includeLatestTerminal?: boolean}} [options] - Lookup options.
|
|
169
|
+
* @returns {Promise<import("./types.js").BackgroundJobScheduledLookupResult>} - Normalized local jobs.
|
|
170
|
+
*/
|
|
171
|
+
getScheduledJob(scheduleKey: string, { includeLatestTerminal }?: {
|
|
172
|
+
includeLatestTerminal?: boolean;
|
|
173
|
+
}): Promise<import("./types.js").BackgroundJobScheduledLookupResult>;
|
|
174
|
+
/**
|
|
175
|
+
* Moves only a future queued stable owner to the current time.
|
|
176
|
+
* @param {string} scheduleKey - Stable logical schedule key.
|
|
177
|
+
* @returns {Promise<import("./types.js").BackgroundJobWakeResult>} - Exact wake outcome.
|
|
178
|
+
*/
|
|
179
|
+
wakeScheduled(scheduleKey: string): Promise<import("./types.js").BackgroundJobWakeResult>;
|
|
126
180
|
/**
|
|
127
181
|
* Serializes matching in-process deduplication checks through commit while
|
|
128
182
|
* leaving unrelated job identities independent.
|
|
@@ -146,9 +200,11 @@ export default class LocalBackgroundJobsStore {
|
|
|
146
200
|
* Inserts one prepared local job row and its concurrency metadata.
|
|
147
201
|
* @param {import("../database/drivers/base.js").default} db - Local SQLite connection.
|
|
148
202
|
* @param {import("./types.js").PreparedLocalBackgroundJob} preparedJob - Prepared row data.
|
|
203
|
+
* @param {string | null} [scheduleKey] - Stable schedule history key.
|
|
204
|
+
* @param {number | null} [scheduleOrder] - Monotonic stable ownership order.
|
|
149
205
|
* @returns {Promise<void>} - Resolves after insertion.
|
|
150
206
|
*/
|
|
151
|
-
_insertPreparedJob(db: import("../database/drivers/base.js").default, preparedJob: import("./types.js").PreparedLocalBackgroundJob): Promise<void>;
|
|
207
|
+
_insertPreparedJob(db: import("../database/drivers/base.js").default, preparedJob: import("./types.js").PreparedLocalBackgroundJob, scheduleKey?: string | null, scheduleOrder?: number | null): Promise<void>;
|
|
152
208
|
/**
|
|
153
209
|
* Reconciles configured queue-derived caps and durable counters.
|
|
154
210
|
* @returns {Promise<void>} - Resolves after reconciliation.
|
|
@@ -344,6 +400,65 @@ export default class LocalBackgroundJobsStore {
|
|
|
344
400
|
* @returns {Promise<import("./types.js").BackgroundJobRow | null>} - Persisted row.
|
|
345
401
|
*/
|
|
346
402
|
_getJob(db: import("../database/drivers/base.js").default, jobId: string): Promise<import("./types.js").BackgroundJobRow | null>;
|
|
403
|
+
/**
|
|
404
|
+
* Reads the job currently named by one stable owner row.
|
|
405
|
+
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
406
|
+
* @param {string} scheduleKey - Validated stable schedule key.
|
|
407
|
+
* @returns {Promise<import("./types.js").BackgroundJobRow | null>} - Normalized owner job.
|
|
408
|
+
*/
|
|
409
|
+
_scheduledOwnerJob(db: import("../database/drivers/base.js").default, scheduleKey: string): Promise<import("./types.js").BackgroundJobRow | null>;
|
|
410
|
+
/**
|
|
411
|
+
* Assigns the next ownership order after SQLite write serialization is held.
|
|
412
|
+
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
413
|
+
* @param {string} scheduleKey - Validated stable schedule key.
|
|
414
|
+
* @returns {Promise<number>} - Next monotonic ownership order.
|
|
415
|
+
*/
|
|
416
|
+
_nextScheduleOrder(db: import("../database/drivers/base.js").default, scheduleKey: string): Promise<number>;
|
|
417
|
+
/**
|
|
418
|
+
* Builds a stable-schedule lookup exclusively from normalized local jobs.
|
|
419
|
+
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
420
|
+
* @param {object} args - Lookup options.
|
|
421
|
+
* @param {boolean} args.includeLatestTerminal - Whether terminal history is requested.
|
|
422
|
+
* @param {string} args.scheduleKey - Validated stable schedule key.
|
|
423
|
+
* @returns {Promise<import("./types.js").BackgroundJobScheduledLookupResult>} - Normalized local jobs.
|
|
424
|
+
*/
|
|
425
|
+
_scheduledJobLookup(db: import("../database/drivers/base.js").default, { includeLatestTerminal, scheduleKey }: {
|
|
426
|
+
includeLatestTerminal: boolean;
|
|
427
|
+
scheduleKey: string;
|
|
428
|
+
}): Promise<import("./types.js").BackgroundJobScheduledLookupResult>;
|
|
429
|
+
/**
|
|
430
|
+
* Releases ownership only when the key still points at the expected job.
|
|
431
|
+
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
432
|
+
* @param {object} args - Ownership identity.
|
|
433
|
+
* @param {string | null} args.jobId - Expected owner job id, or null for a dangling owner.
|
|
434
|
+
* @param {string} args.scheduleKey - Stable schedule key.
|
|
435
|
+
* @returns {Promise<void>} - Resolves when deleted or already superseded.
|
|
436
|
+
*/
|
|
437
|
+
_releaseScheduleOwnership(db: import("../database/drivers/base.js").default, { jobId, scheduleKey }: {
|
|
438
|
+
jobId: string | null;
|
|
439
|
+
scheduleKey: string;
|
|
440
|
+
}): Promise<void>;
|
|
441
|
+
/**
|
|
442
|
+
* Releases a terminal job's stable ownership when still current.
|
|
443
|
+
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
444
|
+
* @param {import("./types.js").BackgroundJobRow} job - Terminal job.
|
|
445
|
+
* @returns {Promise<void>} - Resolves when deleted or not applicable.
|
|
446
|
+
*/
|
|
447
|
+
_releaseScheduleOwnershipForJob(db: import("../database/drivers/base.js").default, job: import("./types.js").BackgroundJobRow): Promise<void>;
|
|
448
|
+
/**
|
|
449
|
+
* Acquires SQLite's transaction write serialization before reading a stable
|
|
450
|
+
* owner. A zero-row update still establishes the write boundary for a new key.
|
|
451
|
+
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
452
|
+
* @param {string} scheduleKey - Validated stable schedule key.
|
|
453
|
+
* @returns {Promise<void>} - Resolves after write serialization is acquired.
|
|
454
|
+
*/
|
|
455
|
+
_lockScheduleKey(db: import("../database/drivers/base.js").default, scheduleKey: string): Promise<void>;
|
|
456
|
+
/**
|
|
457
|
+
* Registers the local dispatch poke on the surrounding transaction commit.
|
|
458
|
+
* @param {import("../database/drivers/base.js").default} db - Transaction connection.
|
|
459
|
+
* @returns {Promise<void>} - Resolves after registration.
|
|
460
|
+
*/
|
|
461
|
+
_wakeDispatcherAfterCommit(db: import("../database/drivers/base.js").default): Promise<void>;
|
|
347
462
|
/**
|
|
348
463
|
* Normalizes one raw local database row.
|
|
349
464
|
* @param {Record<string, ReturnType<typeof JSON.parse>>} row - Raw row.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-store.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/local-store.js"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"local-store.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/local-store.js"],"names":[],"mappings":"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"}
|