@cartanova/qgrid-cli 1.2.0 → 1.4.0
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/bundle/dist/application/qgrid/pool.js +20 -9
- package/bundle/dist/application/token/token.model.js +1 -1
- package/bundle/dist/sonamu.config.js +4 -2
- package/bundle/src/application/qgrid/pool.ts +29 -16
- package/bundle/src/application/token/token.model.ts +2 -2
- package/bundle/src/sonamu.config.ts +2 -0
- package/bundle/web-dist/client/assets/{index-BowrnLVe.js → index-CgXTSTgN.js} +2 -2
- package/bundle/web-dist/client/assets/{routes-DRU2rj_p.js → routes-DvViUcG1.js} +1 -1
- package/bundle/web-dist/client/assets/{show-DjQUOob1.js → show-CFGLH8f_.js} +1 -1
- package/bundle/web-dist/client/assets/{tokens-B6y-rxlU.js → tokens-Bib8aQbc.js} +1 -1
- package/bundle/web-dist/client/index.html +1 -1
- package/bundle/web-dist/server/assets/{routes-CQY28Uq3.js → routes-Dx59lTlD.js} +2 -2
- package/bundle/web-dist/server/entry-server.generated.js +1 -1
- package/package.json +1 -1
|
@@ -35,15 +35,26 @@ var ClaudePool = class {
|
|
|
35
35
|
active: !this.quotaExhausted.has(token)
|
|
36
36
|
}));
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
tokenRrIndex = 0;
|
|
39
|
+
workerRrIndexes = /* @__PURE__ */ new Map();
|
|
39
40
|
selectWorker() {
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
const availableTokens = [...this.workers.entries()].filter(([token]) => !this.quotaExhausted.has(token));
|
|
42
|
+
if (availableTokens.length === 0) return null;
|
|
43
|
+
const tokenDepths = availableTokens.map(([token, workers]) => ({
|
|
44
|
+
token,
|
|
45
|
+
workers,
|
|
46
|
+
totalDepth: workers.reduce((sum, w) => sum + w.getQueueDepth(), 0)
|
|
47
|
+
}));
|
|
48
|
+
const minTokenDepth = Math.min(...tokenDepths.map((t) => t.totalDepth));
|
|
49
|
+
const idleTokens = tokenDepths.filter((t) => t.totalDepth === minTokenDepth);
|
|
50
|
+
const selected = idleTokens[this.tokenRrIndex % idleTokens.length];
|
|
51
|
+
this.tokenRrIndex++;
|
|
52
|
+
const minDepth = Math.min(...selected.workers.map((w) => w.getQueueDepth()));
|
|
53
|
+
const idleWorkers = selected.workers.filter((w) => w.getQueueDepth() === minDepth);
|
|
54
|
+
const wrIdx = this.workerRrIndexes.get(selected.token) ?? 0;
|
|
55
|
+
const picked = idleWorkers[wrIdx % idleWorkers.length];
|
|
56
|
+
this.workerRrIndexes.set(selected.token, wrIdx + 1);
|
|
57
|
+
return picked;
|
|
47
58
|
}
|
|
48
59
|
async query(input, timeoutMs) {
|
|
49
60
|
const triedTokens = /* @__PURE__ */ new Set();
|
|
@@ -111,4 +122,4 @@ function getPool() {
|
|
|
111
122
|
//#endregion
|
|
112
123
|
export { ClaudePool, getPool, initPool };
|
|
113
124
|
|
|
114
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9vbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vcWdyaWQvcG9vbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsYXVkZVBvb2wg4oCUIOupgO2LsCDthqDtgbAg7ZSE66Gc7IS47IqkIO2SgC5cbiAqXG4gKiAyLWxheWVyIOyVhO2CpO2FjeyymDogQ2xhdWRlUG9vbCDihpIgV29ya2VyIChmbGF0KVxuICogLSBNYXA8dG9rZW4sIFdvcmtlcltdPuuhnCDthqDtgbDrs4Qg7JuM7LukIOq0gOumrCAo7JuQ67O4IO2GoO2BsOydtCDtgqQpXG4gKiAtIGxlYXN0LXF1ZXVlLWRlcHRoIOudvOyasO2MhVxuICogLSDtiKzrqoXtlZwg7L+87YSwIGZhaWxvdmVyIChRdW90YUVycm9yIOyLnCDri6Trpbgg7Yag7YGw7Jy866GcIOyekOuPmSDsnqzsi5zrj4QpXG4gKiAtIOybjOy7pCDqtIDrpqzrp4wg64u064u5IChEQiDsnZjsobQg7JeG7J2MKVxuICovXG5pbXBvcnQgdHlwZSB7IENsaVJlc3VsdCwgUG9vbENvbmZpZywgUXVlcnlJbnB1dCwgVG9rZW5TdGF0cyB9IGZyb20gXCIuL3FncmlkLnR5cGVzXCI7XG5pbXBvcnQgeyBRdW90YUVycm9yIH0gZnJvbSBcIi4vcWdyaWQudHlwZXNcIjtcbmltcG9ydCB7IFdvcmtlciwgdHlwZSBXb3JrZXJDb25maWcgfSBmcm9tIFwiLi93b3JrZXJcIjtcblxuZXhwb3J0IGNsYXNzIENsYXVkZVBvb2wge1xuICB3b3JrZXJzID0gbmV3IE1hcDxzdHJpbmcsIFdvcmtlcltdPigpO1xuICB0b2tlbk5hbWVzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgcXVvdGFFeGhhdXN0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcmVxdWVzdENvdW50cyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIGxhc3RVc2VkVG9rZW4gPSBcIlwiO1xuICBsYXN0VXNlZFdvcmtlckluZGV4ID0gMDtcbiAgc2l6ZTogbnVtYmVyO1xuICBtb2RlbDogc3RyaW5nO1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIGN3ZDogc3RyaW5nO1xuICBtYXhDYWxsczogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogUG9vbENvbmZpZykge1xuICAgIHRoaXMuc2l6ZSA9IGNvbmZpZy5zaXplID8/IDM7XG4gICAgdGhpcy5tb2RlbCA9IGNvbmZpZy5tb2RlbCA/PyBcInNvbm5ldFwiO1xuICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0ID8/IDMwMF8wMDA7XG4gICAgdGhpcy5jd2QgPSBjb25maWcuY3dkID8/IFwiL3RtcC9xZ3JpZFwiO1xuICAgIHRoaXMubWF4Q2FsbHMgPSBjb25maWcubWF4Q2FsbHMgPz8gNTAwO1xuXG4gICAgY29uZmlnLnRva2Vucy5mb3JFYWNoKCh7IHRva2VuLCBuYW1lIH0pID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlV29ya2Vycyh0b2tlbiwgbmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRMYXN0VXNlZFdvcmtlck5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlTmFtZSA9IHRoaXMudG9rZW5OYW1lcy5nZXQodGhpcy5sYXN0VXNlZFRva2VuKSA/PyBcIlVua25vd25cIjtcbiAgICByZXR1cm4gYCR7YmFzZU5hbWV9LSR7dGhpcy5sYXN0VXNlZFdvcmtlckluZGV4fWA7XG4gIH1cblxuICBnZXRTdGF0cygpOiBUb2tlblN0YXRzW10ge1xuICAgIHJldHVybiBbLi4udGhpcy53b3JrZXJzLmtleXMoKV0ubWFwKCh0b2tlbikgPT4gKHtcbiAgICAgIHRva2VuLFxuICAgICAgbmFtZTogdGhpcy50b2tlbk5hbWVzLmdldCh0b2tlbikgPz8gXCJVbmtub3duXCIsXG4gICAgICByZXF1ZXN0czogdGhpcy5yZXF1ZXN0Q291bnRzLmdldCh0b2tlbikgPz8gMCxcbiAgICAgIGFjdGl2ZTogIXRoaXMucXVvdGFFeGhhdXN0ZWQuaGFzKHRva2VuKSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHJySW5kZXggPSAwO1xuXG4gIHNlbGVjdFdvcmtlcigpOiBXb3JrZXIgfCBudWxsIHtcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gWy4uLnRoaXMud29ya2Vycy5lbnRyaWVzKCldXG4gICAgICAuZmlsdGVyKChbdG9rZW5dKSA9PiAhdGhpcy5xdW90YUV4aGF1c3RlZC5oYXModG9rZW4pKVxuICAgICAgLmZsYXRNYXAoKFssIHdvcmtlcnNdKSA9PiB3b3JrZXJzKTtcblxuICAgIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBtaW5EZXB0aCA9IE1hdGgubWluKC4uLmNhbmRpZGF0ZXMubWFwKCh3KSA9PiB3LmdldFF1ZXVlRGVwdGgoKSkpO1xuICAgIGNvbnN0IGlkbGUgPSBjYW5kaWRhdGVzLmZpbHRlcigodykgPT4gdy5nZXRRdWV1ZURlcHRoKCkgPT09IG1pbkRlcHRoKTtcbiAgICBjb25zdCBwaWNrZWQgPSBpZGxlW3RoaXMucnJJbmRleCAlIGlkbGUubGVuZ3RoXTtcbiAgICB0aGlzLnJySW5kZXgrKztcbiAgICByZXR1cm4gcGlja2VkID8/IG51bGw7XG4gIH1cblxuICBhc3luYyBxdWVyeShpbnB1dDogUXVlcnlJbnB1dCwgdGltZW91dE1zPzogbnVtYmVyKTogUHJvbWlzZTxDbGlSZXN1bHQ+IHtcbiAgICBjb25zdCB0cmllZFRva2VucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IHdvcmtlciA9IHRoaXMuc2VsZWN0V29ya2VyKCk7XG4gICAgICBpZiAoIXdvcmtlcikge1xuICAgICAgICB0aHJvdyBuZXcgUXVvdGFFcnJvcihcIkFsbCB0b2tlbnMgZXhoYXVzdGVkXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHJpZWRUb2tlbnMuaGFzKHdvcmtlci50b2tlbklkKSkge1xuICAgICAgICB0aHJvdyBuZXcgUXVvdGFFcnJvcihcIkFsbCB0b2tlbnMgZXhoYXVzdGVkXCIpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3b3JrZXIucXVlcnkoaW5wdXQsIHRpbWVvdXRNcyk7XG4gICAgICAgIHRoaXMubGFzdFVzZWRUb2tlbiA9IHdvcmtlci50b2tlbklkO1xuICAgICAgICBjb25zdCB0b2tlbldvcmtlcnMgPSB0aGlzLndvcmtlcnMuZ2V0KHdvcmtlci50b2tlbklkKTtcbiAgICAgICAgdGhpcy5sYXN0VXNlZFdvcmtlckluZGV4ID0gdG9rZW5Xb3JrZXJzID8gdG9rZW5Xb3JrZXJzLmluZGV4T2Yod29ya2VyKSArIDEgOiAwO1xuICAgICAgICB0aGlzLnJlcXVlc3RDb3VudHMuc2V0KHdvcmtlci50b2tlbklkLCAodGhpcy5yZXF1ZXN0Q291bnRzLmdldCh3b3JrZXIudG9rZW5JZCkgPz8gMCkgKyAxKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBRdW90YUVycm9yKSB7XG4gICAgICAgICAgdGhpcy5xdW90YUV4aGF1c3RlZC5hZGQod29ya2VyLnRva2VuSWQpO1xuICAgICAgICAgIHRyaWVkVG9rZW5zLmFkZCh3b3JrZXIudG9rZW5JZCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGtpbGwoKTogdm9pZCB7XG4gICAgWy4uLnRoaXMud29ya2Vycy52YWx1ZXMoKV0uZmxhdCgpLmZvckVhY2goKHcpID0+IHtcbiAgICAgIHcua2lsbCgpO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlV29ya2Vycyh0b2tlbjogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy53b3JrZXJzLmhhcyh0b2tlbikpIHJldHVybjtcblxuICAgIHRoaXMudG9rZW5OYW1lcy5zZXQodG9rZW4sIG5hbWUpO1xuICAgIGNvbnN0IHdvcmtlckNvbmZpZzogV29ya2VyQ29uZmlnID0ge1xuICAgICAgdG9rZW4sXG4gICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIGN3ZDogdGhpcy5jd2QsXG4gICAgICBtYXhDYWxsczogdGhpcy5tYXhDYWxscyxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmtlcnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnNpemUgfSwgKCkgPT4gbmV3IFdvcmtlcih3b3JrZXJDb25maWcpKTtcbiAgICB0aGlzLndvcmtlcnMuc2V0KHRva2VuLCB3b3JrZXJzKTtcbiAgICB0aGlzLnJlcXVlc3RDb3VudHMuc2V0KHRva2VuLCAwKTtcbiAgfVxuXG4gIGRlc3Ryb3lXb3JrZXJzKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB3b3JrZXJzID0gdGhpcy53b3JrZXJzLmdldCh0b2tlbik7XG4gICAgaWYgKCF3b3JrZXJzKSByZXR1cm47XG5cbiAgICB3b3JrZXJzLmZvckVhY2goKHcpID0+IHtcbiAgICAgIHcua2lsbCgpO1xuICAgIH0pO1xuICAgIHRoaXMud29ya2Vycy5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMudG9rZW5OYW1lcy5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMucXVvdGFFeGhhdXN0ZWQuZGVsZXRlKHRva2VuKTtcbiAgICB0aGlzLnJlcXVlc3RDb3VudHMuZGVsZXRlKHRva2VuKTtcbiAgfVxufVxuXG4vLyBQb29sIOyLseq4gO2EtCDqtIDrpqxcbmxldCBwb29sOiBDbGF1ZGVQb29sIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0UG9vbCh0b2tlbnM6IHsgdG9rZW46IHN0cmluZzsgbmFtZTogc3RyaW5nIH1bXSk6IENsYXVkZVBvb2wge1xuICBwb29sID0gbmV3IENsYXVkZVBvb2woeyB0b2tlbnMgfSk7XG4gIHJldHVybiBwb29sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9vbCgpOiBDbGF1ZGVQb29sIHtcbiAgaWYgKCFwb29sKSB0aHJvdyBuZXcgRXJyb3IoXCJQb29sIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0UG9vbCgpIGZpcnN0LlwiKTtcbiAgcmV0dXJuIHBvb2w7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFhQSxJQUFhLGFBQWIsTUFBd0I7Q0FDdEIsMEJBQVUsSUFBSSxLQUF1QjtDQUNyQyw2QkFBYSxJQUFJLEtBQXFCO0NBQ3RDLGlDQUFpQixJQUFJLEtBQWE7Q0FDbEMsZ0NBQWdCLElBQUksS0FBcUI7Q0FDekMsZ0JBQWdCO0NBQ2hCLHNCQUFzQjtDQUN0QjtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBRUEsWUFBWSxRQUFvQjtBQUM5QixPQUFLLE9BQU8sT0FBTyxRQUFRO0FBQzNCLE9BQUssUUFBUSxPQUFPLFNBQVM7QUFDN0IsT0FBSyxVQUFVLE9BQU8sV0FBVztBQUNqQyxPQUFLLE1BQU0sT0FBTyxPQUFPO0FBQ3pCLE9BQUssV0FBVyxPQUFPLFlBQVk7QUFFbkMsU0FBTyxPQUFPLFNBQVMsRUFBRSxPQUFPLFdBQVc7QUFDekMsUUFBSyxjQUFjLE9BQU8sS0FBSztJQUMvQjs7Q0FHSix3QkFBZ0M7QUFFOUIsU0FBTyxHQURVLEtBQUssV0FBVyxJQUFJLEtBQUssY0FBYyxJQUFJLFVBQ3pDLEdBQUcsS0FBSzs7Q0FHN0IsV0FBeUI7QUFDdkIsU0FBTyxDQUFDLEdBQUcsS0FBSyxRQUFRLE1BQU0sQ0FBQyxDQUFDLEtBQUssV0FBVztHQUM5QztHQUNBLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxJQUFJO0dBQ3BDLFVBQVUsS0FBSyxjQUFjLElBQUksTUFBTSxJQUFJO0dBQzNDLFFBQVEsQ0FBQyxLQUFLLGVBQWUsSUFBSSxNQUFNO0dBQ3hDLEVBQUU7O0NBR0wsVUFBa0I7Q0FFbEIsZUFBOEI7RUFDNUIsTUFBTSxhQUFhLENBQUMsR0FBRyxLQUFLLFFBQVEsU0FBUyxDQUFDLENBQzNDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLElBQUksTUFBTSxDQUFDLENBQ3BELFNBQVMsR0FBRyxhQUFhLFFBQVE7QUFFcEMsTUFBSSxXQUFXLFdBQVcsRUFBRyxRQUFPO0VBRXBDLE1BQU0sV0FBVyxLQUFLLElBQUksR0FBRyxXQUFXLEtBQUssTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0VBQ3RFLE1BQU0sT0FBTyxXQUFXLFFBQVEsTUFBTSxFQUFFLGVBQWUsS0FBSyxTQUFTO0VBQ3JFLE1BQU0sU0FBUyxLQUFLLEtBQUssVUFBVSxLQUFLO0FBQ3hDLE9BQUs7QUFDTCxTQUFPLFVBQVU7O0NBR25CLE1BQU0sTUFBTSxPQUFtQixXQUF3QztFQUNyRSxNQUFNLDhCQUFjLElBQUksS0FBYTtBQUVyQyxTQUFPLE1BQU07R0FDWCxNQUFNLFNBQVMsS0FBSyxjQUFjO0FBQ2xDLE9BQUksQ0FBQyxPQUNILE9BQU0sSUFBSSxXQUFXLHVCQUF1QjtBQUc5QyxPQUFJLFlBQVksSUFBSSxPQUFPLFFBQVEsQ0FDakMsT0FBTSxJQUFJLFdBQVcsdUJBQXVCO0FBRzlDLE9BQUk7SUFDRixNQUFNLFNBQVMsTUFBTSxPQUFPLE1BQU0sT0FBTyxVQUFVO0FBQ25ELFNBQUssZ0JBQWdCLE9BQU87SUFDNUIsTUFBTSxlQUFlLEtBQUssUUFBUSxJQUFJLE9BQU8sUUFBUTtBQUNyRCxTQUFLLHNCQUFzQixlQUFlLGFBQWEsUUFBUSxPQUFPLEdBQUcsSUFBSTtBQUM3RSxTQUFLLGNBQWMsSUFBSSxPQUFPLFVBQVUsS0FBSyxjQUFjLElBQUksT0FBTyxRQUFRLElBQUksS0FBSyxFQUFFO0FBRXpGLFdBQU87WUFDQSxLQUFLO0FBQ1osUUFBSSxlQUFlLFlBQVk7QUFDN0IsVUFBSyxlQUFlLElBQUksT0FBTyxRQUFRO0FBQ3ZDLGlCQUFZLElBQUksT0FBTyxRQUFRO0FBQy9COztBQUVGLFVBQU07Ozs7Q0FLWixPQUFhO0FBQ1gsR0FBQyxHQUFHLEtBQUssUUFBUSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxNQUFNO0FBQy9DLEtBQUUsTUFBTTtJQUNSOztDQUdKLGNBQWMsT0FBZSxNQUFvQjtBQUMvQyxNQUFJLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBRTtBQUU3QixPQUFLLFdBQVcsSUFBSSxPQUFPLEtBQUs7RUFDaEMsTUFBTSxlQUE2QjtHQUNqQztHQUNBLE9BQU8sS0FBSztHQUNaLFNBQVMsS0FBSztHQUNkLEtBQUssS0FBSztHQUNWLFVBQVUsS0FBSztHQUNoQjtFQUNELE1BQU0sVUFBVSxNQUFNLEtBQUssRUFBRSxRQUFRLEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxhQUFhLENBQUM7QUFDakYsT0FBSyxRQUFRLElBQUksT0FBTyxRQUFRO0FBQ2hDLE9BQUssY0FBYyxJQUFJLE9BQU8sRUFBRTs7Q0FHbEMsZUFBZSxPQUFxQjtFQUNsQyxNQUFNLFVBQVUsS0FBSyxRQUFRLElBQUksTUFBTTtBQUN2QyxNQUFJLENBQUMsUUFBUztBQUVkLFVBQVEsU0FBUyxNQUFNO0FBQ3JCLEtBQUUsTUFBTTtJQUNSO0FBQ0YsT0FBSyxRQUFRLE9BQU8sTUFBTTtBQUMxQixPQUFLLFdBQVcsT0FBTyxNQUFNO0FBQzdCLE9BQUssZUFBZSxPQUFPLE1BQU07QUFDakMsT0FBSyxjQUFjLE9BQU8sTUFBTTs7O0FBS3BDLElBQUksT0FBMEI7QUFFOUIsU0FBZ0IsU0FBUyxRQUF1RDtBQUM5RSxRQUFPLElBQUksV0FBVyxFQUFFLFFBQVEsQ0FBQztBQUNqQyxRQUFPOztBQUdULFNBQWdCLFVBQXNCO0FBQ3BDLEtBQUksQ0FBQyxLQUFNLE9BQU0sSUFBSSxNQUFNLCtDQUErQztBQUMxRSxRQUFPIn0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9vbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vcWdyaWQvcG9vbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsYXVkZVBvb2wg4oCUIOupgO2LsCDthqDtgbAg7ZSE66Gc7IS47IqkIO2SgC5cbiAqXG4gKiAyLWxheWVyIOudvOyasO2MhTog7Yag7YGwIOyEoO2DnSAobGVhc3QtdG90YWwtZGVwdGggKyByb3VuZC1yb2Jpbikg4oaSIOybjOy7pCDshKDtg51cbiAqIC0gTWFwPHRva2VuLCBXb3JrZXJbXT7roZwg7Yag7YGw67OEIOybjOy7pCDqtIDrpqxcbiAqIC0g7Yag7YGwIOqwhCBxdW90YSDqt6Drk7Eg7IaM7KeEXG4gKi9cbmltcG9ydCB7IHR5cGUgQ2xpUmVzdWx0LCB0eXBlIFBvb2xDb25maWcsIHR5cGUgUXVlcnlJbnB1dCwgdHlwZSBUb2tlblN0YXRzIH0gZnJvbSBcIi4vcWdyaWQudHlwZXNcIjtcbmltcG9ydCB7IFF1b3RhRXJyb3IgfSBmcm9tIFwiLi9xZ3JpZC50eXBlc1wiO1xuaW1wb3J0IHsgV29ya2VyLCB0eXBlIFdvcmtlckNvbmZpZyB9IGZyb20gXCIuL3dvcmtlclwiO1xuXG5leHBvcnQgY2xhc3MgQ2xhdWRlUG9vbCB7XG4gIHdvcmtlcnMgPSBuZXcgTWFwPHN0cmluZywgV29ya2VyW10+KCk7XG4gIHRva2VuTmFtZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBxdW90YUV4aGF1c3RlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICByZXF1ZXN0Q291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgbGFzdFVzZWRUb2tlbiA9IFwiXCI7XG4gIGxhc3RVc2VkV29ya2VySW5kZXggPSAwO1xuICBzaXplOiBudW1iZXI7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIHRpbWVvdXQ6IG51bWJlcjtcbiAgY3dkOiBzdHJpbmc7XG4gIG1heENhbGxzOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBQb29sQ29uZmlnKSB7XG4gICAgdGhpcy5zaXplID0gY29uZmlnLnNpemUgPz8gMztcbiAgICB0aGlzLm1vZGVsID0gY29uZmlnLm1vZGVsID8/IFwic29ubmV0XCI7XG4gICAgdGhpcy50aW1lb3V0ID0gY29uZmlnLnRpbWVvdXQgPz8gMzAwXzAwMDtcbiAgICB0aGlzLmN3ZCA9IGNvbmZpZy5jd2QgPz8gXCIvdG1wL3FncmlkXCI7XG4gICAgdGhpcy5tYXhDYWxscyA9IGNvbmZpZy5tYXhDYWxscyA/PyA1MDA7XG5cbiAgICBjb25maWcudG9rZW5zLmZvckVhY2goKHsgdG9rZW4sIG5hbWUgfSkgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVXb3JrZXJzKHRva2VuLCBuYW1lKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldExhc3RVc2VkV29ya2VyTmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VOYW1lID0gdGhpcy50b2tlbk5hbWVzLmdldCh0aGlzLmxhc3RVc2VkVG9rZW4pID8/IFwiVW5rbm93blwiO1xuICAgIHJldHVybiBgJHtiYXNlTmFtZX0tJHt0aGlzLmxhc3RVc2VkV29ya2VySW5kZXh9YDtcbiAgfVxuXG4gIGdldFN0YXRzKCk6IFRva2VuU3RhdHNbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLndvcmtlcnMua2V5cygpXS5tYXAoKHRva2VuKSA9PiAoe1xuICAgICAgdG9rZW4sXG4gICAgICBuYW1lOiB0aGlzLnRva2VuTmFtZXMuZ2V0KHRva2VuKSA/PyBcIlVua25vd25cIixcbiAgICAgIHJlcXVlc3RzOiB0aGlzLnJlcXVlc3RDb3VudHMuZ2V0KHRva2VuKSA/PyAwLFxuICAgICAgYWN0aXZlOiAhdGhpcy5xdW90YUV4aGF1c3RlZC5oYXModG9rZW4pLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9rZW5SckluZGV4ID0gMDtcbiAgcHJpdmF0ZSB3b3JrZXJSckluZGV4ZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gIHNlbGVjdFdvcmtlcigpOiBXb3JrZXIgfCBudWxsIHtcbiAgICBjb25zdCBhdmFpbGFibGVUb2tlbnMgPSBbLi4udGhpcy53b3JrZXJzLmVudHJpZXMoKV0uZmlsdGVyKFxuICAgICAgKFt0b2tlbl0pID0+ICF0aGlzLnF1b3RhRXhoYXVzdGVkLmhhcyh0b2tlbiksXG4gICAgKTtcblxuICAgIGlmIChhdmFpbGFibGVUb2tlbnMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIDHri6jqs4Q6IO2GoO2BsOuzhCDstJ0g7YGQIGRlcHRo6rCAIOqwgOyepSDrgq7snYAg7Yag7YGwIOyEoO2DnVxuICAgIGNvbnN0IHRva2VuRGVwdGhzID0gYXZhaWxhYmxlVG9rZW5zLm1hcCgoW3Rva2VuLCB3b3JrZXJzXSkgPT4gKHtcbiAgICAgIHRva2VuLFxuICAgICAgd29ya2VycyxcbiAgICAgIHRvdGFsRGVwdGg6IHdvcmtlcnMucmVkdWNlKChzdW0sIHcpID0+IHN1bSArIHcuZ2V0UXVldWVEZXB0aCgpLCAwKSxcbiAgICB9KSk7XG4gICAgY29uc3QgbWluVG9rZW5EZXB0aCA9IE1hdGgubWluKC4uLnRva2VuRGVwdGhzLm1hcCgodCkgPT4gdC50b3RhbERlcHRoKSk7XG4gICAgY29uc3QgaWRsZVRva2VucyA9IHRva2VuRGVwdGhzLmZpbHRlcigodCkgPT4gdC50b3RhbERlcHRoID09PSBtaW5Ub2tlbkRlcHRoKTtcbiAgICBjb25zdCBzZWxlY3RlZCA9IGlkbGVUb2tlbnNbdGhpcy50b2tlblJySW5kZXggJSBpZGxlVG9rZW5zLmxlbmd0aF0hO1xuICAgIHRoaXMudG9rZW5SckluZGV4Kys7XG5cbiAgICAvLyAy64uo6rOEOiDthqDtgbAg64K07JeQ7IScIGxlYXN0LWRlcHRoIOybjOy7pCwg64+Z66Wg7J2066m0IHJvdW5kLXJvYmluXG4gICAgY29uc3QgbWluRGVwdGggPSBNYXRoLm1pbiguLi5zZWxlY3RlZC53b3JrZXJzLm1hcCgodykgPT4gdy5nZXRRdWV1ZURlcHRoKCkpKTtcbiAgICBjb25zdCBpZGxlV29ya2VycyA9IHNlbGVjdGVkLndvcmtlcnMuZmlsdGVyKCh3KSA9PiB3LmdldFF1ZXVlRGVwdGgoKSA9PT0gbWluRGVwdGgpO1xuICAgIGNvbnN0IHdySWR4ID0gdGhpcy53b3JrZXJSckluZGV4ZXMuZ2V0KHNlbGVjdGVkLnRva2VuKSA/PyAwO1xuICAgIGNvbnN0IHBpY2tlZCA9IGlkbGVXb3JrZXJzW3dySWR4ICUgaWRsZVdvcmtlcnMubGVuZ3RoXSE7XG4gICAgdGhpcy53b3JrZXJSckluZGV4ZXMuc2V0KHNlbGVjdGVkLnRva2VuLCB3cklkeCArIDEpO1xuXG4gICAgcmV0dXJuIHBpY2tlZDtcbiAgfVxuXG4gIGFzeW5jIHF1ZXJ5KGlucHV0OiBRdWVyeUlucHV0LCB0aW1lb3V0TXM/OiBudW1iZXIpOiBQcm9taXNlPENsaVJlc3VsdD4ge1xuICAgIGNvbnN0IHRyaWVkVG9rZW5zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3Qgd29ya2VyID0gdGhpcy5zZWxlY3RXb3JrZXIoKTtcbiAgICAgIGlmICghd29ya2VyKSB7XG4gICAgICAgIHRocm93IG5ldyBRdW90YUVycm9yKFwiQWxsIHRva2VucyBleGhhdXN0ZWRcIik7XG4gICAgICB9XG5cbiAgICAgIGlmICh0cmllZFRva2Vucy5oYXMod29ya2VyLnRva2VuSWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBRdW90YUVycm9yKFwiQWxsIHRva2VucyBleGhhdXN0ZWRcIik7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdvcmtlci5xdWVyeShpbnB1dCwgdGltZW91dE1zKTtcbiAgICAgICAgdGhpcy5sYXN0VXNlZFRva2VuID0gd29ya2VyLnRva2VuSWQ7XG4gICAgICAgIGNvbnN0IHRva2VuV29ya2VycyA9IHRoaXMud29ya2Vycy5nZXQod29ya2VyLnRva2VuSWQpO1xuICAgICAgICB0aGlzLmxhc3RVc2VkV29ya2VySW5kZXggPSB0b2tlbldvcmtlcnMgPyB0b2tlbldvcmtlcnMuaW5kZXhPZih3b3JrZXIpICsgMSA6IDA7XG4gICAgICAgIHRoaXMucmVxdWVzdENvdW50cy5zZXQod29ya2VyLnRva2VuSWQsICh0aGlzLnJlcXVlc3RDb3VudHMuZ2V0KHdvcmtlci50b2tlbklkKSA/PyAwKSArIDEpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIFF1b3RhRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLnF1b3RhRXhoYXVzdGVkLmFkZCh3b3JrZXIudG9rZW5JZCk7XG4gICAgICAgICAgdHJpZWRUb2tlbnMuYWRkKHdvcmtlci50b2tlbklkKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAga2lsbCgpOiB2b2lkIHtcbiAgICBbLi4udGhpcy53b3JrZXJzLnZhbHVlcygpXS5mbGF0KCkuZm9yRWFjaCgodykgPT4ge1xuICAgICAgdy5raWxsKCk7XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVXb3JrZXJzKHRva2VuOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLndvcmtlcnMuaGFzKHRva2VuKSkgcmV0dXJuO1xuXG4gICAgdGhpcy50b2tlbk5hbWVzLnNldCh0b2tlbiwgbmFtZSk7XG4gICAgY29uc3Qgd29ya2VyQ29uZmlnOiBXb3JrZXJDb25maWcgPSB7XG4gICAgICB0b2tlbixcbiAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgdGltZW91dDogdGhpcy50aW1lb3V0LFxuICAgICAgY3dkOiB0aGlzLmN3ZCxcbiAgICAgIG1heENhbGxzOiB0aGlzLm1heENhbGxzLFxuICAgIH07XG4gICAgY29uc3Qgd29ya2VycyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuc2l6ZSB9LCAoKSA9PiBuZXcgV29ya2VyKHdvcmtlckNvbmZpZykpO1xuICAgIHRoaXMud29ya2Vycy5zZXQodG9rZW4sIHdvcmtlcnMpO1xuICAgIHRoaXMucmVxdWVzdENvdW50cy5zZXQodG9rZW4sIDApO1xuICB9XG5cbiAgZGVzdHJveVdvcmtlcnModG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHdvcmtlcnMgPSB0aGlzLndvcmtlcnMuZ2V0KHRva2VuKTtcbiAgICBpZiAoIXdvcmtlcnMpIHJldHVybjtcblxuICAgIHdvcmtlcnMuZm9yRWFjaCgodykgPT4ge1xuICAgICAgdy5raWxsKCk7XG4gICAgfSk7XG4gICAgdGhpcy53b3JrZXJzLmRlbGV0ZSh0b2tlbik7XG4gICAgdGhpcy50b2tlbk5hbWVzLmRlbGV0ZSh0b2tlbik7XG4gICAgdGhpcy5xdW90YUV4aGF1c3RlZC5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMucmVxdWVzdENvdW50cy5kZWxldGUodG9rZW4pO1xuICB9XG59XG5cbi8vIFBvb2wg7Iux6riA7YS0IOq0gOumrFxubGV0IHBvb2w6IENsYXVkZVBvb2wgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRQb29sKHRva2VuczogeyB0b2tlbjogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfVtdKTogQ2xhdWRlUG9vbCB7XG4gIHBvb2wgPSBuZXcgQ2xhdWRlUG9vbCh7IHRva2VucyB9KTtcbiAgcmV0dXJuIHBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQb29sKCk6IENsYXVkZVBvb2wge1xuICBpZiAoIXBvb2wpIHRocm93IG5ldyBFcnJvcihcIlBvb2wgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXRQb29sKCkgZmlyc3QuXCIpO1xuICByZXR1cm4gcG9vbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQVdBLElBQWEsYUFBYixNQUF3QjtDQUN0QiwwQkFBVSxJQUFJLEtBQXVCO0NBQ3JDLDZCQUFhLElBQUksS0FBcUI7Q0FDdEMs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
|
|
@@ -172,4 +172,4 @@ const TokenModel = new TokenModelClass();
|
|
|
172
172
|
//#endregion
|
|
173
173
|
export { TokenModel };
|
|
174
174
|
|
|
175
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4ubW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwaSxcbiAgYXNBcnJheSxcbiAgQmFkUmVxdWVzdEV4Y2VwdGlvbixcbiAgQmFzZU1vZGVsQ2xhc3MsXG4gIGV4aGF1c3RpdmUsXG4gIHR5cGUgTGlzdFJlc3VsdCxcbiAgTm90Rm91bmRFeGNlcHRpb24sXG59IGZyb20gXCJzb25hbXVcIjtcblxuaW1wb3J0IHsgU0QgfSBmcm9tIFwiLi4vLi4vaTE4bi9zZC5nZW5lcmF0ZWRcIjtcbmltcG9ydCB0eXBlIHsgVG9rZW5TdWJzZXRLZXksIFRva2VuU3Vic2V0TWFwcGluZyB9IGZyb20gXCIuLi9zb25hbXUuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgeyB0b2tlbkxvYWRlclF1ZXJpZXMsIHRva2VuU3Vic2V0UXVlcmllcyB9IGZyb20gXCIuLi9zb25hbXUuZ2VuZXJhdGVkLnNzb1wiO1xuaW1wb3J0IHR5cGUgeyBUb2tlbkxpc3RQYXJhbXMsIFRva2VuU2F2ZVBhcmFtcyB9IGZyb20gXCIuL3Rva2VuLnR5cGVzXCI7XG5cbmNsYXNzIFRva2VuTW9kZWxDbGFzcyBleHRlbmRzIEJhc2VNb2RlbENsYXNzPFxuICBUb2tlblN1YnNldEtleSxcbiAgVG9rZW5TdWJzZXRNYXBwaW5nLFxuICB0eXBlb2YgdG9rZW5TdWJzZXRRdWVyaWVzLFxuICB0eXBlb2YgdG9rZW5Mb2FkZXJRdWVyaWVzXG4+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJUb2tlblwiLCB0b2tlblN1YnNldFF1ZXJpZXMsIHRva2VuTG9hZGVyUXVlcmllcyk7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJHRVRcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJ0YW5zdGFjay1xdWVyeVwiXSwgcmVzb3VyY2VOYW1lOiBcIlRva2VuXCIgfSlcbiAgYXN5bmMgZmluZEJ5SWQ8VCBleHRlbmRzIFRva2VuU3Vic2V0S2V5PihzdWJzZXQ6IFQsIGlkOiBudW1iZXIpOiBQcm9taXNlPFRva2VuU3Vic2V0TWFwcGluZ1tUXT4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHsgaWQsIG51bTogMSwgcGFnZTogMSB9KTtcbiAgICBpZiAoIXJvd3NbMF0pIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbihTRChcImVycm9yLmVudGl0eU5vdEZvdW5kXCIpKFwiVG9rZW5cIiwgaWQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd3NbMF07XG4gIH1cblxuICBhc3luYyBmaW5kT25lPFQgZXh0ZW5kcyBUb2tlblN1YnNldEtleT4oXG4gICAgc3Vic2V0OiBULFxuICAgIGxpc3RQYXJhbXM6IFRva2VuTGlzdFBhcmFtcyxcbiAgKTogUHJvbWlzZTxUb2tlblN1YnNldE1hcHBpbmdbVF0gfCBudWxsPiB7XG4gICAgY29uc3QgeyByb3dzIH0gPSBhd2FpdCB0aGlzLmZpbmRNYW55KHN1YnNldCwgeyAuLi5saXN0UGFyYW1zLCBudW06IDEsIHBhZ2U6IDEgfSk7XG4gICAgcmV0dXJuIHJvd3NbMF0gPz8gbnVsbDtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIkdFVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLXF1ZXJ5XCJdLCByZXNvdXJjZU5hbWU6IFwiVG9rZW5zXCIgfSlcbiAgYXN5bmMgZmluZE1hbnk8VCBleHRlbmRzIFRva2VuU3Vic2V0S2V5LCBMUCBleHRlbmRzIFRva2VuTGlzdFBhcmFtcz4oXG4gICAgc3Vic2V0OiBULFxuICAgIHJhd1BhcmFtcz86IExQLFxuICApOiBQcm9taXNlPExpc3RSZXN1bHQ8TFAsIFRva2VuU3Vic2V0TWFwcGluZ1tUXT4+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBudW06IDI0LFxuICAgICAgcGFnZTogMSxcbiAgICAgIHNlYXJjaDogXCJpZFwiIGFzIGNvbnN0LFxuICAgICAgb3JkZXJCeTogXCJvcmQtYXNjXCIgYXMgY29uc3QsXG4gICAgICAuLi5yYXdQYXJhbXMsXG4gICAgfSBzYXRpc2ZpZXMgVG9rZW5MaXN0UGFyYW1zO1xuXG4gICAgY29uc3QgeyBxYiwgb25TdWJzZXQ6IF8gfSA9IHRoaXMuZ2V0U3Vic2V0UXVlcmllcyhzdWJzZXQpO1xuXG4gICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgcWIud2hlcmVJbihcInRva2Vucy5pZFwiLCBhc0FycmF5KHBhcmFtcy5pZCkpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMudG9rZW4pIHtcbiAgICAgIHFiLndoZXJlKFwidG9rZW5zLnRva2VuXCIsIHBhcmFtcy50b2tlbik7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5zZWFyY2ggJiYgcGFyYW1zLmtleXdvcmQgJiYgcGFyYW1zLmtleXdvcmQubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHBhcmFtcy5zZWFyY2ggPT09IFwiaWRcIikge1xuICAgICAgICBxYi53aGVyZShcInRva2Vucy5pZFwiLCBOdW1iZXIocGFyYW1zLmtleXdvcmQpKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLnNlYXJjaCA9PT0gXCJuYW1lXCIpIHtcbiAgICAgICAgcWIud2hlcmUoXCJ0b2tlbnMubmFtZVwiLCBcImxpa2VcIiwgYCUke3BhcmFtcy5rZXl3b3JkfSVgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXhjZXB0aW9uKFNEKFwiZXJyb3IudW5rbm93blNlYXJjaEZpZWxkXCIpKHBhcmFtcy5zZWFyY2gpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLm9yZGVyQnkpIHtcbiAgICAgIGlmIChwYXJhbXMub3JkZXJCeSA9PT0gXCJpZC1kZXNjXCIpIHtcbiAgICAgICAgcWIub3JkZXJCeShcInRva2Vucy5pZFwiLCBcImRlc2NcIik7XG4gICAgICB9IGVsc2UgaWYgKHBhcmFtcy5vcmRlckJ5ID09PSBcIm9yZC1hc2NcIikge1xuICAgICAgICBxYi5vcmRlckJ5KFwidG9rZW5zLm9yZFwiLCBcImFzY1wiKTtcbiAgICAgICAgcWIub3JkZXJCeShcInRva2Vucy5pZFwiLCBcImFzY1wiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aGF1c3RpdmUocGFyYW1zLm9yZGVyQnkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGVuaGFuY2VycyA9IHRoaXMuY3JlYXRlRW5oYW5jZXJzKHtcbiAgICAgIEE6IChyb3cpID0+ICh7IC4uLnJvdyB9KSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVTdWJzZXRRdWVyeSh7IHN1YnNldCwgcWIsIHBhcmFtcywgZW5oYW5jZXJzLCBkZWJ1ZzogZmFsc2UgfSk7XG4gIH1cblxuICBhc3luYyBmaW5kQnlUb2tlbjxUIGV4dGVuZHMgVG9rZW5TdWJzZXRLZXk+KFxuICAgIHN1YnNldDogVCxcbiAgICB0b2tlbjogc3RyaW5nLFxuICApOiBQcm9taXNlPFRva2VuU3Vic2V0TWFwcGluZ1tUXSB8IG51bGw+IHtcbiAgICBjb25zdCB7IHFiIH0gPSB0aGlzLmdldFN1YnNldFF1ZXJpZXMoc3Vic2V0KTtcbiAgICBxYi53aGVyZShcInRva2Vucy50b2tlblwiLCB0b2tlbik7XG4gICAgY29uc3QgZW5oYW5jZXJzID0gdGhpcy5jcmVhdGVFbmhhbmNlcnMoeyBBOiAocm93KSA9PiAoeyAuLi5yb3cgfSkgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5leGVjdXRlU3Vic2V0UXVlcnkoe1xuICAgICAgc3Vic2V0LFxuICAgICAgcWIsXG4gICAgICBwYXJhbXM6IHsgbnVtOiAxLCBwYWdlOiAxIH0sXG4gICAgICBlbmhhbmNlcnMsXG4gICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdC5yb3dzWzBdID8/IG51bGw7XG4gIH1cblxuICBhc3luYyBmaW5kQnlBY2NvdW50VXVpZDxUIGV4dGVuZHMgVG9rZW5TdWJzZXRLZXk+KFxuICAgIHN1YnNldDogVCxcbiAgICBhY2NvdW50VXVpZDogc3RyaW5nLFxuICApOiBQcm9taXNlPFRva2VuU3Vic2V0TWFwcGluZ1tUXVtdPiB7XG4gICAgY29uc3QgeyBxYiB9ID0gdGhpcy5nZXRTdWJzZXRRdWVyaWVzKHN1YnNldCk7XG4gICAgcWIud2hlcmUoXCJ0b2tlbnMuYWNjb3VudF91dWlkXCIsIGFjY291bnRVdWlkKTtcbiAgICBjb25zdCBlbmhhbmNlcnMgPSB0aGlzLmNyZWF0ZUVuaGFuY2Vycyh7IEE6IChyb3cpID0+ICh7IC4uLnJvdyB9KSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVTdWJzZXRRdWVyeSh7XG4gICAgICBzdWJzZXQsXG4gICAgICBxYixcbiAgICAgIHBhcmFtczogeyBudW06IDEwMCwgcGFnZTogMSB9LFxuICAgICAgZW5oYW5jZXJzLFxuICAgICAgZGVidWc6IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQucm93cztcbiAgfVxuXG4gIGFzeW5jIGZpbmRBY3RpdmU8VCBleHRlbmRzIFRva2VuU3Vic2V0S2V5PihzdWJzZXQ6IFQpOiBQcm9taXNlPFRva2VuU3Vic2V0TWFwcGluZ1tUXVtdPiB7XG4gICAgY29uc3QgeyBxYiB9ID0gdGhpcy5nZXRTdWJzZXRRdWVyaWVzKHN1YnNldCk7XG4gICAgcWIud2hlcmUoXCJ0b2tlbnMuYWN0aXZlXCIsIHRydWUpO1xuICAgIGNvbnN0IGVuaGFuY2VycyA9IHRoaXMuY3JlYXRlRW5oYW5jZXJzKHsgQTogKHJvdykgPT4gKHsgLi4ucm93IH0pIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlY3V0ZVN1YnNldFF1ZXJ5KHtcbiAgICAgIHN1YnNldCxcbiAgICAgIHFiLFxuICAgICAgcGFyYW1zOiB7IG51bTogMTAwLCBwYWdlOiAxIH0sXG4gICAgICBlbmhhbmNlcnMsXG4gICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdC5yb3dzO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiUE9TVFwiLCBjbGllbnRzOiBbXCJheGlvc1wiLCBcInRhbnN0YWNrLW11dGF0aW9uXCJdIH0pXG4gIGFzeW5jIHNhdmUoc3BhOiBUb2tlblNhdmVQYXJhbXNbXSk6IFByb21pc2U8bnVtYmVyW10+IHtcbiAgICBjb25zdCB3ZGIgPSB0aGlzLmdldFB1cmkoXCJ3XCIpO1xuICAgIHNwYS5mb3JFYWNoKChzcCkgPT4ge1xuICAgICAgd2RiLnViUmVnaXN0ZXIoXCJ0b2tlbnNcIiwgc3ApO1xuICAgIH0pO1xuICAgIHJldHVybiB3ZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgcmV0dXJuIHRyeC51YlVwc2VydChcInRva2Vuc1wiKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIlBPU1RcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJ0YW5zdGFjay1tdXRhdGlvblwiXSB9KVxuICBhc3luYyByZW9yZGVyKGlkczogbnVtYmVyW10pOiBQcm9taXNlPHsgZG9uZTogYm9vbGVhbiB9PiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcbiAgICBhd2FpdCB3ZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYXdhaXQgdHJ4LnRhYmxlKFwidG9rZW5zXCIpLndoZXJlKFwiaWRcIiwgaWRzW2ldISkudXBkYXRlKHsgb3JkOiBpIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7IGRvbmU6IHRydWUgfTtcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIlBPU1RcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJ0YW5zdGFjay1tdXRhdGlvblwiXSB9KVxuICBhc3luYyBkZWwoaWRzOiBudW1iZXJbXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcbiAgICBhd2FpdCB3ZGIudHJhbnNhY3Rpb24oYXN5bmMgKHRyeCkgPT4ge1xuICAgICAgcmV0dXJuIHRyeC50YWJsZShcInRva2Vuc1wiKS53aGVyZUluKFwidG9rZW5zLmlkXCIsIGlkcykuZGVsZXRlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGlkcy5sZW5ndGg7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFRva2VuTW9kZWwgPSBuZXcgVG9rZW5Nb2RlbENsYXNzKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFlQSxJQUFNLGtCQUFOLGNBQThCLGVBSzVCO0NBQ0EsY0FBYztBQUNaLFFBQU0sU0FBUyxvQkFBb0IsbUJBQW1COztDQUd4RCxNQUNNLFNBQW1DLFFBQVcsSUFBNEM7RUFDOUYsTUFBTSxFQUFFLFNBQVMsTUFBTSxLQUFLLFNBQVMsUUFBUTtHQUFFO0dBQUksS0FBSztHQUFHLE1BQU07R0FBRyxDQUFDO0FBQ3JFLE1BQUksQ0FBQyxLQUFLLEdBQ1IsT0FBTSxJQUFJLGtCQUFrQixHQUFHLHVCQUF1QixDQUFDLFNBQVMsR0FBRyxDQUFDO0FBRXRFLFNBQU8sS0FBSzs7Q0FHZCxNQUFNLFFBQ0osUUFDQSxZQUN1QztFQUN2QyxNQUFNLEVBQUUsU0FBUyxNQUFNLEtBQUssU0FBUyxRQUFRO0dBQUUsR0FBRztHQUFZLEtBQUs7R0FBRyxNQUFNO0dBQUcsQ0FBQztBQUNoRixTQUFPLEtBQUssTUFBTTs7Q0FHcEIsTUFDTSxTQUNKLFFBQ0EsV0FDZ0Q7RUFDaEQsTUFBTSxTQUFTO0dBQ2IsS0FBSztHQUNMLE1BQU07R0FDTixRQUFRO0dBQ1IsU0FBUztHQUNULEdBQUc7R0FDSjtFQUVELE1BQU0sRUFBRSxJQUFJLFVBQVUsTUFBTSxLQUFLLGlCQUFpQixPQUFPO0FBRXpELE1BQUksT0FBTyxHQUNULElBQUcsUUFBUSxhQUFhLFFBQVEsT0FBTyxH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
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4ubW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwaSxcbiAgYXNBcnJheSxcbiAgQmFkUmVxdWVzdEV4Y2VwdGlvbixcbiAgQmFzZU1vZGVsQ2xhc3MsXG4gIGV4aGF1c3RpdmUsXG4gIHR5cGUgTGlzdFJlc3VsdCxcbiAgTm90Rm91bmRFeGNlcHRpb24sXG59IGZyb20gXCJzb25hbXVcIjtcblxuaW1wb3J0IHsgU0QgfSBmcm9tIFwiLi4vLi4vaTE4bi9zZC5nZW5lcmF0ZWRcIjtcbmltcG9ydCB7IHR5cGUgVG9rZW5TdWJzZXRLZXksIHR5cGUgVG9rZW5TdWJzZXRNYXBwaW5nIH0gZnJvbSBcIi4uL3NvbmFtdS5nZW5lcmF0ZWRcIjtcbmltcG9ydCB7IHRva2VuTG9hZGVyUXVlcmllcywgdG9rZW5TdWJzZXRRdWVyaWVzIH0gZnJvbSBcIi4uL3NvbmFtdS5nZW5lcmF0ZWQuc3NvXCI7XG5pbXBvcnQgeyB0eXBlIFRva2VuTGlzdFBhcmFtcywgdHlwZSBUb2tlblNhdmVQYXJhbXMgfSBmcm9tIFwiLi90b2tlbi50eXBlc1wiO1xuXG5jbGFzcyBUb2tlbk1vZGVsQ2xhc3MgZXh0ZW5kcyBCYXNlTW9kZWxDbGFzczxcbiAgVG9rZW5TdWJzZXRLZXksXG4gIFRva2VuU3Vic2V0TWFwcGluZyxcbiAgdHlwZW9mIHRva2VuU3Vic2V0UXVlcmllcyxcbiAgdHlwZW9mIHRva2VuTG9hZGVyUXVlcmllc1xuPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiVG9rZW5cIiwgdG9rZW5TdWJzZXRRdWVyaWVzLCB0b2tlbkxvYWRlclF1ZXJpZXMpO1xuICB9XG5cbiAgQGFwaSh7IGh0dHBNZXRob2Q6IFwiR0VUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwidGFuc3RhY2stcXVlcnlcIl0sIHJlc291cmNlTmFtZTogXCJUb2tlblwiIH0pXG4gIGFzeW5jIGZpbmRCeUlkPFQgZXh0ZW5kcyBUb2tlblN1YnNldEtleT4oc3Vic2V0OiBULCBpZDogbnVtYmVyKTogUHJvbWlzZTxUb2tlblN1YnNldE1hcHBpbmdbVF0+IHtcbiAgICBjb25zdCB7IHJvd3MgfSA9IGF3YWl0IHRoaXMuZmluZE1hbnkoc3Vic2V0LCB7IGlkLCBudW06IDEsIHBhZ2U6IDEgfSk7XG4gICAgaWYgKCFyb3dzWzBdKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFeGNlcHRpb24oU0QoXCJlcnJvci5lbnRpdHlOb3RGb3VuZFwiKShcIlRva2VuXCIsIGlkKSk7XG4gICAgfVxuICAgIHJldHVybiByb3dzWzBdO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZTxUIGV4dGVuZHMgVG9rZW5TdWJzZXRLZXk+KFxuICAgIHN1YnNldDogVCxcbiAgICBsaXN0UGFyYW1zOiBUb2tlbkxpc3RQYXJhbXMsXG4gICk6IFByb21pc2U8VG9rZW5TdWJzZXRNYXBwaW5nW1RdIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgcm93cyB9ID0gYXdhaXQgdGhpcy5maW5kTWFueShzdWJzZXQsIHsgLi4ubGlzdFBhcmFtcywgbnVtOiAxLCBwYWdlOiAxIH0pO1xuICAgIHJldHVybiByb3dzWzBdID8/IG51bGw7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJHRVRcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJ0YW5zdGFjay1xdWVyeVwiXSwgcmVzb3VyY2VOYW1lOiBcIlRva2Vuc1wiIH0pXG4gIGFzeW5jIGZpbmRNYW55PFQgZXh0ZW5kcyBUb2tlblN1YnNldEtleSwgTFAgZXh0ZW5kcyBUb2tlbkxpc3RQYXJhbXM+KFxuICAgIHN1YnNldDogVCxcbiAgICByYXdQYXJhbXM/OiBMUCxcbiAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PExQLCBUb2tlblN1YnNldE1hcHBpbmdbVF0+PiB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgbnVtOiAyNCxcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBzZWFyY2g6IFwiaWRcIiBhcyBjb25zdCxcbiAgICAgIG9yZGVyQnk6IFwib3JkLWFzY1wiIGFzIGNvbnN0LFxuICAgICAgLi4ucmF3UGFyYW1zLFxuICAgIH0gc2F0aXNmaWVzIFRva2VuTGlzdFBhcmFtcztcblxuICAgIGNvbnN0IHsgcWIsIG9uU3Vic2V0OiBfIH0gPSB0aGlzLmdldFN1YnNldFF1ZXJpZXMoc3Vic2V0KTtcblxuICAgIGlmIChwYXJhbXMuaWQpIHtcbiAgICAgIHFiLndoZXJlSW4oXCJ0b2tlbnMuaWRcIiwgYXNBcnJheShwYXJhbXMuaWQpKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zLnRva2VuKSB7XG4gICAgICBxYi53aGVyZShcInRva2Vucy50b2tlblwiLCBwYXJhbXMudG9rZW4pO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuc2VhcmNoICYmIHBhcmFtcy5rZXl3b3JkICYmIHBhcmFtcy5rZXl3b3JkLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChwYXJhbXMuc2VhcmNoID09PSBcImlkXCIpIHtcbiAgICAgICAgcWIud2hlcmUoXCJ0b2tlbnMuaWRcIiwgTnVtYmVyKHBhcmFtcy5rZXl3b3JkKSk7XG4gICAgICB9IGVsc2UgaWYgKHBhcmFtcy5zZWFyY2ggPT09IFwibmFtZVwiKSB7XG4gICAgICAgIHFiLndoZXJlKFwidG9rZW5zLm5hbWVcIiwgXCJsaWtlXCIsIGAlJHtwYXJhbXMua2V5d29yZH0lYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEV4Y2VwdGlvbihTRChcImVycm9yLnVua25vd25TZWFyY2hGaWVsZFwiKShwYXJhbXMuc2VhcmNoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5vcmRlckJ5KSB7XG4gICAgICBpZiAocGFyYW1zLm9yZGVyQnkgPT09IFwiaWQtZGVzY1wiKSB7XG4gICAgICAgIHFiLm9yZGVyQnkoXCJ0b2tlbnMuaWRcIiwgXCJkZXNjXCIpO1xuICAgICAgfSBlbHNlIGlmIChwYXJhbXMub3JkZXJCeSA9PT0gXCJvcmQtYXNjXCIpIHtcbiAgICAgICAgcWIub3JkZXJCeShcInRva2Vucy5vcmRcIiwgXCJhc2NcIik7XG4gICAgICAgIHFiLm9yZGVyQnkoXCJ0b2tlbnMuaWRcIiwgXCJhc2NcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGhhdXN0aXZlKHBhcmFtcy5vcmRlckJ5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlbmhhbmNlcnMgPSB0aGlzLmNyZWF0ZUVuaGFuY2Vycyh7XG4gICAgICBBOiAocm93KSA9PiAoeyAuLi5yb3cgfSksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlU3Vic2V0UXVlcnkoeyBzdWJzZXQsIHFiLCBwYXJhbXMsIGVuaGFuY2VycywgZGVidWc6IGZhbHNlIH0pO1xuICB9XG5cbiAgYXN5bmMgZmluZEJ5VG9rZW48VCBleHRlbmRzIFRva2VuU3Vic2V0S2V5PihcbiAgICBzdWJzZXQ6IFQsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgKTogUHJvbWlzZTxUb2tlblN1YnNldE1hcHBpbmdbVF0gfCBudWxsPiB7XG4gICAgY29uc3QgeyBxYiB9ID0gdGhpcy5nZXRTdWJzZXRRdWVyaWVzKHN1YnNldCk7XG4gICAgcWIud2hlcmUoXCJ0b2tlbnMudG9rZW5cIiwgdG9rZW4pO1xuICAgIGNvbnN0IGVuaGFuY2VycyA9IHRoaXMuY3JlYXRlRW5oYW5jZXJzKHsgQTogKHJvdykgPT4gKHsgLi4ucm93IH0pIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlY3V0ZVN1YnNldFF1ZXJ5KHtcbiAgICAgIHN1YnNldCxcbiAgICAgIHFiLFxuICAgICAgcGFyYW1zOiB7IG51bTogMSwgcGFnZTogMSB9LFxuICAgICAgZW5oYW5jZXJzLFxuICAgICAgZGVidWc6IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQucm93c1swXSA/PyBudWxsO1xuICB9XG5cbiAgYXN5bmMgZmluZEJ5QWNjb3VudFV1aWQ8VCBleHRlbmRzIFRva2VuU3Vic2V0S2V5PihcbiAgICBzdWJzZXQ6IFQsXG4gICAgYWNjb3VudFV1aWQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxUb2tlblN1YnNldE1hcHBpbmdbVF1bXT4ge1xuICAgIGNvbnN0IHsgcWIgfSA9IHRoaXMuZ2V0U3Vic2V0UXVlcmllcyhzdWJzZXQpO1xuICAgIHFiLndoZXJlKFwidG9rZW5zLmFjY291bnRfdXVpZFwiLCBhY2NvdW50VXVpZCk7XG4gICAgY29uc3QgZW5oYW5jZXJzID0gdGhpcy5jcmVhdGVFbmhhbmNlcnMoeyBBOiAocm93KSA9PiAoeyAuLi5yb3cgfSkgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5leGVjdXRlU3Vic2V0UXVlcnkoe1xuICAgICAgc3Vic2V0LFxuICAgICAgcWIsXG4gICAgICBwYXJhbXM6IHsgbnVtOiAxMDAsIHBhZ2U6IDEgfSxcbiAgICAgIGVuaGFuY2VycyxcbiAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0LnJvd3M7XG4gIH1cblxuICBhc3luYyBmaW5kQWN0aXZlPFQgZXh0ZW5kcyBUb2tlblN1YnNldEtleT4oc3Vic2V0OiBUKTogUHJvbWlzZTxUb2tlblN1YnNldE1hcHBpbmdbVF1bXT4ge1xuICAgIGNvbnN0IHsgcWIgfSA9IHRoaXMuZ2V0U3Vic2V0UXVlcmllcyhzdWJzZXQpO1xuICAgIHFiLndoZXJlKFwidG9rZW5zLmFjdGl2ZVwiLCB0cnVlKTtcbiAgICBjb25zdCBlbmhhbmNlcnMgPSB0aGlzLmNyZWF0ZUVuaGFuY2Vycyh7IEE6IChyb3cpID0+ICh7IC4uLnJvdyB9KSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVTdWJzZXRRdWVyeSh7XG4gICAgICBzdWJzZXQsXG4gICAgICBxYixcbiAgICAgIHBhcmFtczogeyBudW06IDEwMCwgcGFnZTogMSB9LFxuICAgICAgZW5oYW5jZXJzLFxuICAgICAgZGVidWc6IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQucm93cztcbiAgfVxuXG4gIEBhcGkoeyBodHRwTWV0aG9kOiBcIlBPU1RcIiwgY2xpZW50czogW1wiYXhpb3NcIiwgXCJ0YW5zdGFjay1tdXRhdGlvblwiXSB9KVxuICBhc3luYyBzYXZlKHNwYTogVG9rZW5TYXZlUGFyYW1zW10pOiBQcm9taXNlPG51bWJlcltdPiB7XG4gICAgY29uc3Qgd2RiID0gdGhpcy5nZXRQdXJpKFwid1wiKTtcbiAgICBzcGEuZm9yRWFjaCgoc3ApID0+IHtcbiAgICAgIHdkYi51YlJlZ2lzdGVyKFwidG9rZW5zXCIsIHNwKTtcbiAgICB9KTtcbiAgICByZXR1cm4gd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIHJldHVybiB0cngudWJVcHNlcnQoXCJ0b2tlbnNcIik7XG4gICAgfSk7XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJQT1NUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwidGFuc3RhY2stbXV0YXRpb25cIl0gfSlcbiAgYXN5bmMgcmVvcmRlcihpZHM6IG51bWJlcltdKTogUHJvbWlzZTx7IGRvbmU6IGJvb2xlYW4gfT4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG4gICAgYXdhaXQgd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGF3YWl0IHRyeC50YWJsZShcInRva2Vuc1wiKS53aGVyZShcImlkXCIsIGlkc1tpXSEpLnVwZGF0ZSh7IG9yZDogaSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4geyBkb25lOiB0cnVlIH07XG4gIH1cblxuICBAYXBpKHsgaHR0cE1ldGhvZDogXCJQT1NUXCIsIGNsaWVudHM6IFtcImF4aW9zXCIsIFwidGFuc3RhY2stbXV0YXRpb25cIl0gfSlcbiAgYXN5bmMgZGVsKGlkczogbnVtYmVyW10pOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHdkYiA9IHRoaXMuZ2V0UHVyaShcIndcIik7XG4gICAgYXdhaXQgd2RiLnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgIHJldHVybiB0cngudGFibGUoXCJ0b2tlbnNcIikud2hlcmVJbihcInRva2Vucy5pZFwiLCBpZHMpLmRlbGV0ZSgpO1xuICAgIH0pO1xuICAgIHJldHVybiBpZHMubGVuZ3RoO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBUb2tlbk1vZGVsID0gbmV3IFRva2VuTW9kZWxDbGFzcygpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBZUEsSUFBTSxrQkFBTixjQUE4QixlQUs1QjtDQUNBLGNBQWM7QUFDWixRQUFNLFNBQVMsb0JBQW9CLG1CQUFtQjs7Q0FHeEQsTUFDTSxTQUFtQyxRQUFXLElBQTRDO0VBQzlGLE1BQU0sRUFBRSxTQUFTLE1BQU0sS0FBSyxTQUFTLFFBQVE7R0FBRTtHQUFJLEtBQUs7R0FBRyxNQUFNO0dBQUcsQ0FBQztBQUNyRSxNQUFJLENBQUMsS0FBSyxHQUNSLE9BQU0sSUFBSSxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxTQUFTLEdBQUcsQ0FBQztBQUV0RSxTQUFPLEtBQUs7O0NBR2QsTUFBTSxRQUNKLFFBQ0EsWUFDdUM7RUFDdkMsTUFBTSxFQUFFLFNBQVMsTUFBTSxLQUFLLFNBQVMsUUFBUTtHQUFFLEdBQUc7R0FBWSxLQUFLO0dBQUcsTUFBTTtHQUFHLENBQUM7QUFDaEYsU0FBTyxLQUFLLE1BQU07O0NBR3BCLE1BQ00sU0FDSixRQUNBLFdBQ2dEO0VBQ2hELE1BQU0sU0FBUztHQUNiLEtBQUs7R0FDTCxNQUFNO0dBQ04sUUFBUTtHQUNSLFNBQVM7R0FDVCxHQUFHO0dBQ0o7RUFFRCxNQUFNLEVBQUUsSUFBSSxVQUFVLE1BQU0sS0FBSyxpQkFBaUIsT0FBTztBQUV6RCxNQUFJLE9BQU8sR0FDVCxJQUFHLFFBQVEsYUFBYSxR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
|
|
@@ -18,7 +18,9 @@ var sonamu_config_default = defineConfig({
|
|
|
18
18
|
host: process.env.QGRID_DB_HOST ?? "localhost",
|
|
19
19
|
port: Number(process.env.QGRID_DB_PORT ?? 44901),
|
|
20
20
|
user: process.env.QGRID_DB_USER ?? "postgres",
|
|
21
|
-
password: process.env.QGRID_DB_PASSWORD ?? "postgres"
|
|
21
|
+
password: process.env.QGRID_DB_PASSWORD ?? "postgres",
|
|
22
|
+
keepAlive: true,
|
|
23
|
+
keepAliveInitialDelayMillis: 1e4
|
|
22
24
|
} },
|
|
23
25
|
environments: {
|
|
24
26
|
fixture: { connection: {
|
|
@@ -196,4 +198,4 @@ var sonamu_config_default = defineConfig({
|
|
|
196
198
|
//#endregion
|
|
197
199
|
export { sonamu_config_default as default };
|
|
198
200
|
|
|
199
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmNvbmZpZy5qcyIsIm5hbWVzIjpbImRyaXZlcnMiLCJjYWNoZURyaXZlcnMiXSwic291cmNlcyI6WyIuLi9zcmMvc29uYW11LmNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBnZXRDb25zb2xlU2luayB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyBnZXRQcmV0dHlGb3JtYXR0ZXIgfSBmcm9tIFwiQGxvZ3RhcGUvcHJldHR5XCI7XG5pbXBvcnQgZG90ZW52IGZyb20gXCJkb3RlbnZcIjtcbmltcG9ydCB7IENhY2hlUHJlc2V0cywgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInNvbmFtdVwiO1xuaW1wb3J0IHsgZHJpdmVycyBhcyBjYWNoZURyaXZlcnMsIHN0b3JlIH0gZnJvbSBcInNvbmFtdS9jYWNoZVwiO1xuaW1wb3J0IHsgZHJpdmVycyB9IGZyb20gXCJzb25hbXUvc3RvcmFnZVwiO1xuXG5kb3RlbnYuY29uZmlnKHsgcGF0aDogcGF0aC5qb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi4vLmVudlwiKSB9KTtcblxuY29uc3QgaG9zdCA9IHByb2Nlc3MuZW52LkhPU1QgPz8gXCJsb2NhbGhvc3RcIjtcbmNvbnN0IHBvcnQgPSBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCA/PyA0NDkwMCk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XG4gIHByb2plY3ROYW1lOiBwcm9jZXNzLmVudi5QUk9KRUNUX05BTUUgPz8gXCJTb25hbXVQcm9qZWN0XCIsXG4gIGRhdGFiYXNlOiB7XG4gICAgbmFtZTogcHJvY2Vzcy5lbnYuUUdSSURfREJfTkFNRSA/PyBcInFncmlkXCIsXG4gICAgZGVmYXVsdE9wdGlvbnM6IHtcbiAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgaG9zdDogcHJvY2Vzcy5lbnYuUUdSSURfREJfSE9TVCA/PyBcImxvY2FsaG9zdFwiLFxuICAgICAgICBwb3J0OiBOdW1iZXIocHJvY2Vzcy5lbnYuUUdSSURfREJfUE9SVCA/PyA0NDkwMSksXG4gICAgICAgIHVzZXI6IHByb2Nlc3MuZW52LlFHUklEX0RCX1VTRVIgPz8gXCJwb3N0Z3Jlc1wiLFxuICAgICAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuUUdSSURfREJfUEFTU1dPUkQgPz8gXCJwb3N0Z3Jlc1wiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGVudmlyb25tZW50czoge1xuICAgICAgZml4dHVyZToge1xuICAgICAgICBjb25uZWN0aW9uOiB7XG4gICAgICAgICAgaG9zdDogcHJvY2Vzcy5lbnYuREVWMF9EQl9IT1NULFxuICAgICAgICAgIHBvcnQ6IE51bWJlcihwcm9jZXNzLmVudi5ERVYwX0RCX1BPUlQpLFxuICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5RR1JJRF9EQl9OQU1FICsgXCJfZml4dHVyZVwiLFxuICAgICAgICAgIHVzZXI6IHByb2Nlc3MuZW52LkRFVjBfREJfVVNFUixcbiAgICAgICAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuREVWMF9EQl9QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0ZXN0OiB7XG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICBob3N0OiBcIjAuMC4wLjBcIixcbiAgICAgICAgICBwb3J0OiA1NDMyMSxcbiAgICAgICAgICBkYXRhYmFzZTogXCJxZ3JpZF90ZXN0XCIsXG4gICAgICAgICAgdXNlcjogXCJwb3N0Z3Jlc1wiLFxuICAgICAgICAgIHBhc3N3b3JkOiBcInBvc3RncmVzXCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGFwaToge1xuICAgIGRpcjogXCJhcGlcIixcbiAgICB0aW1lem9uZTogXCJBc2lhL1Nlb3VsXCIsXG4gICAgcm91dGU6IHtcbiAgICAgIHByZWZpeDogXCIvYXBpXCIsXG4gICAgfSxcbiAgfSxcbiAgaTE4bjoge1xuICAgIGRlZmF1bHRMb2NhbGU6IFwia29cIixcbiAgICBzdXBwb3J0ZWRMb2NhbGVzOiBbXCJrb1wiLCBcImVuXCJdLFxuICB9LFxuICBzeW5jOiB7XG4gICAgdGFyZ2V0czogW1wid2ViXCJdLFxuICB9LFxuICBzbGFja0NvbmZpcm06XG4gICAgcHJvY2Vzcy5lbnYuU0xBQ0tfQk9UX1RPS0VOICYmIHByb2Nlc3MuZW52LlNMQUNLX0NIQU5ORUxfSURcbiAgICAgID8ge1xuICAgICAgICAgIHRhcmdldHM6IFtcImRldmVsb3BtZW50X21hc3RlclwiLCBcInByb2R1Y3Rpb25fbWFzdGVyXCJdLFxuICAgICAgICAgIGJvdFRva2VuOiBwcm9jZXNzLmVudi5TTEFDS19CT1RfVE9LRU4gPz8gXCJcIixcbiAgICAgICAgICBjaGFubmVsSWQ6IHByb2Nlc3MuZW52LlNMQUNLX0NIQU5ORUxfSUQgPz8gXCJcIixcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQsXG4gIHRlc3Q6IHtcbiAgICBwYXJhbGxlbDogdHJ1ZSxcbiAgICBtYXhXb3JrZXJzOiA0LFxuICAgIGRldlJ1bm5lcjogeyBlbmFibGVkOiB0cnVlIH0sXG4gIH0sXG4gIGxvZ2dpbmc6IHtcbiAgICBzaW5rczoge1xuICAgICAgY29uc29sZTogZ2V0Q29uc29sZVNpbmsoe1xuICAgICAgICBmb3JtYXR0ZXI6IGdldFByZXR0eUZvcm1hdHRlcih7XG4gICAgICAgICAgdGltZXN0YW1wOiBcInRpbWVcIixcbiAgICAgICAgICBjYXRlZ29yeVdpZHRoOiAyMCxcbiAgICAgICAgICBjYXRlZ29yeVRydW5jYXRlOiBcIm1pZGRsZVwiLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIH0sXG4gICAgbG9nZ2VyczogW1xuICAgICAge1xuICAgICAgICBjYXRlZ29yeTogW1wic29uYW11XCJdLFxuICAgICAgICBzaW5rczogW1wiY29uc29sZVwiXSxcbiAgICAgICAgbG93ZXN0TGV2ZWw6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInRlc3RcIiA/IFwid2FybmluZ1wiIDogXCJkZWJ1Z1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzZXJ2ZXI6IHtcbiAgICBsaXN0ZW46IHsgcG9ydCwgaG9zdCB9LFxuICAgIHBsdWdpbnM6IHtcbiAgICAgIGZvcm1ib2R5OiB0cnVlLFxuICAgICAgcXM6IHRydWUsXG4gICAgICBtdWx0aXBhcnQ6IHsgbGltaXRzOiB7IGZpbGVTaXplOiAxMDI0ICogMTAyNCAqIDMwIH0gfSxcbiAgICAgIHN0YXRpYzoge1xuICAgICAgICByb290OiBwYXRoLmpvaW4oaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIvLi4vXCIsIFwicHVibGljXCIpLFxuICAgICAgICBwcmVmaXg6IFwiL2FwaS9wdWJsaWNcIixcbiAgICAgIH0sXG4gICAgICBjdXN0b206IChzZXJ2ZXIpID0+IHtcbiAgICAgICAgLy8gT0F1dGgg7L2c67CxIOKAlCBBbnRocm9waWPsnbQgL2NhbGxiYWNr7Jy866GcIOumrOuLpOydtOugie2KuFxuICAgICAgICBzZXJ2ZXIuZ2V0KFwiL2NhbGxiYWNrXCIsIGFzeW5jIChyZXF1ZXN0LCByZXBseSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgY29kZSwgc3RhdGUgfSA9IHJlcXVlc3QucXVlcnkgYXMgeyBjb2RlPzogc3RyaW5nOyBzdGF0ZT86IHN0cmluZyB9O1xuICAgICAgICAgIGlmICghY29kZSB8fCAhc3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiByZXBseS5yZWRpcmVjdChcIi8/b2F1dGg9ZXJyb3ImcmVhc29uPW1pc3NpbmdfcGFyYW1zXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBGcmFtZeydmCBvYXV0aENhbGxiYWNr7Jy866GcIOychOyehFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IFFncmlkRnJhbWUgfSA9IGF3YWl0IGltcG9ydChcIi4vYXBwbGljYXRpb24vcWdyaWQvcWdyaWQuZnJhbWVcIik7XG4gICAgICAgICAgICBhd2FpdCBRZ3JpZEZyYW1lLmhhbmRsZU9BdXRoQ2FsbGJhY2soY29kZSwgc3RhdGUsIHJlcGx5KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVwbHkucmVkaXJlY3QoXG4gICAgICAgICAgICAgIGAvP29hdXRoPWVycm9yJnJlYXNvbj0ke2VuY29kZVVSSUNvbXBvbmVudCgoZSBhcyBFcnJvcikubWVzc2FnZSl9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhcGlDb25maWc6IHtcbiAgICAgIGNvbnRleHRQcm92aWRlcjogKGRlZmF1bHRDb250ZXh0LCByZXF1ZXN0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZGVmYXVsdENvbnRleHQsXG4gICAgICAgICAgaXA6IHJlcXVlc3QuaXAsXG4gICAgICAgICAgYm9keTogcmVxdWVzdC5ib2R5LFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGd1YXJkSGFuZGxlcjogKF9ndWFyZCwgX3JlcXVlc3QsIF9hcGkpID0+IHtcbiAgICAgICAgaWYgKF9ndWFyZCA9PT0gXCJ1c2VyXCIpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInVzZXIgZ3VhcmRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJOT1RISU5HIFlFVFwiKTtcbiAgICAgIH0sXG4gICAgICBjYWNoZUNvbnRyb2xIYW5kbGVyOiAocmVxKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVxLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFwiYXNzZXRzXCI6XG4gICAgICAgICAgICAvLyBIYXNoIO2PrO2VqOuQnCDtjIzsnbw6IOyYgeq1rCDsupDsi5xcbiAgICAgICAgICAgIGlmIChyZXEucGF0aC5tYXRjaCgvLVthLWYwLTldK1xcLi8pKSB7XG4gICAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMuaW1tdXRhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5sb25nTGl2ZWQ7XG5cbiAgICAgICAgICBjYXNlIFwiYXBpXCI6XG4gICAgICAgICAgICAvLyBHRVQg7JqU7LKt66eMIOy6kOyLsSDqs6DroKRcbiAgICAgICAgICAgIGlmIChyZXEubWV0aG9kID09PSBcIkdFVFwiKSB7XG4gICAgICAgICAgICAgIC8vIO2KueyglSDqsr3roZzripQg7Ken7J2AIOy6kOyLnFxuICAgICAgICAgICAgICBpZiAocmVxLnBhdGguc3RhcnRzV2l0aChcIi9hcGkvc3RhdGljLWRhdGFcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLnNob3J0TGl2ZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHJlcS5wYXRoLnN0YXJ0c1dpdGgoXCIvYXBpL3Rlcm1zXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5tZWRpdW1MaXZlZDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8g6riw67O4OiDsupDsi5wg7JeG7J2MXG4gICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLm5vQ2FjaGU7XG5cbiAgICAgICAgICBjYXNlIFwic3NyXCI6XG4gICAgICAgICAgICAvLyBTU1Ig7Y6Y7J207KeAOiAxMOy0iCDsupDsi5xcbiAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMuc3NyO1xuXG4gICAgICAgICAgY2FzZSBcImNzclwiOlxuICAgICAgICAgICAgLy8gQ1NSIGZhbGxiYWNrIChpbmRleC5odG1sKTogMeu2hCDsupDsi5xcbiAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMuc2hvcnRMaXZlZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHN0b3JhZ2U6IHtcbiAgICAgIGRyaXZlcnM6IHtcbiAgICAgICAgZnM6IGRyaXZlcnMuZnMoe1xuICAgICAgICAgIGxvY2F0aW9uOiBwYXRoLmpvaW4oaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIvLi4vcHVibGljL3VwbG9hZGVkXCIpLFxuICAgICAgICAgIHZpc2liaWxpdHk6IFwicHVibGljXCIsXG4gICAgICAgICAgdXJsQnVpbGRlcjoge1xuICAgICAgICAgICAgYXN5bmMgZ2VuZXJhdGVVUkwoa2V5KSB7XG4gICAgICAgICAgICAgIHJldHVybiBgL2FwaS9wdWJsaWMvdXBsb2FkZWQvJHtrZXl9YDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyBnZW5lcmF0ZVNpZ25lZFVSTChrZXkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGAvYXBpL3B1YmxpYy91cGxvYWRlZC8ke2tleX1gO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgczM6IGRyaXZlcnMuczMoe1xuICAgICAgICAgIGNyZWRlbnRpYWxzOiB7XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogcHJvY2Vzcy5lbnYuQVdTX0FDQ0VTU19LRVlfSUQgPz8gXCJcIixcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogcHJvY2Vzcy5lbnYuQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZID8/IFwiXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWdpb246IHByb2Nlc3MuZW52LlMzX1JFR0lPTiA/PyBcImFwLW5vcnRoZWFzdC0yXCIsXG4gICAgICAgICAgYnVja2V0OiBwcm9jZXNzLmVudi5TM19CVUNLRVQgPz8gXCJzb25hbXVfZGVmYXVsdF9idWNrZXRcIixcbiAgICAgICAgICB2aXNpYmlsaXR5OiBcInByaXZhdGVcIixcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2FjaGU6IHtcbiAgICAgIGRlZmF1bHQ6IFwibWFpblwiLFxuICAgICAgc3RvcmVzOiB7XG4gICAgICAgIG1haW46IHN0b3JlKCkudXNlTDFMYXllcihjYWNoZURyaXZlcnMubWVtb3J5KHsgbWF4U2l6ZTogXCI1MG1iXCIgfSkpLFxuICAgICAgfSxcbiAgICAgIHR0bDogXCI1bVwiLFxuICAgICAgcHJlZml4OiBcIlwiLFxuICAgIH0sXG4gICAgbGlmZWN5Y2xlOiB7XG4gICAgICBvblN0YXJ0OiBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIERCIOuniOydtOq3uOugiOydtOyFmCDsnpDrj5kg7Iuk7ZaJICjthYzsnbTruJQg7JeG7Jy866m0IOyDneyEsSlcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7IFRva2VuTW9kZWwgfSA9IGF3YWl0IGltcG9ydChcIi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4ubW9kZWxcIik7XG4gICAgICAgICAgY29uc3Qga25leCA9IFRva2VuTW9kZWwuZ2V0REIoXCJ3XCIpO1xuICAgICAgICAgIGNvbnN0IG1pZ3JhdGlvbnNEaXIgPSBwYXRoLmpvaW4oaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCIuLi9zcmMvbWlncmF0aW9uc1wiKTtcbiAgICAgICAgICBjb25zdCBbYmF0Y2gsIGxvZ10gPSBhd2FpdCBrbmV4Lm1pZ3JhdGUubGF0ZXN0KHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogbWlncmF0aW9uc0RpcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAobG9nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGDinJMgTWlncmF0aW9uOiAke2xvZy5sZW5ndGh9IGFwcGxpZWQgKGJhdGNoICR7YmF0Y2h9KWApO1xuICAgICAgICAgICAgbG9nLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4gY29uc29sZS5sb2coYCAg4pyTICR7bmFtZX1gKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGDimqAgTWlncmF0aW9uIHNraXBwZWQ6ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQb29sIOy0iOq4sO2ZlFxuICAgICAgICBjb25zdCB7IGluaXRQb29sIH0gPSBhd2FpdCBpbXBvcnQoXCIuL2FwcGxpY2F0aW9uL3FncmlkL3Bvb2xcIik7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgeyBUb2tlbk1vZGVsIH0gPSBhd2FpdCBpbXBvcnQoXCIuL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLm1vZGVsXCIpO1xuICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRBY3RpdmUoXCJBXCIpO1xuICAgICAgICAgIGNvbnN0IHRva2VucyA9IGVudHJpZXMubWFwKChlKSA9PiAoeyB0b2tlbjogZS50b2tlbiwgbmFtZTogZS5uYW1lIH0pKTtcbiAgICAgICAgICBjb25zdCBwb29sID0gaW5pdFBvb2wodG9rZW5zKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGDwn4yyIFNlcnZlciBsaXN0ZW5pbmcgb24gaHR0cDovLyR7aG9zdH06JHtwb3J0fSAoJHtwb29sLndvcmtlcnMuc2l6ZX0gdG9rZW5zIGxvYWRlZClgLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYOKaoCBQb29sIGluaXQgZmFpbGVkOiAkeyhlIGFzIEVycm9yKS5tZXNzYWdlfWApO1xuICAgICAgICAgIGluaXRQb29sKFtdKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhg8J+MsiBTZXJ2ZXIgbGlzdGVuaW5nIG9uIGh0dHA6Ly8ke2hvc3R9OiR7cG9ydH0gKG5vIHRva2VucylgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9uU2h1dGRvd246ICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJncmFjZWZ1bCBzaHV0ZG93blwiKTtcbiAgICAgIH0sXG4gICAgICBvbkVycm9yOiAoZXJyb3IsIF9yZXF1ZXN0LCByZXBseSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmVwbHkuc3RhdHVzKDUwMCkuc2VuZCh7XG4gICAgICAgICAgbmFtZTogZXJyb3IubmFtZSxcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxPQUFPLE9BQU8sRUFBRSxNQUFNLEtBQUssS0FBSyxPQUFPLEtBQUssU0FBUyxVQUFVLEVBQUUsQ0FBQztBQUVsRSxNQUFNLE9BQU8sUUFBUSxJQUFJLFFBQVE7QUFDakMsTUFBTSxPQUFPLE9BQU8sUUFBUSxJQUFJLFFBQVEsTUFBTTtBQUU5QyxJQUFBLHdCQUFlLGFBQWE7Q0FDMUIsYUFBYSxRQUFRLElBQUksZ0JBQWdCO0NBQ3pDLFVBQVU7RUFDUixNQUFNLFFBQVEsSUFBSSxpQkFBaUI7RUFDbkMsZ0JBQWdCLEVBQ2QsWUFBWTtHQUNWLE1BQU0sUUFBUSxJQUFJLGlCQUFpQjtHQUNuQyxNQUFNLE9BQU8sUUFBUSxJQUFJLGlCQUFpQixNQUFNO0dBQ2hELE1BQU0sUUFBUSxJQUFJLGlCQUFpQjtHQUNuQyxVQUFVLFFBQVEsSUFBSSxxQkFBcUI7R0FDNUMsRUFDRjtFQUNELGNBQWM7R0FDWixTQUFTLEVBQ1AsWUFBWTtJQUNWLE1BQU0sUUFBUSxJQUFJO0lBQ2xCLE1BQU0sT0FBTyxRQUFRLElBQUksYUFBYTtJQUN0QyxVQUFVLFFBQVEsSUFBSSxnQkFBZ0I7SUFDdEMsTUFBTSxRQUFRLElBQUk7SUFDbEIsVUFBVSxRQUFRLElBQUk7SUFDdkIsRUFDRjtHQUNELE1BQU0sRUFDSixZQUFZO0lBQ1YsTUFBTTtJQUNOLE1BQU07SUFDTixVQUFVO0lBQ1YsTUFBTTtJQUNOLFVBQVU7SUFDWCxFQUNGO0dBQ0Y7RUFDRjtDQUNELEtBQUs7RUFDSCxLQUFLO0VBQ0wsVUFBVTtFQUNWLE9BQU8sRUFDTCxRQUFRLFFBQ1Q7RUFDRjtDQUNELE1BQU07RUFDSixlQUFlO0VBQ2Ysa0JBQWtCLENBQUMsTUFBTSxLQUFLO0VBQy9CO0NBQ0QsTUFBTSxFQUNKLFNB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
|
|
201
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmNvbmZpZy5qcyIsIm5hbWVzIjpbImRyaXZlcnMiLCJjYWNoZURyaXZlcnMiXSwic291cmNlcyI6WyIuLi9zcmMvc29uYW11LmNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBnZXRDb25zb2xlU2luayB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyBnZXRQcmV0dHlGb3JtYXR0ZXIgfSBmcm9tIFwiQGxvZ3RhcGUvcHJldHR5XCI7XG5pbXBvcnQgZG90ZW52IGZyb20gXCJkb3RlbnZcIjtcbmltcG9ydCB7IENhY2hlUHJlc2V0cywgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInNvbmFtdVwiO1xuaW1wb3J0IHsgZHJpdmVycyBhcyBjYWNoZURyaXZlcnMsIHN0b3JlIH0gZnJvbSBcInNvbmFtdS9jYWNoZVwiO1xuaW1wb3J0IHsgZHJpdmVycyB9IGZyb20gXCJzb25hbXUvc3RvcmFnZVwiO1xuXG5kb3RlbnYuY29uZmlnKHsgcGF0aDogcGF0aC5qb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi4vLmVudlwiKSB9KTtcblxuY29uc3QgaG9zdCA9IHByb2Nlc3MuZW52LkhPU1QgPz8gXCJsb2NhbGhvc3RcIjtcbmNvbnN0IHBvcnQgPSBOdW1iZXIocHJvY2Vzcy5lbnYuUE9SVCA/PyA0NDkwMCk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XG4gIHByb2plY3ROYW1lOiBwcm9jZXNzLmVudi5QUk9KRUNUX05BTUUgPz8gXCJTb25hbXVQcm9qZWN0XCIsXG4gIGRhdGFiYXNlOiB7XG4gICAgbmFtZTogcHJvY2Vzcy5lbnYuUUdSSURfREJfTkFNRSA/PyBcInFncmlkXCIsXG4gICAgZGVmYXVsdE9wdGlvbnM6IHtcbiAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgaG9zdDogcHJvY2Vzcy5lbnYuUUdSSURfREJfSE9TVCA/PyBcImxvY2FsaG9zdFwiLFxuICAgICAgICBwb3J0OiBOdW1iZXIocHJvY2Vzcy5lbnYuUUdSSURfREJfUE9SVCA/PyA0NDkwMSksXG4gICAgICAgIHVzZXI6IHByb2Nlc3MuZW52LlFHUklEX0RCX1VTRVIgPz8gXCJwb3N0Z3Jlc1wiLFxuICAgICAgICBwYXNzd29yZDogcHJvY2Vzcy5lbnYuUUdSSURfREJfUEFTU1dPUkQgPz8gXCJwb3N0Z3Jlc1wiLFxuICAgICAgICBrZWVwQWxpdmU6IHRydWUsXG4gICAgICAgIGtlZXBBbGl2ZUluaXRpYWxEZWxheU1pbGxpczogMTAwMDAsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZW52aXJvbm1lbnRzOiB7XG4gICAgICBmaXh0dXJlOiB7XG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICBob3N0OiBwcm9jZXNzLmVudi5ERVYwX0RCX0hPU1QsXG4gICAgICAgICAgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LkRFVjBfREJfUE9SVCksXG4gICAgICAgICAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LlFHUklEX0RCX05BTUUgKyBcIl9maXh0dXJlXCIsXG4gICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuREVWMF9EQl9VU0VSLFxuICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5ERVYwX0RCX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRlc3Q6IHtcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgIGhvc3Q6IFwiMC4wLjAuMFwiLFxuICAgICAgICAgIHBvcnQ6IDU0MzIxLFxuICAgICAgICAgIGRhdGFiYXNlOiBcInFncmlkX3Rlc3RcIixcbiAgICAgICAgICB1c2VyOiBcInBvc3RncmVzXCIsXG4gICAgICAgICAgcGFzc3dvcmQ6IFwicG9zdGdyZXNcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgYXBpOiB7XG4gICAgZGlyOiBcImFwaVwiLFxuICAgIHRpbWV6b25lOiBcIkFzaWEvU2VvdWxcIixcbiAgICByb3V0ZToge1xuICAgICAgcHJlZml4OiBcIi9hcGlcIixcbiAgICB9LFxuICB9LFxuICBpMThuOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCJrb1wiLFxuICAgIHN1cHBvcnRlZExvY2FsZXM6IFtcImtvXCIsIFwiZW5cIl0sXG4gIH0sXG4gIHN5bmM6IHtcbiAgICB0YXJnZXRzOiBbXCJ3ZWJcIl0sXG4gIH0sXG4gIHNsYWNrQ29uZmlybTpcbiAgICBwcm9jZXNzLmVudi5TTEFDS19CT1RfVE9LRU4gJiYgcHJvY2Vzcy5lbnYuU0xBQ0tfQ0hBTk5FTF9JRFxuICAgICAgPyB7XG4gICAgICAgICAgdGFyZ2V0czogW1wiZGV2ZWxvcG1lbnRfbWFzdGVyXCIsIFwicHJvZHVjdGlvbl9tYXN0ZXJcIl0sXG4gICAgICAgICAgYm90VG9rZW46IHByb2Nlc3MuZW52LlNMQUNLX0JPVF9UT0tFTiA/PyBcIlwiLFxuICAgICAgICAgIGNoYW5uZWxJZDogcHJvY2Vzcy5lbnYuU0xBQ0tfQ0hBTk5FTF9JRCA/PyBcIlwiLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZCxcbiAgdGVzdDoge1xuICAgIHBhcmFsbGVsOiB0cnVlLFxuICAgIG1heFdvcmtlcnM6IDQsXG4gICAgZGV2UnVubmVyOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgfSxcbiAgbG9nZ2luZzoge1xuICAgIHNpbmtzOiB7XG4gICAgICBjb25zb2xlOiBnZXRDb25zb2xlU2luayh7XG4gICAgICAgIGZvcm1hdHRlcjogZ2V0UHJldHR5Rm9ybWF0dGVyKHtcbiAgICAgICAgICB0aW1lc3RhbXA6IFwidGltZVwiLFxuICAgICAgICAgIGNhdGVnb3J5V2lkdGg6IDIwLFxuICAgICAgICAgIGNhdGVnb3J5VHJ1bmNhdGU6IFwibWlkZGxlXCIsXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgfSxcbiAgICBsb2dnZXJzOiBbXG4gICAgICB7XG4gICAgICAgIGNhdGVnb3J5OiBbXCJzb25hbXVcIl0sXG4gICAgICAgIHNpbmtzOiBbXCJjb25zb2xlXCJdLFxuICAgICAgICBsb3dlc3RMZXZlbDogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwidGVzdFwiID8gXCJ3YXJuaW5nXCIgOiBcImRlYnVnXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNlcnZlcjoge1xuICAgIGxpc3RlbjogeyBwb3J0LCBob3N0IH0sXG4gICAgcGx1Z2luczoge1xuICAgICAgZm9ybWJvZHk6IHRydWUsXG4gICAgICBxczogdHJ1ZSxcbiAgICAgIG11bHRpcGFydDogeyBsaW1pdHM6IHsgZmlsZVNpemU6IDEwMjQgKiAxMDI0ICogMzAgfSB9LFxuICAgICAgc3RhdGljOiB7XG4gICAgICAgIHJvb3Q6IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi8uLi9cIiwgXCJwdWJsaWNcIiksXG4gICAgICAgIHByZWZpeDogXCIvYXBpL3B1YmxpY1wiLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbTogKHNlcnZlcikgPT4ge1xuICAgICAgICAvLyBPQXV0aCDsvZzrsLEg4oCUIEFudGhyb3BpY+ydtCAvY2FsbGJhY2vsnLzroZwg66as64uk7J2066CJ7Yq4XG4gICAgICAgIHNlcnZlci5nZXQoXCIvY2FsbGJhY2tcIiwgYXN5bmMgKHJlcXVlc3QsIHJlcGx5KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBjb2RlLCBzdGF0ZSB9ID0gcmVxdWVzdC5xdWVyeSBhcyB7IGNvZGU/OiBzdHJpbmc7IHN0YXRlPzogc3RyaW5nIH07XG4gICAgICAgICAgaWYgKCFjb2RlIHx8ICFzdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcGx5LnJlZGlyZWN0KFwiLz9vYXV0aD1lcnJvciZyZWFzb249bWlzc2luZ19wYXJhbXNcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEZyYW1l7J2YIG9hdXRoQ2FsbGJhY2vsnLzroZwg7JyE7J6EXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHsgUWdyaWRGcmFtZSB9ID0gYXdhaXQgaW1wb3J0KFwiLi9hcHBsaWNhdGlvbi9xZ3JpZC9xZ3JpZC5mcmFtZVwiKTtcbiAgICAgICAgICAgIGF3YWl0IFFncmlkRnJhbWUuaGFuZGxlT0F1dGhDYWxsYmFjayhjb2RlLCBzdGF0ZSwgcmVwbHkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiByZXBseS5yZWRpcmVjdChcbiAgICAgICAgICAgICAgYC8/b2F1dGg9ZXJyb3ImcmVhc29uPSR7ZW5jb2RlVVJJQ29tcG9uZW50KChlIGFzIEVycm9yKS5tZXNzYWdlKX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGFwaUNvbmZpZzoge1xuICAgICAgY29udGV4dFByb3ZpZGVyOiAoZGVmYXVsdENvbnRleHQsIHJlcXVlc3QpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5kZWZhdWx0Q29udGV4dCxcbiAgICAgICAgICBpcDogcmVxdWVzdC5pcCxcbiAgICAgICAgICBib2R5OiByZXF1ZXN0LmJvZHksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgZ3VhcmRIYW5kbGVyOiAoX2d1YXJkLCBfcmVxdWVzdCwgX2FwaSkgPT4ge1xuICAgICAgICBpZiAoX2d1YXJkID09PSBcInVzZXJcIikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwidXNlciBndWFyZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcIk5PVEhJTkcgWUVUXCIpO1xuICAgICAgfSxcbiAgICAgIGNhY2hlQ29udHJvbEhhbmRsZXI6IChyZXEpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZXEudHlwZSkge1xuICAgICAgICAgIGNhc2UgXCJhc3NldHNcIjpcbiAgICAgICAgICAgIC8vIEhhc2gg7Y+s7ZWo65CcIO2MjOydvDog7JiB6rWsIOy6kOyLnFxuICAgICAgICAgICAgaWYgKHJlcS5wYXRoLm1hdGNoKC8tW2EtZjAtOV0rXFwuLykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5pbW11dGFibGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLmxvbmdMaXZlZDtcblxuICAgICAgICAgIGNhc2UgXCJhcGlcIjpcbiAgICAgICAgICAgIC8vIEdFVCDsmpTssq3rp4wg7LqQ7IuxIOqzoOugpFxuICAgICAgICAgICAgaWYgKHJlcS5tZXRob2QgPT09IFwiR0VUXCIpIHtcbiAgICAgICAgICAgICAgLy8g7Yq57KCVIOqyveuhnOuKlCDsp6fsnYAg7LqQ7IucXG4gICAgICAgICAgICAgIGlmIChyZXEucGF0aC5zdGFydHNXaXRoKFwiL2FwaS9zdGF0aWMtZGF0YVwiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMuc2hvcnRMaXZlZDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAocmVxLnBhdGguc3RhcnRzV2l0aChcIi9hcGkvdGVybXNcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLm1lZGl1bUxpdmVkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyDquLDrs7g6IOy6kOyLnCDsl4bsnYxcbiAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMubm9DYWNoZTtcblxuICAgICAgICAgIGNhc2UgXCJzc3JcIjpcbiAgICAgICAgICAgIC8vIFNTUiDtjpjsnbTsp4A6IDEw7LSIIOy6kOyLnFxuICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5zc3I7XG5cbiAgICAgICAgICBjYXNlIFwiY3NyXCI6XG4gICAgICAgICAgICAvLyBDU1IgZmFsbGJhY2sgKGluZGV4Lmh0bWwpOiAx67aEIOy6kOyLnFxuICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5zaG9ydExpdmVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAgc3RvcmFnZToge1xuICAgICAgZHJpdmVyczoge1xuICAgICAgICBmczogZHJpdmVycy5mcyh7XG4gICAgICAgICAgbG9jYXRpb246IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi8uLi9wdWJsaWMvdXBsb2FkZWRcIiksXG4gICAgICAgICAgdmlzaWJpbGl0eTogXCJwdWJsaWNcIixcbiAgICAgICAgICB1cmxCdWlsZGVyOiB7XG4gICAgICAgICAgICBhc3luYyBnZW5lcmF0ZVVSTChrZXkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGAvYXBpL3B1YmxpYy91cGxvYWRlZC8ke2tleX1gO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGdlbmVyYXRlU2lnbmVkVVJMKGtleSkge1xuICAgICAgICAgICAgICByZXR1cm4gYC9hcGkvcHVibGljL3VwbG9hZGVkLyR7a2V5fWA7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBzMzogZHJpdmVycy5zMyh7XG4gICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRCA/PyBcIlwiLFxuICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiBwcm9jZXNzLmVudi5BV1NfU0VDUkVUX0FDQ0VTU19LRVkgPz8gXCJcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuUzNfUkVHSU9OID8/IFwiYXAtbm9ydGhlYXN0LTJcIixcbiAgICAgICAgICBidWNrZXQ6IHByb2Nlc3MuZW52LlMzX0JVQ0tFVCA/PyBcInNvbmFtdV9kZWZhdWx0X2J1Y2tldFwiLFxuICAgICAgICAgIHZpc2liaWxpdHk6IFwicHJpdmF0ZVwiLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjYWNoZToge1xuICAgICAgZGVmYXVsdDogXCJtYWluXCIsXG4gICAgICBzdG9yZXM6IHtcbiAgICAgICAgbWFpbjogc3RvcmUoKS51c2VMMUxheWVyKGNhY2hlRHJpdmVycy5tZW1vcnkoeyBtYXhTaXplOiBcIjUwbWJcIiB9KSksXG4gICAgICB9LFxuICAgICAgdHRsOiBcIjVtXCIsXG4gICAgICBwcmVmaXg6IFwiXCIsXG4gICAgfSxcbiAgICBsaWZlY3ljbGU6IHtcbiAgICAgIG9uU3RhcnQ6IGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8gREIg66eI7J206re466CI7J207IWYIOyekOuPmSDsi6TtlokgKO2FjOydtOu4lCDsl4bsnLzrqbQg7IOd7ISxKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHsgVG9rZW5Nb2RlbCB9ID0gYXdhaXQgaW1wb3J0KFwiLi9hcHBsaWNhdGlvbi90b2tlbi90b2tlbi5tb2RlbFwiKTtcbiAgICAgICAgICBjb25zdCBrbmV4ID0gVG9rZW5Nb2RlbC5nZXREQihcIndcIik7XG4gICAgICAgICAgY29uc3QgbWlncmF0aW9uc0RpciA9IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uL3NyYy9taWdyYXRpb25zXCIpO1xuICAgICAgICAgIGNvbnN0IFtiYXRjaCwgbG9nXSA9IGF3YWl0IGtuZXgubWlncmF0ZS5sYXRlc3Qoe1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBtaWdyYXRpb25zRGlyLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChsb2cubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYOKckyBNaWdyYXRpb246ICR7bG9nLmxlbmd0aH0gYXBwbGllZCAoYmF0Y2ggJHtiYXRjaH0pYCk7XG4gICAgICAgICAgICBsb2cuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiBjb25zb2xlLmxvZyhgICDinJMgJHtuYW1lfWApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYOKaoCBNaWdyYXRpb24gc2tpcHBlZDogJHsoZSBhcyBFcnJvcikubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBvb2wg7LSI6riw7ZmUXG4gICAgICAgIGNvbnN0IHsgaW5pdFBvb2wgfSA9IGF3YWl0IGltcG9ydChcIi4vYXBwbGljYXRpb24vcWdyaWQvcG9vbFwiKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7IFRva2VuTW9kZWwgfSA9IGF3YWl0IGltcG9ydChcIi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4ubW9kZWxcIik7XG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IGF3YWl0IFRva2VuTW9kZWwuZmluZEFjdGl2ZShcIkFcIik7XG4gICAgICAgICAgY29uc3QgdG9rZW5zID0gZW50cmllcy5tYXAoKGUpID0+ICh7IHRva2VuOiBlLnRva2VuLCBuYW1lOiBlLm5hbWUgfSkpO1xuICAgICAgICAgIGNvbnN0IHBvb2wgPSBpbml0UG9vbCh0b2tlbnMpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYPCfjLIgU2VydmVyIGxpc3RlbmluZyBvbiBodHRwOi8vJHtob3N0fToke3BvcnR9ICgke3Bvb2wud29ya2Vycy5zaXplfSB0b2tlbnMgbG9hZGVkKWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUud2Fybihg4pqgIFBvb2wgaW5pdCBmYWlsZWQ6ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgaW5pdFBvb2woW10pO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGDwn4yyIFNlcnZlciBsaXN0ZW5pbmcgb24gaHR0cDovLyR7aG9zdH06JHtwb3J0fSAobm8gdG9rZW5zKWApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb25TaHV0ZG93bjogKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcImdyYWNlZnVsIHNodXRkb3duXCIpO1xuICAgICAgfSxcbiAgICAgIG9uRXJyb3I6IChlcnJvciwgX3JlcXVlc3QsIHJlcGx5KSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICByZXBseS5zdGF0dXMoNTAwKS5zZW5kKHtcbiAgICAgICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVNBLE9BQU8sT0FBTyxFQUFFLE1BQU0sS0FBSyxLQUFLLE9BQU8sS0FBSyxTQUFTLFVBQVUsRUFBRSxDQUFDO0FBRWxFLE1BQU0sT0FBTyxRQUFRLElBQUksUUFBUTtBQUNqQyxNQUFNLE9BQU8sT0FBTyxRQUFRLElBQUksUUFBUSxNQUFNO0FBRTlDLElBQUEsd0JBQWUsYUFBYTtDQUMxQixhQUFhLFFBQVEsSUFBSSxnQkFBZ0I7Q0FDekMsVUFBVTtFQUNSLE1BQU0sUUFBUSxJQUFJLGlCQUFpQjtFQUNuQyxnQkFBZ0IsRUFDZCxZQUFZO0dBQ1YsTUFBTSxRQUFRLElBQUksaUJBQWlCO0dBQ25DLE1BQU0sT0FBTyxRQUFRLElBQUksaUJBQWlCLE1BQU07R0FDaEQsTUFBTSxRQUFRLElBQUksaUJBQWlCO0dBQ25DLFVBQVUsUUFBUSxJQUFJLHFCQUFxQjtHQUMzQyxXQUFXO0dBQ1gsNkJBQTZCO0dBQzlCLEVBQ0Y7RUFDRCxjQUFjO0dBQ1osU0FBUyxFQUNQLFlBQVk7SUFDVixNQUFNLFFBQVEsSUFBSTtJQUNsQixNQUFNLE9BQU8sUUFBUSxJQUFJLGFBQWE7SUFDdEMsVUFBVSxRQUFRLElBQUksZ0JBQWdCO0lBQ3RDLE1BQU0sUUFBUSxJQUFJO0lBQ2xCLFVBQVUsUUFBUSxJQUFJO0lBQ3ZCLEVBQ0Y7R0FDRCxNQUFNLEVBQ0osWUFBWTtJQUNWLE1BQU07SUFDTixNQUFNO0lBQ04sVUFBVTtJQUNWLE1BQU07SUFDTixVQUFVO0lBQ1gsRUFDRjtHQUNGO0VBQ0Y7Q0FDRCxLQUFLO0VBQ0gsS0FBSztFQUNMLFVBQVU7RUFDVixP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
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ClaudePool — 멀티 토큰 프로세스 풀.
|
|
3
3
|
*
|
|
4
|
-
* 2-layer
|
|
5
|
-
* - Map<token, Worker[]>로 토큰별 워커 관리
|
|
6
|
-
* -
|
|
7
|
-
* - 투명한 쿼터 failover (QuotaError 시 다른 토큰으로 자동 재시도)
|
|
8
|
-
* - 워커 관리만 담당 (DB 의존 없음)
|
|
4
|
+
* 2-layer 라우팅: 토큰 선택 (least-total-depth + round-robin) → 워커 선택
|
|
5
|
+
* - Map<token, Worker[]>로 토큰별 워커 관리
|
|
6
|
+
* - 토큰 간 quota 균등 소진
|
|
9
7
|
*/
|
|
10
|
-
import type
|
|
8
|
+
import { type CliResult, type PoolConfig, type QueryInput, type TokenStats } from "./qgrid.types";
|
|
11
9
|
import { QuotaError } from "./qgrid.types";
|
|
12
10
|
import { Worker, type WorkerConfig } from "./worker";
|
|
13
11
|
|
|
@@ -50,20 +48,35 @@ export class ClaudePool {
|
|
|
50
48
|
}));
|
|
51
49
|
}
|
|
52
50
|
|
|
53
|
-
private
|
|
51
|
+
private tokenRrIndex = 0;
|
|
52
|
+
private workerRrIndexes = new Map<string, number>();
|
|
54
53
|
|
|
55
54
|
selectWorker(): Worker | null {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
const availableTokens = [...this.workers.entries()].filter(
|
|
56
|
+
([token]) => !this.quotaExhausted.has(token),
|
|
57
|
+
);
|
|
59
58
|
|
|
60
|
-
if (
|
|
59
|
+
if (availableTokens.length === 0) return null;
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
// 1단계: 토큰별 총 큐 depth가 가장 낮은 토큰 선택
|
|
62
|
+
const tokenDepths = availableTokens.map(([token, workers]) => ({
|
|
63
|
+
token,
|
|
64
|
+
workers,
|
|
65
|
+
totalDepth: workers.reduce((sum, w) => sum + w.getQueueDepth(), 0),
|
|
66
|
+
}));
|
|
67
|
+
const minTokenDepth = Math.min(...tokenDepths.map((t) => t.totalDepth));
|
|
68
|
+
const idleTokens = tokenDepths.filter((t) => t.totalDepth === minTokenDepth);
|
|
69
|
+
const selected = idleTokens[this.tokenRrIndex % idleTokens.length]!;
|
|
70
|
+
this.tokenRrIndex++;
|
|
71
|
+
|
|
72
|
+
// 2단계: 토큰 내에서 least-depth 워커, 동률이면 round-robin
|
|
73
|
+
const minDepth = Math.min(...selected.workers.map((w) => w.getQueueDepth()));
|
|
74
|
+
const idleWorkers = selected.workers.filter((w) => w.getQueueDepth() === minDepth);
|
|
75
|
+
const wrIdx = this.workerRrIndexes.get(selected.token) ?? 0;
|
|
76
|
+
const picked = idleWorkers[wrIdx % idleWorkers.length]!;
|
|
77
|
+
this.workerRrIndexes.set(selected.token, wrIdx + 1);
|
|
78
|
+
|
|
79
|
+
return picked;
|
|
67
80
|
}
|
|
68
81
|
|
|
69
82
|
async query(input: QueryInput, timeoutMs?: number): Promise<CliResult> {
|
|
@@ -9,9 +9,9 @@ import {
|
|
|
9
9
|
} from "sonamu";
|
|
10
10
|
|
|
11
11
|
import { SD } from "../../i18n/sd.generated";
|
|
12
|
-
import type
|
|
12
|
+
import { type TokenSubsetKey, type TokenSubsetMapping } from "../sonamu.generated";
|
|
13
13
|
import { tokenLoaderQueries, tokenSubsetQueries } from "../sonamu.generated.sso";
|
|
14
|
-
import type
|
|
14
|
+
import { type TokenListParams, type TokenSaveParams } from "./token.types";
|
|
15
15
|
|
|
16
16
|
class TokenModelClass extends BaseModelClass<
|
|
17
17
|
TokenSubsetKey,
|
|
@@ -22,6 +22,8 @@ export default defineConfig({
|
|
|
22
22
|
port: Number(process.env.QGRID_DB_PORT ?? 44901),
|
|
23
23
|
user: process.env.QGRID_DB_USER ?? "postgres",
|
|
24
24
|
password: process.env.QGRID_DB_PASSWORD ?? "postgres",
|
|
25
|
+
keepAlive: true,
|
|
26
|
+
keepAliveInitialDelayMillis: 10000,
|
|
25
27
|
},
|
|
26
28
|
},
|
|
27
29
|
environments: {
|