@riddance/host 0.2.1 → 0.2.2

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 CHANGED
@@ -2,7 +2,7 @@ export type Environment = {
2
2
  readonly [key: string]: string;
3
3
  };
4
4
  export type Logger = {
5
- enrich(fields: object): Logger;
5
+ enrich(fields: object): void;
6
6
  trace(message: string, error?: unknown, fields?: object): void;
7
7
  debug(message: string, error?: unknown, fields?: object): void;
8
8
  info(message: string, error?: unknown, fields?: object): void;
package/context.js CHANGED
@@ -49,4 +49,4 @@ export async function measure(logger, name, fn, fields) {
49
49
  });
50
50
  }
51
51
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBK0J4RCxlQUFlO0FBQ2YsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQVc7SUFDeEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUFtRCxDQUFBO0FBQzlELENBQUM7QUFFRCxlQUFlO0FBQ2YsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFXO0lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUF1QixDQUFBO0FBQ2xDLENBQUM7QUEyREQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWdCO0lBQy9DLE1BQU0sT0FBTyxHQUE4QjtRQUN2QyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFdBQVcsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksR0FBRyxFQUFFO0tBQ3ZGLENBQUE7SUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtJQUNqRCxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0MsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUE7UUFDMUYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsNEJBQTRCLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUNwRSxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FDekIsTUFBcUUsRUFDckUsSUFBWSxFQUNaLEVBQXdCLEVBQ3hCLE1BQWU7SUFFZixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDL0IsSUFBSSxDQUFDO1FBQ0QsT0FBTyxNQUFNLEVBQUUsRUFBRSxDQUFBO0lBQ3JCLENBQUM7WUFBUyxDQUFDO1FBQ1AsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQzdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRTtZQUNuRCxLQUFLLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxDQUFDO1lBQ2xDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUM7WUFDOUIsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNO1lBQzFFLEdBQUcsTUFBTTtTQUNaLENBQUMsQ0FBQTtJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tICdub2RlOnBlcmZfaG9va3MnXG5pbXBvcnQgeyBoaWdoUHJlY2lzaW9uSVNPRGF0ZSB9IGZyb20gJy4vaG9zdC9sb2dnaW5nLmpzJ1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudCA9IHtcbiAgICByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTG9nZ2VyID0ge1xuICAgIGVucmljaChmaWVsZHM6IG9iamVjdCk6IExvZ2dlclxuICAgIHRyYWNlKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG4gICAgZGVidWcobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IHVua25vd24sIGZpZWxkcz86IG9iamVjdCk6IHZvaWRcbiAgICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG4gICAgd2FybihtZXNzYWdlOiBzdHJpbmcsIGVycm9yPzogdW5rbm93biwgZmllbGRzPzogb2JqZWN0KTogdm9pZFxuICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG4gICAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IHVua25vd24sIGZpZWxkcz86IG9iamVjdCk6IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgTXV0YWJsZUpzb24gPVxuICAgIHwgbnVsbFxuICAgIHwgYm9vbGVhblxuICAgIHwgbnVtYmVyXG4gICAgfCBzdHJpbmdcbiAgICB8IE11dGFibGVKc29uW11cbiAgICB8IHsgW2tleTogc3RyaW5nXTogTXV0YWJsZUpzb24gfVxuZXhwb3J0IHR5cGUgSnNvbiA9XG4gICAgfCBudWxsXG4gICAgfCBib29sZWFuXG4gICAgfCBudW1iZXJcbiAgICB8IHN0cmluZ1xuICAgIHwgcmVhZG9ubHkgSnNvbltdXG4gICAgfCB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IEpzb24gfVxuXG4vKkBfX0lOTElORV9fKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RTcHJlYWRhYmxlKGpzb24/OiBKc29uKTogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBKc29uIH0ge1xuICAgIGlmICghanNvbikge1xuICAgICAgICByZXR1cm4ge31cbiAgICB9XG4gICAgcmV0dXJuIGpzb24gYXMgdW5rbm93biBhcyB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IEpzb24gfVxufVxuXG4vKkBfX0lOTElORV9fKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheVNwcmVhZGFibGUoanNvbj86IEpzb24pOiByZWFkb25seSBKc29uW10ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uKSkge1xuICAgICAgICByZXR1cm4gW11cbiAgICB9XG4gICAgcmV0dXJuIGpzb24gYXMgcmVhZG9ubHkgSnNvbltdXG59XG5cbmV4cG9ydCB0eXBlIEhhbmRsZXJDb25maWd1cmF0aW9uID0ge1xuICAgIC8qKlxuICAgICAqIEFuIGluZGljYXRpb24gb2YgQ1BVIHVzYWdlIG9mIHRoZSBoYW5kbGVyLlxuICAgICAqIEBkZWZhdWx0ICdsb3cnXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29tcHV0ZT86ICdoaWdoJyB8ICdsb3cnXG4gICAgLyoqXG4gICAgICogQW4gaW5kaWNhdGlvbiBvZiBtZW1vcnkgdXNhZ2Ugb2YgdGhlIGhhbmRsZXIuXG4gICAgICogQGRlZmF1bHQgJ2xvdydcbiAgICAgKi9cbiAgICByZWFkb25seSBtZW1vcnk/OiAnaGlnaCcgfCAnbG93J1xuICAgIC8qKlxuICAgICAqIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gZW5yaWNoIHRoZSBsb2cgd2l0aCB0aGUgYm9keSBvZiBldmVudHMsIHJlcXVlc3RzIG9yIHJlc3BvbnNlcy4gU2V0IHRvIGZhbHNlIGlmIHRoZSBib2R5IGlzIGxhcmdlIG9yIGNvbnRhaW4gdmVyeSBzZW5zaXRpdmUgZGF0YS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGV4Y2x1ZGVCb2R5RnJvbUxvZ3M/OiBib29sZWFuXG4gICAgLyoqXG4gICAgICogVGhlIGxldmVsIGJlbG93IHdoaWNoIGxvZyBlbnRyaWVzIHdpbGwgYmUgZGlzY2FyZGVkLlxuICAgICAqIEBkZWZhdWx0ICd0cmFjZSdcbiAgICAgKi9cbiAgICByZWFkb25seSBtaW5pbXVtTG9nTGV2ZWw/OiAndHJhY2UnIHwgJ2RlYnVnJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnZmF0YWwnXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRoZSBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBmaW5pc2ggZXhlY3V0aW5nIGluLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHRpbWVvdXQ/OiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgQ29udGV4dCA9IHtcbiAgICByZWFkb25seSBlbnY6IEVudmlyb25tZW50XG4gICAgcmVhZG9ubHkgbG9nOiBMb2dnZXJcbiAgICByZWFkb25seSBzaWduYWw6IEFib3J0U2lnbmFsXG4gICAgbm93KCk6IERhdGVcblxuICAgIHJlYWRvbmx5IG9wZXJhdGlvbklkPzogc3RyaW5nXG4gICAgcmVhZG9ubHkgY2xpZW50Pzoge1xuICAgICAgICByZWFkb25seSBpZD86IHN0cmluZ1xuICAgICAgICByZWFkb25seSBpcD86IHN0cmluZ1xuICAgICAgICByZWFkb25seSBwb3J0PzogbnVtYmVyXG4gICAgICAgIHJlYWRvbmx5IHVzZXJBZ2VudD86IHN0cmluZ1xuICAgIH1cbiAgICByZWFkb25seSBtZXRhPzoge1xuICAgICAgICByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nXG4gICAgICAgIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmdcbiAgICAgICAgcmVhZG9ubHkgcmV2aXNpb24/OiBzdHJpbmdcbiAgICB9XG5cbiAgICBlbWl0KFxuICAgICAgICB0b3BpYzogc3RyaW5nLFxuICAgICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICAgIHN1YmplY3Q6IHN0cmluZyxcbiAgICAgICAgZGF0YT86IEpzb24sXG4gICAgICAgIG1lc3NhZ2VJZD86IHN0cmluZyxcbiAgICApOiBQcm9taXNlPHZvaWQ+XG5cbiAgICBvblN1Y2Nlc3MoZm46ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkKTogdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaHR0cFJlcXVlc3RIZWFkZXJzKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgICAgICAndXNlci1hZ2VudCc6IGAke2NvbnRleHQubWV0YT8ucGFja2FnZU5hbWUgPz8gJz8nfS8ke2NvbnRleHQubWV0YT8ucmV2aXNpb24gPz8gJz8nfWAsXG4gICAgfVxuICAgIGlmIChjb250ZXh0Lm9wZXJhdGlvbklkKSB7XG4gICAgICAgIGhlYWRlcnNbJ3gtcmVxdWVzdC1pZCddID0gY29udGV4dC5vcGVyYXRpb25JZFxuICAgIH1cbiAgICBpZiAoY29udGV4dC5jbGllbnQpIHtcbiAgICAgICAgaWYgKGNvbnRleHQuY2xpZW50LmlkKSB7XG4gICAgICAgICAgICBoZWFkZXJzWyd4LWNsaWVudC1pZCddID0gY29udGV4dC5jbGllbnQuaWRcbiAgICAgICAgfVxuICAgICAgICBpZiAoISFjb250ZXh0LmNsaWVudC5pcCB8fCAhIWNvbnRleHQuY2xpZW50LnBvcnQpIHtcbiAgICAgICAgICAgIGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvciddID0gYCR7Y29udGV4dC5jbGllbnQuaXAgPz8gJyd9OiR7Y29udGV4dC5jbGllbnQucG9ydCA/PyAnJ31gXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRleHQuY2xpZW50LnVzZXJBZ2VudCkge1xuICAgICAgICAgICAgaGVhZGVyc1sneC1mb3J3YXJkZWQtZm9yLXVzZXItYWdlbnQnXSA9IGNvbnRleHQuY2xpZW50LnVzZXJBZ2VudFxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtZWFzdXJlPFQ+KFxuICAgIGxvZ2dlcjogeyB0cmFjZTogKG1lc3NhZ2U6IHN0cmluZywgXzogdW5kZWZpbmVkLCBmOiBvYmplY3QpID0+IHZvaWQgfSxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZm46ICgpID0+IFByb21pc2U8VD4gfCBULFxuICAgIGZpZWxkcz86IG9iamVjdCxcbikge1xuICAgIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KClcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4oKVxuICAgIH0gZmluYWxseSB7XG4gICAgICAgIGNvbnN0IGVuZCA9IHBlcmZvcm1hbmNlLm5vdygpXG4gICAgICAgIGxvZ2dlci50cmFjZShgTWVhc3VyZW1lbnQgb2YgJHtuYW1lfSB0aW1lYCwgdW5kZWZpbmVkLCB7XG4gICAgICAgICAgICBzdGFydDogaGlnaFByZWNpc2lvbklTT0RhdGUoc3RhcnQpLFxuICAgICAgICAgICAgZW5kOiBoaWdoUHJlY2lzaW9uSVNPRGF0ZShlbmQpLFxuICAgICAgICAgICAgZHVyYXRpb246IChNYXRoLnJvdW5kKGVuZCAqIDEwXzAwMCkgLSBNYXRoLnJvdW5kKHN0YXJ0ICogMTBfMDAwKSkgLyAxMF8wMDAsXG4gICAgICAgICAgICAuLi5maWVsZHMsXG4gICAgICAgIH0pXG4gICAgfVxufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBK0J4RCxlQUFlO0FBQ2YsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQVc7SUFDeEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUFtRCxDQUFBO0FBQzlELENBQUM7QUFFRCxlQUFlO0FBQ2YsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFXO0lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxFQUFFLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUF1QixDQUFBO0FBQ2xDLENBQUM7QUEyREQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWdCO0lBQy9DLE1BQU0sT0FBTyxHQUE4QjtRQUN2QyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLFdBQVcsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksR0FBRyxFQUFFO0tBQ3ZGLENBQUE7SUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtJQUNqRCxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0MsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUE7UUFDMUYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsNEJBQTRCLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUNwRSxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FDekIsTUFBcUUsRUFDckUsSUFBWSxFQUNaLEVBQXdCLEVBQ3hCLE1BQWU7SUFFZixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDL0IsSUFBSSxDQUFDO1FBQ0QsT0FBTyxNQUFNLEVBQUUsRUFBRSxDQUFBO0lBQ3JCLENBQUM7WUFBUyxDQUFDO1FBQ1AsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQzdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRTtZQUNuRCxLQUFLLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxDQUFDO1lBQ2xDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUM7WUFDOUIsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNO1lBQzFFLEdBQUcsTUFBTTtTQUNaLENBQUMsQ0FBQTtJQUNOLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tICdub2RlOnBlcmZfaG9va3MnXG5pbXBvcnQgeyBoaWdoUHJlY2lzaW9uSVNPRGF0ZSB9IGZyb20gJy4vaG9zdC9sb2dnaW5nLmpzJ1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudCA9IHtcbiAgICByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTG9nZ2VyID0ge1xuICAgIGVucmljaChmaWVsZHM6IG9iamVjdCk6IHZvaWRcbiAgICB0cmFjZShtZXNzYWdlOiBzdHJpbmcsIGVycm9yPzogdW5rbm93biwgZmllbGRzPzogb2JqZWN0KTogdm9pZFxuICAgIGRlYnVnKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG4gICAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGVycm9yPzogdW5rbm93biwgZmllbGRzPzogb2JqZWN0KTogdm9pZFxuICAgIHdhcm4obWVzc2FnZTogc3RyaW5nLCBlcnJvcj86IHVua25vd24sIGZpZWxkcz86IG9iamVjdCk6IHZvaWRcbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIGVycm9yPzogdW5rbm93biwgZmllbGRzPzogb2JqZWN0KTogdm9pZFxuICAgIGZhdGFsKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I/OiB1bmtub3duLCBmaWVsZHM/OiBvYmplY3QpOiB2b2lkXG59XG5cbmV4cG9ydCB0eXBlIE11dGFibGVKc29uID1cbiAgICB8IG51bGxcbiAgICB8IGJvb2xlYW5cbiAgICB8IG51bWJlclxuICAgIHwgc3RyaW5nXG4gICAgfCBNdXRhYmxlSnNvbltdXG4gICAgfCB7IFtrZXk6IHN0cmluZ106IE11dGFibGVKc29uIH1cbmV4cG9ydCB0eXBlIEpzb24gPVxuICAgIHwgbnVsbFxuICAgIHwgYm9vbGVhblxuICAgIHwgbnVtYmVyXG4gICAgfCBzdHJpbmdcbiAgICB8IHJlYWRvbmx5IEpzb25bXVxuICAgIHwgeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBKc29uIH1cblxuLypAX19JTkxJTkVfXyovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0U3ByZWFkYWJsZShqc29uPzogSnNvbik6IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogSnNvbiB9IHtcbiAgICBpZiAoIWpzb24pIHtcbiAgICAgICAgcmV0dXJuIHt9XG4gICAgfVxuICAgIHJldHVybiBqc29uIGFzIHVua25vd24gYXMgeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBKc29uIH1cbn1cblxuLypAX19JTkxJTkVfXyovXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlTcHJlYWRhYmxlKGpzb24/OiBKc29uKTogcmVhZG9ubHkgSnNvbltdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoanNvbikpIHtcbiAgICAgICAgcmV0dXJuIFtdXG4gICAgfVxuICAgIHJldHVybiBqc29uIGFzIHJlYWRvbmx5IEpzb25bXVxufVxuXG5leHBvcnQgdHlwZSBIYW5kbGVyQ29uZmlndXJhdGlvbiA9IHtcbiAgICAvKipcbiAgICAgKiBBbiBpbmRpY2F0aW9uIG9mIENQVSB1c2FnZSBvZiB0aGUgaGFuZGxlci5cbiAgICAgKiBAZGVmYXVsdCAnbG93J1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbXB1dGU/OiAnaGlnaCcgfCAnbG93J1xuICAgIC8qKlxuICAgICAqIEFuIGluZGljYXRpb24gb2YgbWVtb3J5IHVzYWdlIG9mIHRoZSBoYW5kbGVyLlxuICAgICAqIEBkZWZhdWx0ICdsb3cnXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWVtb3J5PzogJ2hpZ2gnIHwgJ2xvdydcbiAgICAvKipcbiAgICAgKiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGVucmljaCB0aGUgbG9nIHdpdGggdGhlIGJvZHkgb2YgZXZlbnRzLCByZXF1ZXN0cyBvciByZXNwb25zZXMuIFNldCB0byBmYWxzZSBpZiB0aGUgYm9keSBpcyBsYXJnZSBvciBjb250YWluIHZlcnkgc2Vuc2l0aXZlIGRhdGEuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBleGNsdWRlQm9keUZyb21Mb2dzPzogYm9vbGVhblxuICAgIC8qKlxuICAgICAqIFRoZSBsZXZlbCBiZWxvdyB3aGljaCBsb2cgZW50cmllcyB3aWxsIGJlIGRpc2NhcmRlZC5cbiAgICAgKiBAZGVmYXVsdCAndHJhY2UnXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWluaW11bUxvZ0xldmVsPzogJ3RyYWNlJyB8ICdkZWJ1ZycgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZXJyb3InIHwgJ2ZhdGFsJ1xuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0aGUgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gZmluaXNoIGV4ZWN1dGluZyBpbi5cbiAgICAgKi9cbiAgICByZWFkb25seSB0aW1lb3V0PzogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHQgPSB7XG4gICAgcmVhZG9ubHkgZW52OiBFbnZpcm9ubWVudFxuICAgIHJlYWRvbmx5IGxvZzogTG9nZ2VyXG4gICAgcmVhZG9ubHkgc2lnbmFsOiBBYm9ydFNpZ25hbFxuICAgIG5vdygpOiBEYXRlXG5cbiAgICByZWFkb25seSBvcGVyYXRpb25JZD86IHN0cmluZ1xuICAgIHJlYWRvbmx5IGNsaWVudD86IHtcbiAgICAgICAgcmVhZG9ubHkgaWQ/OiBzdHJpbmdcbiAgICAgICAgcmVhZG9ubHkgaXA/OiBzdHJpbmdcbiAgICAgICAgcmVhZG9ubHkgcG9ydD86IG51bWJlclxuICAgICAgICByZWFkb25seSB1c2VyQWdlbnQ/OiBzdHJpbmdcbiAgICB9XG4gICAgcmVhZG9ubHkgbWV0YT86IHtcbiAgICAgICAgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZ1xuICAgICAgICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nXG4gICAgICAgIHJlYWRvbmx5IHJldmlzaW9uPzogc3RyaW5nXG4gICAgfVxuXG4gICAgZW1pdChcbiAgICAgICAgdG9waWM6IHN0cmluZyxcbiAgICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgICBzdWJqZWN0OiBzdHJpbmcsXG4gICAgICAgIGRhdGE/OiBKc29uLFxuICAgICAgICBtZXNzYWdlSWQ/OiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTx2b2lkPlxuXG4gICAgb25TdWNjZXNzKGZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZCk6IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0dHBSZXF1ZXN0SGVhZGVycyhjb250ZXh0OiBDb250ZXh0KSB7XG4gICAgY29uc3QgaGVhZGVyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgICAgJ3VzZXItYWdlbnQnOiBgJHtjb250ZXh0Lm1ldGE/LnBhY2thZ2VOYW1lID8/ICc/J30vJHtjb250ZXh0Lm1ldGE/LnJldmlzaW9uID8/ICc/J31gLFxuICAgIH1cbiAgICBpZiAoY29udGV4dC5vcGVyYXRpb25JZCkge1xuICAgICAgICBoZWFkZXJzWyd4LXJlcXVlc3QtaWQnXSA9IGNvbnRleHQub3BlcmF0aW9uSWRcbiAgICB9XG4gICAgaWYgKGNvbnRleHQuY2xpZW50KSB7XG4gICAgICAgIGlmIChjb250ZXh0LmNsaWVudC5pZCkge1xuICAgICAgICAgICAgaGVhZGVyc1sneC1jbGllbnQtaWQnXSA9IGNvbnRleHQuY2xpZW50LmlkXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhY29udGV4dC5jbGllbnQuaXAgfHwgISFjb250ZXh0LmNsaWVudC5wb3J0KSB7XG4gICAgICAgICAgICBoZWFkZXJzWyd4LWZvcndhcmRlZC1mb3InXSA9IGAke2NvbnRleHQuY2xpZW50LmlwID8/ICcnfToke2NvbnRleHQuY2xpZW50LnBvcnQgPz8gJyd9YFxuICAgICAgICB9XG4gICAgICAgIGlmIChjb250ZXh0LmNsaWVudC51c2VyQWdlbnQpIHtcbiAgICAgICAgICAgIGhlYWRlcnNbJ3gtZm9yd2FyZGVkLWZvci11c2VyLWFnZW50J10gPSBjb250ZXh0LmNsaWVudC51c2VyQWdlbnRcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVyc1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWVhc3VyZTxUPihcbiAgICBsb2dnZXI6IHsgdHJhY2U6IChtZXNzYWdlOiBzdHJpbmcsIF86IHVuZGVmaW5lZCwgZjogb2JqZWN0KSA9PiB2b2lkIH0sXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGZuOiAoKSA9PiBQcm9taXNlPFQ+IHwgVCxcbiAgICBmaWVsZHM/OiBvYmplY3QsXG4pIHtcbiAgICBjb25zdCBzdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKClcbiAgICB9IGZpbmFsbHkge1xuICAgICAgICBjb25zdCBlbmQgPSBwZXJmb3JtYW5jZS5ub3coKVxuICAgICAgICBsb2dnZXIudHJhY2UoYE1lYXN1cmVtZW50IG9mICR7bmFtZX0gdGltZWAsIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgc3RhcnQ6IGhpZ2hQcmVjaXNpb25JU09EYXRlKHN0YXJ0KSxcbiAgICAgICAgICAgIGVuZDogaGlnaFByZWNpc2lvbklTT0RhdGUoZW5kKSxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAoTWF0aC5yb3VuZChlbmQgKiAxMF8wMDApIC0gTWF0aC5yb3VuZChzdGFydCAqIDEwXzAwMCkpIC8gMTBfMDAwLFxuICAgICAgICAgICAgLi4uZmllbGRzLFxuICAgICAgICB9KVxuICAgIH1cbn1cbiJdfQ==
package/host/logging.js CHANGED
@@ -143,13 +143,10 @@ class EnrichingLogger {
143
143
  this.#buffer = buffer;
144
144
  this.#level = level;
145
145
  this.#reservedEnrichment = reservedEnrichment;
146
- this.#customEnrichment = customEnrichment;
146
+ this.#customEnrichment = customEnrichment ?? {};
147
147
  }
148
148
  enrich(fields) {
149
- return new EnrichingLogger(this.#buffer, this.#level, this.#reservedEnrichment, {
150
- ...this.#customEnrichment,
151
- ...fields,
152
- });
149
+ Object.assign(this.#customEnrichment, fields);
153
150
  }
154
151
  flush() {
155
152
  return this.#buffer.flush();
@@ -255,4 +252,4 @@ function safeErrorAsJson(error, depth) {
255
252
  name: typeof error,
256
253
  };
257
254
  }
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSTdDLE1BQU0sVUFBVSxVQUFVLENBQ3RCLFNBQXVCLEVBQ3ZCLGVBQXFDLEVBQ3JDLE1BQW1CO0lBRW5CLE9BQU8sSUFBSSxlQUFlLENBQ3RCLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFDaEMsZUFBZTtRQUNYLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FBQyxFQUNQLE1BQU0sQ0FDVCxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFBO0FBRTlFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxjQUFzQjtJQUN2RCxNQUFNLFFBQVEsR0FBRywwQkFBMEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsQ0FBQTtJQUNqRixPQUFPLENBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RELENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ25ELEdBQUcsQ0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sU0FBUztJQUNGLFVBQVUsQ0FBYztJQUNqQyxRQUFRLEdBQWUsRUFBRSxDQUFBO0lBQ3pCLEtBQUssR0FBRyxD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RyxLQUFpQixFQUFFLFFBQVEsRUFBRTtRQUN2QyxJQUFJLEVBQUUsT0FBTyxLQUFLO0tBQ2IsQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwZXJmb3JtYW5jZSB9IGZyb20gJ25vZGU6cGVyZl9ob29rcydcbmltcG9ydCB7IEpzb24sIExvZ2dlciB9IGZyb20gJy4uL2NvbnRleHQuanMnXG5pbXBvcnQgeyBMb2dFbnRyeSwgTG9nTGV2ZWwsIExvZ1RyYW5zcG9ydCwgUm9vdExvZ2dlciB9IGZyb20gJy4vY29udGV4dC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VMb2dnZXIoXG4gICAgdHJhbnNwb3J0OiBMb2dUcmFuc3BvcnQsXG4gICAgbWluaW11bUxvZ0xldmVsOiBMb2dMZXZlbCB8IHVuZGVmaW5lZCxcbiAgICBzaWduYWw6IEFib3J0U2lnbmFsLFxuKTogUm9vdExvZ2dlciB7XG4gICAgcmV0dXJuIG5ldyBFbnJpY2hpbmdMb2dnZXIoXG4gICAgICAgIG5ldyBMb2dCdWZmZXIodHJhbnNwb3J0LCBzaWduYWwpLFxuICAgICAgICBtaW5pbXVtTG9nTGV2ZWxcbiAgICAgICAgICAgID8gWydmYXRhbCcsICdlcnJvcicsICd3YXJuaW5nJywgJ2luZm8nLCAnZGVidWcnLCAndHJhY2UnXS5pbmRleE9mKG1pbmltdW1Mb2dMZXZlbClcbiAgICAgICAgICAgIDogNSxcbiAgICAgICAgc2lnbmFsLFxuICAgIClcbn1cblxuY29uc3QgcGVyZm9ybWFuY2VUaW1lT3JpZ2luMTAwbnMgPSBNYXRoLnJvdW5kKHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKiAxMF8wMDApXG5cbmV4cG9ydCBmdW5jdGlvbiBoaWdoUHJlY2lzaW9uSVNPRGF0ZShwZXJmb3JtYW5jZU5vdzogbnVtYmVyKSB7XG4gICAgY29uc3Qgbm93MTAwbnMgPSBwZXJmb3JtYW5jZVRpbWVPcmlnaW4xMDBucyArIE1hdGgucm91bmQocGVyZm9ybWFuY2VOb3cgKiAxMF8wMDApXG4gICAgcmV0dXJuIChcbiAgICAgICAgbmV3IERhdGUobm93MTAwbnMgLyAxMF8wMDApLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMjApICtcbiAgICAgICAgKG5vdzEwMG5zICUgMTBfMDAwXzAwMCkudG9TdHJpbmcoKS5wYWRTdGFydCg3LCAnMCcpICtcbiAgICAgICAgJ1onXG4gICAgKVxufVxuXG5jbGFzcyBMb2dCdWZmZXIge1xuICAgIHJlYWRvbmx5ICN0cmFuc3BvcnQ6IExvZ1RyYW5zcG9ydFxuICAgICNlbnRyaWVzOiBMb2dFbnRyeVtdID0gW11cbiAgICAjc2l6ZSA9IDBcbiAgICAjZmx1c2hlcj86IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWQgfCB2b2lkXG4gICAgcmVhZG9ubHkgI3NpZ25hbDogQWJvcnRTaWduYWxcbiAgICAjYXN5bmNUcmFuc3BvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcbiAgICAjdGltZW91dDogTm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWRcblxuICAgIGNvbnN0cnVjdG9yKHRyYW5zcG9ydDogTG9nVHJhbnNwb3J0LCBzaWduYWw6IEFib3J0U2lnbmFsKSB7XG4gICAgICAgIHRoaXMuI3RyYW5zcG9ydCA9IHRyYW5zcG9ydFxuICAgICAgICB0aGlzLiNzaWduYWwgPSBzaWduYWxcbiAgICB9XG5cbiAgICBjb2xsZWN0KFxuICAgICAgICBsZXZlbDogTG9nTGV2ZWwsXG4gICAgICAgIG51bWVyaWNMb2dMZXZlbDogbnVtYmVyLFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGVycm9yOiB1bmtub3duLFxuICAgICAgICBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVzZXJ2ZWRFbnJpY2htZW50OiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgICAgIGN1c3RvbUVucmljaG1lbnQ6IG9iamVjdCB8IHVuZGVmaW5lZCxcbiAgICApIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gcGVyZm9ybWFuY2Uubm93KClcbiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLiN0b0VudHJ5KFxuICAgICAgICAgICAgaGlnaFByZWNpc2lvbklTT0RhdGUob2Zmc2V0KSxcbiAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgICAgICB0aGlzLiNlbnRyaWVzLnB1c2goZW50cnkpXG4gICAgICAgIHRoaXMuI3NpemUgKz0gZW50cnkuanNvbi5sZW5ndGhcblxuICAgICAgICBpZiAodGhpcy4jYXN5bmNUcmFuc3BvcnQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgICAgICAgdm9pZCB0aGlzLiN0cmFuc3BvcnQuc2VuZEVudHJpZXModGhpcy4jZW50cmllcywgdGhpcy4jc2lnbmFsKVxuICAgICAgICAgICAgdGhpcy4jZW50cmllcyA9IFtdXG4gICAgICAgICAgICB0aGlzLiNzaXplID0gMFxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuI2FzeW5jVHJhbnNwb3J0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuI2FzeW5jVHJhbnNwb3J0ID0gdHJ1ZVxuICAgICAgICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy4jZmx1c2hlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VuZFJlc3VsdCA9IHRoaXMuI3RyYW5zcG9ydC5zZW5kRW50cmllcyh0aGlzLiNlbnRyaWVzLCB0aGlzLiNzaWduYWwpXG4gICAgICAgICAgICAgICAgdGhpcy4jZW50cmllcyA9IFtdXG4gICAgICAgICAgICAgICAgdGhpcy4jc2l6ZSA9IDBcbiAgICAgICAgICAgICAgICBpZiAoc2VuZFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNmbHVzaGVyID0gc2VuZFJlc3VsdFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2FzeW5jVHJhbnNwb3J0ID0gZmFsc2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG51bWVyaWNMb2dMZXZlbCA8IDIgfHwgdGhpcy4jZW50cmllcy5sZW5ndGggPiA4IHx8IHRoaXMuI3NpemUgPiA2NF8wMDApIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgICAgICAgICAgIHZvaWQgdGhpcy5mbHVzaCgpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuI3RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZvaWRcbiAgICAgICAgICAgICAgICAgICAgdm9pZCB0aGlzLmZsdXNoKClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jdGltZW91dCA9IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0sIDIwMDApXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuI2VudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNzdGFydEZsdXNoKHRoaXMuI2VudHJpZXMpXG4gICAgICAgIHRoaXMuI2VudHJpZXMgPSBbXVxuICAgICAgICB0aGlzLiNzaXplID0gMFxuICAgICAgICBpZiAodGhpcy4jdGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuI3RpbWVvdXQpXG4gICAgICAgICAgICB0aGlzLiN0aW1lb3V0ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuI2ZsdXNoZXJcbiAgICB9XG5cbiAgICAjc3RhcnRGbHVzaChlbnRyaWVzOiBMb2dFbnRyeVtdKSB7XG4gICAgICAgIGlmICh0aGlzLiNmbHVzaGVyKSB7XG4gICAgICAgICAgICB0aGlzLiNmbHVzaGVyID0gdGhpcy4jZmx1c2hlci50aGVuKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy4jdHJhbnNwb3J0LnNlbmRFbnRyaWVzKGVudHJpZXMsIHRoaXMuI3NpZ25hbCksXG4gICAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNmbHVzaGVyID0gdGhpcy4jdHJhbnNwb3J0LnNlbmRFbnRyaWVzKGVudHJpZXMsIHRoaXMuI3NpZ25hbClcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN0b0VudHJ5KFxuICAgICAgICB0aW1lc3RhbXA6IHN0cmluZyxcbiAgICAgICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBlcnJvcjogdW5rbm93bixcbiAgICAgICAgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgICAgIHJlc2VydmVkRW5yaWNobWVudDogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgICAgICBjdXN0b21FbnJpY2htZW50OiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogb2Zmc2V0LFxuICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAganNvbjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAsXG4gICAgICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JBc0pzb24oZXJyb3IsIDApLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICAgICAgICAgIC4uLmV4dHJhKGZpZWxkcywgY3VzdG9tRW5yaWNobWVudCksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdChcbiAgICAgICAgICAgICAgICAnd2FybmluZycsXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICAnRXJyb3Igc2VyaWFsaXppbmcgZXJyb3IuJyxcbiAgICAgICAgICAgICAgICBlLFxuICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICByZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICAgICAgY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICBqc29uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBzYWZlRXJyb3JBc0pzb24oZXJyb3IsIDApLFxuICAgICAgICAgICAgICAgICAgICAuLi5yZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICAgICAgICAgIC4uLmV4dHJhKGZpZWxkcywgY3VzdG9tRW5yaWNobWVudCksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhKGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkLCBjdXN0b21FbnJpY2htZW50OiBvYmplY3QgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICBpZiAoIWN1c3RvbUVucmljaG1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VzdG9tRW5yaWNobWVudFxuICAgIH1cbiAgICBpZiAoIWN1c3RvbUVucmljaG1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkc1xuICAgIH1cbiAgICByZXR1cm4geyAuLi5jdXN0b21FbnJpY2htZW50LCAuLi5maWVsZHMgfVxufVxuXG5jbGFzcyBFbnJpY2hpbmdMb2dnZXIgaW1wbGVtZW50cyBMb2dnZXIge1xuICAgIHJlYWRvbmx5ICNidWZmZXI6IExvZ0J1ZmZlclxuICAgIHJlYWRvbmx5ICNyZXNlcnZlZEVucmljaG1lbnQ/OiBvYmplY3RcbiAgICByZWFkb25seSAjY3VzdG9tRW5yaWNobWVudD86IG9iamVjdFxuICAgIHJlYWRvbmx5ICNsZXZlbDogbnVtYmVyXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgYnVmZmVyOiBMb2dCdWZmZXIsXG4gICAgICAgIGxldmVsOiBudW1iZXIsXG4gICAgICAgIHJlc2VydmVkRW5yaWNobWVudD86IG9iamVjdCxcbiAgICAgICAgY3VzdG9tRW5yaWNobWVudD86IG9iamVjdCxcbiAgICApIHtcbiAgICAgICAgdGhpcy4jYnVmZmVyID0gYnVmZmVyXG4gICAgICAgIHRoaXMuI2xldmVsID0gbGV2ZWxcbiAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50ID0gcmVzZXJ2ZWRFbnJpY2htZW50XG4gICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQgPSBjdXN0b21FbnJpY2htZW50XG4gICAgfVxuXG4gICAgZW5yaWNoKGZpZWxkczogb2JqZWN0KTogTG9nZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFbnJpY2hpbmdMb2dnZXIodGhpcy4jYnVmZmVyLCB0aGlzLiNsZXZlbCwgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LCB7XG4gICAgICAgICAgICAuLi50aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICAgICAgLi4uZmllbGRzLFxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGZsdXNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jYnVmZmVyLmZsdXNoKClcbiAgICB9XG5cbiAgICBlbnJpY2hSZXNlcnZlZChmaWVsZHM6IG9iamVjdCk6IEVucmljaGluZ0xvZ2dlciB7XG4gICAgICAgIHJldHVybiBuZXcgRW5yaWNoaW5nTG9nZ2VyKFxuICAgICAgICAgICAgdGhpcy4jYnVmZmVyLFxuICAgICAgICAgICAgdGhpcy4jbGV2ZWwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgICAgIC4uLmZpZWxkcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuXG4gICAgdHJhY2UobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgNSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAndHJhY2UnLFxuICAgICAgICAgICAgNSxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgZGVidWcobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgNCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnZGVidWcnLFxuICAgICAgICAgICAgNCxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duLCBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy4jbGV2ZWwgPCAzKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNidWZmZXIuY29sbGVjdChcbiAgICAgICAgICAgICdpbmZvJyxcbiAgICAgICAgICAgIDMsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuICAgIHdhcm4obWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgMikge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnd2FybmluZycsXG4gICAgICAgICAgICAyLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duLCBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy4jbGV2ZWwgPCAxKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLiNidWZmZXIuY29sbGVjdChcbiAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAxLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbiAgICBmYXRhbChtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duLCBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICB0aGlzLiNidWZmZXIuY29sbGVjdChcbiAgICAgICAgICAgICdmYXRhbCcsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbn1cblxuZnVuY3Rpb24gZXJyb3JBc0pzb24oZXJyb3I6IHVua25vd24sIGRlcHRoOiBudW1iZXIpOiBKc29uIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCB8fCBlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmIChkZXB0aCA+IDUpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgICAgICBzdGFjazogZXJyb3Iuc3RhY2ssXG4gICAgICAgICAgICBjYXVzZTogZXJyb3JBc0pzb24oZXJyb3IuY2F1c2UsIGRlcHRoICsgMSksXG4gICAgICAgICAgICBlcnJvcnM6IGVycm9yQXNKc29uKChlcnJvciBhcyB7IGVycm9ycz86IHVua25vd24gfSkuZXJyb3JzLCBkZXB0aCArIDEpLFxuICAgICAgICAgICAgLi4uKGVycm9yIGFzIHVua25vd24gYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pLFxuICAgICAgICB9IGFzIEpzb25cbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yLm1hcChlcnJvckFzSnNvbikgYXMgSnNvblxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW1pc3VzZWQtc3ByZWFkXG4gICAgICAgICAgICAuLi5lcnJvcixcbiAgICAgICAgfSBhcyBKc29uXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1lc3NhZ2U6IChlcnJvciBhcyB1bmtub3duKT8udG9TdHJpbmcoKSxcbiAgICAgICAgbmFtZTogdHlwZW9mIGVycm9yLFxuICAgIH0gYXMgSnNvblxufVxuXG5mdW5jdGlvbiBzYWZlRXJyb3JBc0pzb24oZXJyb3I6IHVua25vd24sIGRlcHRoOiBudW1iZXIpOiBKc29uIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCB8fCBlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmIChkZXB0aCA+IDUpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgICAgICBzdGFjazogZXJyb3Iuc3RhY2ssXG4gICAgICAgICAgICBjYXVzZTogc2FmZUVycm9yQXNKc29uKGVycm9yLmNhdXNlLCBkZXB0aCArIDEpLFxuICAgICAgICAgICAgZXJyb3JzOiBzYWZlRXJyb3JBc0pzb24oKGVycm9yIGFzIHsgZXJyb3JzPzogdW5rbm93biB9KS5lcnJvcnMsIGRlcHRoICsgMSksXG4gICAgICAgIH0gYXMgSnNvblxuICAgIH1cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyb3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3IubWFwKHNhZmVFcnJvckFzSnNvbikgYXMgSnNvblxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW1pc3VzZWQtc3ByZWFkXG4gICAgICAgICAgICAuLi5lcnJvcixcbiAgICAgICAgfSBhcyBKc29uXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1lc3NhZ2U6IChlcnJvciBhcyB1bmtub3duKT8udG9TdHJpbmcoKSxcbiAgICAgICAgbmFtZTogdHlwZW9mIGVycm9yLFxuICAgIH0gYXMgSnNvblxufVxuIl19
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSTdDLE1BQU0sVUFBVSxVQUFVLENBQ3RCLFNBQXVCLEVBQ3ZCLGVBQXFDLEVBQ3JDLE1BQW1CO0lBRW5CLE9BQU8sSUFBSSxlQUFlLENBQ3RCLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFDaEMsZUFBZTtRQUNYLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FBQyxFQUNQLE1BQU0sQ0FDVCxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFBO0FBRTlFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxjQUFzQjtJQUN2RCxNQUFNLFFBQVEsR0FBRywwQkFBMEIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsQ0FBQTtJQUNqRixPQUFPLENBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RELENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ25ELEdBQUcsQ0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sU0FBUztJQUNGLFVBQVUsQ0FBYztJQUNqQyxRQUFRLEdBQWUsRUFBRSxDQUFBO0lBQ3pCLEtBQUssR0FBRyxD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QUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE9BQU8sRUFDUCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDNUQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE1BQU0sRUFDTixDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDNUQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLFNBQVMsRUFDVCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQ3pCLENBQUE7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQWUsRUFBRSxLQUFjLEVBQUUsTUFBMEI7UUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU07UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ2hCLE9BQU8sRUFDUCxDQUFDLEVBQ0QsT0FBTyxFQUNQLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJ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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBlcmZvcm1hbmNlIH0gZnJvbSAnbm9kZTpwZXJmX2hvb2tzJ1xuaW1wb3J0IHsgSnNvbiwgTG9nZ2VyIH0gZnJvbSAnLi4vY29udGV4dC5qcydcbmltcG9ydCB7IExvZ0VudHJ5LCBMb2dMZXZlbCwgTG9nVHJhbnNwb3J0LCBSb290TG9nZ2VyIH0gZnJvbSAnLi9jb250ZXh0LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZUxvZ2dlcihcbiAgICB0cmFuc3BvcnQ6IExvZ1RyYW5zcG9ydCxcbiAgICBtaW5pbXVtTG9nTGV2ZWw6IExvZ0xldmVsIHwgdW5kZWZpbmVkLFxuICAgIHNpZ25hbDogQWJvcnRTaWduYWwsXG4pOiBSb290TG9nZ2VyIHtcbiAgICByZXR1cm4gbmV3IEVucmljaGluZ0xvZ2dlcihcbiAgICAgICAgbmV3IExvZ0J1ZmZlcih0cmFuc3BvcnQsIHNpZ25hbCksXG4gICAgICAgIG1pbmltdW1Mb2dMZXZlbFxuICAgICAgICAgICAgPyBbJ2ZhdGFsJywgJ2Vycm9yJywgJ3dhcm5pbmcnLCAnaW5mbycsICdkZWJ1ZycsICd0cmFjZSddLmluZGV4T2YobWluaW11bUxvZ0xldmVsKVxuICAgICAgICAgICAgOiA1LFxuICAgICAgICBzaWduYWwsXG4gICAgKVxufVxuXG5jb25zdCBwZXJmb3JtYW5jZVRpbWVPcmlnaW4xMDBucyA9IE1hdGgucm91bmQocGVyZm9ybWFuY2UudGltZU9yaWdpbiAqIDEwXzAwMClcblxuZXhwb3J0IGZ1bmN0aW9uIGhpZ2hQcmVjaXNpb25JU09EYXRlKHBlcmZvcm1hbmNlTm93OiBudW1iZXIpIHtcbiAgICBjb25zdCBub3cxMDBucyA9IHBlcmZvcm1hbmNlVGltZU9yaWdpbjEwMG5zICsgTWF0aC5yb3VuZChwZXJmb3JtYW5jZU5vdyAqIDEwXzAwMClcbiAgICByZXR1cm4gKFxuICAgICAgICBuZXcgRGF0ZShub3cxMDBucyAvIDEwXzAwMCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAyMCkgK1xuICAgICAgICAobm93MTAwbnMgJSAxMF8wMDBfMDAwKS50b1N0cmluZygpLnBhZFN0YXJ0KDcsICcwJykgK1xuICAgICAgICAnWidcbiAgICApXG59XG5cbmNsYXNzIExvZ0J1ZmZlciB7XG4gICAgcmVhZG9ubHkgI3RyYW5zcG9ydDogTG9nVHJhbnNwb3J0XG4gICAgI2VudHJpZXM6IExvZ0VudHJ5W10gPSBbXVxuICAgICNzaXplID0gMFxuICAgICNmbHVzaGVyPzogUHJvbWlzZTx2b2lkPiB8IHVuZGVmaW5lZCB8IHZvaWRcbiAgICByZWFkb25seSAjc2lnbmFsOiBBYm9ydFNpZ25hbFxuICAgICNhc3luY1RyYW5zcG9ydDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICAgICN0aW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZFxuXG4gICAgY29uc3RydWN0b3IodHJhbnNwb3J0OiBMb2dUcmFuc3BvcnQsIHNpZ25hbDogQWJvcnRTaWduYWwpIHtcbiAgICAgICAgdGhpcy4jdHJhbnNwb3J0ID0gdHJhbnNwb3J0XG4gICAgICAgIHRoaXMuI3NpZ25hbCA9IHNpZ25hbFxuICAgIH1cblxuICAgIGNvbGxlY3QoXG4gICAgICAgIGxldmVsOiBMb2dMZXZlbCxcbiAgICAgICAgbnVtZXJpY0xvZ0xldmVsOiBudW1iZXIsXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgZXJyb3I6IHVua25vd24sXG4gICAgICAgIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgICAgICByZXNlcnZlZEVucmljaG1lbnQ6IG9iamVjdCB8IHVuZGVmaW5lZCxcbiAgICAgICAgY3VzdG9tRW5yaWNobWVudDogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgICkge1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBwZXJmb3JtYW5jZS5ub3coKVxuICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuI3RvRW50cnkoXG4gICAgICAgICAgICBoaWdoUHJlY2lzaW9uSVNPRGF0ZShvZmZzZXQpLFxuICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICByZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICBjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgICAgIHRoaXMuI2VudHJpZXMucHVzaChlbnRyeSlcbiAgICAgICAgdGhpcy4jc2l6ZSArPSBlbnRyeS5qc29uLmxlbmd0aFxuXG4gICAgICAgIGlmICh0aGlzLiNhc3luY1RyYW5zcG9ydCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICB2b2lkIHRoaXMuI3RyYW5zcG9ydC5zZW5kRW50cmllcyh0aGlzLiNlbnRyaWVzLCB0aGlzLiNzaWduYWwpXG4gICAgICAgICAgICB0aGlzLiNlbnRyaWVzID0gW11cbiAgICAgICAgICAgIHRoaXMuI3NpemUgPSAwXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy4jYXN5bmNUcmFuc3BvcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy4jYXN5bmNUcmFuc3BvcnQgPSB0cnVlXG4gICAgICAgICAgICBzZXRJbW1lZGlhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLiNmbHVzaGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzZW5kUmVzdWx0ID0gdGhpcy4jdHJhbnNwb3J0LnNlbmRFbnRyaWVzKHRoaXMuI2VudHJpZXMsIHRoaXMuI3NpZ25hbClcbiAgICAgICAgICAgICAgICB0aGlzLiNlbnRyaWVzID0gW11cbiAgICAgICAgICAgICAgICB0aGlzLiNzaXplID0gMFxuICAgICAgICAgICAgICAgIGlmIChzZW5kUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSBzZW5kUmVzdWx0XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jYXN5bmNUcmFuc3BvcnQgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobnVtZXJpY0xvZ0xldmVsIDwgMiB8fCB0aGlzLiNlbnRyaWVzLmxlbmd0aCA+IDggfHwgdGhpcy4jc2l6ZSA+IDY0XzAwMCkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICAgICAgdm9pZCB0aGlzLmZsdXNoKClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZFxuICAgICAgICAgICAgICAgICAgICB2b2lkIHRoaXMuZmx1c2goKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLiN0aW1lb3V0ID0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSwgMjAwMClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGZsdXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy4jZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI3N0YXJ0Rmx1c2godGhpcy4jZW50cmllcylcbiAgICAgICAgdGhpcy4jZW50cmllcyA9IFtdXG4gICAgICAgIHRoaXMuI3NpemUgPSAwXG4gICAgICAgIGlmICh0aGlzLiN0aW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy4jdGltZW91dClcbiAgICAgICAgICAgIHRoaXMuI3RpbWVvdXQgPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy4jZmx1c2hlclxuICAgIH1cblxuICAgICNzdGFydEZsdXNoKGVudHJpZXM6IExvZ0VudHJ5W10pIHtcbiAgICAgICAgaWYgKHRoaXMuI2ZsdXNoZXIpIHtcbiAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSB0aGlzLiNmbHVzaGVyLnRoZW4oKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLiN0cmFuc3BvcnQuc2VuZEVudHJpZXMoZW50cmllcywgdGhpcy4jc2lnbmFsKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuI2ZsdXNoZXIgPSB0aGlzLiN0cmFuc3BvcnQuc2VuZEVudHJpZXMoZW50cmllcywgdGhpcy4jc2lnbmFsKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3RvRW50cnkoXG4gICAgICAgIHRpbWVzdGFtcDogc3RyaW5nLFxuICAgICAgICBvZmZzZXQ6IG51bWJlcixcbiAgICAgICAgbGV2ZWw6IExvZ0xldmVsLFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGVycm9yOiB1bmtub3duLFxuICAgICAgICBmaWVsZHM6IG9iamVjdCB8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVzZXJ2ZWRFbnJpY2htZW50OiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgICAgIGN1c3RvbUVucmljaG1lbnQ6IG9iamVjdCB8IHVuZGVmaW5lZCxcbiAgICApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICBqc29uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvckFzSnNvbihlcnJvciwgMCksXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgICAgICAgICAgLi4uZXh0cmEoZmllbGRzLCBjdXN0b21FbnJpY2htZW50KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5jb2xsZWN0KFxuICAgICAgICAgICAgICAgICd3YXJuaW5nJyxcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgICdFcnJvciBzZXJpYWxpemluZyBlcnJvci4nLFxuICAgICAgICAgICAgICAgIGUsXG4gICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgICAgICBjdXN0b21FbnJpY2htZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IG9mZnNldCxcbiAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgIGpzb246IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLFxuICAgICAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHNhZmVFcnJvckFzSnNvbihlcnJvciwgMCksXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgICAgICAgICAgLi4uZXh0cmEoZmllbGRzLCBjdXN0b21FbnJpY2htZW50KSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gZXh0cmEoZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQsIGN1c3RvbUVucmljaG1lbnQ6IG9iamVjdCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgIGlmICghY3VzdG9tRW5yaWNobWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXN0b21FbnJpY2htZW50XG4gICAgfVxuICAgIGlmICghY3VzdG9tRW5yaWNobWVudCkge1xuICAgICAgICByZXR1cm4gZmllbGRzXG4gICAgfVxuICAgIHJldHVybiB7IC4uLmN1c3RvbUVucmljaG1lbnQsIC4uLmZpZWxkcyB9XG59XG5cbmNsYXNzIEVucmljaGluZ0xvZ2dlciBpbXBsZW1lbnRzIExvZ2dlciB7XG4gICAgcmVhZG9ubHkgI2J1ZmZlcjogTG9nQnVmZmVyXG4gICAgcmVhZG9ubHkgI3Jlc2VydmVkRW5yaWNobWVudD86IG9iamVjdFxuICAgIHJlYWRvbmx5ICNjdXN0b21FbnJpY2htZW50OiBvYmplY3RcbiAgICByZWFkb25seSAjbGV2ZWw6IG51bWJlclxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGJ1ZmZlcjogTG9nQnVmZmVyLFxuICAgICAgICBsZXZlbDogbnVtYmVyLFxuICAgICAgICByZXNlcnZlZEVucmljaG1lbnQ/OiBvYmplY3QsXG4gICAgICAgIGN1c3RvbUVucmljaG1lbnQ/OiBvYmplY3QsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuI2J1ZmZlciA9IGJ1ZmZlclxuICAgICAgICB0aGlzLiNsZXZlbCA9IGxldmVsXG4gICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCA9IHJlc2VydmVkRW5yaWNobWVudFxuICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50ID0gY3VzdG9tRW5yaWNobWVudCA/PyB7fVxuICAgIH1cblxuICAgIGVucmljaChmaWVsZHM6IG9iamVjdCk6IHZvaWQge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuI2N1c3RvbUVucmljaG1lbnQsIGZpZWxkcylcbiAgICB9XG5cbiAgICBmbHVzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2J1ZmZlci5mbHVzaCgpXG4gICAgfVxuXG4gICAgZW5yaWNoUmVzZXJ2ZWQoZmllbGRzOiBvYmplY3QpOiBFbnJpY2hpbmdMb2dnZXIge1xuICAgICAgICByZXR1cm4gbmV3IEVucmljaGluZ0xvZ2dlcihcbiAgICAgICAgICAgIHRoaXMuI2J1ZmZlcixcbiAgICAgICAgICAgIHRoaXMuI2xldmVsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgICAgICAuLi5maWVsZHMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHRyYWNlKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24sIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLiNsZXZlbCA8IDUpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2J1ZmZlci5jb2xsZWN0KFxuICAgICAgICAgICAgJ3RyYWNlJyxcbiAgICAgICAgICAgIDUsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuICAgIGRlYnVnKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24sIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLiNsZXZlbCA8IDQpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2J1ZmZlci5jb2xsZWN0KFxuICAgICAgICAgICAgJ2RlYnVnJyxcbiAgICAgICAgICAgIDQsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICB0aGlzLiNyZXNlcnZlZEVucmljaG1lbnQsXG4gICAgICAgICAgICB0aGlzLiNjdXN0b21FbnJpY2htZW50LFxuICAgICAgICApXG4gICAgfVxuICAgIGluZm8obWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgMykge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnaW5mbycsXG4gICAgICAgICAgICAzLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgZmllbGRzLFxuICAgICAgICAgICAgdGhpcy4jcmVzZXJ2ZWRFbnJpY2htZW50LFxuICAgICAgICAgICAgdGhpcy4jY3VzdG9tRW5yaWNobWVudCxcbiAgICAgICAgKVxuICAgIH1cbiAgICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IHVua25vd24sIGZpZWxkczogb2JqZWN0IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLiNsZXZlbCA8IDIpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2J1ZmZlci5jb2xsZWN0KFxuICAgICAgICAgICAgJ3dhcm5pbmcnLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2xldmVsIDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgMSxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG4gICAgZmF0YWwobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgZmllbGRzOiBvYmplY3QgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy4jYnVmZmVyLmNvbGxlY3QoXG4gICAgICAgICAgICAnZmF0YWwnLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuI3Jlc2VydmVkRW5yaWNobWVudCxcbiAgICAgICAgICAgIHRoaXMuI2N1c3RvbUVucmljaG1lbnQsXG4gICAgICAgIClcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGVycm9yQXNKc29uKGVycm9yOiB1bmtub3duLCBkZXB0aDogbnVtYmVyKTogSnNvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQgfHwgZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoZGVwdGggPiA1KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgICAgICAgY2F1c2U6IGVycm9yQXNKc29uKGVycm9yLmNhdXNlLCBkZXB0aCArIDEpLFxuICAgICAgICAgICAgZXJyb3JzOiBlcnJvckFzSnNvbigoZXJyb3IgYXMgeyBlcnJvcnM/OiB1bmtub3duIH0pLmVycm9ycywgZGVwdGggKyAxKSxcbiAgICAgICAgICAgIC4uLihlcnJvciBhcyB1bmtub3duIGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KSxcbiAgICAgICAgfSBhcyBKc29uXG4gICAgfVxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlcnJvcikpIHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvci5tYXAoZXJyb3JBc0pzb24pIGFzIEpzb25cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXNwcmVhZFxuICAgICAgICAgICAgLi4uZXJyb3IsXG4gICAgICAgIH0gYXMgSnNvblxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXNzYWdlOiAoZXJyb3IgYXMgdW5rbm93bik/LnRvU3RyaW5nKCksXG4gICAgICAgIG5hbWU6IHR5cGVvZiBlcnJvcixcbiAgICB9IGFzIEpzb25cbn1cblxuZnVuY3Rpb24gc2FmZUVycm9yQXNKc29uKGVycm9yOiB1bmtub3duLCBkZXB0aDogbnVtYmVyKTogSnNvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQgfHwgZXJyb3IgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoZGVwdGggPiA1KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgICBuYW1lOiBlcnJvci5uYW1lLFxuICAgICAgICAgICAgc3RhY2s6IGVycm9yLnN0YWNrLFxuICAgICAgICAgICAgY2F1c2U6IHNhZmVFcnJvckFzSnNvbihlcnJvci5jYXVzZSwgZGVwdGggKyAxKSxcbiAgICAgICAgICAgIGVycm9yczogc2FmZUVycm9yQXNKc29uKChlcnJvciBhcyB7IGVycm9ycz86IHVua25vd24gfSkuZXJyb3JzLCBkZXB0aCArIDEpLFxuICAgICAgICB9IGFzIEpzb25cbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yLm1hcChzYWZlRXJyb3JBc0pzb24pIGFzIEpzb25cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXNwcmVhZFxuICAgICAgICAgICAgLi4uZXJyb3IsXG4gICAgICAgIH0gYXMgSnNvblxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtZXNzYWdlOiAoZXJyb3IgYXMgdW5rbm93bik/LnRvU3RyaW5nKCksXG4gICAgICAgIG5hbWU6IHR5cGVvZiBlcnJvcixcbiAgICB9IGFzIEpzb25cbn1cbiJdfQ==
package/host/reflect.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { readdir, readFile } from 'node:fs/promises';
2
- import { basename, extname, join, resolve } from 'node:path';
2
+ import { findPackageJSON } from 'node:module';
3
+ import { basename, dirname, extname, join, resolve } from 'node:path';
3
4
  import { pathToFileURL } from 'node:url';
4
5
  import { getHash } from './git.js';
5
6
  export function resolveCpu(config, supported) {
@@ -34,7 +35,13 @@ export async function reflect(path) {
34
35
  getHash(absolutePath),
35
36
  ]);
36
37
  const files = allFiles.filter(file => extname(file) === '.ts' && !file.endsWith('.d.ts'));
37
- const { getHandlers, setMeta } = (await import(pathToFileURL(join(absolutePath, 'node_modules/@riddance/host/host/registry.js')).toString()));
38
+ const myPackageJson = packageJson.name === '@riddance/host'
39
+ ? join(absolutePath, 'package.json')
40
+ : findPackageJSON('@riddance/host', `${pathToFileURL(absolutePath).href}/`);
41
+ if (!myPackageJson) {
42
+ throw new Error('Packages not installed');
43
+ }
44
+ const { getHandlers, setMeta } = (await import(pathToFileURL(join(dirname(myPackageJson), 'host/registry.js')).toString()));
38
45
  for (const file of files) {
39
46
  const base = basename(file, '.ts');
40
47
  setMeta(packageJson.name, base, revision, packageJson.config);
@@ -81,4 +88,4 @@ async function readConfig(path) {
81
88
  const packageJson = JSON.parse(await readFile(join(path, 'package.json'), 'utf-8'));
82
89
  return packageJson;
83
90
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQStDbEMsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFnQyxFQUFFLFNBQWdCO0lBQ3pFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDekQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ1osMEdBQTBHO1FBQzFHLG9FQUFvRTtRQUNwRSxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxJQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUNyQixNQUFnQyxFQUNoQyxTQUE0QjtJQUU1QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNaLDBHQUEwRztRQUMxRyxvRUFBb0U7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxNQUFNLENBQUMsRUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzlFLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQTtBQUNuQixDQUFDO0FB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WUFDNUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1NBQ3ZCLENBQUMsQ0FBQztRQUNILE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUU7Z0JBQ0osR0FBRyxDQUFDLENBQUMsTUFBTTtnQkFDWCxJQUFJLEVBQUUsV0FBVyxDQUFDLEdBQUc7Z0JBQ3JCLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtnQkFDbEIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSTthQUN6QztZQUNELElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxFQUFFO1lBQzVCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztZQUNkLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtTQUNmLENBQUMsQ0FBQztLQUNOLENBQUE7QUFDTCxDQUFDO0FBRUQsS0FBSyxVQUFVLFVBQVUsQ0FBQyxJQUFZO0lBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FNakYsQ0FBQTtJQUNELE9BQU8sV0FBVyxDQUFBO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkZGlyLCByZWFkRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnXG5pbXBvcnQgeyBiYXNlbmFtZSwgZXh0bmFtZSwgam9pbiwgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCdcbmltcG9ydCB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tICdub2RlOnVybCdcbmltcG9ydCB0eXBlIHsgSGFuZGxlckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb250ZXh0LmpzJ1xuaW1wb3J0IHR5cGUgeyBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9odHRwLmpzJ1xuaW1wb3J0IHR5cGUgeyBUaW1lckhhbmRsZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vdGltZXIuanMnXG5pbXBvcnQgeyBnZXRIYXNoIH0gZnJvbSAnLi9naXQuanMnXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tZXRhLmpzJ1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyc0dldHRlciB9IGZyb20gJy4vcmVnaXN0cnkuanMnXG5cbnR5cGUgQ1BVID1cbiAgICB8ICdhcm0nXG4gICAgfCAnYXJtNjQnXG4gICAgfCAnaWEzMidcbiAgICB8ICdtaXBzJ1xuICAgIHwgJ21pcHNlbCdcbiAgICB8ICdwcGMnXG4gICAgfCAncHBjNjQnXG4gICAgfCAnczM5MCdcbiAgICB8ICdzMzkweCdcbiAgICB8ICd4MzInXG4gICAgfCAneDY0J1xudHlwZSBDcHVDb25maWcgPSBDUFUgfCBgISR7Q1BVfWBcbnR5cGUgT1NDb25maWcgPSBOb2RlSlMuUGxhdGZvcm0gfCBgISR7Tm9kZUpTLlBsYXRmb3JtfWBcblxuZXhwb3J0IHR5cGUgUGFja2FnZUpzb25Db25maWd1cmF0aW9uID0ge1xuICAgIG5vZGVWZXJzaW9uPzogc3RyaW5nXG4gICAgY3B1cz86IENwdUNvbmZpZ1tdXG4gICAgb3M/OiBPU0NvbmZpZ1tdXG59XG5cbmV4cG9ydCB0eXBlIFJlZmxlY3Rpb24gPSB7XG4gICAgbmFtZTogc3RyaW5nXG4gICAgcmV2aXNpb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgIGh0dHA6IHtcbiAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgIG1ldGhvZDogc3RyaW5nXG4gICAgICAgIHBhdGhQYXR0ZXJuOiBzdHJpbmdcbiAgICAgICAgY29uZmlnOiBIdHRwSGFuZGxlckNvbmZpZ3VyYXRpb24gJiBQYWNrYWdlSnNvbkNvbmZpZ3VyYXRpb25cbiAgICB9W11cbiAgICB0aW1lcnM6IHtcbiAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgIHNjaGVkdWxlOiBzdHJpbmdcbiAgICAgICAgY29uZmlnOiBUaW1lckhhbmRsZXJDb25maWd1cmF0aW9uICYgUGFja2FnZUpzb25Db25maWd1cmF0aW9uXG4gICAgfVtdXG4gICAgZXZlbnRzOiB7XG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgICB0b3BpYzogc3RyaW5nXG4gICAgICAgIHR5cGU6IHN0cmluZ1xuICAgICAgICBjb25maWc6IEhhbmRsZXJDb25maWd1cmF0aW9uICYgUGFja2FnZUpzb25Db25maWd1cmF0aW9uXG4gICAgfVtdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ3B1KGNvbmZpZzogUGFja2FnZUpzb25Db25maWd1cmF0aW9uLCBzdXBwb3J0ZWQ6IENQVVtdKTogQ1BVIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVTdXBwb3J0ZWQoY29uZmlnLmNwdXMsIHN1cHBvcnRlZClcbiAgICBpZiAoIXJlc29sdmVkKSB7XG4gICAgICAgIC8vIHJlc29sdmU8VD4oY29uZmlnLCBzdXBwb3J0ZWQpIGFjdHVhbGx5IGFzc2VydHMgY29uZmlnIGlzIChUIHwgYCEke1R9YClbXSwgYnV0IHRoYXQncyBub3Qgc3VwcG9ydGVkIHlldC5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBDUFVzOiAnICsgY29uZmlnLmNwdXMhLmpvaW4oJywgJykpXG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9TKFxuICAgIGNvbmZpZzogUGFja2FnZUpzb25Db25maWd1cmF0aW9uLFxuICAgIHN1cHBvcnRlZDogTm9kZUpTLlBsYXRmb3JtW10sXG4pOiBOb2RlSlMuUGxhdGZvcm0ge1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVN1cHBvcnRlZChjb25maWcub3MsIHN1cHBvcnRlZClcbiAgICBpZiAoIXJlc29sdmVkKSB7XG4gICAgICAgIC8vIHJlc29sdmU8VD4oY29uZmlnLCBzdXBwb3J0ZWQpIGFjdHVhbGx5IGFzc2VydHMgY29uZmlnIGlzIChUIHwgYCEke1R9YClbXSwgYnV0IHRoYXQncyBub3Qgc3VwcG9ydGVkIHlldC5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBvcGVyYXRpbmcgc3lzdGVtczogJyArIGNvbmZpZy5vcyEuam9pbignLCAnKSlcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkXG59XG5cbmZ1bmN0aW9uIHJlc29sdmVTdXBwb3J0ZWQ8VCBleHRlbmRzIHN0cmluZz4oXG4gICAgY29uZmlnOiAoVCB8IGAhJHtUfWApW10gfCB1bmRlZmluZWQsXG4gICAgc3VwcG9ydGVkOiBUW10sXG4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICByZXR1cm4gc3VwcG9ydGVkWzBdXG4gICAgfVxuICAgIHJldHVybiBzdXBwb3J0ZWQuZmluZChzID0+IGNvbmZpZy5pbmNsdWRlcyhzKSAmJiAhY29uZmlnLmluY2x1ZGVzKGAhJHtzfWApKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVmbGVjdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPFJlZmxlY3Rpb24+IHtcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSByZXNvbHZlKHByb2Nlc3MuY3dkKCksIHBhdGgpXG4gICAgY29uc3QgW3BhY2thZ2VKc29uLCBhbGxGaWxlcywgcmV2aXNpb25dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICByZWFkQ29uZmlnKGFic29sdXRlUGF0aCksXG4gICAgICAgIHJlYWRkaXIoYWJzb2x1dGVQYXRoKSxcbiAgICAgICAgZ2V0SGFzaChhYnNvbHV0ZVBhdGgpLFxuICAgIF0pXG4gICAgY29uc3QgZmlsZXMgPSBhbGxGaWxlcy5maWx0ZXIoZmlsZSA9PiBleHRuYW1lKGZpbGUpID09PSAnLnRzJyAmJiAhZmlsZS5lbmRzV2l0aCgnLmQudHMnKSlcbiAgICBjb25zdCB7IGdldEhhbmRsZXJzLCBzZXRNZXRhIH0gPSAoYXdhaXQgaW1wb3J0KFxuICAgICAgICBwYXRoVG9GaWxlVVJMKGpvaW4oYWJzb2x1dGVQYXRoLCAnbm9kZV9tb2R1bGVzL0ByaWRkYW5jZS9ob3N0L2hvc3QvcmVnaXN0cnkuanMnKSkudG9TdHJpbmcoKVxuICAgICkpIGFzIHtcbiAgICAgICAgZ2V0SGFuZGxlcnM6IEhhbmRsZXJzR2V0dGVyXG4gICAgICAgIHNldE1ldGE6IChcbiAgICAgICAgICAgIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgcmV2OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgICAgICBjZmc6IFBhY2thZ2VDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkLFxuICAgICAgICApID0+IHZvaWRcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgY29uc3QgYmFzZSA9IGJhc2VuYW1lKGZpbGUsICcudHMnKVxuICAgICAgICBzZXRNZXRhKHBhY2thZ2VKc29uLm5hbWUsIGJhc2UsIHJldmlzaW9uLCBwYWNrYWdlSnNvbi5jb25maWcpXG4gICAgICAgIGF3YWl0IGltcG9ydChwYXRoVG9GaWxlVVJMKGpvaW4oYWJzb2x1dGVQYXRoLCBiYXNlICsgJy5qcycpKS50b1N0cmluZygpKVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHBhY2thZ2VKc29uLm5hbWUsXG4gICAgICAgIHJldmlzaW9uLFxuICAgICAgICBodHRwOiBnZXRIYW5kbGVycygnaHR0cCcpLm1hcChoID0+ICh7XG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5oLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBjcHVzOiBwYWNrYWdlSnNvbi5jcHUsXG4gICAgICAgICAgICAgICAgb3M6IHBhY2thZ2VKc29uLm9zLFxuICAgICAgICAgICAgICAgIG5vZGVWZXJzaW9uOiBwYWNrYWdlSnNvbi5lbmdpbmVzPy5ub2RlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IGgubWV0YT8uZmlsZU5hbWUgPz8gJycsXG4gICAgICAgICAgICBtZXRob2Q6IGgubWV0aG9kLFxuICAgICAgICAgICAgcGF0aFBhdHRlcm46IGgucGF0aFBhdHRlcm4sXG4gICAgICAgIH0pKSxcbiAgICAgICAgdGltZXJzOiBnZXRIYW5kbGVycygndGltZXInKS5tYXAoaCA9PiAoe1xuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uaC5jb25maWcsXG4gICAgICAgICAgICAgICAgY3B1czogcGFja2FnZUpzb24uY3B1LFxuICAgICAgICAgICAgICAgIG9zOiBwYWNrYWdlSnNvbi5vcyxcbiAgICAgICAgICAgICAgICBub2RlVmVyc2lvbjogcGFja2FnZUpzb24uZW5naW5lcz8ubm9kZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lOiBoLm1ldGE/LmZpbGVOYW1lID8/ICcnLFxuICAgICAgICAgICAgc2NoZWR1bGU6IGguc2NoZWR1bGUsXG4gICAgICAgIH0pKSxcbiAgICAgICAgZXZlbnRzOiBnZXRIYW5kbGVycygnZXZlbnQnKS5tYXAoaCA9PiAoe1xuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4uaC5jb25maWcsXG4gICAgICAgICAgICAgICAgY3B1czogcGFja2FnZUpzb24uY3B1LFxuICAgICAgICAgICAgICAgIG9zOiBwYWNrYWdlSnNvbi5vcyxcbiAgICAgICAgICAgICAgICBub2RlVmVyc2lvbjogcGFja2FnZUpzb24uZW5naW5lcz8ubm9kZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lOiBoLm1ldGE/LmZpbGVOYW1lID8/ICcnLFxuICAgICAgICAgICAgdG9waWM6IGgudG9waWMsXG4gICAgICAgICAgICB0eXBlOiBoLnR5cGUsXG4gICAgICAgIH0pKSxcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRDb25maWcocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGpvaW4ocGF0aCwgJ3BhY2thZ2UuanNvbicpLCAndXRmLTgnKSkgYXMge1xuICAgICAgICBuYW1lOiBzdHJpbmdcbiAgICAgICAgZW5naW5lcz86IHsgW2VuZ2luZTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICAgICAgY3B1PzogQ3B1Q29uZmlnW11cbiAgICAgICAgb3M/OiBPU0NvbmZpZ1tdXG4gICAgICAgIGNvbmZpZz86IG9iamVjdFxuICAgIH1cbiAgICByZXR1cm4gcGFja2FnZUpzb25cbn1cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFJeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQStDbEMsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFnQyxFQUFFLFNBQWdCO0lBQ3pFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDekQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ1osMEdBQTBHO1FBQzFHLG9FQUFvRTtRQUNwRSxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxJQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUNyQixNQUFnQyxFQUNoQyxTQUE0QjtJQUU1QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNaLDBHQUEwRztRQUMxRyxvRUFBb0U7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxNQUFNLENBQUMsRUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FB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T0FBTyxXQUFXLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRkaXIsIHJlYWRGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcydcbmltcG9ydCB7IGZpbmRQYWNrYWdlSlNPTiB9IGZyb20gJ25vZGU6bW9kdWxlJ1xuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIGV4dG5hbWUsIGpvaW4sIHJlc29sdmUgfSBmcm9tICdub2RlOnBhdGgnXG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSAnbm9kZTp1cmwnXG5pbXBvcnQgdHlwZSB7IEhhbmRsZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29udGV4dC5qcydcbmltcG9ydCB0eXBlIHsgSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaHR0cC5qcydcbmltcG9ydCB0eXBlIHsgVGltZXJIYW5kbGVyQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3RpbWVyLmpzJ1xuaW1wb3J0IHsgZ2V0SGFzaCB9IGZyb20gJy4vZ2l0LmpzJ1xuaW1wb3J0IHR5cGUgeyBQYWNrYWdlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbWV0YS5qcydcbmltcG9ydCB0eXBlIHsgSGFuZGxlcnNHZXR0ZXIgfSBmcm9tICcuL3JlZ2lzdHJ5LmpzJ1xuXG50eXBlIENQVSA9XG4gICAgfCAnYXJtJ1xuICAgIHwgJ2FybTY0J1xuICAgIHwgJ2lhMzInXG4gICAgfCAnbWlwcydcbiAgICB8ICdtaXBzZWwnXG4gICAgfCAncHBjJ1xuICAgIHwgJ3BwYzY0J1xuICAgIHwgJ3MzOTAnXG4gICAgfCAnczM5MHgnXG4gICAgfCAneDMyJ1xuICAgIHwgJ3g2NCdcbnR5cGUgQ3B1Q29uZmlnID0gQ1BVIHwgYCEke0NQVX1gXG50eXBlIE9TQ29uZmlnID0gTm9kZUpTLlBsYXRmb3JtIHwgYCEke05vZGVKUy5QbGF0Zm9ybX1gXG5cbmV4cG9ydCB0eXBlIFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbiA9IHtcbiAgICBub2RlVmVyc2lvbj86IHN0cmluZ1xuICAgIGNwdXM/OiBDcHVDb25maWdbXVxuICAgIG9zPzogT1NDb25maWdbXVxufVxuXG5leHBvcnQgdHlwZSBSZWZsZWN0aW9uID0ge1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIHJldmlzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICBodHRwOiB7XG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgICBtZXRob2Q6IHN0cmluZ1xuICAgICAgICBwYXRoUGF0dGVybjogc3RyaW5nXG4gICAgICAgIGNvbmZpZzogSHR0cEhhbmRsZXJDb25maWd1cmF0aW9uICYgUGFja2FnZUpzb25Db25maWd1cmF0aW9uXG4gICAgfVtdXG4gICAgdGltZXJzOiB7XG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgICBzY2hlZHVsZTogc3RyaW5nXG4gICAgICAgIGNvbmZpZzogVGltZXJIYW5kbGVyQ29uZmlndXJhdGlvbiAmIFBhY2thZ2VKc29uQ29uZmlndXJhdGlvblxuICAgIH1bXVxuICAgIGV2ZW50czoge1xuICAgICAgICBuYW1lOiBzdHJpbmdcbiAgICAgICAgdG9waWM6IHN0cmluZ1xuICAgICAgICB0eXBlOiBzdHJpbmdcbiAgICAgICAgY29uZmlnOiBIYW5kbGVyQ29uZmlndXJhdGlvbiAmIFBhY2thZ2VKc29uQ29uZmlndXJhdGlvblxuICAgIH1bXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNwdShjb25maWc6IFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbiwgc3VwcG9ydGVkOiBDUFVbXSk6IENQVSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlU3VwcG9ydGVkKGNvbmZpZy5jcHVzLCBzdXBwb3J0ZWQpXG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAvLyByZXNvbHZlPFQ+KGNvbmZpZywgc3VwcG9ydGVkKSBhY3R1YWxseSBhc3NlcnRzIGNvbmZpZyBpcyAoVCB8IGAhJHtUfWApW10sIGJ1dCB0aGF0J3Mgbm90IHN1cHBvcnRlZCB5ZXQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgQ1BVczogJyArIGNvbmZpZy5jcHVzIS5qb2luKCcsICcpKVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPUyhcbiAgICBjb25maWc6IFBhY2thZ2VKc29uQ29uZmlndXJhdGlvbixcbiAgICBzdXBwb3J0ZWQ6IE5vZGVKUy5QbGF0Zm9ybVtdLFxuKTogTm9kZUpTLlBsYXRmb3JtIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVTdXBwb3J0ZWQoY29uZmlnLm9zLCBzdXBwb3J0ZWQpXG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAvLyByZXNvbHZlPFQ+KGNvbmZpZywgc3VwcG9ydGVkKSBhY3R1YWxseSBhc3NlcnRzIGNvbmZpZyBpcyAoVCB8IGAhJHtUfWApW10sIGJ1dCB0aGF0J3Mgbm90IHN1cHBvcnRlZCB5ZXQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgb3BlcmF0aW5nIHN5c3RlbXM6ICcgKyBjb25maWcub3MhLmpvaW4oJywgJykpXG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZFxufVxuXG5mdW5jdGlvbiByZXNvbHZlU3VwcG9ydGVkPFQgZXh0ZW5kcyBzdHJpbmc+KFxuICAgIGNvbmZpZzogKFQgfCBgISR7VH1gKVtdIHwgdW5kZWZpbmVkLFxuICAgIHN1cHBvcnRlZDogVFtdLFxuKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZFswXVxuICAgIH1cbiAgICByZXR1cm4gc3VwcG9ydGVkLmZpbmQocyA9PiBjb25maWcuaW5jbHVkZXMocykgJiYgIWNvbmZpZy5pbmNsdWRlcyhgISR7c31gKSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZmxlY3QocGF0aDogc3RyaW5nKTogUHJvbWlzZTxSZWZsZWN0aW9uPiB7XG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBwYXRoKVxuICAgIGNvbnN0IFtwYWNrYWdlSnNvbiwgYWxsRmlsZXMsIHJldmlzaW9uXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgcmVhZENvbmZpZyhhYnNvbHV0ZVBhdGgpLFxuICAgICAgICByZWFkZGlyKGFic29sdXRlUGF0aCksXG4gICAgICAgIGdldEhhc2goYWJzb2x1dGVQYXRoKSxcbiAgICBdKVxuICAgIGNvbnN0IGZpbGVzID0gYWxsRmlsZXMuZmlsdGVyKGZpbGUgPT4gZXh0bmFtZShmaWxlKSA9PT0gJy50cycgJiYgIWZpbGUuZW5kc1dpdGgoJy5kLnRzJykpXG4gICAgY29uc3QgbXlQYWNrYWdlSnNvbiA9XG4gICAgICAgIHBhY2thZ2VKc29uLm5hbWUgPT09ICdAcmlkZGFuY2UvaG9zdCdcbiAgICAgICAgICAgID8gam9pbihhYnNvbHV0ZVBhdGgsICdwYWNrYWdlLmpzb24nKVxuICAgICAgICAgICAgOiBmaW5kUGFja2FnZUpTT04oJ0ByaWRkYW5jZS9ob3N0JywgYCR7cGF0aFRvRmlsZVVSTChhYnNvbHV0ZVBhdGgpLmhyZWZ9L2ApXG4gICAgaWYgKCFteVBhY2thZ2VKc29uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUGFja2FnZXMgbm90IGluc3RhbGxlZCcpXG4gICAgfVxuICAgIGNvbnN0IHsgZ2V0SGFuZGxlcnMsIHNldE1ldGEgfSA9IChhd2FpdCBpbXBvcnQoXG4gICAgICAgIHBhdGhUb0ZpbGVVUkwoam9pbihkaXJuYW1lKG15UGFja2FnZUpzb24pLCAnaG9zdC9yZWdpc3RyeS5qcycpKS50b1N0cmluZygpXG4gICAgKSkgYXMge1xuICAgICAgICBnZXRIYW5kbGVyczogSGFuZGxlcnNHZXR0ZXJcbiAgICAgICAgc2V0TWV0YTogKFxuICAgICAgICAgICAgcGFja2FnZU5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICByZXY6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNmZzogUGFja2FnZUNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG4gICAgICAgICkgPT4gdm9pZFxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBjb25zdCBiYXNlID0gYmFzZW5hbWUoZmlsZSwgJy50cycpXG4gICAgICAgIHNldE1ldGEocGFja2FnZUpzb24ubmFtZSwgYmFzZSwgcmV2aXNpb24sIHBhY2thZ2VKc29uLmNvbmZpZylcbiAgICAgICAgYXdhaXQgaW1wb3J0KHBhdGhUb0ZpbGVVUkwoam9pbihhYnNvbHV0ZVBhdGgsIGJhc2UgKyAnLmpzJykpLnRvU3RyaW5nKCkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogcGFja2FnZUpzb24ubmFtZSxcbiAgICAgICAgcmV2aXNpb24sXG4gICAgICAgIGh0dHA6IGdldEhhbmRsZXJzKCdodHRwJykubWFwKGggPT4gKHtcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgIC4uLmguY29uZmlnLFxuICAgICAgICAgICAgICAgIGNwdXM6IHBhY2thZ2VKc29uLmNwdSxcbiAgICAgICAgICAgICAgICBvczogcGFja2FnZUpzb24ub3MsXG4gICAgICAgICAgICAgICAgbm9kZVZlcnNpb246IHBhY2thZ2VKc29uLmVuZ2luZXM/Lm5vZGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZTogaC5tZXRhPy5maWxlTmFtZSA/PyAnJyxcbiAgICAgICAgICAgIG1ldGhvZDogaC5tZXRob2QsXG4gICAgICAgICAgICBwYXRoUGF0dGVybjogaC5wYXRoUGF0dGVybixcbiAgICAgICAgfSkpLFxuICAgICAgICB0aW1lcnM6IGdldEhhbmRsZXJzKCd0aW1lcicpLm1hcChoID0+ICh7XG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5oLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBjcHVzOiBwYWNrYWdlSnNvbi5jcHUsXG4gICAgICAgICAgICAgICAgb3M6IHBhY2thZ2VKc29uLm9zLFxuICAgICAgICAgICAgICAgIG5vZGVWZXJzaW9uOiBwYWNrYWdlSnNvbi5lbmdpbmVzPy5ub2RlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IGgubWV0YT8uZmlsZU5hbWUgPz8gJycsXG4gICAgICAgICAgICBzY2hlZHVsZTogaC5zY2hlZHVsZSxcbiAgICAgICAgfSkpLFxuICAgICAgICBldmVudHM6IGdldEhhbmRsZXJzKCdldmVudCcpLm1hcChoID0+ICh7XG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5oLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBjcHVzOiBwYWNrYWdlSnNvbi5jcHUsXG4gICAgICAgICAgICAgICAgb3M6IHBhY2thZ2VKc29uLm9zLFxuICAgICAgICAgICAgICAgIG5vZGVWZXJzaW9uOiBwYWNrYWdlSnNvbi5lbmdpbmVzPy5ub2RlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IGgubWV0YT8uZmlsZU5hbWUgPz8gJycsXG4gICAgICAgICAgICB0b3BpYzogaC50b3BpYyxcbiAgICAgICAgICAgIHR5cGU6IGgudHlwZSxcbiAgICAgICAgfSkpLFxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZENvbmZpZyhwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUoam9pbihwYXRoLCAncGFja2FnZS5qc29uJyksICd1dGYtOCcpKSBhcyB7XG4gICAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgICBlbmdpbmVzPzogeyBbZW5naW5lOiBzdHJpbmddOiBzdHJpbmcgfVxuICAgICAgICBjcHU/OiBDcHVDb25maWdbXVxuICAgICAgICBvcz86IE9TQ29uZmlnW11cbiAgICAgICAgY29uZmlnPzogb2JqZWN0XG4gICAgfVxuICAgIHJldHVybiBwYWNrYWdlSnNvblxufVxuIl19
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@riddance/host",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "engines": {
7
- "node": ">=20.17"
7
+ "node": ">=22"
8
8
  },
9
9
  "keywords": [
10
10
  "riddance",
@@ -42,7 +42,7 @@
42
42
  "postpublish": "riddance-sync"
43
43
  },
44
44
  "devDependencies": {
45
- "@riddance/env": "0.8.2"
45
+ "@riddance/env": "0.9.0"
46
46
  },
47
- "gitHead": "b98a163640245f194f790f86f4d1a0f5a8026d37"
47
+ "gitHead": "652d9a929348d94ebf2ec37ed215e57473bf0130"
48
48
  }