@riddance/host 0.1.0 → 0.1.1
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/context.d.ts +0 -1
- package/context.js +3 -3
- package/eslint.config.js +5 -0
- package/host/context.d.ts +0 -1
- package/host/context.js +8 -6
- package/host/{emitter.d.ts → events.d.ts} +1 -2
- package/host/events.js +68 -0
- package/host/http.d.ts +0 -1
- package/host/http.js +3 -2
- package/host/logging.d.ts +0 -1
- package/host/logging.js +22 -16
- package/host/reflect.d.ts +0 -1
- package/host/registry.js +2 -3
- package/http.d.ts +0 -1
- package/package.json +3 -3
- package/host/emitter.js +0 -68
package/context.d.ts
CHANGED
package/context.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { performance } from 'perf_hooks';
|
|
1
|
+
import { performance } from 'node:perf_hooks';
|
|
2
2
|
import { highPrecisionISODate } from './host/logging.js';
|
|
3
3
|
/*@__INLINE__*/
|
|
4
4
|
export function objectSpreadable(json) {
|
|
@@ -44,9 +44,9 @@ export async function measure(logger, name, fn, fields) {
|
|
|
44
44
|
logger.trace(`Measurement of ${name} time`, undefined, {
|
|
45
45
|
start: highPrecisionISODate(start),
|
|
46
46
|
end: highPrecisionISODate(end),
|
|
47
|
-
duration: (Math.round(end *
|
|
47
|
+
duration: (Math.round(end * 10_000) - Math.round(start * 10_000)) / 10_000,
|
|
48
48
|
...fields,
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBK0J4RCxlQUFlO0FBQ2YsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQVc7SUFDeEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUFtRCxDQUFBO0FBQzlELENBQUM7QUFFRCxlQUFlO0FBQ2YsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFXO0lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUF1QixDQUFBO0FBQ2xDLENBQUM7QUFzREQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWdCO0lBQy9DLE1BQU0sT0FBTyxHQUE4QjtRQUN2QyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFdBQVcsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksR0FBRyxFQUFFO0tBQ3ZGLENBQUE7SUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtJQUNqRCxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0MsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUE7UUFDMUYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsNEJBQTRCLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUNwRSxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FDekIsTUFBcUUsRUFDckUsSUFBWSxFQUNaLEVBQXdCLEVBQ3hCLE1BQWU7SUFFZixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDL0IsSUFBSSxDQUFDO1FBQ0QsT0FBTyxNQUFNLEVBQUUsRUFBRSxDQUFBO0lBQ3JCLENBQUM7WUFBUyxDQUFDO1FBQ1AsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQzdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRTtZQUNuRCxLQUFLLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxDQUFDO1lBQ2xDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUM7WUFDOUIsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNO1lBQzFFLEdBQUcsTUFBTTtTQUNaLENBQUMsQ0FBQTtJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tICdub2RlOnBlcmZfaG9va3MnXG5pbXBvcnQgeyBoaWdoUHJlY2lzaW9uSVNPRGF0ZSB9IGZyb20gJy4vaG9zdC9sb2dnaW5nLmpzJ1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudCA9IHtcbiAgICByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTG9nZ2VyID0ge1xuICAgIGVucmljaChmaWVsZHM6IG9iamVjdCk6IExvZ2dlclxuICAgIHRyYWNlKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG4gICAgZGVidWcobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IHVua25vd24sIGZpZWxkcz86IG9iamVjdCk6IHZvaWRcbiAgICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG4gICAgd2FybihtZXNzYWdlOiBzdHJpbmcsIGVycm9yPzogdW5rbm93biwgZmllbGRzPzogb2JqZWN0KTogdm9pZFxuICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG4gICAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IHVua25vd24sIGZpZWxkcz86IG9iamVjdCk6IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgTXV0YWJsZUpzb24gPVxuICAgIHwgbnVsbFxuICAgIHwgYm9vbGVhblxuICAgIHwgbnVtYmVyXG4gICAgfCBzdHJpbmdcbiAgICB8IE11dGFibGVKc29uW11cbiAgICB8IHsgW2tleTogc3RyaW5nXTogTXV0YWJsZUpzb24gfVxuZXhwb3J0IHR5cGUgSnNvbiA9XG4gICAgfCBudWxsXG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IHN0cmluZ1xuICAgIHwgcmVhZG9ubHkgSnNvbltdXG4gICAgfCB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IEpzb24gfVxuXG4vKkBfX0lOTElORV9fKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RTcHJlYWRhYmxlKGpzb24/OiBKc29uKTogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBKc29uIH0ge1xuICAgIGlmICghanNvbikge1xuICAgICAgICByZXR1cm4ge31cbiAgICB9XG4gICAgcmV0dXJuIGpzb24gYXMgdW5rbm93biBhcyB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IEpzb24gfVxufVxuXG4vKkBfX0lOTElORV9fKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheVNwcmVhZGFibGUoanNvbj86IEpzb24pOiByZWFkb25seSBKc29uW10ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICByZXR1cm4gW11cbiAgICB9XG4gICAgcmV0dXJuIGpzb24gYXMgcmVhZG9ubHkgSnNvbltdXG59XG5cbmV4cG9ydCB0eXBlIEhhbmRsZXJDb25maWd1cmF0aW9uID0ge1xuICAgIC8qKlxuICAgICAqIEFuIGluZGljYXRpb24gb2YgQ1BVIHVzYWdlIG9mIHRoZSBoYW5kbGVyLlxuICAgICAqIEBkZWZhdWx0ICdsb3cnXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29tcHV0ZT86ICdoaWdoJyB8ICdsb3cnXG4gICAgLyoqXG4gICAgICogQW4gaW5kaWNhdGlvbiBvZiBtZW1vcnkgdXNhZ2Ugb2YgdGhlIGhhbmRsZXIuXG4gICAgICogQGRlZmF1bHQgJ2xvdydcbiAgICAgKi9cbiAgICByZWFkb25seSBtZW1vcnk/OiAnaGlnaCcgfCAnbG93J1xuICAgIC8qKlxuICAgICAqIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZW5yaWNoIHRoZSBsb2cgd2l0aCB0aGUgYm9keSBvZiBldmVudHMsIHJlcXVlc3RzIG9yIHJlc3BvbnNlcy4gU2V0IHRvIGZhbHNlIGlmIHRoZSBib2R5IGlzIGxhcmdlIG9yIGNvbnRhaW4gdmVyeSBzZW5zaXRpdmUgZGF0YS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGV4Y2x1ZGVCb2R5RnJvbUxvZ3M/OiBib29sZWFuXG4gICAgLyoqXG4gICAgICogVGhlIGxldmVsIGJlbG93IHdoaWNoIGxvZyBlbnRyaWVzIHdpbGwgYmUgZGlzY2FyZGVkLlxuICAgICAqIEBkZWZhdWx0ICd0cmFjZSdcbiAgICAgKi9cbiAgICByZWFkb25seSBtaW5pbXVtTG9nTGV2ZWw/OiAndHJhY2UnIHwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnZmF0YWwnXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRoZSBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBmaW5pc2ggZXhlY3V0aW5nIGluLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHRpbWVvdXQ/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dCA9IHtcbiAgICByZWFkb25seSBlbnY6IEVudmlyb25tZW50XG4gICAgcmVhZG9ubHkgbG9nOiBMb2dnZXJcbiAgICByZWFkb25seSBzaWduYWw6IEFib3J0U2lnbmFsXG4gICAgbm93KCk6IERhdGVcblxuICAgIHJlYWRvbmx5IG9wZXJhdGlvbklkPzogc3RyaW5nXG4gICAgcmVhZG9ubHkgY2xpZW50Pzoge1xuICAgICAgICByZWFkb25seSBpZD86IHN0cmluZ1xuICAgICAgICByZWFkb25seSBpcD86IHN0cmluZ1xuICAgICAgICByZWFkb25seSBwb3J0PzogbnVtYmVyXG4gICAgICAgIHJlYWRvbmx5IHVzZXJBZ2VudD86IHN0cmluZ1xuICAgIH1cbiAgICByZWFkb25seSBtZXRhPzoge1xuICAgICAgICByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nXG4gICAgICAgIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmdcbiAgICAgICAgcmVhZG9ubHkgcmV2aXNpb24/OiBzdHJpbmdcbiAgICB9XG5cbiAgICBlbWl0KHRvcGljOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgc3ViamVjdDogc3RyaW5nLCBkYXRhPzogSnNvbiwgbWVzc2FnZUlkPzogc3RyaW5nKTogdm9pZFxuICAgIGV2ZW50QmFycmllcigpOiBQcm9taXNlPHZvaWQ+XG5cbiAgICBvblN1Y2Nlc3MoZm46ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkKTogdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHR0cFJlcXVlc3RIZWFkZXJzKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgICAndXNlci1hZ2VudCc6IGAke2NvbnRleHQubWV0YT8ucGFja2FnZU5hbWUgPz8gJz8nfS8ke2NvbnRleHQubWV0YT8ucmV2aXNpb24gPz8gJz8nfWAsXG4gICAgfVxuICAgIGlmIChjb250ZXh0Lm9wZXJhdGlvbklkKSB7XG4gICAgICAgIGhlYWRlcnNbJ3gtcmVxdWVzdC1pZCddID0gY29udGV4dC5vcGVyYXRpb25JZFxuICAgIH1cbiAgICBpZiAoY29udGV4dC5jbGllbnQpIHtcbiAgICAgICAgaWYgKGNvbnRleHQuY2xpZW50LmlkKSB7XG4gICAgICAgICAgICBoZWFkZXJzWyd4LWNsaWVudC1pZCddID0gY29udGV4dC5jbGllbnQuaWRcbiAgICAgICAgfVxuICAgICAgICBpZiAoISFjb250ZXh0LmNsaWVudC5pcCB8fCAhIWNvbnRleHQuY2xpZW50LnBvcnQpIHtcbiAgICAgICAgICAgIGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvciddID0gYCR7Y29udGV4dC5jbGllbnQuaXAgPz8gJyd9OiR7Y29udGV4dC5jbGllbnQucG9ydCA/PyAnJ31gXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRleHQuY2xpZW50LnVzZXJBZ2VudCkge1xuICAgICAgICAgICAgaGVhZGVyc1sneC1mb3J3YXJkZWQtZm9yLXVzZXItYWdlbnQnXSA9IGNvbnRleHQuY2xpZW50LnVzZXJBZ2VudFxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtZWFzdXJlPFQ+KFxuICAgIGxvZ2dlcjogeyB0cmFjZTogKG1lc3NhZ2U6IHN0cmluZywgXzogdW5kZWZpbmVkLCBmOiBvYmplY3QpID0+IHZvaWQgfSxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZm46ICgpID0+IFByb21pc2U8VD4gfCBULFxuICAgIGZpZWxkcz86IG9iamVjdCxcbikge1xuICAgIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KClcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4oKVxuICAgIH0gZmluYWxseSB7XG4gICAgICAgIGNvbnN0IGVuZCA9IHBlcmZvcm1hbmNlLm5vdygpXG4gICAgICAgIGxvZ2dlci50cmFjZShgTWVhc3VyZW1lbnQgb2YgJHtuYW1lfSB0aW1lYCwgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgICBzdGFydDogaGlnaFByZWNpc2lvbklTT0RhdGUoc3RhcnQpLFxuICAgICAgICAgICAgZW5kOiBoaWdoUHJlY2lzaW9uSVNPRGF0ZShlbmQpLFxuICAgICAgICAgICAgZHVyYXRpb246IChNYXRoLnJvdW5kKGVuZCAqIDEwXzAwMCkgLSBNYXRoLnJvdW5kKHN0YXJ0ICogMTBfMDAwKSkgLyAxMF8wMDAsXG4gICAgICAgICAgICAuLi5maWVsZHMsXG4gICAgICAgIH0pXG4gICAgfVxufVxuIl19
|
package/eslint.config.js
ADDED
package/host/context.d.ts
CHANGED
package/host/context.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventCollector } from './events.js';
|
|
2
2
|
import { makeLogger } from './logging.js';
|
|
3
3
|
class LogMulticaster {
|
|
4
4
|
#transports;
|
|
@@ -18,7 +18,7 @@ class LogMulticaster {
|
|
|
18
18
|
export function createContext(clientInfo, loggers, eventTransport, timeouts, outerController, config, meta, environment, now) {
|
|
19
19
|
const timeout = (timeouts.cap
|
|
20
20
|
? Math.min(config?.timeout ?? timeouts.default, timeouts.cap)
|
|
21
|
-
: config?.timeout ?? timeouts.default) * 1000;
|
|
21
|
+
: (config?.timeout ?? timeouts.default)) * 1000;
|
|
22
22
|
const innerController = new AbortController();
|
|
23
23
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
24
24
|
const logTransport = loggers.length === 1 ? loggers[0] : new LogMulticaster(loggers);
|
|
@@ -32,7 +32,7 @@ export function createContext(clientInfo, loggers, eventTransport, timeouts, out
|
|
|
32
32
|
},
|
|
33
33
|
});
|
|
34
34
|
globalLogger = logger;
|
|
35
|
-
const emitter = new
|
|
35
|
+
const emitter = new EventCollector(eventTransport, logger, clientInfo, timeout, outerController.signal);
|
|
36
36
|
const successHandlers = [];
|
|
37
37
|
const ctx = {
|
|
38
38
|
env: environment ?? process.env,
|
|
@@ -52,7 +52,9 @@ export function createContext(clientInfo, loggers, eventTransport, timeouts, out
|
|
|
52
52
|
revision: meta.revision,
|
|
53
53
|
}
|
|
54
54
|
: undefined,
|
|
55
|
-
emit: (topic, type, subject, data, messageId) =>
|
|
55
|
+
emit: (topic, type, subject, data, messageId) => {
|
|
56
|
+
emitter.emit({ topic, type, subject, id: messageId }, data);
|
|
57
|
+
},
|
|
56
58
|
eventBarrier: () => emitter.flush(),
|
|
57
59
|
onSuccess: (fn) => successHandlers.push(fn),
|
|
58
60
|
};
|
|
@@ -67,7 +69,7 @@ export function createContext(clientInfo, loggers, eventTransport, timeouts, out
|
|
|
67
69
|
const flushHandle = setTimeout(() => {
|
|
68
70
|
logger.error('Aborting flush.', undefined, undefined);
|
|
69
71
|
outerController.abort();
|
|
70
|
-
}, timeout +
|
|
72
|
+
}, timeout + 15_000);
|
|
71
73
|
return {
|
|
72
74
|
log: logger,
|
|
73
75
|
context: ctx,
|
|
@@ -87,4 +89,4 @@ process.on('uncaughtException', err => {
|
|
|
87
89
|
process.on('unhandledRejection', reason => {
|
|
88
90
|
globalLogger?.fatal('Unhandled rejection.', reason, undefined);
|
|
89
91
|
});
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBNkN6QyxNQUFNLGNBQWM7SUFDUCxXQUFXLENBQWdCO0lBQzNCLFdBQVcsQ0FBUTtJQUU1QixZQUFZLFVBQTBCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFBO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUE7SUFDOUYsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQixFQUFFLE1BQW1CO1FBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDM0YsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU07UUFDVixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBNkIsQ0FBQTtJQUM1RCxDQUFDO0NBQ0o7QUFPRCxNQUFNLFVBQVUsYUFBYSxDQUN6QixVQUFzQixFQUN0QixPQUF1QixFQUN2QixjQUE4QixFQUM5QixRQUEyQyxFQUMzQyxlQUFnQyxFQUNoQyxNQUEwQixFQUMxQixJQUFlLEVBQ2YsV0FBcUMsRUFDckMsR0FBOEI7SUFP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Q0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0LCBFbnZpcm9ubWVudCwgSnNvbiwgTG9nZ2VyIH0gZnJvbSAnLi4vY29udGV4dC5qcydcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4vZW1pdHRlci5qcydcbmltcG9ydCB7IG1ha2VMb2dnZXIgfSBmcm9tICcuL2xvZ2dpbmcuanMnXG5pbXBvcnQgeyBGdWxsQ29uZmlndXJhdGlvbiwgTWV0YWRhdGEgfSBmcm9tICcuL3JlZ2lzdHJ5LmpzJ1xuXG5leHBvcnQgdHlwZSBDbGllbnRJbmZvID0ge1xuICAgIHJlYWRvbmx5IG9wZXJhdGlvbklkPzogc3RyaW5nXG4gICAgcmVhZG9ubHkgY2xpZW50SWQ/OiBzdHJpbmdcbiAgICByZWFkb25seSBjbGllbnRJcD86IHN0cmluZ1xuICAgIHJlYWRvbmx5IGNsaWVudFBvcnQ/OiBudW1iZXJcbiAgICByZWFkb25seSB1c2VyQWdlbnQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgRXZlbnRNZXRhZGF0YSA9IHtcbiAgICB0b3BpYzogc3RyaW5nXG4gICAgdHlwZTogc3RyaW5nXG4gICAgc3ViamVjdDogc3RyaW5nXG4gICAgaWQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQnVmZmVyZWRFdmVudCA9IHtcbiAgICBldmVudFRpbWU6IERhdGVcbiAgICBtZXRhOiBPbWl0PEV2ZW50TWV0YWRhdGEsICd0b3BpYyc+XG4gICAgaWRzOiBDbGllbnRJbmZvXG4gICAganNvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBFdmVudFRyYW5zcG9ydCA9IHtcbiAgICByZWFkb25seSBwdWJsaXNoUmF0ZTogbnVtYmVyXG4gICAgc2VuZEV2ZW50cyh0b3BpYzogc3RyaW5nLCBldmVudHM6IEJ1ZmZlcmVkRXZlbnRbXSwgc2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD5cbn1cblxuZXhwb3J0IHR5cGUgTG9nTGV2ZWwgPSAndHJhY2UnIHwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnZmF0YWwnXG5cbmV4cG9ydCB0eXBlIExvZ0VudHJ5ID0ge1xuICAgIHJlYWRvbmx5IGxldmVsOiBMb2dMZXZlbFxuICAgIHJlYWRvbmx5IHRpbWVzdGFtcDogbnVtYmVyXG4gICAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nXG4gICAgcmVhZG9ubHkgZXJyb3I6IHVua25vd25cbiAgICByZWFkb25seSBqc29uOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTG9nVHJhbnNwb3J0ID0ge1xuICAgIHJlYWRvbmx5IHB1Ymxpc2hSYXRlPzogbnVtYmVyXG4gICAgc2VuZEVudHJpZXMoZW50cmllczogTG9nRW50cnlbXSwgc2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWRcbn1cblxuY2xhc3MgTG9nTXVsdGljYXN0ZXIgaW1wbGVtZW50cyBMb2dUcmFuc3BvcnQge1xuICAgIHJlYWRvbmx5ICN0cmFuc3BvcnRzOiBMb2dUcmFuc3BvcnRbXVxuICAgIHJlYWRvbmx5IHB1Ymxpc2hSYXRlOiBudW1iZXJcblxuICAgIGNvbnN0cnVjdG9yKHRyYW5zcG9ydHM6IExvZ1RyYW5zcG9ydFtdKSB7XG4gICAgICAgIHRoaXMuI3RyYW5zcG9ydHMgPSB0cmFuc3BvcnRzXG4gICAgICAgIHRoaXMucHVibGlzaFJhdGUgPSB0cmFuc3BvcnRzLm1hcCh0ID0+IHQucHVibGlzaFJhdGUpLnNvcnQoKVswXSA/PyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUlxuICAgIH1cblxuICAgIHNlbmRFbnRyaWVzKGVudHJpZXM6IExvZ0VudHJ5W10sIHNpZ25hbDogQWJvcnRTaWduYWwpIHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLiN0cmFuc3BvcnRzLm1hcCh0ID0+IHQuc2VuZEVudHJpZXMoZW50cmllcywgc2lnbmFsKSkuZmlsdGVyKHAgPT4gISFwKVxuICAgICAgICBpZiAocHJvbWlzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpIGFzIHVua25vd24gYXMgUHJvbWlzZTx2b2lkPlxuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUm9vdExvZ2dlciA9IHtcbiAgICBlbnJpY2hSZXNlcnZlZChmaWVsZHM6IG9iamVjdCk6IFJvb3RMb2dnZXJcbiAgICBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+XG59ICYgTG9nZ2VyXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250ZXh0KFxuICAgIGNsaWVudEluZm86IENsaWVudEluZm8sXG4gICAgbG9nZ2VyczogTG9nVHJhbnNwb3J0W10sXG4gICAgZXZlbnRUcmFuc3BvcnQ6IEV2ZW50VHJhbnNwb3J0LFxuICAgIHRpbWVvdXRzOiB7IGRlZmF1bHQ6IG51bWJlcjsgY2FwPzogbnVtYmVyIH0sXG4gICAgb3V0ZXJDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIsXG4gICAgY29uZmlnPzogRnVsbENvbmZpZ3VyYXRpb24sXG4gICAgbWV0YT86IE1ldGFkYXRhLFxuICAgIGVudmlyb25tZW50PzogRW52aXJvbm1lbnQgfCB1bmRlZmluZWQsXG4gICAgbm93PzogKCgpID0+IERhdGUpIHwgdW5kZWZpbmVkLFxuKToge1xuICAgIGxvZzogUm9vdExvZ2dlclxuICAgIGNvbnRleHQ6IE9taXQ8Q29udGV4dCwgJ2xvZyc+XG4gICAgc3VjY2VzczogKCkgPT4gUHJvbWlzZTx1bmtub3duPlxuICAgIGZsdXNoOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG59IHtcbiAgICBjb25zdCB0aW1lb3V0ID1cbiAgICAgICAgKHRpbWVvdXRzLmNhcFxuICAgICAgICAgICAgPyBNYXRoLm1pbihjb25maWc/LnRpbWVvdXQgPz8gdGltZW91dHMuZGVmYXVsdCwgdGltZW91dHMuY2FwKVxuICAgICAgICAgICAgOiBjb25maWc/LnRpbWVvdXQgPz8gdGltZW91dHMuZGVmYXVsdCkgKiAxMDAwXG4gICAgY29uc3QgaW5uZXJDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICBjb25zdCBsb2dUcmFuc3BvcnQgPSBsb2dnZXJzLmxlbmd0aCA9PT0gMSA/IGxvZ2dlcnNbMF0hIDogbmV3IExvZ011bHRpY2FzdGVyKGxvZ2dlcnMpXG4gICAgY29uc3QgbG9nZ2VyID0gbWFrZUxvZ2dlcihcbiAgICAgICAgbG9nVHJhbnNwb3J0LFxuICAgICAgICBjb25maWc/Lm1pbmltdW1Mb2dMZXZlbCxcbiAgICAgICAgb3V0ZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICApLmVucmljaFJlc2VydmVkKHtcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGNsaWVudEluZm8ub3BlcmF0aW9uSWQsXG4gICAgICAgIGNsaWVudDoge1xuICAgICAgICAgICAgaWQ6IGNsaWVudEluZm8uY2xpZW50SWQsXG4gICAgICAgICAgICBpcDogY2xpZW50SW5mby5jbGllbnRJcCxcbiAgICAgICAgICAgIHBvcnQ6IGNsaWVudEluZm8uY2xpZW50UG9ydCxcbiAgICAgICAgICAgIHVzZXJBZ2VudDogY2xpZW50SW5mby51c2VyQWdlbnQsXG4gICAgICAgIH0sXG4gICAgfSlcbiAgICBnbG9iYWxMb2dnZXIgPSBsb2dnZXJcbiAgICBjb25zdCBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICAgICAgZXZlbnRUcmFuc3BvcnQsXG4gICAgICAgIGxvZ2dlcixcbiAgICAgICAgY2xpZW50SW5mbyxcbiAgICAgICAgdGltZW91dCxcbiAgICAgICAgb3V0ZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICApXG4gICAgY29uc3Qgc3VjY2Vzc0hhbmRsZXJzOiAoKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQpW10gPSBbXVxuICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgZW52OiBlbnZpcm9ubWVudCA/PyAocHJvY2Vzcy5lbnYgYXMgRW52aXJvbm1lbnQpLFxuICAgICAgICBzaWduYWw6IGlubmVyQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIG5vdzogbm93ID8/ICgoKSA9PiBuZXcgRGF0ZSgpKSxcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGNsaWVudEluZm8ub3BlcmF0aW9uSWQsXG4gICAgICAgIGNsaWVudDoge1xuICAgICAgICAgICAgaWQ6IGNsaWVudEluZm8uY2xpZW50SWQsXG4gICAgICAgICAgICBpcDogY2xpZW50SW5mby5jbGllbnRJcCxcbiAgICAgICAgICAgIHBvcnQ6IGNsaWVudEluZm8uY2xpZW50UG9ydCxcbiAgICAgICAgICAgIHVzZXJBZ2VudDogY2xpZW50SW5mby51c2VyQWdlbnQsXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGE6IG1ldGFcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgcGFja2FnZU5hbWU6IG1ldGEucGFja2FnZU5hbWUsXG4gICAgICAgICAgICAgICAgICBmaWxlTmFtZTogbWV0YS5maWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIHJldmlzaW9uOiBtZXRhLnJldmlzaW9uLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1pdDogKHRvcGljOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgc3ViamVjdDogc3RyaW5nLCBkYXRhPzogSnNvbiwgbWVzc2FnZUlkPzogc3RyaW5nKSA9PlxuICAgICAgICAgICAgZW1pdHRlci5lbWl0KHsgdG9waWMsIHR5cGUsIHN1YmplY3QsIGlkOiBtZXNzYWdlSWQgfSwgZGF0YSksXG4gICAgICAgIGV2ZW50QmFycmllcjogKCkgPT4gZW1pdHRlci5mbHVzaCgpLFxuICAgICAgICBvblN1Y2Nlc3M6IChmbjogKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQpID0+IHN1Y2Nlc3NIYW5kbGVycy5wdXNoKGZuKSxcbiAgICB9XG4gICAgY29uc3QgdGltZW91dEhhbmRsZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ1RpbWVvdXQuJywgdW5kZWZpbmVkLCB1bmRlZmluZWQpXG4gICAgICAgIGlubmVyQ29udHJvbGxlci5hYm9ydCgpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgIHZvaWQgbG9nZ2VyLmZsdXNoKClcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZvaWRcbiAgICAgICAgdm9pZCBlbWl0dGVyLmZsdXNoKClcbiAgICB9LCB0aW1lb3V0KVxuICAgIGNvbnN0IGZsdXNoSGFuZGxlID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignQWJvcnRpbmcgZmx1c2guJywgdW5kZWZpbmVkLCB1bmRlZmluZWQpXG4gICAgICAgIG91dGVyQ29udHJvbGxlci5hYm9ydCgpXG4gICAgfSwgdGltZW91dCArIDE1MDAwKVxuICAgIHJldHVybiB7XG4gICAgICAgIGxvZzogbG9nZ2VyLFxuICAgICAgICBjb250ZXh0OiBjdHgsXG4gICAgICAgIHN1Y2Nlc3M6ICgpID0+IFByb21pc2UuYWxsKHN1Y2Nlc3NIYW5kbGVycy5tYXAoZm4gPT4gZm4oKSkpLFxuICAgICAgICBmbHVzaDogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRIYW5kbGUpXG4gICAgICAgICAgICBhd2FpdCBlbWl0dGVyLmZsdXNoKClcbiAgICAgICAgICAgIGF3YWl0IGxvZ2dlci5mbHVzaCgpXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZmx1c2hIYW5kbGUpXG4gICAgICAgIH0sXG4gICAgfVxufVxuXG5sZXQgZ2xvYmFsTG9nZ2VyOiBMb2dnZXIgfCB1bmRlZmluZWRcblxucHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCBlcnIgPT4ge1xuICAgIGdsb2JhbExvZ2dlcj8uZmF0YWwoJ1VuY2F1Z2h0IGV4Y2VwdGlvbi4nLCBlcnIsIHVuZGVmaW5lZClcbn0pXG5wcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCByZWFzb24gPT4ge1xuICAgIGdsb2JhbExvZ2dlcj8uZmF0YWwoJ1VuaGFuZGxlZCByZWplY3Rpb24uJywgcmVhc29uLCB1bmRlZmluZWQpXG59KVxuIl19
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBNkN6QyxNQUFNLGNBQWM7SUFDUCxXQUFXLENBQWdCO0lBQzNCLFdBQVcsQ0FBUTtJQUU1QixZQUFZLFVBQTBCO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFBO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUE7SUFDOUYsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQixFQUFFLE1BQW1CO1FBQ2hELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDM0YsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU07UUFDVixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBNkIsQ0FBQTtJQUM1RCxDQUFDO0NBQ0o7QUFPRCxNQUFNLFVBQVUsYUFBYSxDQUN6QixVQUFzQixFQUN0QixPQUF1QixFQUN2QixjQUE4QixFQUM5QixRQUEyQyxFQUMzQyxlQUFnQyxFQUNoQyxNQUEwQixFQUMxQixJQUFlLEVBQ2YsV0FBcUMsRUFDckMsR0FBOEI7SUFP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QUFFLFNBQVMsQ0FBQyxDQUFBO0FBQ2xFLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCwgRW52aXJvbm1lbnQsIEpzb24sIExvZ2dlciB9IGZyb20gJy4uL2NvbnRleHQuanMnXG5pbXBvcnQgeyBFdmVudENvbGxlY3RvciB9IGZyb20gJy4vZXZlbnRzLmpzJ1xuaW1wb3J0IHsgbWFrZUxvZ2dlciB9IGZyb20gJy4vbG9nZ2luZy5qcydcbmltcG9ydCB7IEZ1bGxDb25maWd1cmF0aW9uLCBNZXRhZGF0YSB9IGZyb20gJy4vcmVnaXN0cnkuanMnXG5cbmV4cG9ydCB0eXBlIENsaWVudEluZm8gPSB7XG4gICAgcmVhZG9ubHkgb3BlcmF0aW9uSWQ/OiBzdHJpbmdcbiAgICByZWFkb25seSBjbGllbnRJZD86IHN0cmluZ1xuICAgIHJlYWRvbmx5IGNsaWVudElwPzogc3RyaW5nXG4gICAgcmVhZG9ubHkgY2xpZW50UG9ydD86IG51bWJlclxuICAgIHJlYWRvbmx5IHVzZXJBZ2VudD86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBFdmVudE1ldGFkYXRhID0ge1xuICAgIHRvcGljOiBzdHJpbmdcbiAgICB0eXBlOiBzdHJpbmdcbiAgICBzdWJqZWN0OiBzdHJpbmdcbiAgICBpZD86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBCdWZmZXJlZEV2ZW50ID0ge1xuICAgIGV2ZW50VGltZTogRGF0ZVxuICAgIG1ldGE6IE9taXQ8RXZlbnRNZXRhZGF0YSwgJ3RvcGljJz5cbiAgICBpZHM6IENsaWVudEluZm9cbiAgICBqc29uPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50VHJhbnNwb3J0ID0ge1xuICAgIHJlYWRvbmx5IHB1Ymxpc2hSYXRlOiBudW1iZXJcbiAgICBzZW5kRXZlbnRzKHRvcGljOiBzdHJpbmcsIGV2ZW50czogQnVmZmVyZWRFdmVudFtdLCBzaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzZTx2b2lkPlxufVxuXG5leHBvcnQgdHlwZSBMb2dMZXZlbCA9ICd0cmFjZScgfCAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyB8ICdmYXRhbCdcblxuZXhwb3J0IHR5cGUgTG9nRW50cnkgPSB7XG4gICAgcmVhZG9ubHkgbGV2ZWw6IExvZ0xldmVsXG4gICAgcmVhZG9ubHkgdGltZXN0YW1wOiBudW1iZXJcbiAgICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmdcbiAgICByZWFkb25seSBlcnJvcjogdW5rbm93blxuICAgIHJlYWRvbmx5IGpzb246IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBMb2dUcmFuc3BvcnQgPSB7XG4gICAgcmVhZG9ubHkgcHVibGlzaFJhdGU/OiBudW1iZXJcbiAgICBzZW5kRW50cmllcyhlbnRyaWVzOiBMb2dFbnRyeVtdLCBzaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzZTx2b2lkPiB8IHVuZGVmaW5lZFxufVxuXG5jbGFzcyBMb2dNdWx0aWNhc3RlciBpbXBsZW1lbnRzIExvZ1RyYW5zcG9ydCB7XG4gICAgcmVhZG9ubHkgI3RyYW5zcG9ydHM6IExvZ1RyYW5zcG9ydFtdXG4gICAgcmVhZG9ubHkgcHVibGlzaFJhdGU6IG51bWJlclxuXG4gICAgY29uc3RydWN0b3IodHJhbnNwb3J0czogTG9nVHJhbnNwb3J0W10pIHtcbiAgICAgICAgdGhpcy4jdHJhbnNwb3J0cyA9IHRyYW5zcG9ydHNcbiAgICAgICAgdGhpcy5wdWJsaXNoUmF0ZSA9IHRyYW5zcG9ydHMubWFwKHQgPT4gdC5wdWJsaXNoUmF0ZSkuc29ydCgpWzBdID8/IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gICAgfVxuXG4gICAgc2VuZEVudHJpZXMoZW50cmllczogTG9nRW50cnlbXSwgc2lnbmFsOiBBYm9ydFNpZ25hbCkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IHRoaXMuI3RyYW5zcG9ydHMubWFwKHQgPT4gdC5zZW5kRW50cmllcyhlbnRyaWVzLCBzaWduYWwpKS5maWx0ZXIocCA9PiAhIXApXG4gICAgICAgIGlmIChwcm9taXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykgYXMgdW5rbm93biBhcyBQcm9taXNlPHZvaWQ+XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBSb290TG9nZ2VyID0ge1xuICAgIGVucmljaFJlc2VydmVkKGZpZWxkczogb2JqZWN0KTogUm9vdExvZ2dlclxuICAgIGZsdXNoKCk6IFByb21pc2U8dm9pZD5cbn0gJiBMb2dnZXJcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQoXG4gICAgY2xpZW50SW5mbzogQ2xpZW50SW5mbyxcbiAgICBsb2dnZXJzOiBMb2dUcmFuc3BvcnRbXSxcbiAgICBldmVudFRyYW5zcG9ydDogRXZlbnRUcmFuc3BvcnQsXG4gICAgdGltZW91dHM6IHsgZGVmYXVsdDogbnVtYmVyOyBjYXA/OiBudW1iZXIgfSxcbiAgICBvdXRlckNvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlcixcbiAgICBjb25maWc/OiBGdWxsQ29uZmlndXJhdGlvbixcbiAgICBtZXRhPzogTWV0YWRhdGEsXG4gICAgZW52aXJvbm1lbnQ/OiBFbnZpcm9ubWVudCB8IHVuZGVmaW5lZCxcbiAgICBub3c/OiAoKCkgPT4gRGF0ZSkgfCB1bmRlZmluZWQsXG4pOiB7XG4gICAgbG9nOiBSb290TG9nZ2VyXG4gICAgY29udGV4dDogT21pdDxDb250ZXh0LCAnbG9nJz5cbiAgICBzdWNjZXNzOiAoKSA9PiBQcm9taXNlPHVua25vd24+XG4gICAgZmx1c2g6ICgpID0+IFByb21pc2U8dm9pZD5cbn0ge1xuICAgIGNvbnN0IHRpbWVvdXQgPVxuICAgICAgICAodGltZW91dHMuY2FwXG4gICAgICAgICAgICA/IE1hdGgubWluKGNvbmZpZz8udGltZW91dCA/PyB0aW1lb3V0cy5kZWZhdWx0LCB0aW1lb3V0cy5jYXApXG4gICAgICAgICAgICA6IChjb25maWc/LnRpbWVvdXQgPz8gdGltZW91dHMuZGVmYXVsdCkpICogMTAwMFxuICAgIGNvbnN0IGlubmVyQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgY29uc3QgbG9nVHJhbnNwb3J0ID0gbG9nZ2Vycy5sZW5ndGggPT09IDEgPyBsb2dnZXJzWzBdISA6IG5ldyBMb2dNdWx0aWNhc3Rlcihsb2dnZXJzKVxuICAgIGNvbnN0IGxvZ2dlciA9IG1ha2VMb2dnZXIoXG4gICAgICAgIGxvZ1RyYW5zcG9ydCxcbiAgICAgICAgY29uZmlnPy5taW5pbXVtTG9nTGV2ZWwsXG4gICAgICAgIG91dGVyQ29udHJvbGxlci5zaWduYWwsXG4gICAgKS5lbnJpY2hSZXNlcnZlZCh7XG4gICAgICAgIG9wZXJhdGlvbklkOiBjbGllbnRJbmZvLm9wZXJhdGlvbklkLFxuICAgICAgICBjbGllbnQ6IHtcbiAgICAgICAgICAgIGlkOiBjbGllbnRJbmZvLmNsaWVudElkLFxuICAgICAgICAgICAgaXA6IGNsaWVudEluZm8uY2xpZW50SXAsXG4gICAgICAgICAgICBwb3J0OiBjbGllbnRJbmZvLmNsaWVudFBvcnQsXG4gICAgICAgICAgICB1c2VyQWdlbnQ6IGNsaWVudEluZm8udXNlckFnZW50LFxuICAgICAgICB9LFxuICAgIH0pXG4gICAgZ2xvYmFsTG9nZ2VyID0gbG9nZ2VyXG4gICAgY29uc3QgZW1pdHRlciA9IG5ldyBFdmVudENvbGxlY3RvcihcbiAgICAgICAgZXZlbnRUcmFuc3BvcnQsXG4gICAgICAgIGxvZ2dlcixcbiAgICAgICAgY2xpZW50SW5mbyxcbiAgICAgICAgdGltZW91dCxcbiAgICAgICAgb3V0ZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICApXG4gICAgY29uc3Qgc3VjY2Vzc0hhbmRsZXJzOiAoKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQpW10gPSBbXVxuICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgZW52OiBlbnZpcm9ubWVudCA/PyAocHJvY2Vzcy5lbnYgYXMgRW52aXJvbm1lbnQpLFxuICAgICAgICBzaWduYWw6IGlubmVyQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIG5vdzogbm93ID8/ICgoKSA9PiBuZXcgRGF0ZSgpKSxcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGNsaWVudEluZm8ub3BlcmF0aW9uSWQsXG4gICAgICAgIGNsaWVudDoge1xuICAgICAgICAgICAgaWQ6IGNsaWVudEluZm8uY2xpZW50SWQsXG4gICAgICAgICAgICBpcDogY2xpZW50SW5mby5jbGllbnRJcCxcbiAgICAgICAgICAgIHBvcnQ6IGNsaWVudEluZm8uY2xpZW50UG9ydCxcbiAgICAgICAgICAgIHVzZXJBZ2VudDogY2xpZW50SW5mby51c2VyQWdlbnQsXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGE6IG1ldGFcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgcGFja2FnZU5hbWU6IG1ldGEucGFja2FnZU5hbWUsXG4gICAgICAgICAgICAgICAgICBmaWxlTmFtZTogbWV0YS5maWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIHJldmlzaW9uOiBtZXRhLnJldmlzaW9uLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1pdDogKHRvcGljOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgc3ViamVjdDogc3RyaW5nLCBkYXRhPzogSnNvbiwgbWVzc2FnZUlkPzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBlbWl0dGVyLmVtaXQoeyB0b3BpYywgdHlwZSwgc3ViamVjdCwgaWQ6IG1lc3NhZ2VJZCB9LCBkYXRhKVxuICAgICAgICB9LFxuICAgICAgICBldmVudEJhcnJpZXI6ICgpID0+IGVtaXR0ZXIuZmx1c2goKSxcbiAgICAgICAgb25TdWNjZXNzOiAoZm46ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkKSA9PiBzdWNjZXNzSGFuZGxlcnMucHVzaChmbiksXG4gICAgfVxuICAgIGNvbnN0IHRpbWVvdXRIYW5kbGUgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdUaW1lb3V0LicsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKVxuICAgICAgICBpbm5lckNvbnRyb2xsZXIuYWJvcnQoKVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgICB2b2lkIGxvZ2dlci5mbHVzaCgpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgIHZvaWQgZW1pdHRlci5mbHVzaCgpXG4gICAgfSwgdGltZW91dClcbiAgICBjb25zdCBmbHVzaEhhbmRsZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Fib3J0aW5nIGZsdXNoLicsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKVxuICAgICAgICBvdXRlckNvbnRyb2xsZXIuYWJvcnQoKVxuICAgIH0sIHRpbWVvdXQgKyAxNV8wMDApXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbG9nOiBsb2dnZXIsXG4gICAgICAgIGNvbnRleHQ6IGN0eCxcbiAgICAgICAgc3VjY2VzczogKCkgPT4gUHJvbWlzZS5hbGwoc3VjY2Vzc0hhbmRsZXJzLm1hcChmbiA9PiBmbigpKSksXG4gICAgICAgIGZsdXNoOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dEhhbmRsZSlcbiAgICAgICAgICAgIGF3YWl0IGVtaXR0ZXIuZmx1c2goKVxuICAgICAgICAgICAgYXdhaXQgbG9nZ2VyLmZsdXNoKClcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChmbHVzaEhhbmRsZSlcbiAgICAgICAgfSxcbiAgICB9XG59XG5cbmxldCBnbG9iYWxMb2dnZXI6IExvZ2dlciB8IHVuZGVmaW5lZFxuXG5wcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIGVyciA9PiB7XG4gICAgZ2xvYmFsTG9nZ2VyPy5mYXRhbCgnVW5jYXVnaHQgZXhjZXB0aW9uLicsIGVyciwgdW5kZWZpbmVkKVxufSlcbnByb2Nlc3Mub24oJ3VuaGFuZGxlZFJlamVjdGlvbicsIHJlYXNvbiA9PiB7XG4gICAgZ2xvYmFsTG9nZ2VyPy5mYXRhbCgnVW5oYW5kbGVkIHJlamVjdGlvbi4nLCByZWFzb24sIHVuZGVmaW5lZClcbn0pXG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { Json, Logger } from '../context.js';
|
|
3
2
|
import { EventMetadata, EventTransport } from './context.js';
|
|
4
|
-
export declare class
|
|
3
|
+
export declare class EventCollector {
|
|
5
4
|
#private;
|
|
6
5
|
constructor(transport: EventTransport, logger: Logger, ids: {
|
|
7
6
|
operationId?: string;
|
package/host/events.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export class EventCollector {
|
|
2
|
+
#transport;
|
|
3
|
+
#logger;
|
|
4
|
+
#ids;
|
|
5
|
+
#emitted = {};
|
|
6
|
+
#size = 0;
|
|
7
|
+
#flusher;
|
|
8
|
+
#deadline;
|
|
9
|
+
#buffered;
|
|
10
|
+
#signal;
|
|
11
|
+
constructor(transport, logger, ids, timeout, signal) {
|
|
12
|
+
this.#transport = transport;
|
|
13
|
+
this.#logger = logger;
|
|
14
|
+
this.#ids = ids;
|
|
15
|
+
this.#deadline = Date.now() + timeout;
|
|
16
|
+
this.#buffered = 0;
|
|
17
|
+
this.#signal = signal;
|
|
18
|
+
}
|
|
19
|
+
emit(meta, data) {
|
|
20
|
+
const eventTime = new Date();
|
|
21
|
+
const timeLeft = this.#deadline - Date.now();
|
|
22
|
+
if (this.#buffered / this.#transport.publishRate > timeLeft) {
|
|
23
|
+
throw new Error('Event overflow.');
|
|
24
|
+
}
|
|
25
|
+
const event = data === undefined
|
|
26
|
+
? { meta, ids: this.#ids, eventTime }
|
|
27
|
+
: { meta, ids: this.#ids, eventTime, json: JSON.stringify(data) };
|
|
28
|
+
const events = this.#emitted[meta.topic];
|
|
29
|
+
if (events) {
|
|
30
|
+
events.push(event);
|
|
31
|
+
if (events.length > 64 || this.#size > 64_000) {
|
|
32
|
+
// eslint-disable-next-line no-void
|
|
33
|
+
void this.flush();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.#emitted[meta.topic] = [event];
|
|
38
|
+
}
|
|
39
|
+
++this.#buffered;
|
|
40
|
+
this.#size += event.json?.length ?? 0;
|
|
41
|
+
}
|
|
42
|
+
async flush() {
|
|
43
|
+
this.#startFlush(this.#emitted);
|
|
44
|
+
this.#emitted = {};
|
|
45
|
+
this.#size = 0;
|
|
46
|
+
return await this.#flusher;
|
|
47
|
+
}
|
|
48
|
+
#startFlush(emitted) {
|
|
49
|
+
if (this.#flusher) {
|
|
50
|
+
this.#flusher = this.#flusher.then(() => this.#flushEvents(emitted));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.#flusher = this.#flushEvents(emitted);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async #flushEvents(emitted) {
|
|
57
|
+
await Promise.all(Object.entries(emitted).map(async ([topic, events]) => {
|
|
58
|
+
try {
|
|
59
|
+
await this.#transport.sendEvents(topic, events, this.#signal);
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
this.#logger.fatal('Error sending events.', e, { events });
|
|
63
|
+
}
|
|
64
|
+
this.#buffered -= events.length;
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxjQUFjO0lBQ2QsVUFBVSxDQUFnQjtJQUMxQixPQUFPLENBQVE7SUFDZixJQUFJLENBQVk7SUFDekIsUUFBUSxHQUFlLEVBQUUsQ0FBQTtJQUN6QixLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ1QsUUFBUSxDQUFnQjtJQUNmLFNBQVMsQ0FBUTtJQUMxQixTQUFTLENBQVE7SUFDUixPQUFPLENBQWE7SUFFN0IsWUFDSSxTQUF5QixFQUN6QixNQUFjLEVBQ2QsR0FBdUYsRUFDdkYsT0FBZSxFQUNmLE1BQW1CO1FBRW5CLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFBO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFBO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBbUIsRUFBRSxJQUFXO1FBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDNUMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUN0QyxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQ1AsSUFBSSxLQUFLLFNBQVM7WUFDZCxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3JDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQTtRQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN4QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNsQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7Z0JBQzVDLG1DQUFtQztnQkFDbkMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDckIsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QyxDQUFDO1FBQ0QsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQjtRQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUN4RSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBbUI7UUFDbEMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQztnQkFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ2pFLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FDTCxDQUFBO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvbiwgTG9nZ2VyIH0gZnJvbSAnLi4vY29udGV4dC5qcydcbmltcG9ydCB7IEJ1ZmZlcmVkRXZlbnQsIENsaWVudEluZm8sIEV2ZW50TWV0YWRhdGEsIEV2ZW50VHJhbnNwb3J0IH0gZnJvbSAnLi9jb250ZXh0LmpzJ1xuXG50eXBlIEVtaXRCdWZmZXIgPSB7XG4gICAgW3RvcGljOiBzdHJpbmddOiBCdWZmZXJlZEV2ZW50W11cbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50Q29sbGVjdG9yIHtcbiAgICByZWFkb25seSAjdHJhbnNwb3J0OiBFdmVudFRyYW5zcG9ydFxuICAgIHJlYWRvbmx5ICNsb2dnZXI6IExvZ2dlclxuICAgIHJlYWRvbmx5ICNpZHM6IENsaWVudEluZm9cbiAgICAjZW1pdHRlZDogRW1pdEJ1ZmZlciA9IHt9XG4gICAgI3NpemUgPSAwXG4gICAgI2ZsdXNoZXI/OiBQcm9taXNlPHZvaWQ+XG4gICAgcmVhZG9ubHkgI2RlYWRsaW5lOiBudW1iZXJcbiAgICAjYnVmZmVyZWQ6IG51bWJlclxuICAgIHJlYWRvbmx5ICNzaWduYWw6IEFib3J0U2lnbmFsXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgdHJhbnNwb3J0OiBFdmVudFRyYW5zcG9ydCxcbiAgICAgICAgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgIGlkczogeyBvcGVyYXRpb25JZD86IHN0cmluZzsgY2xpZW50SWQ/OiBzdHJpbmc7IGNsaWVudElwPzogc3RyaW5nOyB1c2VyQWdlbnQ/OiBzdHJpbmcgfSxcbiAgICAgICAgdGltZW91dDogbnVtYmVyLFxuICAgICAgICBzaWduYWw6IEFib3J0U2lnbmFsLFxuICAgICkge1xuICAgICAgICB0aGlzLiN0cmFuc3BvcnQgPSB0cmFuc3BvcnRcbiAgICAgICAgdGhpcy4jbG9nZ2VyID0gbG9nZ2VyXG4gICAgICAgIHRoaXMuI2lkcyA9IGlkc1xuICAgICAgICB0aGlzLiNkZWFkbGluZSA9IERhdGUubm93KCkgKyB0aW1lb3V0XG4gICAgICAgIHRoaXMuI2J1ZmZlcmVkID0gMFxuICAgICAgICB0aGlzLiNzaWduYWwgPSBzaWduYWxcbiAgICB9XG5cbiAgICBlbWl0KG1ldGE6IEV2ZW50TWV0YWRhdGEsIGRhdGE/OiBKc29uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50VGltZSA9IG5ldyBEYXRlKClcbiAgICAgICAgY29uc3QgdGltZUxlZnQgPSB0aGlzLiNkZWFkbGluZSAtIERhdGUubm93KClcbiAgICAgICAgaWYgKHRoaXMuI2J1ZmZlcmVkIC8gdGhpcy4jdHJhbnNwb3J0LnB1Ymxpc2hSYXRlID4gdGltZUxlZnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXZlbnQgb3ZlcmZsb3cuJylcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBldmVudCA9XG4gICAgICAgICAgICBkYXRhID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHsgbWV0YSwgaWRzOiB0aGlzLiNpZHMsIGV2ZW50VGltZSB9XG4gICAgICAgICAgICAgICAgOiB7IG1ldGEsIGlkczogdGhpcy4jaWRzLCBldmVudFRpbWUsIGpzb246IEpTT04uc3RyaW5naWZ5KGRhdGEpIH1cbiAgICAgICAgY29uc3QgZXZlbnRzID0gdGhpcy4jZW1pdHRlZFttZXRhLnRvcGljXVxuICAgICAgICBpZiAoZXZlbnRzKSB7XG4gICAgICAgICAgICBldmVudHMucHVzaChldmVudClcbiAgICAgICAgICAgIGlmIChldmVudHMubGVuZ3RoID4gNjQgfHwgdGhpcy4jc2l6ZSA+IDY0XzAwMCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICAgICAgdm9pZCB0aGlzLmZsdXNoKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI2VtaXR0ZWRbbWV0YS50b3BpY10gPSBbZXZlbnRdXG4gICAgICAgIH1cbiAgICAgICAgKyt0aGlzLiNidWZmZXJlZFxuICAgICAgICB0aGlzLiNzaXplICs9IGV2ZW50Lmpzb24/Lmxlbmd0aCA/PyAwXG4gICAgfVxuXG4gICAgYXN5bmMgZmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuI3N0YXJ0Rmx1c2godGhpcy4jZW1pdHRlZClcbiAgICAgICAgdGhpcy4jZW1pdHRlZCA9IHt9XG4gICAgICAgIHRoaXMuI3NpemUgPSAwXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLiNmbHVzaGVyXG4gICAgfVxuXG4gICAgI3N0YXJ0Rmx1c2goZW1pdHRlZDogRW1pdEJ1ZmZlcikge1xuICAgICAgICBpZiAodGhpcy4jZmx1c2hlcikge1xuICAgICAgICAgICAgdGhpcy4jZmx1c2hlciA9IHRoaXMuI2ZsdXNoZXIudGhlbigoKSA9PiB0aGlzLiNmbHVzaEV2ZW50cyhlbWl0dGVkKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSB0aGlzLiNmbHVzaEV2ZW50cyhlbWl0dGVkKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgI2ZsdXNoRXZlbnRzKGVtaXR0ZWQ6IEVtaXRCdWZmZXIpIHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhlbWl0dGVkKS5tYXAoYXN5bmMgKFt0b3BpYywgZXZlbnRzXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuI3RyYW5zcG9ydC5zZW5kRXZlbnRzKHRvcGljLCBldmVudHMsIHRoaXMuI3NpZ25hbClcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2xvZ2dlci5mYXRhbCgnRXJyb3Igc2VuZGluZyBldmVudHMuJywgZSwgeyBldmVudHMgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy4jYnVmZmVyZWQgLT0gZXZlbnRzLmxlbmd0aFxuICAgICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
|
package/host/http.d.ts
CHANGED
package/host/http.js
CHANGED
|
@@ -25,6 +25,7 @@ export async function executeRequest(log, context, handler, options, success) {
|
|
|
25
25
|
}
|
|
26
26
|
const url = new URL(this.rawUrl);
|
|
27
27
|
parsedUrl = {
|
|
28
|
+
// eslint-disable-next-line unicorn/no-null
|
|
28
29
|
__proto__: null,
|
|
29
30
|
hash: url.hash,
|
|
30
31
|
host: url.host,
|
|
@@ -43,7 +44,7 @@ export async function executeRequest(log, context, handler, options, success) {
|
|
|
43
44
|
toString: () => url.toString(),
|
|
44
45
|
username: url.username,
|
|
45
46
|
pathStepAt: (index) => {
|
|
46
|
-
const steps = (pathSteps ??= url.pathname
|
|
47
|
+
const steps = (pathSteps ??= url.pathname.split('/'));
|
|
47
48
|
const step = steps[index + 1];
|
|
48
49
|
if (!step) {
|
|
49
50
|
throw Object.assign(new RangeError(`Path does not have a step at index ${index}.`), {
|
|
@@ -232,4 +233,4 @@ export function clientFromHeaders(headers) {
|
|
|
232
233
|
userAgent: headers['x-forwarded-for-user-agent'] ?? headers['user-agent'],
|
|
233
234
|
};
|
|
234
235
|
}
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQTBCaEQsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2hDLEdBQWUsRUFDZixPQUE2QixFQUM3QixPQUFvQixFQUNwQixPQUF1QixFQUN2QixPQUErQjtJQUUvQixNQUFNLFNBQVMsR0FDWCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUE7SUFDekYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUE7SUFDOUQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFO1FBQ3hDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQ3JFLElBQUksU0FBUyxFQUFFLENBQUM7UUFDWixHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDNUIsT0FBTztZQUNILE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLEdBQUc7U0FDZCxDQUFBO0lBQ0wsQ0FBQztJQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDMUIsSUFBSSxDQUFDO1FBQ0QsSUFBSSxTQU9XLENBQUE7UUFDZixJQUFJLFNBQStCLENBQUE7UUFDbkMsTUFBTSxHQUFHLEdBQUc7WUFDUixNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDbkIsSUFBSSxHQUFHO2dCQUNILElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ1osT0FBTyxTQUFTLENBQUE7Z0JBQ3BCLENBQUM7Z0JBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUNoQyxTQUFTLEdBQUc7b0JBQ1IsU0FBUyxFQUFFLElBQUk7b0JBQ2YsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO29CQUNkLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtvQkFDZCxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7b0JBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtvQkFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07b0JBQ2xCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtvQkFDdEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO29CQUN0QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO29CQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07b0JBQ2xCLElBQUksWUFBWTt3QkFDWixPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUE7b0JBQzNCLENBQUM7b0JBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7b0JBQzFCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO29CQUM5QixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7b0JBQ3RCLFVBQVUsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO3dCQUMxQixNQUFNLEtBQUssR0FBRyxDQUFDLFNBQVMsS0FBSyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTt3QkFDNUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQTt3QkFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUNSLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FDZixJQUFJLFVBQVUsQ0FBQyxzQ0FBc0MsS0FBSyxHQUFHLENBQUMsRUFDOUQ7Z0NBQ0ksTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dDQUNuQixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7Z0NBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzs2QkFDeEIsQ0FDSixDQUFBO3dCQUNMLENBQUM7d0JBQ0QsT0FBTyxJQUFJLENBQUE7b0JBQ2YsQ0FBQztpQkFDSixDQUFBO2dCQUNELE9BQU8sU0FBUyxDQUFBO1lBQ3BCLENBQUM7WUFDRCxJQUFJLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUMxQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO1NBQ2pDLENBQUE7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQzFDLENBQUE7UUFFRCxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtRQUU1RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsUUFBUSxDQUFDLE9BQU8sR0FBRztnQkFDZixXQUFXLEVBQUUsR0FBRztnQkFDaEIsR0FBRyxRQUFRLENBQUMsT0FBTzthQUN0QixDQUFBO1FBQ0wsQ0FBQztRQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQ3JCLFFBQVEsRUFBRTtnQkFDTixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07Z0JBQ3ZCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztnQkFDekIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO2FBQ3pCO1NBQ0osQ0FBQyxDQUFBO1FBQ0YsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7WUFDeEIsTUFBTSxPQUFPLEVBQUUsQ0FBQTtRQUNuQixDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDM0IsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFBO0lBQ25CLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ25DLEdBQUcsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUN0QyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUMzQixPQUFPLFFBQVEsQ0FBQTtRQUNuQixDQUFDO1FBQUMsT0FBTyxZQUFZLEVBQUUsQ0FBQztZQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxFQUFFLFlBQVksQ0FBQyxDQUFBO1lBQ3pFLE9BQU87Z0JBQ0gsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsTUFBTSxFQUFFLEdBQUc7YUFDZCxDQUFBO1FBQ0wsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsV0FBb0I7SUFDMUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsT0FBTztZQUNILE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLEdBQUc7U0FDZCxDQUFBO0lBQ0wsQ0FBQztTQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtRQUNoRCxPQUFPO1lBQ0gsT0FBTyxFQUFFO2dCQUNMLGNBQWMsRUFBRSxZQUFZO2FBQy9CO1lBQ0QsTUFBTSxFQUFFLEdBQUc7WUFDWCxJQUFJLEVBQUUsTUFBTTtZQUNaLE9BQU87U0FDVixDQUFBO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsT0FBTztnQkFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO2dCQUM3QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO2FBQy9CLENBQUE7UUFDTCxDQUFDO2FBQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7WUFDckQsT0FBTztnQkFDSCxPQUFPLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO2dCQUN0RCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUM1QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLE9BQU87YUFDVixDQUFBO1FBQ0wsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7WUFDeEUsT0FBTztnQkFDSCxPQUFPLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUM7Z0JBQ3BFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQzVCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTzthQUNWLENBQUE7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1lBQ3JELE9BQU87Z0JBQ0gsT0FBTyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDO2dCQUM1RCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxPQUFPO2FBQ1YsQ0FBQTtRQUNMLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsT0FBNEM7SUFDcEUsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQ3JDLE9BQU8sUUFBUSxDQUFBO0lBQ25CLENBQUM7SUFDRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUE7UUFDckMsT0FBTyxRQUFRLENBQUE7SUFDbkIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxPQUF1QjtJQUN4QyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUE7SUFDdkIsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFBO0FBQ3BCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxPQUF1QjtJQUN4QyxPQUFRLE9BQThCLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQTtBQUM3RCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsT0FBdUI7SUFDMUMsT0FBUSxPQUE4QixDQUFDLElBQUksS0FBSyxTQUFTLENBQUE7QUFDN0QsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQW9DLEVBQUUsV0FBbUI7SUFDOUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ1gsT0FBTztZQUNILGNBQWMsRUFBRSxXQUFXO1NBQzlCLENBQUE7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXLENBQUE7SUFDekMsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxDQUFVO0lBQy9CLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQTRDLENBQUE7SUFDakYsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQixPQUFPO1lBQ0gsT0FBTyxFQUFFO2dCQUNMLGNBQWMsRUFBRSxZQUFZO2FBQy9CO1lBQ0QsTUFBTSxFQUFFLE1BQU0sSUFBSSxHQUFHO1lBQ3JCLElBQUk7U0FDUCxDQUFBO0lBQ0wsQ0FBQztTQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbEMsT0FBTztZQUNILE9BQU8sRUFBRTtnQkFDTCxjQUFjLEVBQUUsa0JBQWtCO2FBQ3JDO1lBQ0QsTUFBTSxFQUFFLE1BQU0sSUFBSSxHQUFHO1lBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztTQUM3QixDQUFBO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPO1lBQ0gsT0FBTyxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsTUFBTSxJQUFJLEdBQUc7U0FDeEIsQ0FBQTtJQUNMLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUM3QixPQUF1RDtJQUV2RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDWCxPQUFPLEVBQUUsQ0FBQTtJQUNiLENBQUM7SUFDRCxPQUFPO1FBQ0gsV0FBVyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzdELFFBQVEsRUFDSixPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztZQUM1QixPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUM5QixRQUFRLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1FBQ3BDLFNBQVMsRUFBRSxPQUFPLENBQUMsNEJBQTRCLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDO0tBQzVFLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCwgbWVhc3VyZSB9IGZyb20gJy4uL2NvbnRleHQuanMnXG5pbXBvcnQgdHlwZSB7IEpzb24sIFBhcnNlZFVybCwgUmVzcG9uc2VIZWFkZXJzLCBSZXN1bHQgfSBmcm9tICcuLi9odHRwLmpzJ1xuaW1wb3J0IHsgQ2xpZW50SW5mbywgUm9vdExvZ2dlciB9IGZyb20gJy4vY29udGV4dC5qcydcbmltcG9ydCB0eXBlIHsgSHR0cEhhbmRsZXIgfSBmcm9tICcuL3JlZ2lzdHJ5LmpzJ1xuXG5leHBvcnQgdHlwZSBSZXNwb25zZSA9IHtcbiAgICBoZWFkZXJzOiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICAgc3RhdHVzOiBudW1iZXJcbiAgICBib2R5Pzogc3RyaW5nIHwgQnVmZmVyXG59XG5cbnR5cGUgUmVxdWVzdE9wdGlvbnMgPSBCb2R5bGVzc1JlcXVlc3RPcHRpb25zIHwgU3RyaW5nUmVxdWVzdE9wdGlvbnMgfCBKc29uUmVxdWVzdE9wdGlvbnNcblxudHlwZSBCb2R5bGVzc1JlcXVlc3RPcHRpb25zID0ge1xuICAgIHVyaTogc3RyaW5nXG4gICAgaGVhZGVycz86IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbn1cblxudHlwZSBTdHJpbmdSZXF1ZXN0T3B0aW9ucyA9IEJvZHlsZXNzUmVxdWVzdE9wdGlvbnMgJiB7XG4gICAgYm9keTogc3RyaW5nXG59XG5cbnR5cGUgSnNvblJlcXVlc3RPcHRpb25zID0gQm9keWxlc3NSZXF1ZXN0T3B0aW9ucyAmIHtcbiAgICBqc29uOiBKc29uXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlUmVxdWVzdChcbiAgICBsb2c6IFJvb3RMb2dnZXIsXG4gICAgY29udGV4dDogT21pdDxDb250ZXh0LCAnbG9nJz4sXG4gICAgaGFuZGxlcjogSHR0cEhhbmRsZXIsXG4gICAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMsXG4gICAgc3VjY2VzczogKCkgPT4gUHJvbWlzZTx1bmtub3duPixcbik6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICBjb25zdCBpc1NoYWxsb3cgPVxuICAgICAgICBjb250ZXh0LmVudi5TSEFMTE9XX0tFWSAmJiBvcHRpb25zLmhlYWRlcnM/LlsneC1zaGFsbG93J10gPT09IGNvbnRleHQuZW52LlNIQUxMT1dfS0VZXG4gICAgY29uc3QgaW5jbHVkZUJvZHlJbkxvZ3MgPSAhaGFuZGxlci5jb25maWc/LmV4Y2x1ZGVCb2R5RnJvbUxvZ3NcbiAgICBjb25zdCBsb2dSZXF1ZXN0ID0gaW5jbHVkZUJvZHlJbkxvZ3NcbiAgICAgICAgPyB7IG1ldGhvZDogaGFuZGxlci5tZXRob2QsIC4uLm9wdGlvbnMgfVxuICAgICAgICA6IHdpdGhvdXRSZXF1ZXN0Qm9keSh7IG1ldGhvZDogaGFuZGxlci5tZXRob2QsIC4uLm9wdGlvbnMgfSlcbiAgICBsb2cgPSBsb2cuZW5yaWNoUmVzZXJ2ZWQoeyBtZXRhOiBjb250ZXh0Lm1ldGEsIHJlcXVlc3Q6IGxvZ1JlcXVlc3QgfSlcbiAgICBpZiAoaXNTaGFsbG93KSB7XG4gICAgICAgIGxvZy50cmFjZSgnU2hhbGxvdyByZXF1ZXN0JylcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICAgICAgc3RhdHVzOiAyMDQsXG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9nLnRyYWNlKCdSZXF1ZXN0IEJFR0lOJylcbiAgICB0cnkge1xuICAgICAgICBsZXQgcGFyc2VkVXJsOlxuICAgICAgICAgICAgfCAoUGFyc2VkVXJsICYge1xuICAgICAgICAgICAgICAgICAgLyoqIEBpZ25vcmUgKi9cbiAgICAgICAgICAgICAgICAgIF9fcHJvdG9fXzogdW5rbm93blxuICAgICAgICAgICAgICAgICAgLyoqIEBpZ25vcmUgKi9cbiAgICAgICAgICAgICAgICAgIHRvU3RyaW5nOiAoKSA9PiBzdHJpbmdcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHwgdW5kZWZpbmVkXG4gICAgICAgIGxldCBwYXRoU3RlcHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gICAgICAgIGNvbnN0IHJlcSA9IHtcbiAgICAgICAgICAgIHJhd1VybDogb3B0aW9ucy51cmksXG4gICAgICAgICAgICBnZXQgdXJsKCkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlZFVybFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMucmF3VXJsKVxuICAgICAgICAgICAgICAgIHBhcnNlZFVybCA9IHtcbiAgICAgICAgICAgICAgICAgICAgX19wcm90b19fOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBoYXNoOiB1cmwuaGFzaCxcbiAgICAgICAgICAgICAgICAgICAgaG9zdDogdXJsLmhvc3QsXG4gICAgICAgICAgICAgICAgICAgIGhvc3RuYW1lOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IHVybC5ocmVmLFxuICAgICAgICAgICAgICAgICAgICBvcmlnaW46IHVybC5vcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiB1cmwucGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiB1cmwucGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHBvcnQ6IHVybC5wb3J0LFxuICAgICAgICAgICAgICAgICAgICBwcm90b2NvbDogdXJsLnByb3RvY29sLFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2g6IHVybC5zZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgIGdldCBzZWFyY2hQYXJhbXMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsLnNlYXJjaFBhcmFtc1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0b0pTT046ICgpID0+IHVybC50b0pTT04oKSxcbiAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmc6ICgpID0+IHVybC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogdXJsLnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICBwYXRoU3RlcEF0OiAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSAocGF0aFN0ZXBzID8/PSB1cmwucGF0aG5hbWU/LnNwbGl0KCcvJykgPz8gW10pXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGVwID0gc3RlcHNbaW5kZXggKyAxXVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFJhbmdlRXJyb3IoYFBhdGggZG9lcyBub3QgaGF2ZSBhIHN0ZXAgYXQgaW5kZXggJHtpbmRleH0uYCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd1VybDogdGhpcy5yYXdVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoTmFtZTogdXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcHM6IHN0ZXBzLnNsaWNlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGVwXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWRVcmxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiByZXF1ZXN0Qm9keShvcHRpb25zKSxcbiAgICAgICAgICAgIGhlYWRlcnM6IG9wdGlvbnMuaGVhZGVycyA/PyB7fSxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1lYXN1cmUobG9nLCAnZXhlY3V0aW9uJywgKCkgPT5cbiAgICAgICAgICAgIGhhbmRsZXIuZW50cnkoeyAuLi5jb250ZXh0LCBsb2cgfSwgcmVxKSxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzdWx0VG9SZXNwb25zZShyZXN1bHQsIGluY2x1ZGVCb2R5SW5Mb2dzKVxuXG4gICAgICAgIGlmIChjb250ZXh0LnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICd4LXRpbWVvdXQnOiAnMScsXG4gICAgICAgICAgICAgICAgLi4ucmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxvZyA9IGxvZy5lbnJpY2hSZXNlcnZlZCh7XG4gICAgICAgICAgICByZXNwb25zZToge1xuICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgYm9keTogcmVzcG9uc2UubG9nQm9keSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPCAzMDApIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZygnUmVxdWVzdCBFTkQnKVxuICAgICAgICAgICAgYXdhaXQgc3VjY2VzcygpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2cud2FybignUmVxdWVzdCBFTkQnKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gZXJyb3JUb1Jlc3BvbnNlKGUpXG4gICAgICAgICAgICBsb2cgPSBsb2cuZW5yaWNoUmVzZXJ2ZWQoeyByZXNwb25zZSB9KVxuICAgICAgICAgICAgbG9nLmVycm9yKCdSZXF1ZXN0IEVORCcsIGUpXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICAgICAgfSBjYXRjaCAoY29udmVydEVycm9yKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoJ0NvdWxkIG5vdCBjb252ZXJ0IGV4Y2VwdGlvbiB0byBlcnJvciByZXNwb25zZS4nLCBjb252ZXJ0RXJyb3IpXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICAgICAgICAgIHN0YXR1czogNTAwLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiByZXN1bHRUb1Jlc3BvbnNlKHJlc3VsdDogUmVzdWx0LCB3aXRoTG9nQm9keTogYm9vbGVhbik6IFJlc3BvbnNlICYgeyBsb2dCb2R5PzogdW5rbm93biB9IHtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgICAgICBzdGF0dXM6IDIwNCxcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgbG9nQm9keSA9IHdpdGhMb2dCb2R5ID8gcmVzdWx0IDogdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICAgIGJvZHk6IHJlc3VsdCxcbiAgICAgICAgICAgIGxvZ0JvZHksXG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocmVzdWx0LmJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXN1bHQuaGVhZGVycyA/PyB7fSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMgPz8gMjAwLFxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHQuYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ0JvZHkgPSB3aXRoTG9nQm9keSA/IHJlc3VsdC5ib2R5IDogdW5kZWZpbmVkXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHdpdGhDb250ZW50VHlwZShyZXN1bHQuaGVhZGVycywgJ3RleHQvcGxhaW4nKSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMgPz8gMjAwLFxuICAgICAgICAgICAgICAgIGJvZHk6IHJlc3VsdC5ib2R5LFxuICAgICAgICAgICAgICAgIGxvZ0JvZHksXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKHJlc3VsdC5ib2R5KSkge1xuICAgICAgICAgICAgY29uc3QgbG9nQm9keSA9IHdpdGhMb2dCb2R5ID8gcmVzdWx0LmJvZHkudG9TdHJpbmcoJ2Jhc2U2NCcpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHdpdGhDb250ZW50VHlwZShyZXN1bHQuaGVhZGVycywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpLFxuICAgICAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyA/PyAyMDAsXG4gICAgICAgICAgICAgICAgYm9keTogcmVzdWx0LmJvZHksXG4gICAgICAgICAgICAgICAgbG9nQm9keSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ0JvZHkgPSB3aXRoTG9nQm9keSA/IHJlc3VsdC5ib2R5IDogdW5kZWZpbmVkXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHdpdGhDb250ZW50VHlwZShyZXN1bHQuaGVhZGVycywgJ2FwcGxpY2F0aW9uL2pzb24nKSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMgPz8gMjAwLFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHJlc3VsdC5ib2R5KSxcbiAgICAgICAgICAgICAgICBsb2dCb2R5LFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiB3aXRob3V0UmVxdWVzdEJvZHkob3B0aW9uczogUmVxdWVzdE9wdGlvbnMgJiB7IG1ldGhvZDogc3RyaW5nIH0pIHtcbiAgICBpZiAoaGFzSnNvbkJvZHkob3B0aW9ucykpIHtcbiAgICAgICAgY29uc3QgeyBqc29uLCAuLi5ib2R5bGVzcyB9ID0gb3B0aW9uc1xuICAgICAgICByZXR1cm4gYm9keWxlc3NcbiAgICB9XG4gICAgaWYgKGhhc1N0cmluZ0JvZHkob3B0aW9ucykpIHtcbiAgICAgICAgY29uc3QgeyBib2R5LCAuLi5ib2R5bGVzcyB9ID0gb3B0aW9uc1xuICAgICAgICByZXR1cm4gYm9keWxlc3NcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gcmVxdWVzdEJvZHkob3B0aW9uczogUmVxdWVzdE9wdGlvbnMpOiBKc29uIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoaGFzSnNvbkJvZHkob3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuanNvblxuICAgIH1cbiAgICBpZiAoaGFzU3RyaW5nQm9keShvcHRpb25zKSkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5ib2R5XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaGFzSnNvbkJvZHkob3B0aW9uczogUmVxdWVzdE9wdGlvbnMpOiBvcHRpb25zIGlzIEpzb25SZXF1ZXN0T3B0aW9ucyB7XG4gICAgcmV0dXJuIChvcHRpb25zIGFzIHsganNvbj86IHVua25vd24gfSkuanNvbiAhPT0gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGhhc1N0cmluZ0JvZHkob3B0aW9uczogUmVxdWVzdE9wdGlvbnMpOiBvcHRpb25zIGlzIFN0cmluZ1JlcXVlc3RPcHRpb25zIHtcbiAgICByZXR1cm4gKG9wdGlvbnMgYXMgeyBib2R5PzogdW5rbm93biB9KS5ib2R5ICE9PSB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gd2l0aENvbnRlbnRUeXBlKGhlYWRlcnM6IFJlc3BvbnNlSGVhZGVycyB8IHVuZGVmaW5lZCwgY29udGVudFR5cGU6IHN0cmluZykge1xuICAgIGlmICghaGVhZGVycykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6IGNvbnRlbnRUeXBlLFxuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghaGVhZGVyc1snY29udGVudC10eXBlJ10pIHtcbiAgICAgICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSBjb250ZW50VHlwZVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVyc1xufVxuXG5mdW5jdGlvbiBlcnJvclRvUmVzcG9uc2UoZTogdW5rbm93bik6IFJlc3BvbnNlIHtcbiAgICBjb25zdCB7IGJvZHksIHN0YXR1c0NvZGU6IHN0YXR1cyB9ID0gZSBhcyB7IGJvZHk/OiB1bmtub3duOyBzdGF0dXNDb2RlPzogbnVtYmVyIH1cbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ2NvbnRlbnQtdHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGF0dXM6IHN0YXR1cyA/PyA1MDAsXG4gICAgICAgICAgICBib2R5LFxuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXR1czogc3RhdHVzID8/IDUwMCxcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXMgPz8gNTAwLFxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xpZW50RnJvbUhlYWRlcnMoXG4gICAgaGVhZGVyczogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCxcbik6IENsaWVudEluZm8ge1xuICAgIGlmICghaGVhZGVycykge1xuICAgICAgICByZXR1cm4ge31cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGhlYWRlcnNbJ3gtcmVxdWVzdC1pZCddID8/IGhlYWRlcnNbJ3JlcXVlc3QtaWQnXSxcbiAgICAgICAgY2xpZW50SWQ6XG4gICAgICAgICAgICBoZWFkZXJzWyd4LWNsaWVudC1pZCddID8/XG4gICAgICAgICAgICBoZWFkZXJzWyd4LWluc3RhbGxhdGlvbi1pZCddID8/XG4gICAgICAgICAgICBoZWFkZXJzWydjbGllbnQtaWQnXSA/P1xuICAgICAgICAgICAgaGVhZGVyc1snaW5zdGFsbGF0aW9uLWlkJ10sXG4gICAgICAgIGNsaWVudElwOiBoZWFkZXJzWyd4LWZvcndhcmRlZC1mb3InXSxcbiAgICAgICAgdXNlckFnZW50OiBoZWFkZXJzWyd4LWZvcndhcmRlZC1mb3ItdXNlci1hZ2VudCddID8/IGhlYWRlcnNbJ3VzZXItYWdlbnQnXSxcbiAgICB9XG59XG4iXX0=
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImh0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQTBCaEQsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2hDLEdBQWUsRUFDZixPQUE2QixFQUM3QixPQUFvQixFQUNwQixPQUF1QixFQUN2QixPQUErQjtJQUUvQixNQUFNLFNBQVMsR0FDWCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUE7SUFDekYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUE7SUFDOUQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCO1FBQ2hDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFO1FBQ3hDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQ3JFLElBQUksU0FBUyxFQUFFLENBQUM7UUFDWixHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDNUIsT0FBTztZQUNILE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLEdBQUc7U0FDZCxDQUFBO0lBQ0wsQ0FBQztJQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDMUIsSUFBSSxDQUFDO1FBQ0QsSUFBSSxTQU9XLENBQUE7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O1lBQ1gsTUFBTSxFQUFFLE1BQU0sSUFBSSxHQUFHO1NBQ3hCLENBQUE7SUFDTCxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDN0IsT0FBdUQ7SUFFdkQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTztRQUNILFdBQVcsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQztRQUM3RCxRQUFRLEVBQ0osT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUN0QixPQUFPLENBQUMsbUJBQW1CLENBQUM7WUFDNUIsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUNwQixPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDOUIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUNwQyxTQUFTLEVBQUUsT0FBTyxDQUFDLDRCQUE0QixDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQztLQUM1RSxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHQsIG1lYXN1cmUgfSBmcm9tICcuLi9jb250ZXh0LmpzJ1xuaW1wb3J0IHR5cGUgeyBKc29uLCBQYXJzZWRVcmwsIFJlc3BvbnNlSGVhZGVycywgUmVzdWx0IH0gZnJvbSAnLi4vaHR0cC5qcydcbmltcG9ydCB7IENsaWVudEluZm8sIFJvb3RMb2dnZXIgfSBmcm9tICcuL2NvbnRleHQuanMnXG5pbXBvcnQgdHlwZSB7IEh0dHBIYW5kbGVyIH0gZnJvbSAnLi9yZWdpc3RyeS5qcydcblxuZXhwb3J0IHR5cGUgUmVzcG9uc2UgPSB7XG4gICAgaGVhZGVyczogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIHN0YXR1czogbnVtYmVyXG4gICAgYm9keT86IHN0cmluZyB8IEJ1ZmZlclxufVxuXG50eXBlIFJlcXVlc3RPcHRpb25zID0gQm9keWxlc3NSZXF1ZXN0T3B0aW9ucyB8IFN0cmluZ1JlcXVlc3RPcHRpb25zIHwgSnNvblJlcXVlc3RPcHRpb25zXG5cbnR5cGUgQm9keWxlc3NSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICB1cmk6IHN0cmluZ1xuICAgIGhlYWRlcnM/OiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG59XG5cbnR5cGUgU3RyaW5nUmVxdWVzdE9wdGlvbnMgPSBCb2R5bGVzc1JlcXVlc3RPcHRpb25zICYge1xuICAgIGJvZHk6IHN0cmluZ1xufVxuXG50eXBlIEpzb25SZXF1ZXN0T3B0aW9ucyA9IEJvZHlsZXNzUmVxdWVzdE9wdGlvbnMgJiB7XG4gICAganNvbjogSnNvblxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZVJlcXVlc3QoXG4gICAgbG9nOiBSb290TG9nZ2VyLFxuICAgIGNvbnRleHQ6IE9taXQ8Q29udGV4dCwgJ2xvZyc+LFxuICAgIGhhbmRsZXI6IEh0dHBIYW5kbGVyLFxuICAgIG9wdGlvbnM6IFJlcXVlc3RPcHRpb25zLFxuICAgIHN1Y2Nlc3M6ICgpID0+IFByb21pc2U8dW5rbm93bj4sXG4pOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgY29uc3QgaXNTaGFsbG93ID1cbiAgICAgICAgY29udGV4dC5lbnYuU0hBTExPV19LRVkgJiYgb3B0aW9ucy5oZWFkZXJzPy5bJ3gtc2hhbGxvdyddID09PSBjb250ZXh0LmVudi5TSEFMTE9XX0tFWVxuICAgIGNvbnN0IGluY2x1ZGVCb2R5SW5Mb2dzID0gIWhhbmRsZXIuY29uZmlnPy5leGNsdWRlQm9keUZyb21Mb2dzXG4gICAgY29uc3QgbG9nUmVxdWVzdCA9IGluY2x1ZGVCb2R5SW5Mb2dzXG4gICAgICAgID8geyBtZXRob2Q6IGhhbmRsZXIubWV0aG9kLCAuLi5vcHRpb25zIH1cbiAgICAgICAgOiB3aXRob3V0UmVxdWVzdEJvZHkoeyBtZXRob2Q6IGhhbmRsZXIubWV0aG9kLCAuLi5vcHRpb25zIH0pXG4gICAgbG9nID0gbG9nLmVucmljaFJlc2VydmVkKHsgbWV0YTogY29udGV4dC5tZXRhLCByZXF1ZXN0OiBsb2dSZXF1ZXN0IH0pXG4gICAgaWYgKGlzU2hhbGxvdykge1xuICAgICAgICBsb2cudHJhY2UoJ1NoYWxsb3cgcmVxdWVzdCcpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgICAgIHN0YXR1czogMjA0LFxuICAgICAgICB9XG4gICAgfVxuICAgIGxvZy50cmFjZSgnUmVxdWVzdCBCRUdJTicpXG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IHBhcnNlZFVybDpcbiAgICAgICAgICAgIHwgKFBhcnNlZFVybCAmIHtcbiAgICAgICAgICAgICAgICAgIC8qKiBAaWdub3JlICovXG4gICAgICAgICAgICAgICAgICBfX3Byb3RvX186IHVua25vd25cbiAgICAgICAgICAgICAgICAgIC8qKiBAaWdub3JlICovXG4gICAgICAgICAgICAgICAgICB0b1N0cmluZzogKCkgPT4gc3RyaW5nXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB8IHVuZGVmaW5lZFxuICAgICAgICBsZXQgcGF0aFN0ZXBzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgICAgICBjb25zdCByZXEgPSB7XG4gICAgICAgICAgICByYXdVcmw6IG9wdGlvbnMudXJpLFxuICAgICAgICAgICAgZ2V0IHVybCgpIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkVXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWRVcmxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnJhd1VybClcbiAgICAgICAgICAgICAgICBwYXJzZWRVcmwgPSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLW51bGxcbiAgICAgICAgICAgICAgICAgICAgX19wcm90b19fOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBoYXNoOiB1cmwuaGFzaCxcbiAgICAgICAgICAgICAgICAgICAgaG9zdDogdXJsLmhvc3QsXG4gICAgICAgICAgICAgICAgICAgIGhvc3RuYW1lOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IHVybC5ocmVmLFxuICAgICAgICAgICAgICAgICAgICBvcmlnaW46IHVybC5vcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiB1cmwucGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lOiB1cmwucGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHBvcnQ6IHVybC5wb3J0LFxuICAgICAgICAgICAgICAgICAgICBwcm90b2NvbDogdXJsLnByb3RvY29sLFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2g6IHVybC5zZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgIGdldCBzZWFyY2hQYXJhbXMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsLnNlYXJjaFBhcmFtc1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0b0pTT046ICgpID0+IHVybC50b0pTT04oKSxcbiAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmc6ICgpID0+IHVybC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogdXJsLnVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICBwYXRoU3RlcEF0OiAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSAocGF0aFN0ZXBzID8/PSB1cmwucGF0aG5hbWUuc3BsaXQoJy8nKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwc1tpbmRleCArIDFdXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUmFuZ2VFcnJvcihgUGF0aCBkb2VzIG5vdCBoYXZlIGEgc3RlcCBhdCBpbmRleCAke2luZGV4fS5gKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3VXJsOiB0aGlzLnJhd1VybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhOYW1lOiB1cmwucGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwczogc3RlcHMuc2xpY2UoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZXBcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlZFVybFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IHJlcXVlc3RCb2R5KG9wdGlvbnMpLFxuICAgICAgICAgICAgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzID8/IHt9LFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbWVhc3VyZShsb2csICdleGVjdXRpb24nLCAoKSA9PlxuICAgICAgICAgICAgaGFuZGxlci5lbnRyeSh7IC4uLmNvbnRleHQsIGxvZyB9LCByZXEpLFxuICAgICAgICApXG5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXN1bHRUb1Jlc3BvbnNlKHJlc3VsdCwgaW5jbHVkZUJvZHlJbkxvZ3MpXG5cbiAgICAgICAgaWYgKGNvbnRleHQuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgJ3gtdGltZW91dCc6ICcxJyxcbiAgICAgICAgICAgICAgICAuLi5yZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbG9nID0gbG9nLmVucmljaFJlc2VydmVkKHtcbiAgICAgICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgICAgICBib2R5OiByZXNwb25zZS5sb2dCb2R5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKCdSZXF1ZXN0IEVORCcpXG4gICAgICAgICAgICBhd2FpdCBzdWNjZXNzKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZy53YXJuKCdSZXF1ZXN0IEVORCcpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBlcnJvclRvUmVzcG9uc2UoZSlcbiAgICAgICAgICAgIGxvZyA9IGxvZy5lbnJpY2hSZXNlcnZlZCh7IHJlc3BvbnNlIH0pXG4gICAgICAgICAgICBsb2cuZXJyb3IoJ1JlcXVlc3QgRU5EJywgZSlcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZVxuICAgICAgICB9IGNhdGNoIChjb252ZXJ0RXJyb3IpIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcignQ291bGQgbm90IGNvbnZlcnQgZXhjZXB0aW9uIHRvIGVycm9yIHJlc3BvbnNlLicsIGNvbnZlcnRFcnJvcilcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgICAgICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHJlc3VsdFRvUmVzcG9uc2UocmVzdWx0OiBSZXN1bHQsIHdpdGhMb2dCb2R5OiBib29sZWFuKTogUmVzcG9uc2UgJiB7IGxvZ0JvZHk/OiB1bmtub3duIH0ge1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgICAgIHN0YXR1czogMjA0LFxuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBsb2dCb2R5ID0gd2l0aExvZ0JvZHkgPyByZXN1bHQgOiB1bmRlZmluZWRcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnY29udGVudC10eXBlJzogJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXR1czogMjAwLFxuICAgICAgICAgICAgYm9keTogcmVzdWx0LFxuICAgICAgICAgICAgbG9nQm9keSxcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZXN1bHQuYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlc3VsdC5oZWFkZXJzID8/IHt9LFxuICAgICAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyA/PyAyMDAsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc3VsdC5ib2R5ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgbG9nQm9keSA9IHdpdGhMb2dCb2R5ID8gcmVzdWx0LmJvZHkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogd2l0aENvbnRlbnRUeXBlKHJlc3VsdC5oZWFkZXJzLCAndGV4dC9wbGFpbicpLFxuICAgICAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyA/PyAyMDAsXG4gICAgICAgICAgICAgICAgYm9keTogcmVzdWx0LmJvZHksXG4gICAgICAgICAgICAgICAgbG9nQm9keSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIocmVzdWx0LmJvZHkpKSB7XG4gICAgICAgICAgICBjb25zdCBsb2dCb2R5ID0gd2l0aExvZ0JvZHkgPyByZXN1bHQuYm9keS50b1N0cmluZygnYmFzZTY0JykgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogd2l0aENvbnRlbnRUeXBlKHJlc3VsdC5oZWFkZXJzLCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyksXG4gICAgICAgICAgICAgICAgc3RhdHVzOiByZXN1bHQuc3RhdHVzID8/IDIwMCxcbiAgICAgICAgICAgICAgICBib2R5OiByZXN1bHQuYm9keSxcbiAgICAgICAgICAgICAgICBsb2dCb2R5LFxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbG9nQm9keSA9IHdpdGhMb2dCb2R5ID8gcmVzdWx0LmJvZHkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogd2l0aENvbnRlbnRUeXBlKHJlc3VsdC5oZWFkZXJzLCAnYXBwbGljYXRpb24vanNvbicpLFxuICAgICAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyA/PyAyMDAsXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVzdWx0LmJvZHkpLFxuICAgICAgICAgICAgICAgIGxvZ0JvZHksXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHdpdGhvdXRSZXF1ZXN0Qm9keShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyAmIHsgbWV0aG9kOiBzdHJpbmcgfSkge1xuICAgIGlmIChoYXNKc29uQm9keShvcHRpb25zKSkge1xuICAgICAgICBjb25zdCB7IGpzb24sIC4uLmJvZHlsZXNzIH0gPSBvcHRpb25zXG4gICAgICAgIHJldHVybiBib2R5bGVzc1xuICAgIH1cbiAgICBpZiAoaGFzU3RyaW5nQm9keShvcHRpb25zKSkge1xuICAgICAgICBjb25zdCB7IGJvZHksIC4uLmJvZHlsZXNzIH0gPSBvcHRpb25zXG4gICAgICAgIHJldHVybiBib2R5bGVzc1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9uc1xufVxuXG5mdW5jdGlvbiByZXF1ZXN0Qm9keShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyk6IEpzb24gfCBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChoYXNKc29uQm9keShvcHRpb25zKSkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5qc29uXG4gICAgfVxuICAgIGlmIChoYXNTdHJpbmdCb2R5KG9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmJvZHlcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBoYXNKc29uQm9keShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyk6IG9wdGlvbnMgaXMgSnNvblJlcXVlc3RPcHRpb25zIHtcbiAgICByZXR1cm4gKG9wdGlvbnMgYXMgeyBqc29uPzogdW5rbm93biB9KS5qc29uICE9PSB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaGFzU3RyaW5nQm9keShvcHRpb25zOiBSZXF1ZXN0T3B0aW9ucyk6IG9wdGlvbnMgaXMgU3RyaW5nUmVxdWVzdE9wdGlvbnMge1xuICAgIHJldHVybiAob3B0aW9ucyBhcyB7IGJvZHk/OiB1bmtub3duIH0pLmJvZHkgIT09IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiB3aXRoQ29udGVudFR5cGUoaGVhZGVyczogUmVzcG9uc2VIZWFkZXJzIHwgdW5kZWZpbmVkLCBjb250ZW50VHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnY29udGVudC10eXBlJzogY29udGVudFR5cGUsXG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFoZWFkZXJzWydjb250ZW50LXR5cGUnXSkge1xuICAgICAgICBoZWFkZXJzWydjb250ZW50LXR5cGUnXSA9IGNvbnRlbnRUeXBlXG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzXG59XG5cbmZ1bmN0aW9uIGVycm9yVG9SZXNwb25zZShlOiB1bmtub3duKTogUmVzcG9uc2Uge1xuICAgIGNvbnN0IHsgYm9keSwgc3RhdHVzQ29kZTogc3RhdHVzIH0gPSBlIGFzIHsgYm9keT86IHVua25vd247IHN0YXR1c0NvZGU/OiBudW1iZXIgfVxuICAgIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnY29udGVudC10eXBlJzogJ3RleHQvcGxhaW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXR1czogc3RhdHVzID8/IDUwMCxcbiAgICAgICAgICAgIGJvZHksXG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXMgPz8gNTAwLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgICAgICBzdGF0dXM6IHN0YXR1cyA/PyA1MDAsXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGllbnRGcm9tSGVhZGVycyhcbiAgICBoZWFkZXJzOiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkLFxuKTogQ2xpZW50SW5mbyB7XG4gICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICAgIHJldHVybiB7fVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb25JZDogaGVhZGVyc1sneC1yZXF1ZXN0LWlkJ10gPz8gaGVhZGVyc1sncmVxdWVzdC1pZCddLFxuICAgICAgICBjbGllbnRJZDpcbiAgICAgICAgICAgIGhlYWRlcnNbJ3gtY2xpZW50LWlkJ10gPz9cbiAgICAgICAgICAgIGhlYWRlcnNbJ3gtaW5zdGFsbGF0aW9uLWlkJ10gPz9cbiAgICAgICAgICAgIGhlYWRlcnNbJ2NsaWVudC1pZCddID8/XG4gICAgICAgICAgICBoZWFkZXJzWydpbnN0YWxsYXRpb24taWQnXSxcbiAgICAgICAgY2xpZW50SXA6IGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvciddLFxuICAgICAgICB1c2VyQWdlbnQ6IGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvci11c2VyLWFnZW50J10gPz8gaGVhZGVyc1sndXNlci1hZ2VudCddLFxuICAgIH1cbn1cbiJdfQ==
|
package/host/logging.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import { LogLevel, LogTransport, RootLogger } from './context.js';
|
|
3
2
|
export declare function makeLogger(transport: LogTransport, minimumLogLevel: LogLevel | undefined, signal: AbortSignal): RootLogger;
|
|
4
3
|
export declare function highPrecisionISODate(performanceNow: number): string;
|
package/host/logging.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { performance } from 'perf_hooks';
|
|
1
|
+
import { performance } from 'node:perf_hooks';
|
|
2
2
|
export function makeLogger(transport, minimumLogLevel, signal) {
|
|
3
3
|
return new EnrichingLogger(new LogBuffer(transport, signal), minimumLogLevel
|
|
4
4
|
? ['fatal', 'error', 'warning', 'info', 'debug', 'trace'].indexOf(minimumLogLevel)
|
|
5
5
|
: 5, signal);
|
|
6
6
|
}
|
|
7
|
-
const performanceTimeOrigin100ns = Math.round(performance.timeOrigin *
|
|
7
|
+
const performanceTimeOrigin100ns = Math.round(performance.timeOrigin * 10_000);
|
|
8
8
|
export function highPrecisionISODate(performanceNow) {
|
|
9
|
-
const now100ns = performanceTimeOrigin100ns + Math.round(performanceNow *
|
|
10
|
-
return (new Date(now100ns /
|
|
11
|
-
(now100ns %
|
|
9
|
+
const now100ns = performanceTimeOrigin100ns + Math.round(performanceNow * 10_000);
|
|
10
|
+
return (new Date(now100ns / 10_000).toISOString().slice(0, 20) +
|
|
11
|
+
(now100ns % 10_000_000).toString().padStart(7, '0') +
|
|
12
12
|
'Z');
|
|
13
13
|
}
|
|
14
14
|
class LogBuffer {
|
|
@@ -31,13 +31,7 @@ class LogBuffer {
|
|
|
31
31
|
message,
|
|
32
32
|
error: errorAsJson(error),
|
|
33
33
|
...reservedEnrichment,
|
|
34
|
-
...(
|
|
35
|
-
fields: customEnrichment
|
|
36
|
-
? fields
|
|
37
|
-
? { ...customEnrichment, ...fields }
|
|
38
|
-
: customEnrichment
|
|
39
|
-
: fields,
|
|
40
|
-
}),
|
|
34
|
+
...extra(fields, customEnrichment),
|
|
41
35
|
});
|
|
42
36
|
this.#entries.push({
|
|
43
37
|
timestamp: offset,
|
|
@@ -71,7 +65,7 @@ class LogBuffer {
|
|
|
71
65
|
});
|
|
72
66
|
}
|
|
73
67
|
else {
|
|
74
|
-
if (numericLogLevel < 2 || this.#entries.length > 8 || this.#size >
|
|
68
|
+
if (numericLogLevel < 2 || this.#entries.length > 8 || this.#size > 64_000) {
|
|
75
69
|
// eslint-disable-next-line no-void
|
|
76
70
|
void this.flush();
|
|
77
71
|
}
|
|
@@ -106,6 +100,18 @@ class LogBuffer {
|
|
|
106
100
|
}
|
|
107
101
|
}
|
|
108
102
|
}
|
|
103
|
+
function extra(fields, customEnrichment) {
|
|
104
|
+
if (!fields) {
|
|
105
|
+
if (!customEnrichment) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
return customEnrichment;
|
|
109
|
+
}
|
|
110
|
+
if (!customEnrichment) {
|
|
111
|
+
return fields;
|
|
112
|
+
}
|
|
113
|
+
return { ...customEnrichment, ...fields };
|
|
114
|
+
}
|
|
109
115
|
class EnrichingLogger {
|
|
110
116
|
#buffer;
|
|
111
117
|
#reservedEnrichment;
|
|
@@ -119,7 +125,7 @@ class EnrichingLogger {
|
|
|
119
125
|
}
|
|
120
126
|
enrich(fields) {
|
|
121
127
|
return new EnrichingLogger(this.#buffer, this.#level, this.#reservedEnrichment, {
|
|
122
|
-
...
|
|
128
|
+
...this.#customEnrichment,
|
|
123
129
|
...fields,
|
|
124
130
|
});
|
|
125
131
|
}
|
|
@@ -128,7 +134,7 @@ class EnrichingLogger {
|
|
|
128
134
|
}
|
|
129
135
|
enrichReserved(fields) {
|
|
130
136
|
return new EnrichingLogger(this.#buffer, this.#level, {
|
|
131
|
-
...
|
|
137
|
+
...this.#reservedEnrichment,
|
|
132
138
|
...fields,
|
|
133
139
|
}, this.#customEnrichment);
|
|
134
140
|
}
|
|
@@ -188,4 +194,4 @@ function errorAsJson(error) {
|
|
|
188
194
|
name: typeof error,
|
|
189
195
|
};
|
|
190
196
|
}
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUl4QyxNQUFNLFVBQVUsVUFBVSxDQUN0QixTQUF1QixFQUN2QixlQUFxQyxFQUNyQyxNQUFtQjtJQUVuQixPQUFPLElBQUksZUFBZSxDQUN0QixJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQ2hDLGVBQWU7UUFDWCxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDbEYsQ0FBQyxDQUFDLENBQUMsRUFDUCxNQUFNLENBQ1QsQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQTtBQUU3RSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsY0FBc0I7SUFDdkQsTUFBTSxRQUFRLEdBQUcsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUE7SUFDaEYsT0FBTyxDQUNILElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN6RCxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUNqRCxHQUFHLENBQ04sQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLFNBQVM7SUFDRixVQUFVLENBQWM7SUFDakMsUUFBUSxHQUFlLEVBQUUsQ0FBQTtJQUN6QixLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ1QsUUFBUSxDQUE0QjtJQUMzQixPQUFPLENBQWE7SUFDN0IsZUFBZSxDQUFxQjtJQUNwQyxRQUFRLENBQTRCO0lBRXBDLFlBQVksU0FBdUIsRUFBRSxNQUFtQjtRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQTtJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUNILEtBQWUsRUFDZixlQUF1QixFQUN2QixPQUFlLEVBQ2YsS0FBYyxFQUNkLE1BQTBCLEVBQzFCLGtCQUFzQyxFQUN0QyxnQkFBb0M7UUFFcEMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDeEIsU0FBUyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUN2QyxLQUFLO1lBQ0wsT0FBTztZQUNQLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3pCLEdBQUcsa0JBQWtCO1lBQ3JCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUk7Z0JBQ3BDLE1BQU0sRUFBRSxnQkFBZ0I7b0JBQ3BCLENBQUMsQ0FBQyxNQUFNO3dCQUNKLENBQUMsQ0FBQyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLEVBQUU7d0JBQ3BDLENBQUMsQ0FBQyxnQkFBZ0I7b0JBQ3RCLENBQUMsQ0FBQyxNQUFNO2FBQ2YsQ0FBQztTQUNMLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2YsU0FBUyxFQUFFLE1BQU07WUFDakIsS0FBSztZQUNMLE9BQU87WUFDUCxLQUFLO1lBQ0wsSUFBSTtTQUNQLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUV6QixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsbUNBQW1DO1lBQ25DLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDbEIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtZQUMzQixZQUFZLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNoQixPQUFNO2dCQUNWLENBQUM7Z0JBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQzNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtnQkFDZCxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFBO2dCQUM5QixDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7Z0JBQ2hDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxlQUFlLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDO2dCQUN4RSxtQ0FBbUM7Z0JBQ25DLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQzVCLG1DQUFtQztvQkFDbkMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7b0JBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFBO2dCQUM3QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDWixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTTtRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUE7UUFDN0IsQ0FBQztRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQzlCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBbUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FDckQsQ0FBQTtRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3RFLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUFFRCxNQUFNLGVBQWU7SUFDUixPQUFPLENBQVc7SUFDbEIsbUJBQW1CLENBQVM7SUFDNUIsaUJBQWlCLENBQVM7SUFDMUIsTUFBTSxDQUFRO0lBRXZCLFlBQ0ksTUFBaUIsRUFDakIsS0FBYSxFQUNiLGtCQUEyQixFQUMzQixnQkFBeUI7UUFFekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFBO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWM7UUFDakIsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVFLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1lBQ2pDLEdBQUcsTUFBTTtTQUNaLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxLQUFLO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQy9CLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUN6QixPQUFPLElBQUksZUFBZSxDQUN0QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxNQUFNLEVBQ1g7WUFDSSxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztZQUNuQyxHQUFHLE1BQU07U0FDWixFQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQTtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxNQUEwQjtRQUM3RCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTTtRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsT0FBTyxFQUNQLENBQUMsRUFDRCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQTtJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxNQUEwQjtRQUM3RCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTTtRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsT0FBTyxFQUNQLENBQUMsRUFDRCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQTtJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxNQUEwQjtRQUM1RCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTTtRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsTUFBTSxFQUNOLENBQUMsRUFDRCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQTtJQUNMLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxNQUEwQjtRQUM1RCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTTtRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsU0FBUyxFQUNULENBQUMsRUFDRCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQTtJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxNQUEwQjtRQUM3RCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTTtRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsT0FBTyxFQUNQLENBQUMsRUFDRCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQTtJQUNMLENBQUM7SUFDRCxLQUFLLENBQUMsT0FBZSxFQUFFLEtBQWMsRUFBRSxNQUEwQjtRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDaEIsT0FBTyxFQUNQLENBQUMsRUFDRCxPQUFPLEVBQ1AsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FDekIsQ0FBQTtJQUNMLENBQUM7Q0FDSjtBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWM7SUFDL0IsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxPQUFPLFNBQVMsQ0FBQTtJQUNwQixDQUFDO0lBQ0QsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDekIsT0FBTztZQUNILE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLEdBQUksS0FBK0M7U0FDOUMsQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLEtBQUssWUFBWSxNQUFNLEVBQUUsQ0FBQztRQUMxQixPQUFPO1lBQ0gsR0FBRyxLQUFLO1NBQ0gsQ0FBQTtJQUNiLENBQUM7SUFDRCxPQUFPO1FBQ0gsT0FBTyxFQUFHLEtBQTRCLEVBQUUsUUFBUSxFQUFFO1FBQ2xELElBQUksRUFBRSxPQUFPLEtBQUs7S0FDYixDQUFBO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBlcmZvcm1hbmNlIH0gZnJvbSAncGVyZl9ob29rcydcbmltcG9ydCB7IEpzb24sIExvZ2dlciB9IGZyb20gJy4uL2NvbnRleHQuanMnXG5pbXBvcnQgeyBMb2dFbnRyeSwgTG9nTGV2ZWwsIExvZ1RyYW5zcG9ydCwgUm9vdExvZ2dlciB9IGZyb20gJy4vY29udGV4dC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VMb2dnZXIoXG4gICAgdHJhbnNwb3J0OiBMb2dUcmFuc3BvcnQsXG4gICAgbWluaW11bUxvZ0xldmVsOiBMb2dMZXZlbCB8IHVuZGVmaW5lZCxcbiAgICBzaWduYWw6IEFib3J0U2lnbmFsLFxuKTogUm9vdExvZ2dlciB7XG4gICAgcmV0dXJuIG5ldyBFbnJpY2hpbmdMb2dnZXIoXG4gICAgICAgIG5ldyBMb2dCdWZmZXIodHJhbnNwb3J0LCBzaWduYWwpLFxuICAgICAgICBtaW5pbXVtTG9nTGV2ZWxcbiAgICAgICAgICAgID8gWydmYXRhbCcsICdlcnJvcicsICd3YXJuaW5nJywgJ2luZm8nLCAnZGVidWcnLCAndHJhY2UnXS5pbmRleE9mKG1pbmltdW1Mb2dMZXZlbClcbiAgICAgICAgICAgIDogNSxcbiAgICAgICAgc2lnbmFsLFxuICAgIClcbn1cblxuY29uc3QgcGVyZm9ybWFuY2VUaW1lT3JpZ2luMTAwbnMgPSBNYXRoLnJvdW5kKHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKiAxMDAwMClcblxuZXhwb3J0IGZ1bmN0aW9uIGhpZ2hQcmVjaXNpb25JU09EYXRlKHBlcmZvcm1hbmNlTm93OiBudW1iZXIpIHtcbiAgICBjb25zdCBub3cxMDBucyA9IHBlcmZvcm1hbmNlVGltZU9yaWdpbjEwMG5zICsgTWF0aC5yb3VuZChwZXJmb3JtYW5jZU5vdyAqIDEwMDAwKVxuICAgIHJldHVybiAoXG4gICAgICAgIG5ldyBEYXRlKG5vdzEwMG5zIC8gMTAwMDApLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDIwKSArXG4gICAgICAgIChub3cxMDBucyAlIDEwMDAwMDAwKS50b1N0cmluZygpLnBhZFN0YXJ0KDcsICcwJykgK1xuICAgICAgICAnWidcbiAgICApXG59XG5cbmNsYXNzIExvZ0J1ZmZlciB7XG4gICAgcmVhZG9ubHkgI3RyYW5zcG9ydDogTG9nVHJhbnNwb3J0XG4gICAgI2VudHJpZXM6IExvZ0VudHJ5W10gPSBbXVxuICAgICNzaXplID0gMFxuICAgICNmbHVzaGVyPzogUHJvbWlzZTx2b2lkPiB8IHVuZGVmaW5lZFxuICAgIHJlYWRvbmx5ICNzaWduYWw6IEFib3J0U2lnbmFsXG4gICAgI2FzeW5jVHJhbnNwb3J0OiBib29sZWFuIHwgdW5kZWZpbmVkXG4gICAgI3RpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0IHwgdW5kZWZpbmVkXG5cbiAgICBjb25zdHJ1Y3Rvcih0cmFuc3BvcnQ6IExvZ1RyYW5zcG9ydCwgc2lnbmFsOiBBYm9ydFNpZ25hbCkge1xuICAgICAgICB0aGlzLiN0cmFuc3BvcnQgPSB0cmFuc3BvcnRcbiAgICAgICAgdGhpcy4jc2lnbmFsID0gc2lnbmFsXG4gICAgfVxuXG4gICAgY29sbGVjdChcbiAgICAgICAgbGV2ZWw6IExvZ0xldmVsLFxuICAgICAgICBudW1lcmljTG9nTGV2ZWw6IG51bWJlcixcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBlcnJvcjogdW5rbm93bixcbiAgICAgICAgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgICAgIHJlc2VydmVkRW5yaWNobWVudDogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgICAgICBjdXN0b21FbnJpY2htZW50OiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHBlcmZvcm1hbmNlLm5vdygpXG4gICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB0aW1lc3RhbXA6IGhpZ2hQcmVjaXNpb25JU09EYXRlKG9mZnNldCksXG4gICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcjogZXJyb3JBc0pzb24oZXJyb3IpLFxuICAgICAgICAgICAgLi4ucmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgLi4uKCghIWZpZWxkcyB8fCAhIWN1c3RvbUVucmljaG1lbnQpICYmIHtcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGN1c3RvbUVucmljaG1lbnRcbiAgICAgICAgICAgICAgICAgICAgPyBmaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgICAgID8geyAuLi5jdXN0b21FbnJpY2htZW50LCAuLi5maWVsZHMgfVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXN0b21FbnJpY2htZW50XG4gICAgICAgICAgICAgICAgICAgIDogZmllbGRzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuI2VudHJpZXMucHVzaCh7XG4gICAgICAgICAgICB0aW1lc3RhbXA6IG9mZnNldCxcbiAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAganNvbixcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy4jc2l6ZSArPSBqc29uLmxlbmd0aFxuXG4gICAgICAgIGlmICh0aGlzLiNhc3luY1RyYW5zcG9ydCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICB2b2lkIHRoaXMuI3RyYW5zcG9ydC5zZW5kRW50cmllcyh0aGlzLiNlbnRyaWVzLCB0aGlzLiNzaWduYWwpXG4gICAgICAgICAgICB0aGlzLiNlbnRyaWVzID0gW11cbiAgICAgICAgICAgIHRoaXMuI3NpemUgPSAwXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy4jYXN5bmNUcmFuc3BvcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jYXN5bmNUcmFuc3BvcnQgPSB0cnVlXG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLiNmbHVzaGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzZW5kUmVzdWx0ID0gdGhpcy4jdHJhbnNwb3J0LnNlbmRFbnRyaWVzKHRoaXMuI2VudHJpZXMsIHRoaXMuI3NpZ25hbClcbiAgICAgICAgICAgICAgICB0aGlzLiNlbnRyaWVzID0gW11cbiAgICAgICAgICAgICAgICB0aGlzLiNzaXplID0gMFxuICAgICAgICAgICAgICAgIGlmIChzZW5kUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSBzZW5kUmVzdWx0XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jYXN5bmNUcmFuc3BvcnQgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobnVtZXJpY0xvZ0xldmVsIDwgMiB8fCB0aGlzLiNlbnRyaWVzLmxlbmd0aCA+IDggfHwgdGhpcy4jc2l6ZSA+IDY0MDAwKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZvaWRcbiAgICAgICAgICAgICAgICB2b2lkIHRoaXMuZmx1c2goKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLiN0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgdGhpcy5mbHVzaCgpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI3RpbWVvdXQgPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9LCAyMDAwKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgZmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLiNlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jc3RhcnRGbHVzaCh0aGlzLiNlbnRyaWVzKVxuICAgICAgICB0aGlzLiNlbnRyaWVzID0gW11cbiAgICAgICAgdGhpcy4jc2l6ZSA9IDBcbiAgICAgICAgaWYgKHRoaXMuI3RpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLiN0aW1lb3V0KVxuICAgICAgICAgICAgdGhpcy4jdGltZW91dCA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLiNmbHVzaGVyXG4gICAgfVxuXG4gICAgI3N0YXJ0Rmx1c2goZW50cmllczogTG9nRW50cnlbXSkge1xuICAgICAgICBpZiAodGhpcy4jZmx1c2hlcikge1xuICAgICAgICAgICAgdGhpcy4jZmx1c2hlciA9IHRoaXMuI2ZsdXNoZXIudGhlbigoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuI3RyYW5zcG9ydC5zZW5kRW50cmllcyhlbnRyaWVzLCB0aGlzLiNzaWduYWwpLFxuICAgICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4jZmx1c2hlciA9IHRoaXMuI3RyYW5zcG9ydC5zZW5kRW50cmllcyhlbnRyaWVzLCB0aGlzLiNzaWduYWwpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIEVucmljaGluZ0xvZ2dlciBpbXBsZW1lbnRzIExvZ2dlciB7XG4gICAgcmVhZG9ubHkgI2J1ZmZlcjogTG9nQnVmZmVyXG4gICAgcmVhZG9ubHkgI3Jlc2VydmVkRW5yaWNobWVudD86IG9iamVjdFxuICAgIHJlYWRvbmx5ICNjdXN0b21FbnJpY2htZW50Pzogb2JqZWN0XG4gICAgcmVhZG9ubHkgI2xldmVsOiBudW1iZXJcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBidWZmZXI6IExvZ0J1ZmZlcixcbiAgICAgICAgbGV2ZWw6IG51bWJlcixcbiAgICAgICAgcmVzZXJ2ZWRFbnJpY2htZW50Pzogb2JqZWN0LFxuICAgICAgICBjdXN0b21FbnJpY2htZW50Pzogb2JqZWN0LFxuICAgICkge1xuICAgICAgICB0aGlzLiNidWZmZXIgPSBidWZmZXJcbiAgICAgICAgdGhpcy4jbGV2ZWwgPSBsZXZlbFxuICAgICAgICB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQgPSByZXNlcnZlZEVucmljaG1lbnRcbiAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCA9IGN1c3RvbUVucmljaG1lbnRcbiAgICB9XG5cbiAgICBlbnJpY2goZmllbGRzOiBvYmplY3QpOiBMb2dnZXIge1xuICAgICAgICByZXR1cm4gbmV3IEVucmljaGluZ0xvZ2dlcih0aGlzLiNidWZmZXIsIHRoaXMuI2xldmVsLCB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQsIHtcbiAgICAgICAgICAgIC4uLih0aGlzLiNjdXN0b21FbnJpY2htZW50ID8/IHt9KSxcbiAgICAgICAgICAgIC4uLmZpZWxkcyxcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2J1ZmZlci5mbHVzaCgpXG4gICAgfVxuXG4gICAgZW5yaWNoUmVzZXJ2ZWQoZmllbGRzOiBvYmplY3QpOiBFbnJpY2hpbmdMb2dnZXIge1xuICAgICAgICByZXR1cm4gbmV3IEVucmljaGluZ0xvZ2dlcihcbiAgICAgICAgICAgIHRoaXMuI2J1ZmZlcixcbiAgICAgICAgICAgIHRoaXMuI2xldmVsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLih0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQgPz8ge30pLFxuICAgICAgICAgICAgICAgIC4uLmZpZWxkcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuXG4gICAgdHJhY2UobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgNSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAndHJhY2UnLFxuICAgICAgICAgICAgNSxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgZGVidWcobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgNCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnZGVidWcnLFxuICAgICAgICAgICAgNCxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duLCBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy4jbGV2ZWwgPCAzKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNidWZmZXIuY29sbGVjdChcbiAgICAgICAgICAgICdpbmZvJyxcbiAgICAgICAgICAgIDMsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuICAgIHdhcm4obWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnd2FybmluZycsXG4gICAgICAgICAgICAyLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duLCBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy4jbGV2ZWwgPCAxKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNidWZmZXIuY29sbGVjdChcbiAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAxLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbiAgICBmYXRhbChtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duLCBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICB0aGlzLiNidWZmZXIuY29sbGVjdChcbiAgICAgICAgICAgICdmYXRhbCcsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbn1cblxuZnVuY3Rpb24gZXJyb3JBc0pzb24oZXJyb3I6IHVua25vd24pOiBKc29uIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCB8fCBlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgICAgbmFtZTogZXJyb3IubmFtZSxcbiAgICAgICAgICAgIHN0YWNrOiBlcnJvci5zdGFjayxcbiAgICAgICAgICAgIC4uLihlcnJvciBhcyB1bmtub3duIGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KSxcbiAgICAgICAgfSBhcyBKc29uXG4gICAgfVxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZXJyb3IsXG4gICAgICAgIH0gYXMgSnNvblxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXNzYWdlOiAoZXJyb3IgYXMgb2JqZWN0IHwgdW5kZWZpbmVkKT8udG9TdHJpbmcoKSxcbiAgICAgICAgbmFtZTogdHlwZW9mIGVycm9yLFxuICAgIH0gYXMgSnNvblxufVxuIl19
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSTdDLE1BQU0sVUFBVSxVQUFVLENBQ3RCLFNBQXVCLEVBQ3ZCLGVBQXFDLEVBQ3JDLE1BQW1CO0lBRW5CLE9BQU8sSUFBSSxlQUFlLENBQ3RCLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFDaEMsZUFBZTtRQUNYLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FBQyxFQUNQLE1BQU0sQ0FDVCxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFBO0FBRTlFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxjQUFzQjtJQUN2RCxNQUFNLFFBQVEsR0FBRywwQkFBMEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsQ0FBQTtJQUNqRixPQUFPLENBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RELENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ25ELEdBQUcsQ0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sU0FBUztJQUNGLFVBQVUsQ0FBYztJQUNqQyxRQUFRLEdBQWUsRUFBRSxDQUFBO0lBQ3pCLEtBQUssR0FBRyxD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TSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE9BQU8sRUFDUCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE9BQU8sRUFDUCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDNUQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE1BQU0sRUFDTixDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDNUQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLFNBQVMsRUFDVCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE9BQU8sRUFDUCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE9BQU8sRUFDUCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0NBQ0o7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQy9CLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDeEMsT0FBTyxTQUFTLENBQUE7SUFDcEIsQ0FBQztJQUNELElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE9BQU87WUFDSCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixHQUFJLEtBQStDO1NBQzlDLENBQUE7SUFDYixDQUFDO0lBQ0QsSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUM7UUFDMUIsT0FBTztZQUNILEdBQUcsS0FBSztTQUNILENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTztRQUNILE9BQU8sRUFBRyxLQUE0QixFQUFFLFFBQVEsRUFBRTtRQUNsRCxJQUFJLEVBQUUsT0FBTyxLQUFLO0tBQ2IsQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwZXJmb3JtYW5jZSB9IGZyb20gJ25vZGU6cGVyZl9ob29rcydcbmltcG9ydCB7IEpzb24sIExvZ2dlciB9IGZyb20gJy4uL2NvbnRleHQuanMnXG5pbXBvcnQgeyBMb2dFbnRyeSwgTG9nTGV2ZWwsIExvZ1RyYW5zcG9ydCwgUm9vdExvZ2dlciB9IGZyb20gJy4vY29udGV4dC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VMb2dnZXIoXG4gICAgdHJhbnNwb3J0OiBMb2dUcmFuc3BvcnQsXG4gICAgbWluaW11bUxvZ0xldmVsOiBMb2dMZXZlbCB8IHVuZGVmaW5lZCxcbiAgICBzaWduYWw6IEFib3J0U2lnbmFsLFxuKTogUm9vdExvZ2dlciB7XG4gICAgcmV0dXJuIG5ldyBFbnJpY2hpbmdMb2dnZXIoXG4gICAgICAgIG5ldyBMb2dCdWZmZXIodHJhbnNwb3J0LCBzaWduYWwpLFxuICAgICAgICBtaW5pbXVtTG9nTGV2ZWxcbiAgICAgICAgICAgID8gWydmYXRhbCcsICdlcnJvcicsICd3YXJuaW5nJywgJ2luZm8nLCAnZGVidWcnLCAndHJhY2UnXS5pbmRleE9mKG1pbmltdW1Mb2dMZXZlbClcbiAgICAgICAgICAgIDogNSxcbiAgICAgICAgc2lnbmFsLFxuICAgIClcbn1cblxuY29uc3QgcGVyZm9ybWFuY2VUaW1lT3JpZ2luMTAwbnMgPSBNYXRoLnJvdW5kKHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKiAxMF8wMDApXG5cbmV4cG9ydCBmdW5jdGlvbiBoaWdoUHJlY2lzaW9uSVNPRGF0ZShwZXJmb3JtYW5jZU5vdzogbnVtYmVyKSB7XG4gICAgY29uc3Qgbm93MTAwbnMgPSBwZXJmb3JtYW5jZVRpbWVPcmlnaW4xMDBucyArIE1hdGgucm91bmQocGVyZm9ybWFuY2VOb3cgKiAxMF8wMDApXG4gICAgcmV0dXJuIChcbiAgICAgICAgbmV3IERhdGUobm93MTAwbnMgLyAxMF8wMDApLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMjApICtcbiAgICAgICAgKG5vdzEwMG5zICUgMTBfMDAwXzAwMCkudG9TdHJpbmcoKS5wYWRTdGFydCg3LCAnMCcpICtcbiAgICAgICAgJ1onXG4gICAgKVxufVxuXG5jbGFzcyBMb2dCdWZmZXIge1xuICAgIHJlYWRvbmx5ICN0cmFuc3BvcnQ6IExvZ1RyYW5zcG9ydFxuICAgICNlbnRyaWVzOiBMb2dFbnRyeVtdID0gW11cbiAgICAjc2l6ZSA9IDBcbiAgICAjZmx1c2hlcj86IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWRcbiAgICByZWFkb25seSAjc2lnbmFsOiBBYm9ydFNpZ25hbFxuICAgICNhc3luY1RyYW5zcG9ydDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICAgICN0aW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZFxuXG4gICAgY29uc3RydWN0b3IodHJhbnNwb3J0OiBMb2dUcmFuc3BvcnQsIHNpZ25hbDogQWJvcnRTaWduYWwpIHtcbiAgICAgICAgdGhpcy4jdHJhbnNwb3J0ID0gdHJhbnNwb3J0XG4gICAgICAgIHRoaXMuI3NpZ25hbCA9IHNpZ25hbFxuICAgIH1cblxuICAgIGNvbGxlY3QoXG4gICAgICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICAgICAgbnVtZXJpY0xvZ0xldmVsOiBudW1iZXIsXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgZXJyb3I6IHVua25vd24sXG4gICAgICAgIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgICAgICByZXNlcnZlZEVucmljaG1lbnQ6IG9iamVjdCB8IHVuZGVmaW5lZCxcbiAgICAgICAgY3VzdG9tRW5yaWNobWVudDogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgICkge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBwZXJmb3JtYW5jZS5ub3coKVxuICAgICAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgdGltZXN0YW1wOiBoaWdoUHJlY2lzaW9uSVNPRGF0ZShvZmZzZXQpLFxuICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yQXNKc29uKGVycm9yKSxcbiAgICAgICAgICAgIC4uLnJlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIC4uLmV4dHJhKGZpZWxkcywgY3VzdG9tRW5yaWNobWVudCksXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuI2VudHJpZXMucHVzaCh7XG4gICAgICAgICAgICB0aW1lc3RhbXA6IG9mZnNldCxcbiAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAganNvbixcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy4jc2l6ZSArPSBqc29uLmxlbmd0aFxuXG4gICAgICAgIGlmICh0aGlzLiNhc3luY1RyYW5zcG9ydCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICB2b2lkIHRoaXMuI3RyYW5zcG9ydC5zZW5kRW50cmllcyh0aGlzLiNlbnRyaWVzLCB0aGlzLiNzaWduYWwpXG4gICAgICAgICAgICB0aGlzLiNlbnRyaWVzID0gW11cbiAgICAgICAgICAgIHRoaXMuI3NpemUgPSAwXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy4jYXN5bmNUcmFuc3BvcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jYXN5bmNUcmFuc3BvcnQgPSB0cnVlXG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLiNmbHVzaGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzZW5kUmVzdWx0ID0gdGhpcy4jdHJhbnNwb3J0LnNlbmRFbnRyaWVzKHRoaXMuI2VudHJpZXMsIHRoaXMuI3NpZ25hbClcbiAgICAgICAgICAgICAgICB0aGlzLiNlbnRyaWVzID0gW11cbiAgICAgICAgICAgICAgICB0aGlzLiNzaXplID0gMFxuICAgICAgICAgICAgICAgIGlmIChzZW5kUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSBzZW5kUmVzdWx0XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jYXN5bmNUcmFuc3BvcnQgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobnVtZXJpY0xvZ0xldmVsIDwgMiB8fCB0aGlzLiNlbnRyaWVzLmxlbmd0aCA+IDggfHwgdGhpcy4jc2l6ZSA+IDY0XzAwMCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICAgICAgdm9pZCB0aGlzLmZsdXNoKClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgICAgICAgICAgICAgICB2b2lkIHRoaXMuZmx1c2goKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLiN0aW1lb3V0ID0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSwgMjAwMClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGZsdXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy4jZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3N0YXJ0Rmx1c2godGhpcy4jZW50cmllcylcbiAgICAgICAgdGhpcy4jZW50cmllcyA9IFtdXG4gICAgICAgIHRoaXMuI3NpemUgPSAwXG4gICAgICAgIGlmICh0aGlzLiN0aW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy4jdGltZW91dClcbiAgICAgICAgICAgIHRoaXMuI3RpbWVvdXQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy4jZmx1c2hlclxuICAgIH1cblxuICAgICNzdGFydEZsdXNoKGVudHJpZXM6IExvZ0VudHJ5W10pIHtcbiAgICAgICAgaWYgKHRoaXMuI2ZsdXNoZXIpIHtcbiAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSB0aGlzLiNmbHVzaGVyLnRoZW4oKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLiN0cmFuc3BvcnQuc2VuZEVudHJpZXMoZW50cmllcywgdGhpcy4jc2lnbmFsKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSB0aGlzLiN0cmFuc3BvcnQuc2VuZEVudHJpZXMoZW50cmllcywgdGhpcy4jc2lnbmFsKVxuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBleHRyYShmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCwgY3VzdG9tRW5yaWNobWVudDogb2JqZWN0IHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFmaWVsZHMpIHtcbiAgICAgICAgaWYgKCFjdXN0b21FbnJpY2htZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1c3RvbUVucmljaG1lbnRcbiAgICB9XG4gICAgaWYgKCFjdXN0b21FbnJpY2htZW50KSB7XG4gICAgICAgIHJldHVybiBmaWVsZHNcbiAgICB9XG4gICAgcmV0dXJuIHsgLi4uY3VzdG9tRW5yaWNobWVudCwgLi4uZmllbGRzIH1cbn1cblxuY2xhc3MgRW5yaWNoaW5nTG9nZ2VyIGltcGxlbWVudHMgTG9nZ2VyIHtcbiAgICByZWFkb25seSAjYnVmZmVyOiBMb2dCdWZmZXJcbiAgICByZWFkb25seSAjcmVzZXJ2ZWRFbnJpY2htZW50Pzogb2JqZWN0XG4gICAgcmVhZG9ubHkgI2N1c3RvbUVucmljaG1lbnQ/OiBvYmplY3RcbiAgICByZWFkb25seSAjbGV2ZWw6IG51bWJlclxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGJ1ZmZlcjogTG9nQnVmZmVyLFxuICAgICAgICBsZXZlbDogbnVtYmVyLFxuICAgICAgICByZXNlcnZlZEVucmljaG1lbnQ/OiBvYmplY3QsXG4gICAgICAgIGN1c3RvbUVucmljaG1lbnQ/OiBvYmplY3QsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuI2J1ZmZlciA9IGJ1ZmZlclxuICAgICAgICB0aGlzLiNsZXZlbCA9IGxldmVsXG4gICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCA9IHJlc2VydmVkRW5yaWNobWVudFxuICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50ID0gY3VzdG9tRW5yaWNobWVudFxuICAgIH1cblxuICAgIGVucmljaChmaWVsZHM6IG9iamVjdCk6IExvZ2dlciB7XG4gICAgICAgIHJldHVybiBuZXcgRW5yaWNoaW5nTG9nZ2VyKHRoaXMuI2J1ZmZlciwgdGhpcy4jbGV2ZWwsIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCwge1xuICAgICAgICAgICAgLi4udGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgICAgIC4uLmZpZWxkcyxcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2J1ZmZlci5mbHVzaCgpXG4gICAgfVxuXG4gICAgZW5yaWNoUmVzZXJ2ZWQoZmllbGRzOiBvYmplY3QpOiBFbnJpY2hpbmdMb2dnZXIge1xuICAgICAgICByZXR1cm4gbmV3IEVucmljaGluZ0xvZ2dlcihcbiAgICAgICAgICAgIHRoaXMuI2J1ZmZlcixcbiAgICAgICAgICAgIHRoaXMuI2xldmVsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgICAgICAuLi5maWVsZHMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHRyYWNlKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24sIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLiNsZXZlbCA8IDUpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2J1ZmZlci5jb2xsZWN0KFxuICAgICAgICAgICAgJ3RyYWNlJyxcbiAgICAgICAgICAgIDUsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuICAgIGRlYnVnKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24sIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLiNsZXZlbCA8IDQpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2J1ZmZlci5jb2xsZWN0KFxuICAgICAgICAgICAgJ2RlYnVnJyxcbiAgICAgICAgICAgIDQsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuICAgIGluZm8obWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgMykge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnaW5mbycsXG4gICAgICAgICAgICAzLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbiAgICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24sIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLiNsZXZlbCA8IDIpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2J1ZmZlci5jb2xsZWN0KFxuICAgICAgICAgICAgJ3dhcm5pbmcnLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgMSxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnZmF0YWwnLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGVycm9yQXNKc29uKGVycm9yOiB1bmtub3duKTogSnNvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQgfHwgZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgICAgICBzdGFjazogZXJyb3Iuc3RhY2ssXG4gICAgICAgICAgICAuLi4oZXJyb3IgYXMgdW5rbm93biBhcyB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSksXG4gICAgICAgIH0gYXMgSnNvblxuICAgIH1cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmVycm9yLFxuICAgICAgICB9IGFzIEpzb25cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVzc2FnZTogKGVycm9yIGFzIG9iamVjdCB8IHVuZGVmaW5lZCk/LnRvU3RyaW5nKCksXG4gICAgICAgIG5hbWU6IHR5cGVvZiBlcnJvcixcbiAgICB9IGFzIEpzb25cbn1cbiJdfQ==
|
package/host/reflect.d.ts
CHANGED
package/host/registry.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const handlers = {};
|
|
2
2
|
function addHandler(type, handler) {
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
4
3
|
;
|
|
5
4
|
(handlers[type] ??= []).push(handler);
|
|
6
5
|
}
|
|
@@ -36,7 +35,7 @@ function getMetadata() {
|
|
|
36
35
|
}
|
|
37
36
|
function pathToRegExp(path) {
|
|
38
37
|
return new RegExp(('^' +
|
|
39
|
-
path.
|
|
38
|
+
path.replaceAll(/[/\\^$+?.()|[\]{}]/gu, '\\$&').replaceAll('*', '[^/\\?]+') +
|
|
40
39
|
'(\\?.*)?$').replace('[^/\\?]+[^/\\?]+(\\?.*)?$', ''), 'u');
|
|
41
40
|
}
|
|
42
41
|
function combineConfig(base, override) {
|
|
@@ -70,4 +69,4 @@ export function registerHttpHandler(method, path, configOrHandler, fn) {
|
|
|
70
69
|
httpHostRegistry(getMetadata(), configOrHandler, method, path, fn);
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxRQUFRLEdBQWlDLEVBQUUsQ0FBQTtBQUVqRCxTQUFTLFVBQVUsQ0FBQyxJQUF3QixFQUFFLE9BQW9CO0lBQzlELENBQUM7SUFBQSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBd0I7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQWtCLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBd0I7SUFDL0MsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksc0JBQXNCLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLHVCQUF1QixDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFVRCxJQUFJLGdCQUEwQixDQUFBO0FBRTlCLFNBQVMsV0FBVyxDQUFDLElBQWM7SUFDL0IsZ0JBQWdCLEdBQUcsSUFBSSxDQUFBO0FBQzNCLENBQUM7QUFFRCxJQUFJLFFBQThCLENBQUE7QUFFbEMsTUFBTSxVQUFVLE9BQU8sQ0FDbkIsV0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsUUFBNEIsRUFDNUIsTUFBd0M7SUFFeEMsUUFBUSxHQUFHO1FBQ1AsV0FBVztRQUNYLFFBQVE7UUFDUixRQUFRO1FBQ1IsTUFBTTtLQUNULENBQUE7QUFDTCxDQUFDO0FBZ0JELFNBQVMsV0FBVztJQUNoQixPQUFPLFFBQVEsQ0FBQTtBQUNuQixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUM5QixPQUFPLElBQUksTUFBTSxDQUNiLENBQ0ksR0FBRztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUM7UUFDM0UsV0FBVyxDQUNkLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLEVBQUUsQ0FBQyxFQUMxQyxHQUFHLENBQ04sQ0FBQTtBQUNMLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FDbEIsSUFBc0MsRUFDdEMsUUFBMEM7SUFFMUMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDckIsT0FBTyxRQUFRLENBQUE7SUFDbkIsQ0FBQztTQUFNLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUNELE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFBO0FBQ25DLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FDYixJQUEwQixFQUMxQixHQUFxQyxFQUNyQyxNQUFjLEVBQ2QsSUFBWSxFQUNaLEtBQWM7SUFFZCxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQ2YsSUFBSTtRQUNKLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDeEMsTUFBTTtRQUNOLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQzlCLEtBQUs7S0FDUixDQUFDLENBQUE7QUFDTixDQUFDO0FBRUQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBSXJCLE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsTUFBYyxFQUNkLElBQVksRUFDWixlQUErQyxFQUMvQyxFQUFZO0lBRVosSUFBSSxPQUFPLGVBQWUsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUM3RSxDQUFDO1NBQU0sQ0FBQztRQUNKLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUN6RCxDQUFDO1FBQ0QsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDdEUsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYW5kbGVyQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvbnRleHQuanMnXG5pbXBvcnQgeyBIYW5kbGVyIH0gZnJvbSAnLi4vaHR0cC5qcydcblxuZXhwb3J0IHR5cGUgSHR0cEhhbmRsZXIgPSB7XG4gICAgbWV0YTogTWV0YWRhdGEgfCB1bmRlZmluZWRcbiAgICBjb25maWc6IEZ1bGxDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkXG4gICAgbWV0aG9kOiBNZXRob2RcbiAgICBwYXRoUGF0dGVybjogc3RyaW5nXG4gICAgcGF0aFJlZ0V4cDogUmVnRXhwXG4gICAgZW50cnk6IEhhbmRsZXJcbn1cblxudHlwZSBIYW5kbGVyVHlwZXMgPSB7XG4gICAgaHR0cDogSHR0cEhhbmRsZXJcbn1cblxuY29uc3QgaGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogdW5rbm93bltdIH0gPSB7fVxuXG5mdW5jdGlvbiBhZGRIYW5kbGVyKHR5cGU6IGtleW9mIEhhbmRsZXJUeXBlcywgaGFuZGxlcjogSHR0cEhhbmRsZXIpIHtcbiAgICA7KGhhbmRsZXJzW3R5cGVdID8/PSBbXSkucHVzaChoYW5kbGVyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlcnModHlwZToga2V5b2YgSGFuZGxlclR5cGVzKSB7XG4gICAgcmV0dXJuIChoYW5kbGVyc1t0eXBlXSA/PyBbXSkgYXMgSHR0cEhhbmRsZXJbXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlcih0eXBlOiBrZXlvZiBIYW5kbGVyVHlwZXMpIHtcbiAgICBjb25zdCBocyA9IGdldEhhbmRsZXJzKHR5cGUpXG4gICAgY29uc3QgW2hhbmRsZXJdID0gaHNcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyAke3R5cGV9IGhhbmRsZXIgcmVnaXN0ZXJlZC5gKVxuICAgIH1cbiAgICBpZiAoaHMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTXVsdGlwbGUgJHt0eXBlfSBoYW5kbGVycyByZWdpc3RlcmVkLmApXG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyXG59XG5cbnR5cGUgSHR0cEhvc3QgPSAoXG4gICAgbWV0YTogTWV0YWRhdGEgfCB1bmRlZmluZWQsXG4gICAgY29uZmlnOiBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCxcbiAgICBtZXRob2Q6IE1ldGhvZCxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgaGFuZGxlcjogSGFuZGxlcixcbikgPT4gdm9pZFxuXG5sZXQgaHR0cEhvc3RSZWdpc3RyeTogSHR0cEhvc3RcblxuZnVuY3Rpb24gc2V0SHR0cEhvc3QoaG9zdDogSHR0cEhvc3QpIHtcbiAgICBodHRwSG9zdFJlZ2lzdHJ5ID0gaG9zdFxufVxuXG5sZXQgbWV0YWRhdGE6IE1ldGFkYXRhIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNZXRhKFxuICAgIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4gICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICByZXZpc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGNvbmZpZzogUGFja2FnZUNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG4pIHtcbiAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgcGFja2FnZU5hbWUsXG4gICAgICAgIGZpbGVOYW1lLFxuICAgICAgICByZXZpc2lvbixcbiAgICAgICAgY29uZmlnLFxuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgUGFja2FnZUNvbmZpZ3VyYXRpb24gPSBIYW5kbGVyQ29uZmlndXJhdGlvbiAmIHtcbiAgICAvLyBQbGFjZWhvbGRlciBmb3IgcGFja2FnZS1sZXZlbCBjb25maWd1cmF0aW9uc1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR1cGxpY2F0ZS10eXBlLWNvbnN0aXR1ZW50c1xuZXhwb3J0IHR5cGUgRnVsbENvbmZpZ3VyYXRpb24gPSBQYWNrYWdlQ29uZmlndXJhdGlvbiAmIEhhbmRsZXJDb25maWd1cmF0aW9uXG5cbmV4cG9ydCB0eXBlIE1ldGFkYXRhID0ge1xuICAgIHBhY2thZ2VOYW1lOiBzdHJpbmdcbiAgICBmaWxlTmFtZTogc3RyaW5nXG4gICAgcmV2aXNpb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgIGNvbmZpZz86IFBhY2thZ2VDb25maWd1cmF0aW9uXG59XG5cbmZ1bmN0aW9uIGdldE1ldGFkYXRhKCkge1xuICAgIHJldHVybiBtZXRhZGF0YVxufVxuXG5mdW5jdGlvbiBwYXRoVG9SZWdFeHAocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoXG4gICAgICAgIChcbiAgICAgICAgICAgICdeJyArXG4gICAgICAgICAgICBwYXRoLnJlcGxhY2VBbGwoL1svXFxcXF4kKz8uKCl8W1xcXXt9XS9ndSwgJ1xcXFwkJicpLnJlcGxhY2VBbGwoJyonLCAnW14vXFxcXD9dKycpICtcbiAgICAgICAgICAgICcoXFxcXD8uKik/JCdcbiAgICAgICAgKS5yZXBsYWNlKCdbXi9cXFxcP10rW14vXFxcXD9dKyhcXFxcPy4qKT8kJywgJycpLFxuICAgICAgICAndScsXG4gICAgKVxufVxuXG5mdW5jdGlvbiBjb21iaW5lQ29uZmlnKFxuICAgIGJhc2U6IFBhY2thZ2VDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuICAgIG92ZXJyaWRlOiBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCxcbik6IEZ1bGxDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoYmFzZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZVxuICAgIH0gZWxzZSBpZiAob3ZlcnJpZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYmFzZVxuICAgIH1cbiAgICByZXR1cm4geyAuLi5iYXNlLCAuLi5vdmVycmlkZSB9XG59XG5cbmZ1bmN0aW9uIGh0dHBIb3N0KFxuICAgIG1ldGE6IE1ldGFkYXRhIHwgdW5kZWZpbmVkLFxuICAgIGNmZzogSGFuZGxlckNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG4gICAgbWV0aG9kOiBNZXRob2QsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGVudHJ5OiBIYW5kbGVyLFxuKSB7XG4gICAgYWRkSGFuZGxlcignaHR0cCcsIHtcbiAgICAgICAgbWV0YSxcbiAgICAgICAgY29uZmlnOiBjb21iaW5lQ29uZmlnKG1ldGE/LmNvbmZpZywgY2ZnKSxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBwYXRoUGF0dGVybjogcGF0aCxcbiAgICAgICAgcGF0aFJlZ0V4cDogcGF0aFRvUmVnRXhwKHBhdGgpLFxuICAgICAgICBlbnRyeSxcbiAgICB9KVxufVxuXG5zZXRIdHRwSG9zdChodHRwSG9zdClcblxuZXhwb3J0IHR5cGUgTWV0aG9kID0gJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJIdHRwSGFuZGxlcihcbiAgICBtZXRob2Q6IE1ldGhvZCxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgY29uZmlnT3JIYW5kbGVyOiBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IEhhbmRsZXIsXG4gICAgZm4/OiBIYW5kbGVyLFxuKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBjb25maWdPckhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaHR0cEhvc3RSZWdpc3RyeShnZXRNZXRhZGF0YSgpLCB1bmRlZmluZWQsIG1ldGhvZCwgcGF0aCwgY29uZmlnT3JIYW5kbGVyKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghZm4pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHByb3ZpZGUgYSBoYW5kbGVyIGZ1bmN0aW9uLicpXG4gICAgICAgIH1cbiAgICAgICAgaHR0cEhvc3RSZWdpc3RyeShnZXRNZXRhZGF0YSgpLCBjb25maWdPckhhbmRsZXIsIG1ldGhvZCwgcGF0aCwgZm4pXG4gICAgfVxufVxuIl19
|
package/http.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riddance/host",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"postpublish": "riddance-sync"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@riddance/env": "0.
|
|
38
|
+
"@riddance/env": "0.6.1"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "eab34e513ea503dd6629eab653bfd8aa0c69479b"
|
|
41
41
|
}
|
package/host/emitter.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
export class EventEmitter {
|
|
2
|
-
#transport;
|
|
3
|
-
#logger;
|
|
4
|
-
#ids;
|
|
5
|
-
#emitted = {};
|
|
6
|
-
#size = 0;
|
|
7
|
-
#flusher;
|
|
8
|
-
#deadline;
|
|
9
|
-
#buffered;
|
|
10
|
-
#signal;
|
|
11
|
-
constructor(transport, logger, ids, timeout, signal) {
|
|
12
|
-
this.#transport = transport;
|
|
13
|
-
this.#logger = logger;
|
|
14
|
-
this.#ids = ids;
|
|
15
|
-
this.#deadline = new Date().getTime() + timeout;
|
|
16
|
-
this.#buffered = 0;
|
|
17
|
-
this.#signal = signal;
|
|
18
|
-
}
|
|
19
|
-
emit(meta, data) {
|
|
20
|
-
const eventTime = new Date();
|
|
21
|
-
const timeLeft = this.#deadline - new Date().getTime();
|
|
22
|
-
if (this.#buffered / this.#transport.publishRate > timeLeft) {
|
|
23
|
-
throw new Error('Event overflow.');
|
|
24
|
-
}
|
|
25
|
-
const event = data === undefined
|
|
26
|
-
? { meta, ids: this.#ids, eventTime }
|
|
27
|
-
: { meta, ids: this.#ids, eventTime, json: JSON.stringify(data) };
|
|
28
|
-
const events = this.#emitted[meta.topic];
|
|
29
|
-
if (!events) {
|
|
30
|
-
this.#emitted[meta.topic] = [event];
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
events.push(event);
|
|
34
|
-
if (events.length > 64 || this.#size > 64000) {
|
|
35
|
-
// eslint-disable-next-line no-void
|
|
36
|
-
void this.flush();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
++this.#buffered;
|
|
40
|
-
this.#size += event.json?.length ?? 0;
|
|
41
|
-
}
|
|
42
|
-
async flush() {
|
|
43
|
-
this.#startFlush(this.#emitted);
|
|
44
|
-
this.#emitted = {};
|
|
45
|
-
this.#size = 0;
|
|
46
|
-
return await this.#flusher;
|
|
47
|
-
}
|
|
48
|
-
#startFlush(emitted) {
|
|
49
|
-
if (this.#flusher) {
|
|
50
|
-
this.#flusher = this.#flusher.then(() => this.#flushEvents(emitted));
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
this.#flusher = this.#flushEvents(emitted);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
async #flushEvents(emitted) {
|
|
57
|
-
await Promise.all(Object.entries(emitted).map(async ([topic, events]) => {
|
|
58
|
-
try {
|
|
59
|
-
await this.#transport.sendEvents(topic, events, this.#signal);
|
|
60
|
-
}
|
|
61
|
-
catch (e) {
|
|
62
|
-
this.#logger.fatal('Error sending events.', e, { events });
|
|
63
|
-
}
|
|
64
|
-
this.#buffered -= events.length;
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVtaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLFlBQVk7SUFDWixVQUFVLENBQWdCO0lBQzFCLE9BQU8sQ0FBUTtJQUNmLElBQUksQ0FBWTtJQUN6QixRQUFRLEdBQWUsRUFBRSxDQUFBO0lBQ3pCLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDVCxRQUFRLENBQWdCO0lBQ2YsU0FBUyxDQUFRO0lBQzFCLFNBQVMsQ0FBUTtJQUNSLE9BQU8sQ0FBYTtJQUU3QixZQUNJLFNBQXlCLEVBQ3pCLE1BQWMsRUFDZCxHQUF1RixFQUN2RixPQUFlLEVBQ2YsTUFBbUI7UUFFbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUE7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBbUIsRUFBRSxJQUFXO1FBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQ3RELElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDdEMsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUNQLElBQUksS0FBSyxTQUFTO1lBQ2QsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNyQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7UUFDekUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDbEIsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDO2dCQUMzQyxtQ0FBbUM7Z0JBQ25DLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQ3JCLENBQUM7UUFDTCxDQUFDO1FBQ0QsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ2QsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFtQjtRQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUN4RSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBbUI7UUFDbEMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNiLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQztnQkFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ2pFLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FDTCxDQUFBO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvbiwgTG9nZ2VyIH0gZnJvbSAnLi4vY29udGV4dC5qcydcbmltcG9ydCB7IEJ1ZmZlcmVkRXZlbnQsIENsaWVudEluZm8sIEV2ZW50TWV0YWRhdGEsIEV2ZW50VHJhbnNwb3J0IH0gZnJvbSAnLi9jb250ZXh0LmpzJ1xuXG50eXBlIEVtaXRCdWZmZXIgPSB7XG4gICAgW3RvcGljOiBzdHJpbmddOiBCdWZmZXJlZEV2ZW50W11cbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50RW1pdHRlciB7XG4gICAgcmVhZG9ubHkgI3RyYW5zcG9ydDogRXZlbnRUcmFuc3BvcnRcbiAgICByZWFkb25seSAjbG9nZ2VyOiBMb2dnZXJcbiAgICByZWFkb25seSAjaWRzOiBDbGllbnRJbmZvXG4gICAgI2VtaXR0ZWQ6IEVtaXRCdWZmZXIgPSB7fVxuICAgICNzaXplID0gMFxuICAgICNmbHVzaGVyPzogUHJvbWlzZTx2b2lkPlxuICAgIHJlYWRvbmx5ICNkZWFkbGluZTogbnVtYmVyXG4gICAgI2J1ZmZlcmVkOiBudW1iZXJcbiAgICByZWFkb25seSAjc2lnbmFsOiBBYm9ydFNpZ25hbFxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHRyYW5zcG9ydDogRXZlbnRUcmFuc3BvcnQsXG4gICAgICAgIGxvZ2dlcjogTG9nZ2VyLFxuICAgICAgICBpZHM6IHsgb3BlcmF0aW9uSWQ/OiBzdHJpbmc7IGNsaWVudElkPzogc3RyaW5nOyBjbGllbnRJcD86IHN0cmluZzsgdXNlckFnZW50Pzogc3RyaW5nIH0sXG4gICAgICAgIHRpbWVvdXQ6IG51bWJlcixcbiAgICAgICAgc2lnbmFsOiBBYm9ydFNpZ25hbCxcbiAgICApIHtcbiAgICAgICAgdGhpcy4jdHJhbnNwb3J0ID0gdHJhbnNwb3J0XG4gICAgICAgIHRoaXMuI2xvZ2dlciA9IGxvZ2dlclxuICAgICAgICB0aGlzLiNpZHMgPSBpZHNcbiAgICAgICAgdGhpcy4jZGVhZGxpbmUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIHRpbWVvdXRcbiAgICAgICAgdGhpcy4jYnVmZmVyZWQgPSAwXG4gICAgICAgIHRoaXMuI3NpZ25hbCA9IHNpZ25hbFxuICAgIH1cblxuICAgIGVtaXQobWV0YTogRXZlbnRNZXRhZGF0YSwgZGF0YT86IEpzb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnRUaW1lID0gbmV3IERhdGUoKVxuICAgICAgICBjb25zdCB0aW1lTGVmdCA9IHRoaXMuI2RlYWRsaW5lIC0gbmV3IERhdGUoKS5nZXRUaW1lKClcbiAgICAgICAgaWYgKHRoaXMuI2J1ZmZlcmVkIC8gdGhpcy4jdHJhbnNwb3J0LnB1Ymxpc2hSYXRlID4gdGltZUxlZnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXZlbnQgb3ZlcmZsb3cuJylcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBldmVudCA9XG4gICAgICAgICAgICBkYXRhID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHsgbWV0YSwgaWRzOiB0aGlzLiNpZHMsIGV2ZW50VGltZSB9XG4gICAgICAgICAgICAgICAgOiB7IG1ldGEsIGlkczogdGhpcy4jaWRzLCBldmVudFRpbWUsIGpzb246IEpTT04uc3RyaW5naWZ5KGRhdGEpIH1cbiAgICAgICAgY29uc3QgZXZlbnRzID0gdGhpcy4jZW1pdHRlZFttZXRhLnRvcGljXVxuICAgICAgICBpZiAoIWV2ZW50cykge1xuICAgICAgICAgICAgdGhpcy4jZW1pdHRlZFttZXRhLnRvcGljXSA9IFtldmVudF1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV2ZW50cy5wdXNoKGV2ZW50KVxuICAgICAgICAgICAgaWYgKGV2ZW50cy5sZW5ndGggPiA2NCB8fCB0aGlzLiNzaXplID4gNjQwMDApIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgICAgICAgICAgIHZvaWQgdGhpcy5mbHVzaCgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgKyt0aGlzLiNidWZmZXJlZFxuICAgICAgICB0aGlzLiNzaXplICs9IGV2ZW50Lmpzb24/Lmxlbmd0aCA/PyAwXG4gICAgfVxuXG4gICAgYXN5bmMgZmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuI3N0YXJ0Rmx1c2godGhpcy4jZW1pdHRlZClcbiAgICAgICAgdGhpcy4jZW1pdHRlZCA9IHt9XG4gICAgICAgIHRoaXMuI3NpemUgPSAwXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLiNmbHVzaGVyXG4gICAgfVxuXG4gICAgI3N0YXJ0Rmx1c2goZW1pdHRlZDogRW1pdEJ1ZmZlcikge1xuICAgICAgICBpZiAodGhpcy4jZmx1c2hlcikge1xuICAgICAgICAgICAgdGhpcy4jZmx1c2hlciA9IHRoaXMuI2ZsdXNoZXIudGhlbigoKSA9PiB0aGlzLiNmbHVzaEV2ZW50cyhlbWl0dGVkKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSB0aGlzLiNmbHVzaEV2ZW50cyhlbWl0dGVkKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgI2ZsdXNoRXZlbnRzKGVtaXR0ZWQ6IEVtaXRCdWZmZXIpIHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhlbWl0dGVkKS5tYXAoYXN5bmMgKFt0b3BpYywgZXZlbnRzXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuI3RyYW5zcG9ydC5zZW5kRXZlbnRzKHRvcGljLCBldmVudHMsIHRoaXMuI3NpZ25hbClcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2xvZ2dlci5mYXRhbCgnRXJyb3Igc2VuZGluZyBldmVudHMuJywgZSwgeyBldmVudHMgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy4jYnVmZmVyZWQgLT0gZXZlbnRzLmxlbmd0aFxuICAgICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
|